[Tutorial] OpenBOR - the complete guide
-
Hello, the PS3 controller joypad config is not working for me, controls get all funny, i have Sony Original PS3 controllers, is there any way i can sorta debug this? i tried some other input configs also but none of them are working for me.
-
It stays pretty consistent with Streets of Rage. I did some research when I set up Streets of Rage Remix, and this seems to be fairly similar with what people prefer.
-
@dishins Use a keyboard to navigate/select and remap using your controller. Is it genuine PS3 or after market? Wired or Bluetooth? When you get it a all set up we'd love it if you could upload your config to add it to the controller database. In the first post you'll find a image with the preffered controller layout.
-
@bizzar721 Thanks for replying. Its a genuine PS3 controller, bluetooth with ps3controllerdriver. ATM i dont have a keyboard here, but as soon as i get one i will manually remap and upload my config :)
-
@cyperghost
Here is another one to add to the Joypad list
PS3 Controller Bluetooth(BiZzAr721)@dishins Rename this file to master.bor.cfg and put it in \RETROPIE\roms\ports\openbor then use the Joypad configuration script to copy master config ---> game config
(or just wait until it gets added to the joypads.txt)
Thanks for testing out wired PS3 over Bluetooth =) -
@bizzar721 Added the bluetooth config file, thank you
So the first PS3 was the wired config?@dishins Maybe you can use the "Emergency setting" if this won't work for you. The emergency settings just got up/down movement and two buttons for confirment. So you can try to navigate through the menu with this and setup your joypad. It's not the best way to do this. Keyboard would be first choice if all controller settings will fail.
I hope that the PS3 config from @BiZzAr721 is working for you.
-
The first controller config was wired. I didn't install PS3 BT drivers since I wasn't using it anymore. I realize now inputs are different wired/wireless.
-
@BiZzAr721 Perfect! Changed description to wired and bluetooth connection
-
I just wanted to make mention of the issue I have had where
joy2key
keeps running in the background while OpenBOR is running, causing D-pad Left to exit back to Emulation Station. A quick fix was to exit to ES, then open Terminal.
Typeps -a
to list running processes
Note the process ID number ofjoy2key
Then typekill 1234
where 1234 is the PID of joy2keyEDIT
Just enterpkill joy2key
to kill joy2key - no need for doing the above Thanks CyperghostIt seems to have something to do with hitting input buttons causing joy2key to load when it shouldn't.
I hope this will help anyone that may encounter this bug.
A thread with more information about this issue can be found here.I will update this post if I find a solution to stop this from happening in the first place.
-
Hey guys, any chance you can help a noob out with my Windows configuration? This retropie forum is literally the ONLY place I can find any useful information. I am unpacking the pak files and naming the directories gamename.bor etc... But, when I launch a game from ES I am getting a message "No mods in paks folder". Here is what my config file looks like:
<system> <name>openBOR</name> <fullname>openBOR</fullname> <path>D:\OpenBOR\Paks</path> <extension>.pak .PAK .bor .BOR</extension> <command>D:\OpenBOR\OpenBOR.exe "%ROM%"</command> <platform>pc</platform> <theme>btmups</theme> </system>
What am I doing wrong? Thanks in advance for helping a noob. I am a youtuber and would love to do a video on this.
-
@denver-gamer This won't work as long you did not compile the changes that were done by @darknior to the OpenBOR source code on your own build. Only this will give the ability for command line calls. You can visit darkniors github account and just copy the changes to the windows source code and compile it.
There are surly other methods like renaming files .... but these are only workarounds.
Thanks in advance for helping a noob. I am a youtuber and would love to do a video on this.
What's a youtuber?
-
@cyperghost said in [Tutorial] OpenBOR - the complete guide:
What's a youtuber?
A miserable little pile of video data. But enough talk… Have at you!
-
@cyperghost My YouTube is Denver Gamer brother
-
My computer died on me. Literally. Actually, our cat stepped on the power cord and unplugged it, causing a chain reaction burn out of the mobo and ram. I just now got everything up and running with a new system from scratch.
Anyway, I'm back at this and trying to make OpenBOR work with more games. The first thing I did was try to launch a game so I could re-familiarize myself with it. Wouldn't you know? It doesn't work! ARGH! Not sure where the problem is, but (for instance) Asterix crashes right after showing "Act 1-1". I only have 2 games installed, Asterix and Balance of Power. Balance of Power crashes right after selecting the player (as I indicated awhile ago on the compatibility spreadsheet).
The
/dev/shm
log wasn't very helpful. It just showed that the game had exited, even though I don't press anything. So I went back through and verified all my controller settings were right. Didn't fix it. I then tried just REINSTALLING it, by choosing toUpdate from Source
in the RetroPie-Setup. That didn't make any difference either. So then I thought maybe the whole thing got corrupted or something, and decided to just start all over again. I uninstalled it through RetroPie-Setup, then re-downloaded the "patch" to the install script (wget http://raw.githubusercontent.com/crcerror/RetroPie-OpenBOR-scripts/master/openbor.sh -O /home/pi/RetroPie-Setup/scriptmodules/ports/openbor.sh
). I then rebooted and started the install process again. It looked the same as before, with errors and what not. After it finished, I rebooted and tried to launch the program from thePorts
menu. It loads up just fine, and shows the 2 games on the list. After picking one though, it crashes back to the EmulationStation screen. I do get an error though:Parameters: Executing: pushd /opt/retropie/ports/openbor; /opt/retropie/ports/openbor/OpenBOR ""; popd /opt/retropie/ports/openbor ~ Warning: couldn't load OpenGL library (No dynamic GL support in video driver) ~
This isn't always the case though. Sometimes I can get it to load the game and can navigate the menus. However, once I get it going and it displays (in Asterix for example..) Act 1-1, I get a different error:
Posted at pastebin to reduce post size here:
https://pastebin.com/9ii6Kf4VThis is pretty crappy. It was all working fine before! What am I missing?
EDIT
I've partially figured it out. It looks like it's choking on the number of controller adapters I have connected to the system. When I disconnected everything except the keyboard, everything loads and plays (the actual game not just menus) fine. The same is true when I connect the Xbox dongle. When I connect JUST 1 more adapter, either the Raphnet NES or the Mayflash SEGA, it still works ok. But if I have BOTH of them connected, it crashes back to ES. I don't actually have controllers connected to those adapters, they're just adding ports. But the system configures itself as if they're already connected. It looks like OpenBOR is choking when I try to add a 4th device type.I should be able to get around all this with XBOXDRV. I just need to add some extra configurations to disable the other adapters. Fingers Crossed this is where my problem is. I'm too tired to mess with it tonight. I'll find out tomorrow night after work if I'm not too tired then too.
-
Calling @mediamogul !!!
APB on @mediamogul !!!I still can't get this to run with 3 input devices being detected. My thoughts were that if I use XBOXDRV to detach the kernel drivers (not not map them to anything) it should then work to hide them from OpenBOR from trying to map them. My theory so far has come up empty. Any idea why this doesn't work?
if [ "$1" = "openbor" ] then sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --evdev /dev/input/by-id/usb-©Microsoft_Xbox_360_Wireless_Receiver_for_Windows_E1594E70-event-joystick \ --detach-kernel-driver \ --silent \ --force-feedback \ --deadzone-trigger 15% \ --deadzone 4000 \ --mimic-xpad \ --dpad-as-button \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_Z=lt,ABS_RZ=rt \ --evdev-keymap BTN_SOUTH=a,BTN_EAST=b,BTN_NORTH=x,BTN_WEST=y,BTN_TL=lb,BTN_TR=rb,BTN_THUMBL=tl,BTN_THUMBR=tr,BTN_MODE=guide,BTN_SELECT=back,BTN_START=start,BTN_TRIGGER_HAPPY3=du,BTN_TRIGGER_HAPPY4=dd,BTN_TRIGGER_HAPPY1=dl,BTN_TRIGGER_HAPPY2=dr \ --ui-buttonmap x=KEY_F,a=KEY_A,b=KEY_D,lb=KEY_Z,Y=KEY_S,rb=KEY_X \ --ui-buttonmap guide=KEY_F12,start=KEY_ENTER,back=KEY_ESC \ --ui-buttonmap du=KEY_UP,dd=KEY_DOWN,dl=KEY_LEFT,dr=KEY_RIGHT \ & sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --evdev /dev/input/event0 \ --detach-kernel-driver \ & sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --evdev /dev/input/event1 \ --detach-kernel-driver \ & sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --evdev /dev/input/by-id/usb-Mayflash_Ltd_Mayflash_MD_USB_Adapter-event-joystick \ --detach-kernel-driver \ & sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --evdev /dev/input/by-id/usb-Mayflash_Ltd_Mayflash_MD_USB_Adapter-if01-event-joystick \ --detach-kernel-driver \ & fi
Maybe I need to just go at this a different way. Back to my original plans of just disabling them completely during the run, then
runcommand-onend.sh
revert them back. Perhaps just a quick and dirtysudo mv /dev/input/blahblah /home/pi
. That should work right? Gets it out of the input folder and somewhere safe until I can return it? -
@hansolo77 said in [Tutorial] OpenBOR - the complete guide:
My thoughts were that if I use XBOXDRV to detach the kernel drivers (not not map them to anything) it should then work to hide them from OpenBOR from trying to map them.
It's a good notion, but unfortunately, I don't think this particular method will work to hide the controllers. In doing this, they're always still there and able to be fully discovered by any software. It's more like they remain in a sort of null state that won't interfere with outside mapping. I can't speak to the potential effectiveness of moving the events, but it's worth a shot.
-
Thanks. :) I was working up an edit to my last post when I saw you had replied. I couldn't make it work by moving out the events. I might have the scripting wrong.. It should be a simple thing, but when I was logged in through SSH I noticed the events all stayed when I launched the game. Int this particular script, does it matter if I'm using &'s after each line, or if I use the backslashes \ ? I thought in our previous thread you had said the backslashes were there to let the script know you're continuing the same command but rather than have it really long you can use that to shorten it onto multiple lines. So if my
mv
command will all fit on one line cleanly, I don't think I would need them. But the &'s have me wondering if I need one after eachmv
or if I can make it work with back to back lines. I guess it's something I'll have to figure out later. Got to get to bed. -
More trying to figure this out. Anybody come across this error? (it crashed ES to terminal)
emulationstation: /home/pi/RetroPie-Setup/tmp/build/emulationstation/es-core/src/InputManager.cpp:80: void InputManager::addJoystickByDeviceIndex(int): Assertion 'id >= 0 && id < SDL_NumJoysticks()' failed.
What I tried to do was use XBOXDRV and create an entry for each of my devices, but naming them all
--device-name "Keyboard (xboxdrv)"
. So I had 4 entries in my on-start script, each mapping to the same keys. My thinking was that if the--detach-kernel-driver
flag merely assigned the controls tonull
, then I should be able to just map them all to the same keys. Doesn't look like that worked though.I may have to come up with a hardware modification. Since I noticed it worked by having either the NES or the SEGA adapters unplugged, I'm going to have to create an inline switch that does the same thing. I don't want to have to keep opening up my case to get to the USB plug. I'll create some kind of pushbutton and mount it somewhere I can get to from the outside. Then just make sure I wire the switch up to the correct wires (data should be it correct?). Switch on, Raspberry Pi detects the adapter. Switch off, Raspberry Pi only sends power and ground. I have a few extra switches laying around. At least I can test it. Sucks I can't make a switch through software.
-
@hansolo77 all mv commands will fit in one line by using ;
Or by logical boolean true with && (be aware with this!)
Or stick to your if clause and writemv file1 location1
mv file2 location2Why do you use & - it just sends the processes to background and is not needed imho
-
@cyperghost said in [Tutorial] OpenBOR - the complete guide
Why do you use & - it just sends the processes to background and is not needed imho
I dunno. It's just the way it works. I built my system with the thought in mind to have ports externally available for original NES and SEGA/ATARI controllers. The only way I could make it work like that was by using XBOXDRV to map those controllers as keyboard keys. Otherwise the whole system screws up because of how it maps them automatically. Sometimes the NES controller would be player 1, while other times it was the SEGA controller. Since I only use those controllers sparingly, it was a huge headache getting it to always map my Xbox controller as my primary player 1. Using XBOXDRV solved all of that. The only problem is, those adapters are permanently connected to the Pi. So OpenBOR comes around, and it chokes trying to enumerate all the different devices. Seems like it can only work with a total of 4 (Keyboard, Xbox, 2 Sega OR Keyboard, Xbox, 2 NES). Makes sense, considering OpenBOR only has controller configs for up to 4 players. I still have the problem though, that it doesn't recognize the XBOX controller as player 1, so I have to use XBOXDRV to map it to a keyboard.
As for the quote and the use of
&
... the explanation in the RetroPie Docs does it that way, so I just followed along.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.