OpenBOR finally working fine on RETROPIE with ES
-
@darknior
I pushed the BOR-Selection menu script to v1.01 - get it here
First:
You can use multiple joypads in the script now. Was easy to fix but it isn't perfectat all. The devs out here are much more advanced in coding.
Second:
I sort the BOR mods by ABC now. The version lower than 1.01 showed the entries by access data on disk - a piped sort command did the trick.
Third:
More things to come?@cyperghost Your run command user menu is awesome! I love that I can delete a config and replace it right from runcommand.
Glad the User Menu script is working. It makes things a bit easier for you, I assume. It still can be improved a lot.
About the controller default. I tried with a cheap SNES Pad but this sets DPAD (digital) to analog signals. So no way to get this working with a aftermarkt PS3. So I think it's up to the user to set his default settings ...
I've also improved the UserMenu script a bit.
- If no Game config is available but a master-file is found the game will be setted automatically and the game will start
- If no master-file is found but a Game config is available I ask the user to set a new master file, exit to runcommand
- If no master-file and no Game config is available there will be a small message that there is nothing to do, exit to runcommand
- If a master file and a Game config is setted then I ask first to delete the game config and after that I ask second to delete master file! Exit to runcommand
4.1 Be aware by this action. If you deleted both files then there is no more possibility given to config this games.
4.2 You may start annother addon (with working config) then the script asks for creating a new master file.
4.3 Then start again the game with no config and it will automatically be setted
4.4 More to come? Were my words clear?
With 2 statuses of 2 files I can create 4 selection possiblities just with on if...then clause (I'm lazy!) - I think this covers a lot of usecases. And I'm satisfied with the result ;)
-
@cyperghost People are really going to find this very usefull. Being able to createa master config will take out the need to have a pc on hand! Maybe you can even have a selectable options such as "save current setting as" "master.bor.cfg". This makes it very simple to change controllers, and carry settings over on the fly. Excellent work you've been doing. I appreciate your time!
-
@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
4.4 More to come? Were my words clear?
Yes it's clear :)
@bizzar721 said in OpenBOR finally working fine on RETROPIE with ES:
Maybe you can even have a selectable options such as "save current setting as" "master.bor.cfg".
I love this idea, no need to have a PC ... it will be a great option <3
-
I'v try your OpenBOR EXE and it works fine for me :)
I have updated Selection.sh to 1.01 and it works fine too.
But i must always update some path ... why don't you put the master.bor.cfg to OpenBOR/Saves ?
Like that we don't modify the original emulator directory, and all save files will be where we want because it's a link we can move like we want :)
For my part i move it to /home/pi/RetroPie/medias/openbor/savefile on my USB hard drive :)For your new file Setup GamePads.sh ?
# Place file to /opt/retropie/configs/all/runcommand-menu # Access with USER Menu in runcommand.... Press just a button during greybox is visible
I create the directory, copy the file, launch a game and discover this menu i never see before : User Menu with your script ... really excellent. I don't try it for now.
I think a good way for users can be to give users a selectable options such as "save current setting as" "master.bor.cfg" when they launch a game with a CFG file if no MASTER cfg file was found.This User Menu is cool, but we can call it from any emulator, it is not assigned to any emulator section ... maybe it can confuse some users ...
-
@darknior said in OpenBOR finally working fine on RETROPIE with ES:
This User Menu is cool, but we can call it from any emulator, it is not assigned to any emulator section ... maybe it can confuse some users ...
When I read over the script, I saw some commands that checked to make sure if OpenBOR is the emulator open, and if not I believe it will exit.
-
@bizzar721 Yes it's thru ... and it's perfect for this.
But i don't think people will think to go to this menu and use this script.I think the best way is to let the user launching a game first time, and generating a CFG file for it.
Later when he launch an other, write him to use this CFG as default one for all others.
Like that, no computer, no ssh, and easy to use. But maybe i'm wrong ...
But if we give users a default MASTER CFG file it will never append.
And maybe in this case, using a script choose what CFG file we want to use as default can be a good idea.
Difficult problem to solve ...Before the SAVE problem in the OpenBOR source code !
-
@darknior said in OpenBOR finally working fine on RETROPIE with ES:
why don't you put the master.bor.cfg to OpenBOR/Saves
Well ... I use the openBOR directory because it's on my USB device and I can access this with SAMBA service from any PC connected. So I just use a backup copy of the master file and set it to this directory. But you're right I should change it from INI section. If you don't like the path you can change it in INI-Section of each script by yourself.
I think a good way for users can be to give users a selectable options such as "save current setting as" "master.bor.cfg" when they launch a game with a CFG file if no MASTER cfg file was found.
I think this is a ONE time operation and therefore the script is doing it's job. It checks if there is a config file for a game is present and if there is no master.bor.cfg it ask the user to make a default setting out of the setted game.
This User Menu is cool, but we can call it from any emulator, it is not assigned to any emulator section ... maybe it can confuse some users ...
As @BiZzAr721 already mentioned... I check presence of emulator call. If it's not OpenBOR the user will see a small message and will be returned to runcommand. And I think it does not confuse the user if you name it right. If the script is called
OpenBOR - Joypad config.sh
then there aren't confused user. You never used the script so it is hard to see the working mechanism behind. Just try it out.But i don't think people will think to go to this menu and use this script.
Indeed the UserMenu is a bit unknowen but it is the best way to start over. Because it gives you all entrypoints and info you need. And you don't have to tinker with joypad-calls. So it's a very good solution @BuZz provided for all of us. Sadly this item seems to be a bit underrated but I've placed 4 or 5 scripts into this.
I think the best way is to let the user launching a game first time, and generating a CFG file for it.
You can do that with
runcommand-onstart-sh
with the same trick I showed you to call my bash menu. I use my Selection menu for this and this copies a new set of files from a master-file on first call. I don't use the OpenBOR as ES main system so I rely on a automated configuration done automatically done be the Selection Menu script.But if we give users a default MASTER CFG file it will never append.
No, that's just an the usage of the user. If a game config is available and a master-file, too - the UserMenu script will ask if it can delete the game-config (select Yes or No) and after that it asks to delete the master-config (also select Yes or No)
Just try the script and tell me your experience. Feel free to fork it and make it better. I'm not against a windows that ask the user for a pre setting. I wrote this script in less than two hours and I'm satisfied with that. And out of 4 possibles file states you have some choices.
I think the best way is to let the user launching a game first time, and generating a CFG file for it.
Yes that's always first step. The file must be generated first
Later when he launch an other, write him to use this CFG as default one for all others.
So the UserMenu script acts with the exception you have to launch the ready configurated game again. Out of this configurated file the master.bor.cfg is resided if you call it via the UserMenu script. I can live with that....
But play around with the script and you will see it's a very convenient way of setting up OpenBOR.
-
@cyperghost I have change the path for me and it works fine. Thanks
Now the 3 problems we must solve to play fine BOR games on PI are :
OpenBOR not saving Hi-score and game progression :(
The most important!- Some games are in 16/9 (full screen) and there are black bar, we can't use the full screen!
- Some games crash when they use script functions that this OpenBOR version don't understand.
For the last bug number 3;
When we launch a game, we can read on runcommand log this : OpenBoR v3.0 Build 3016, Compile Date: Jul 7 2018
And when we read the @rofl0r info we can also read this version can make works the games to v3.0 Build 3400
I also read newer mods should work as well as now unknown commands will just be ignored.Thanks again @BiZzAr721 i will try to use your work, but it's hard because there are many version of each games over the web ...
For exemple the games from the list collection completed games that still rock. Includes many lost games. is fixed for OpenBOR 3979 ... bigger than our 3400.
The near PC version i've found to try our games is the 3482. I think it can be faster to try games on PC before sending them on PI, but maybe we will not have the same result :(I have try an excellent mod, Bare Knuckle 6, that works for me @BiZzAr721
It works fine, and you can play it on PI. But some time it come back to ES without any reason. Some time after 2 minutes some times after 30 ...
I open the runcommand logs to try to understand and i found this :Level Loaded: 'data/levels/easy/1.1storeh.txt' Loading 'Axe2' from data/chars/Axel/Axe2.txt Property name 'antigrab' is not supported by function getentityproperty. Loading 'axe3' from data/chars/Axel/Axe3.txt Property name 'antigrab' is not supported by function getentityproperty. Loading 'axe5' from data/chars/Axel/Axe5.txt Loading 'Axe6' from data/chars/Axel/Axe6.txt Property name 'antigrab' is not supported by function getentityproperty. Loading 'Axe7' from data/chars/Axel/Axe7.txt Property name 'antigrab' is not supported by function getentityproperty. Loading 'axe8' from data/chars/Axel/Axe8.txt Property name 'antigrab' is not supported by function getentityproperty. Property name 'antigrab' is not supported by function getentityproperty. Property name 'antigrab' is not supported by function getentityproperty. Property name 'antigrab' is not supported by function getentityproperty. Function getentityproperty must have a string property name. Script function 'getentityproperty' returned an exception, check the manual for details. OpCode: 8 OpCode: 8 OpCode: 8 shutdown called from Script_Execute ********** An Error Occurred ********** * Shutting Down * There's an exception while executing script 'animationscript'. Release level data...........Level Unloading: 'data/levels/easy/1.1storeh.txt' Done. Done! Release graphics data........ Done! Release game data............
If i understand fine, it search for an unknown antigrab commands but not ignored it...
What's the best way ? Maybe other mods use it ...
Must we downgrade mods to remove the function, or add a fake function to OpenBOR ?
I don't have the skill to work on this :( -
@darknior said in OpenBOR finally working fine on RETROPIE with ES:
Now the 3 problems we must solve to play fine BOR games on PI are :
OpenBOR not saving Hi-score and game progression :( The most important!
Some games are in 16/9 (full screen) and there are black bar, we can't use the full screen!
Some games crash when they use script functions that this OpenBOR version don't understand.Out of my basic buisness ... we need a C coder here!
But I rearranged my scripts a bit. The UserMenu was rewritten to 100% and is now very powerfull and more self explaining. Need some tests to do. I think I got a method to get an ultimate config file by stripping the inputs just to basic commands. Then the user gots gamepad input and can change the inputs directly with a joypad.
Maybe we can together create a master-file that's to 90% compatible with controllers.My personal button layout is:
D-PAD for up/down/left/right then the 4 buttons O Attack 2 O Special O Attack 1 O Jump Shoulder Left and Right are Attack 3 and 4 Start is clear, isnt' it?
In my setup (for sliced config) file you will be able to download later the button layout is just for the 4 buttons. This is enough to setup a game with correct button layout.
O UP O ATTACK1 O START O DOWN
So we have basic movement but can rely most controllers will work kind this way (not all, but the chance is high to catch a button just by trying all buttons on the controller one by one) The D-PAD is a bastard. Some controllers are using a DPAD but is it setted as analog input. So movement is better setted on these buttons just for configuration purposes (!!!).
I think the ultimate fitting file for all controllers is impossible to find. May you and @BiZzAr721 can try the settings.
I will release the new script in the next few days.
-
@cyperghost I use the same button layout than you :)
When you release it i will try it with pleasure ;)
I have ALL the 8bitdo controllers lol
And some x360 and one USB xBox One. -
@darknior It's on my github account... I will make description and setup in annother topic later.
So far I've installed only the "sliced" controller config. It's a first aid setup to get controller working ;) Maybe you can report how it works with your bunch of controllers.
You need to delete the game or the master config before you can overwrite the settings via github, this can be done via the script. One hint ... change pathes again for KEYCONF_DIR and MASTERCONF_DIR as you like
-
@darknior I downloaded Bare Knuckle 6 v6.02 (Final version will not load) I am having the same problem as you with the force close. Shame, looks to be a good game.
@cyperghost I tried out your ULTIMATE joypad config. Spot on with the options. Did a lot of deleting/creating configs. After removing master.bor.cfg, I get a 404 error trying to d/l the default (I see it's not on your git, so that makes sense). When trying to d/l the sliced file it gives a box letting me know the file is 0 bytes.
I manually copied the sliced file, but unfortunately it didn't work too well. On a cheap SNES controller L1 was up, I believe Y /X were attack/start. (no down) That is still workable, but once you have to overwrite a temporary directional button your at a standstill. It could be done, but it will have to be well thought out to save the d-pad first, SAVE, then edit the rest. Unfortunately, I don't think it makes it simple enough for the average user.
It would be nice if the keyboard worked as a fail-safe. (At least ESCAPE worked) I didn't try it yet, but I wonder if mapping the keyboard as player 2 would allow menu selection.
Another option I can think of is having default controller profiles
Example
Select contoller config
Xbox 360 default mapping
PS3 default mapping
SNES clone (tata) default mapping
SNES clone (buffalo) default mapping
8BitDo default mapping
EDIT: Mapping a keyboard as player 2 will work as a failsafe
-
@bizzar721 said in OpenBOR finally working fine on RETROPIE with ES:
Another option I can think of is having default controller profiles
Example
Select contoller configXbox 360 default mapping
PS3 default mapping
SNES clone (tata) default mapping
SNES clone (buffalo) default mapping
8BitDo default mappingDone!
I openend a new topic with this
-
@darknior I'm very grateful to you for making this OpenBOR tutorial.
I just wish somebody would make video tutorial on how to do this. I'm still new to Retropie.
-
@cathycatheter Using the written tutorial is always going to be the most up to date. (that's where they learn the information to make the video)
I agree, a video can be VERY helpfull - especially if you don't know what your reading is what you're doing .
Eg: car repairs
Right now, openBor is advancing at such a rapid pace that even if there is a video, it's still best to use it as a guide line then reference back here for the most up to date links.
-
@darknior said in OpenBOR finally working fine on RETROPIE with ES:
@cyperghost I have change the path for me and it works fine. Thanks
Now the 3 problems we must solve to play fine BOR games on PI are :
OpenBOR not saving Hi-score and game progression :(
The most important!
about this problem...
in openbor.c i see that it save in the wrong path! I just try to make this patch, not tested yet....
Actually i was able to port on ARM also latest version of openbor, but it run very slow, old version seems better for our use!<code>
void saveGameFile(void) {
//char tmpname[256] = { "" };
//getSaveFileName(tmpname, ST_SAVE);char path[256] = { "" }; char tmpname[256] = { "" }; getBasePath(path, "Saves", 0); getSaveFileName(tmpname, ST_SAVE); strcat(path, tmpname); //save(tmpname, (char*) &savelevel, sizeof(s_savelevel) * MAX_DIFFICULTIES); save(path, (char*) &savelevel, sizeof(s_savelevel) * MAX_DIFFICULTIES);
}
void saveHighScoreFile(void) {
//char tmpname[256] = { "" };
//getSaveFileName(tmpname, ST_HISCORE);char path[256] = { "" }; char tmpname[256] = { "" }; getBasePath(path, "Saves", 0); getSaveFileName(tmpname, ST_HISCORE); strcat(path, tmpname); //save(tmpname, (char*) &savescore, sizeof(s_savescore)); save(path, (char*) &savescore, sizeof(s_savescore));
}
</code> -
@zanac i believe there is more todo. The load dialog seems to fail to find ANY files. About the speed ... Does unpacking the files speeds up OpenBOR? I do not believe in but just a try
-
Thanks @zanac to try to solve this big problem, for the moment i have so many work and i can't work on it :(
@zanac said in OpenBOR finally working fine on RETROPIE with ES:
Actually i was able to port on ARM also latest version of openbor, but it run very slow, old version seems better for our use!
WOAW excellent, create a git please, maybe there are some trick you take from the old version to use in the new one :)
The last version is very important for us to play all the last GREAT mods, and because they finally add a great feature :
Now when your game pad shut down, OpenBOR can find it again if you turn it on again :)
So excellent because with Bluetooth gamepads it is a recurrent problem ...@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
Does unpacking the files speeds up OpenBOR?
I think it can help, it's why we must unpack them on the old version too ....
The PI3 is powerful to do it, but maybe the code is not really optimized for ARM ? -
@darknior
An italian friend that is hacking like me on Pandora Jamma Box [*] has made a bad patch for enable saving! Keep the source patched here:
https://drive.google.com/open?id=1ktoFqLj2Do6RHyeEdqffKsQOunb7c2Wz[*] Actually we are not using RPI but a different chipset but that has ARMHF, anyway it's not difficult to make compile latest version of openbor, but it is very slow trust me! :( What kind of problems did you have compiling? I think that is much better use this very old version but at least it is fast!
-
Here you can find a version that seems better, it use pak...
https://github.com/rofl0r/openbor/releases/tag/compatible-official-3400%2B
For compile it just remove Werror from Makefile (i remove also BUILD_OPENGL and BUILD_LOADGL on pandora actually), it seems support also save game!
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.