OpenBOR finally working fine on RETROPIE with ES
-
Using 2 seperate systems in es_systems allows for the <command> tags to be different. I was trying to find a way to get only . bor folders to use the custom command, while the rest of ports work with the default command, or vice versa. @cyperghost I'm really liking your take on it utilizing runcommand and especially a unified controller config. I think you are really creating a foundation based on the groundwork @darknior layed out. Thank you both. I think this will breath new life into openBOR on retropie. Maybe even get the interest of someone with the talent to compile the latest & greatest! The only thing I would love to see now is launching a game directly from ports. I would like to have all ports in the system menu, with only a openBOR folder in the list, showing artwork, intro video, and description, which would then take you to the list of .bor folders (eventually with per game artwork/video)
-
@bizzar721 said in OpenBOR finally working fine on RETROPIE with ES:
I was trying to find a way to get only . bor folders to use the custom command. while the rest of ports work with the default command, or vice versa .....
That should work if you edit the command call like this
<command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _PORT_ openbor %ROM%</command>
*edit: changed from ´_SYS_´ to ´_PORT_´
and edit the emulator call like I've posted here Just edit the file/opt/retropie/configs/ports/openbor/emulators.cfg
and add%ROM%
after OpenBor call.As last resort you can call every single BOR AddOn in one single bash file. The menu I wrote works in an equal way.
@cyperghost I'm really liking your take on it utilizing runcommand....
Thanks that was the main idea of this because
runcommand.sh means power
I hope the admins will change the default install as this won't hurt and makes OpenBOR strenghten for future.and especially a unified controller config.
only a sleight ;)
I was just fedup to fix added games again and again. So do it one time and you're happy and it's a automated setup.I think you are really creating a foundation based on the groundwork @darknior layed out. Thank you both. I think this will breath new life into openBOR on retropie. Maybe even get the interest of someone with the talent to compile the latest & greatest!
I hope so
The only thing I would love to see now is launching a game directly from ports. I would like to have all ports in the system menu, with only a openBOR folder in the list, showing artwork, intro video, and description, which would then take you to the list of .bor folders (eventually with per game artwork/video)
As I wrote earlier. That can be done using a special command tag. Or you can do this via single bash files (in ports). Both methods should allow scraping for single entries. I just took that menuroute because I don't wont my port section mixed up with hundreds of OpenBOR entries.
-
I'll probably come back to this when it is a bit sorted out. Ideally I would just like to have an entry in my Ports section for Mortal Kombat Outworld Assasins as its own game. Or even something in the main menu of Emulation Station as a stand alone game with logo and everything.
-
@greenhawk84 said in OpenBOR finally working fine on RETROPIE with ES:
I'll probably come back to this when it is a bit sorted out. Ideally I would just like to have an entry in my Ports section for Mortal Kombat Outworld Assasins as its own game. Or even something in the main menu of Emulation Station as a stand alone game with logo and everything.
Using darknior 's setup instructions AND the binary as mentioned in a post directed at you by cyperghost you can have openBOR as a separate ES menu item (system), with each game listed individually (artwork, meta and all if you have it).
What is being discussed is including individual games in the ports menu without the need for a seperate openBOR system menu.
-
@cyperghost WOAW thanks a lot, your script is really excellent, it's a very good idea, maybe it can be added to official OpenBOR port on Retropie. Easy to use for every one ;)
For my part i prefer modifying the system file to have a new system" OpenBOR" in my ES with informations, videos, covers ... for each games. Like it was a console ...
-
I finally got to a PC so I can try this out. I keep getting the error
"no config found for system openbor"
I setup master.bor.cfg. I created a .sh named the same as .bor folder (Bare Knuckle - Next Generation.sh) Here is the contents:#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _SYS_ openbor %ROM%
When I saw the error mention system openbor, I edited es-systems to add back openbor to see if that was what it was calling for
<system> <name>ports</name> <fullname>Ports</fullname> <path>/home/pi/RetroPie/roms/ports</path> <extension>.sh .SH .bor .BOR</extension> <command>bash %ROM%</command> <platform>pc</platform> <theme>ports</theme> </system> <system> <name>openbor</name> <fullname>OpenBOR</fullname> <path>/home/pi/RetroPie/roms/ports/openbor</path> <extension>.bor .BOR</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ openbor %ROM%</command> <platform>openbor</platform> <theme>ports</theme> </system>
My ports/openbor/emulators.cfg matches what cyperghost has written
#openbor= "pushd /opt/retropie/ports/openbor; /opt/retropie/ports/openbor/OpenBOR; popd" openbor= "pushd /opt/retropie/ports/openbor; /opt/retropie/ports/openbor/OpenBOR %ROM%; popd" default = "openbor"
I re-read the post a few times, tried multiple combinations (such as editing ports command to match), multiple ES restarts but I'm stuck!
-
@bizzar721 My first suggestions contained a small mistake.
Take a look at the calls, the command call is
_SYS_
while the script call is_PORT_
maybe writing a line like<command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _PORT_ openbor %ROM%</command>
will do the trick?In my script I do a call like
"$ROOTDIR/supplementary/runcommand/runcommand.sh" 0 _PORT_ "openbor" "$BOR_file"
Maybe you can try
"/opt/retropie/supplementary/runcommand/runcommand.sh 0 _PORT_ openbor %ROM%"
or
"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ openbor "%ROM%"
@bizzar721 said in OpenBOR finally working fine on RETROPIE with ES:
I finally got to a PC so I can try this out. I keep getting the error
"no config found for system openbor"
I setup master.bor.cfg. I created a .sh named the same as .bor folder (Bare Knuckle - Next Generation.sh) Here is the contents:#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _SYS_ openbor %ROM%
Does my script work for you? Or a bash-file with call
"/opt/retropie/supplementary/runcommand/runcommand.sh 0 _PORT_ openbor /home/pi/RetroPie/roms/ports/openbor/The game you want to play.bor"
works? If you setup bash files you need exact path togame.bor
directory - just %ROM% makes no sense and take care of the_SYS_
it's_PORT_
-
@bizzar721 said in OpenBOR finally working fine on RETROPIE with ES:
What is being discussed is including individual games in the ports menu without the need for a seperate openBOR system menu.
THIS would be awesome. I would like to see MK Outworld Assassins as a standalone game that happens to use OpenBOR.
-
@cyperghost
This command brings me to the stock openBOR menu. It seems to be ignoring the %ROM%. I tried %$BOR_file% and had same results.#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ openbor "%ROM%"
Using your script works like a charm with the exception of the controller config not carrying over, but we'll save that for another time!
So now, I apologize, but I do not really understand bash, except that for dosbox it does not let you call a universal config file, but a script will.
That said, using
"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ openbor "/home/pi/RetroPie/roms/ports/openbor/Bare Knuckle - Next Generation.bor"
DOES load right into the game - run command loading screen & all.
To get the script to run without having to specify the directory, the only thing to do I assume is to edit the emulators.cfg to specify what the %ROM% variable is.
Reason being is that I would like to make a script for all the openBOR games I listed earlier before I remove any off my PI to make available to others here. I don't know enough about scripting to even create a script to make .sh's with the name of the .bor folder let alone with an exact path to each file. (I have been reading up on how to make a script that will make files named as the .bor folders, then planned on using notepad ++ to edit them all at once......plan B is doing each one manually)
-
@BiZzAr721 Don't worry you are close to get this working. You will understand how bash files and the calls do their job. Glad the script works.... You are the first who is reporting.
This command brings me to the stock openBOR menu. It seems to be ignoring the %ROM%. I tried %$BOR_file% and had same results.
#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ openbor "%ROM%"
This makes no sense as bash file %ROM% is a unknown variable so it's loading just the binary. You should use that line for
es_systems.cfg
(without #!-shebang)
"$BOR_file" is a variable out of my script ... also unknowen call for other script files.Using your script works like a charm with the exception of the controller config not carrying over, but we'll save that for another time!
Glad to hear the script is working for you. It is intended to give users quick access and little guidance.
The controller config is found inside
/opt/retropie/configs/ports/openbor/Saves
there you will findgamenname.bor.cfg
files. If you configurated one game with correct gamepad settings then just copy that config file to/home/pi/retropie/roms/ports/openbor/master.bor.cfg
this config file will be used for other games. So you need one good/correct done configuration file.
That saves me alot of time (and keyboard plugins and plugouts)"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ openbor "/home/pi/RetroPie/roms/ports/openbor/Bare Knuckle - Next Generation.bor"
DOES load right into the game - run command loading screen & all.
To get the script to run without having to specify the directory, the only thing to do I assume is to edit the emulators.cfg to specify what the %ROM% variable is.
Yes that's the correct call for single bash files. Those calls can be setup manually with single files. So you can name this file
Bare Knuckle - Next Generation.sh
and it will be showen inside ES if it is saved in ports.The call out of Emulationstation after editing
es_systems.cfg
is<command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _PORT_ openbor %ROM%</command>
There is also a %ROM_RAW% parameter but don't know what it does. Last resort is to copy each to copy the PORTS section from
es_system.cfg
. Create bashfiless with each single game and you should be done.Don't forget to alter
emulators.cfg
withnano /opt/retropie/configs/ports/openbor/emulators.cfg
like I've done here@darknior said in OpenBOR finally working fine on RETROPIE with ES:
@cyperghost WOAW thanks a lot, your script is really excellent, it's a very good idea, maybe it can be added to official OpenBOR port on Retropie. Easy to use for every one ;)
For my part i prefer modifying the system file to have a new system" OpenBOR" in my ES with informations, videos, covers ... for each games. Like it was a console ...
Maybe you can edit your first post if you find the solution usefull?
I think the method to call through runcommand is the better method because it will create logfiles and helps people who are using backgroundmusic hacks and customized loading screens (you can use
runcommand-onstart.sh
for ex.)Therefore we need two modifications
- command call in
es_systems.cfg
like i've posted here<command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _PORT_ openbor %ROM%</command>
- The change in
emulator.cfg
I've posted here - The rest can be left as you descriped ;) With system openbor and the same naming convention with
gamename.bor
I would be glad if you can do this ;)
Bonne chance à l'équipe de France de football;) - command call in
-
@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
command call in es_systems.cfg like i've posted here <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 PORT openbor %ROM%</command>
The change in emulator.cfg I've posted here
The rest can be left as you descriped ;) With system openbor and the same naming convention with gamename.borThanks a lot, i try it and it works very well now and faster than before :D
I have update the first post.An other question please, your script is really excellent to launch .BOR games in a list with GITHUBt
Do you think we can mix it with my (and actual) system ?
Like when we launch an emulator, having a loading screen with write "PRESS A TO ..." and when we press it having your menu.
Like that if we only read XML on ES we can launch other BOR games with your menu ;)
It's just an idea, but i think it can be cool, and for users that launch BOR from PORT they will have it too.
ThanksEDIT: I have also add your Windows UNBOR trick ;)
It's a good idée, and i share the software. -
I see what I did wrong with the controller config file - I did
CONFIGS/ports/openbor/master.bor.cfg
(I had it right the very first time I set it up using an unconfiguredmaster.bor.cfg
- I think dumb mistakes like this happen way too much in this scene when your fighting to stay awake and finish "one more thing")So I did a lot of research on scripts and made a script to make a script! It's a hackish, Frankensteined way of doing it BUT IT WORKS!
I did this on a windows 7 PC
The script will create .sh files based on a text based file list.
I used lopesoft file menu tools which the free version will do what is needed
I selected all my .bor folders, then right clicked, and chose FileMenu Tools --> Copy Name
Then create BOR.txt and pasted the contents (you'll have a list of folder names including .bor)
Next create a text file, then paste the codebox below and save it as .bat (named whatever you like)
##Create .sh files from .txt list of files/folders## @echo on setlocal for /f "tokens=*" %%a in (BOR.txt) do ( echo #!/bin/bash>"%%a.sh" echo "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ openbor "/home/pi/RetroPie/roms/ports/openbor/%%a">>"%%a.sh") pause
Now all you have to do is execute the batch file just created and it will create the .sh files.
The last thing I did was select all the newly created scripts, right clicked and chose FileMenu Tools ---> Advanced Renamer. Click the advanced options tab, then check REPLACE. Select FIND STRING, & enter .bor. You should now see on the right side the .bor is removed. Click rename, and your done.
EDIT: The batch file is adding a blank Line 3 in the script - you must delete that blank 3rd line or you will get an error! I Could not figure out how to make the batch file not create that 3rd line!
NOTE: I moved the batch file and BOR.txt to a folder on my pc to run. I was not able to run it within a shared retropie folder. As long as the batch file and BOR.txt are in the same folder everything should run fine.
GreenHawk - if it's just 1 game your after, and you don't want to go through all the trouble I can help you create it easily.
Cyperghost, thank you for your patience and taking the time to help. I'm glad I got this far and learning a lot along the way. Really feeling like a lot's getting accomplished.
For those here in the US Have a safe & happy 4th of July!
-
@darknior said in OpenBOR finally working fine on RETROPIE with ES:
Thanks a lot, i try it and it works very well now and faster than before :D
I have update the first post.
An other question please, your script is really excellent to launch .BOR games in a list with GITHUBt
Do you think we can mix it with my (and actual) system ?You're welcome!
Yes that would be possible with some detours. It is not possible to mix the launching commands of .bor-files with .sh-files
BOR is called through OpenBOR command setted in emulator.cfg
SH should be called by a bash-callLike when we launch an emulator, having a loading screen with write "PRESS A TO ..." and when we press it having your menu.
Like that if we only read XML on ES we can launch other BOR games with your menu ;)We have now access to the runcommand user menu. You see the grey launching box screen and press a button. Then you can access User Menu. From there you could call the script, too.
Or may I misunderstood you? What do you mean with XML on ES? Do you want a launcher for series? Like Mortal-Kombat series, Beat of Rage series? So the script just shows 5 games out of all?EDIT: I have also add your Windows UNBOR trick ;)
It's a good idée, and i share the software.Yes I didn't get the unix version running, because I'm working on FAT32 filesystem with external USB device. Moreover full grown PCs are much faster than our little credit-card-computer ;)
Imho the possibilities of lauching OpenBOR with 2 systems is enough
- Use the own system with nice artwork from ES directly (@darknior method)
- Use a menu like bash script with automated controller config from PORTS (@cyperghost method)
- Use bash files to call single games out from PORTS if you don't like menu access at all :)
As the script is on github feel free to change this to your needs.
Annother annotation: Could you also add the link from @BiZzAr721's working game lists. This is really helpfull and was the initial post for me to give OpenBOR a chance.
@BiZzAr721 4th of July party ;) In middle europa it will be a wam sunny day. 30 degrees and more with the tendency for thunderstorms in the late evening ;)
-
@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
Use the own system with nice artwork from ES directly (@darknior method)
Yes like i want :D
Use a menu like bash script with automated controller config from PORTS (@cyperghost method)
It's one thing that can be cool to add to my BOR launching system.
But like you write i don't launch .SH file, only RUNCOMMAND, i don't know what can be possible to do.
Creating a .SH file for each game to launch is really boring, it's why i create the .BOR launching system.Use bash files to call single games out from PORTS if you don't like menu access at all :)
No i don't have access to the runcommand user menu. I can't see the grey launching box screen and press a button. It's why launching a game is really really faster for OpenBOR.
I'd like to see it to call your script, automatically if possible.
When i write ES XML i want to explain that if i activate the ES option that only show games in XML, i will not see in ES the other games and i can't launch them. With you menu i can. -
@darknior said in OpenBOR finally working fine on RETROPIE with ES:
No i don't have access to the runcommand user menu. I can't see the grey launching box screen and press a button. It's why launching a game is really really faster for OpenBOR.
That's strange. I see the grey box always if I use my script. As the calls from ESs
es_systems.cfg
and my script are the same I don't understand why in your setup is no box. You can see the selection box right in this posting here
Annother question, do you see the grey box if you are using my script?When i write ES XML i want to explain that if i activate the ES option that only show games in XML, i will not see in ES the other games and i can't launch them. With you menu i can.
Okay understood! So you set "Parse XML gameslist only".
Nevertheless there is a solution.... a bit hacky but it might work well.We can use runcommand now. So we have access to
runcommand-onstart.sh
... we edit the file and add codeblock from below. We edit runcommand-onstart with:nano /opt/retropie/configs/all/runcommand-onstart.sh
- and add code from codebox below ;)
Before we add a new BOR-game "Access Selection Menu", so we typemkdir "/home/pi/RetroPie/roms/ports/openbor/Access Selection Menu.bor"
- edit: Much better solution - ES can't define between files and directories. My script does so this entry won't appear in my selection menu
- We add a new file "Access Selection Menu" with
touch "/home/pi/RetroPie/roms/ports/openbor/Access Selection Menu.bor"
### Access to Selection Menu ## # $1 = systemname > openbor # $3 = full path of ROM-file if [[ "$1" == "openbor" && "${3##*/}" == "Access Selection Menu.bor" ]]; then # pkill runcommand.sh # Maybe needed to prevent first runcommand from being messed up bash "/home/pi/RetroPie/roms/ports/OpenBOR - Beats of Rage Engine Selection.sh" fi ## ### Access to Selection Menu
Please consider to change pathes and filenames as you want. I didn't test the codeblock!
may the farce be with you ;) -
@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
Okay understood! So you set "Parse XML gameslist only".
Nevertheless there is a solution.... a bit hacky but it might work well.
We can use runcommand now. So we have access to runcommand-onstart.sh ... we edit the file and add codeblock from below. We edit runcommand-onstart with:
...Ok now i understand where to put your GIT .SH file lol
I have modified PATH with mine to feet my system and try it.
I works perfectly !!!- Now I see the grey box every time. Your script fix it.
- Now the configuration key is auto for all games, so excellent
- And the FAKE FILE.BOR i can launch your menu <3
But i found some bugs ... maybe i'm alone to have them :
- On your BOR GAMES menu i can't move with my Jostick ... only with Keyboard.
I have a 8bitdo joy, and i see you use Joy2key ... maybe i must configure something her but what ?
EDIT : Sorry only player one Joystick working, not the second player. On port one i have a Xbox One USB controller.
And if i understand fine you map it like a keybord ? It can really help for some other homebrew that not use joystick. - When i launch the original OpenBOR.sh file from ES Ports, if i understand fine it must also launch your menu because there is no specified FILE.BOR in %ROM% ... but it not launching it for me.
#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "openbor" ""
EDIT : But it's not a real problem because now i have made a Menu.cfg by copying an other one that works fine with my Joystick. You must only put resolution and filter to disable because it don't like them ;)
-
@darknior said in OpenBOR finally working fine on RETROPIE with ES:
- Now I see the grey box every time. Your script fix it.
- Now the configuration key is auto for all games, so excellent
- And the FAKE FILE.BOR i can launch your menu <3
Yes, that's like I expected. Excellent!
The joystick selection is fixed to 1st Joystick only if you want your wirless controller to work you can set iz to
js1
instead ofjs0
. I just ripped that part out from runcommand (script kiddie way). It's possible to fix that.
So not a bug ... just didn't take time to investigate.No you misunderstood the way it works - the original
OpenBOR.sh
is useless (imho). It's not able to launch my menu becasue it isn't feed with any argument. It just calls OpenBOR binary and will likely show you the OpenBOR intro graphics. I deleted it and use always the menu script. You can also rename my script toOpenBOR.sh
if you want.I hope it's more clear for you now ;)
But it's not a real problem because now i have made a Menu.cfg by copying an other one that works fine with my Joystick. You must only put resolution and filter to disable because it don't like them ;)
Can you explain this please? Can we change the OpenBOR intro screen with menu.cfg?
-
@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
The joystick selection is fixed to 1st Joystick only if you want your wirless controller to work you can set iz to js1 instead of js0. I just ripped that part out from runcommand (script kiddie way). It's possible to fix that.
So not a bug ... just didn't take time to investigate.Yes i have understand it's not a bug when i edit my post, i read your code in your script
"$ROOTDIR/supplementary/runcommand/joy2key.py" "/dev/input/js0" kcub1 kcuf1 kcuu1 kcud1 0x0a 0x09 &
But i don't know Joy2key, like you write we can replace js0 by js1 but we will lost the first controller. And like you map the gamepad to the keybord keys UP DWN LEFT RIGHT, i think we can't do it on the two gamepads.
Can you explain this please? Can we change the OpenBOR intro screen with menu.cfg?
When you lunch OpenBOR for the first time the problem is that the Gamepad is not working. You only have Keyboard.
When you are in game you can configure it, and after you can use Gamepad on games.
I understand the menu.cfg is the controller configuration for the OpenBOR games launcher menu.
I take a game CFG that working with my controller, replace it and it rocks now perfectly :D
But the MENU don't like the graphic options, like X2 640x480 and filters, it's why on this config you must disable them.NOW the last BIG BUG we must understand, is why OpenBOR create games save file at start, and when you are playing games Never save any progression :(
With this bug we can't finish any games to unlock new options ... -
But i don't know Joy2key, like you write we can replace js0 by js1 but we will lost the first controller. And like you map the gamepad to the keybord keys UP DWN LEFT RIGHT, i think we can't do it on the two gamepads.
I assume not. The joy2key works (afaik) only for terminal programms. And with a change of the joypad you won't loose a setted controller. Because the controller are added as device in unix filemenus.
I understand the menu.cfg is the controller configuration for the OpenBOR games launcher menu.
I take a game CFG that working with my controller, replace it and it rocks now perfectly :D
But the MENU don't like the graphic options, like X2 640x480 and filters, it's why on this config you must disable them.Thanks that worked best!
NOW the last BIG BUG we must understand, is why OpenBOR create games save file at start, and when you are playing games Never save any progression :( With this bug we can't finish any games to unlock new options ...
Yes it's a pitty even highscores are not saves. I think there is an error in the binary are an error how save files can be accessed again. So maybe you can fix it as you made it possible for commandline parameters ;)
But to recapitulate the whole thing of coding and posting.
Nicely done and a great step into further development for OpenBOR. -
@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
Yes it's a pitty even highscores are not saves. I think there is an error in the binary are an error how save files can be accessed again. So maybe you can fix it as you made it possible for commandline parameters ;)
Yes i will try if a friend can help me. I'm not a C expert... It's hard for me and it's why i wish a real C developer come her to help us with this :p
But to recapitulate the whole thing of coding and posting.
Nicely done and a great step into further development for OpenBOR.Yes it's really excellent :)
I have write all my stuff and your stuff in the first post ;)
Thanks a lot
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.