OpenBOR finally working fine on RETROPIE with ES
-
@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!
-
@zanac Thanks a lot for this fix, i wish some one will add it to my git with issues system.
For the moment i can't do it myself :(I understand the last version is slow, but it is strange because it's the same engine. Nothing more than new script functions.
And the last mods use them ... and are fantastic for sure !!!
I wish one day it will be possible to use the last version on pi :D -
-
I think that new version is slow for SDL2.0 usage.... I compiled the new one using:
make BUILD_PANDORA=1 -j 3I don't know if it's slow also on rpi, as i said i use allwinner chipset that for rendering use a mali-mp400, maybe the video card of rpi work better!
Just try to compile by yourself using that command... and of course install sdl-2.0-dev headers: trust me it compile fine and run! -
@zanac Thank you. Can you share the binary? I think this would speedup progress.
AFAIK the GPU of the Pie is not very powerful ... Sorry I can not test yet
For speeding up SDL2
https://choccyhobnob.com/raspberry-pi/sdl2-2-0-8-on-raspberry-pi/
-
here you are two binary, but i compiled with cortex-a9 (for allwinner), if it don't run i must recompile for generic arm... let me know! The first one is without GL, the second with GL, try both!
https://drive.google.com/open?id=1w1g2twe294LnhZHue69xGOliRs4-R_zM
https://drive.google.com/open?id=1FuJ7PJNQ3fCnk4Rx_tqdWG2uwpMsxno_@cyperghost said in OpenBOR finally working fine on RETROPIE with ES:
@zanac Thank you. Can you share the binary? I think this would speedup progress.
-
@zanac Thank you
Here are some SDL2 prebuilds with stripped down dependencies. This should speedup
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.