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%
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 -
@darknior Ah... yes saw you've updated the script. But you forget to reference to the script ;) - I think you set link to this.
https://retropie.org.uk/forum/topic/13784/openbor-finally-working-fine-on-retropie-with-es/64Then users will see the pictures and can get download location and the description how to autoconfigure joypads is also available ;) Thanks anyway.
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
Yes this would be fine ;)
It's really sad the development is stuck to an old engine. I think the Pie is powerfull enough even for newest addons. Maybe you revitalise the whole fork ;) -
@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
Then users will see the pictures and can get download location and the description how to autoconfigure joypads is also available ;) Thanks anyway.
It's ok i have updated and add your link :)
It's really sad the development is stuck to an old engine. I think the Pie is powerfull enough even for newest addons. Maybe you revitalise the whole fork ;)
Yes it's bad :(
I see the last OpenBOR comme on Switch last week !!! WTF !!! It's an console, no many people will use it ...
And on PI where we are many many users nobody port the last source code :(
Yes the PI3 is enough powerful to make it works perfectly, for sure :DI think the dream can come if one day some one have the idea to port OpenBOR engine to RETROARCH !!!
Like some other Homebrew, it's possible, and doing it make OpenBOR working fine on any system ;)
And maybe add some new feature with Savestate, Rewind, ... -
@cyperghost I went ahead and made the scripts for all the games I had listed as working (+ asterix & obliqe). The the last thing to do is make it use the default master.bor.cfg. I realized there is nothing on the individual scripts to call for it. Could you please help me (again) with on exactly what I have to pull from your script to add to the individual game scripts to keep full function? I'll adjust the script I hacked together with the amendments. I'll be out of town for a few days but I'll get right back into it on my return. Thank you!
Edit: extra points if it can be rolled into the emulators.cfg, kind of like dosbox does!
-
@bizzar721 Sorry I don't get you. You want to copy default configuration for every called script? Then insert just a copy command
[[ -f "destination.file" ]] || cp "default.file" "destinatation.file"
The
[[ ]]
is a testcommand if file already in place if not then copy it.@darknior
About the load/save feature ;)
It's all written here. Some lines later you will find entry// OMG! Fix that!
So I assume there are some errors in.
I think some file handling is broken. Maybe some more experienced coders can help here. -
It sounds exactly like what I'm looking for. I want it to work just like your script, which is to look for a cfg file. If none exist copy master.bor.cfg to the save folder and rename it to match the game name.
I'm thinking I could either add this to the emulator.cfg to be run before evey game loads, or must it be included in the start of each script, named with the full path & proper file name?
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.