Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons
-
@zerojay It happens at first launch when the configuration wizard is presented and you click on "ok".
Best i have come up with so far is that it is caused by permissions to the database file or some dependency.
When i launch the emulator via commandline with sudo prefixed all is well, when i do the same without the sudo there is a buffer overflow as follows:*** buffer overflow detected ***: kat5200 terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f35483877e5] /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f354842911c] /lib/x86_64-linux-gnu/libc.so.6(+0x117120)[0x7f3548427120] /lib/x86_64-linux-gnu/libc.so.6(__strcat_chk+0x5d)[0x7f354842642d] kat5200[0x435ae0] kat5200[0x42eb87] kat5200[0x42f53b] kat5200[0x430ead] kat5200[0x43100f] kat5200[0x4314c3] kat5200[0x4318ad] kat5200[0x4a401c] /usr/lib/x86_64-linux-gnu/libguichan-0.8.1.so.1(_ZN3gcn6Widget21distributeActionEventEv+0x5b)[0x7f354979788b] /usr/lib/x86_64-linux-gnu/libguichan-0.8.1.so.1(_ZN3gcn6Button13mouseReleasedERNS_10MouseEventE+0x51)[0x7f3549797be1] /usr/lib/x86_64-linux-gnu/libguichan-0.8.1.so.1(_ZN3gcn3Gui20distributeMouseEventEPNS_6WidgetEiiiibb+0x382)[0x7f3549791902] /usr/lib/x86_64-linux-gnu/libguichan-0.8.1.so.1(_ZN3gcn3Gui19handleMouseReleasedERKNS_10MouseInputE+0xe6)[0x7f35497903f6] /usr/lib/x86_64-linux-gnu/libguichan-0.8.1.so.1(_ZN3gcn3Gui16handleMouseInputEv+0xdf)[0x7f3549790f9f] kat5200[0x466be0] kat5200[0x4522e3] kat5200[0x44fda4] kat5200(main+0x1d1)[0x40e101] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f3548330830] kat5200[0x40e949]
So far i have noticed that when i move the kat5200.db3 file from the /etc/kat5200 folder to the /home/pi/.kat5200 folder it will work as well.
-
Pretty sure it doesn't default to putting it in /etc/kat5200 because that would not make any sense to do so because normal users have no privileges there by default (nor should they!)
Taking another look at my script is making me think I did make a mistake though.
EDIT: No, everything looks good and functions properly for me from a fresh install.
function configure_kat5200() {
mkRomDir "atari5200"mkUserDir "$home/.kat5200" moveConfigDir "$home/.kat5200" "$md_conf_root/kat5200" addEmulator 1 "kat5200" "atari5200" "$md_inst/bin/kat5200 %ROM%" addSystem "atari5200"
}
-
@zerojay This emulator first checks if kat5200.db3 is present in $home/.kat5200, if there is no kat5200.db3 file present there it will default back to /etc/kat5200/kat5200.db3.
could you please check on your system if the kat5200.db3 file is indeed present in $home/.kat5200 after install as on both my test systems it is not created during install with your script ?
-
@future-child The script does not create kat5200.db3. When you run kat5200 for the first time, it creates the kat5200.db3 in $home/.kat5200/. It should have no ability to create /etc/kat5200/kat5200.db3 as that directory would be owned by root, not pi and therefore your crashes. This is expected behavior.
I'll wipe out both directories and reinstall and see what it does when I get home tonight.
-
@zerojay
I just ran your script after removing both /etc/kat5200/kat5200.db3 and $home/pi/.kat5200/kat5200.db3 and in my case only /etc/kat5200/kat5200.db3 gets created.afaik /etc/kat5200/kat5200.db3 always gets created during "make install", at least on all installations i have performed so far.
In my script i included "rm /etc/atari5200/atari5200.db3" after which a wget is done for a pre-configured config file (which has the bios path's setup) for this reason.
-
@future-child Alrighty, I'll make that change myself then.
-
@zerojay thanks
-
I have copy the /etc/kat5200/kat5200.db3 file to /home/pi/.kat5200/kat5200.db3 manually, give it the good PI privileges.
It scanning again 25 min ... and finally i can exit the emulator.
I launch a game with it, RETURN and configure BIOS, GAMEPAD (x360) and USER interface key.
Now it really working fine :)- Mario Bros : detect game and working fine.
- Pengo : working fine with same settings
- Ms Pacman : WF
- Popeye : WF
- Star Wars : WF
So excellent :)
Now we have a perfect A800 emulator, and a perfect A5200 emu too :)- To exit i must use XBOX button, but if we can found the solution to use SELECT + START it will be better.
- An other problem when we configure JOYSTICK it use real KEY ID and not RETROARCH generic ID like Amy Berry do now too.
If some one other use your settings, or if you have many game pad at home, it is a real problem for direct play :(
I don't know if it can be fixed by shell script, but i think the better solution was if some one know how to modify emulator source code like Amy Berry do.
-
^_^ Still trying to follow this... if a perfect solution is finally worked out, would somebody be willing to write up a simple step-by-step for me and other users? I've been very busy with work and home life stuff and haven't had much time to sit and play around with figuring new stuff out. I'm eager to A800 and A5200 working better than it is, and this sounds like a good solution.
-
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
rm /etc/atari5200/atari5200.db3
The change is in now.
-
@darknior START + SELECT are already hardcoded (controller ID-0, button id's 8 & 9) for emulator exit, this only works if the joystick device is actually being opened (at least one button assigned a function to it).
The KEY-ID is indeed an issue, only way i see around this is to create a update to the database prior to starting the emulator based off retroarch config. This is for the time being beyond me as i still have to delve deeper into the database layout and learn to interact with it, the emulator does seem to allow for sql updates via commandline.@hansolo77 it's all still experimental but working, eventually i expect the quirks will be gotten rid off and doc's will arrive as well.
@zerojay it works but I'd suggest instead of removing /etc/kat5200/atari5200.db3 to move the file over to $home/pi/.kat5200/ and change ownership to user pi. This because not all tables get recreated and result in strange errors.
Also, as a sidenote, would it not be an idea to create a update section in the menu so the scriptmodules can be updated from within retropie ? -
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
START + SELECT are already hardcoded (controller ID-0, button id's 8 & 9) for emulator exit, this only works if the joystick device is actually being opened (at least one button assigned a function to it).
Do you speak about the A800 emu ? I'm ok for it and it's cool :)
On the A5200 emu it don't work. Or it don't because i change the pad mapping ?The KEY-ID is indeed an issue, only way i see around this is to create a update to the database prior to starting the emulator based off retroarch config. This is for the time being beyond me as i still have to delve deeper into the database layout and learn to interact with it, the emulator does seem to allow for sql updates via commandline.
Yes it is a problem because you hard code for x360 pad but now i have more 8bitDo controllers, there are really better and perfect for old games. And each of them use different ID :(
The only solution is to update the two emulators source code.
Have you the source code ?https://github.com/gabomdq/SDL_GameControllerDB
This library permit to an emulator to works fine with all the controllers we want. like Retroarch do <3
And the Joystick database is easier to update. PPSSPP use this library i think because i have add it my x360 Apator Receiver ID
If we add this options to these two emulators there are already perfect. Working fine 100%.
Maybe they they also miss Borders like on Retroarch :pit works but I'd suggest instead of removing /etc/kat5200/atari5200.db3 to move the file over to $home/pi/.kat5200/ and change ownership to user pi. This because not all tables get recreated and result in strange errors.
It's what i do, and i think it's the best solution.
Also, as a sidenote, would it not be an idea to create a update section in the menu so the scriptmodules can be updated from within retropie ?
For sure, for some emulators or games in retropie Setup it can be really cool to alone update settings and not install again all the emulator :(
Here it can help, when we already install it, to update alone the BDD and other settings file. -
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
@zerojay it works but I'd suggest instead of removing /etc/kat5200/atari5200.db3 to move the file over to $home/pi/.kat5200/ and change ownership to user pi. This because not all tables get recreated and result in strange errors.
Also, as a sidenote, would it not be an idea to create a update section in the menu so the scriptmodules can be updated from within retropie ?I'll do that, but that also sounds like an upstream bug that should be reported.
Done: https://github.com/zerojay/RetroPie-Extra/commit/7328c1d00514cdeb33678f8e233f8d662d8f2bb0 -
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
Also, as a sidenote, would it not be an idea to create a update section in the menu so the scriptmodules can be updated from within retropie ?
-
@darknior said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
START + SELECT are already hardcoded (controller ID-0, button id's 8 & 9) for emulator exit, this only works if the joystick device is actually being opened (at least one button assigned a function to it).
Do you speak about the A800 emu ? I'm ok for it and it's cool :)
On the A5200 emu it don't work. Or it don't because i change the pad mapping ?It's hardcoded in both Atari800 and Kat5200, altough kat5200 only works for controller id-0 and when this controller has been assigned a function to it (unless it's assigned as input in the configuration it all keypresses are ignored).
The KEY-ID is indeed an issue, only way i see around this is to create a update to the database prior to starting the emulator based off retroarch config. This is for the time being beyond me as i still have to delve deeper into the database layout and learn to interact with it, the emulator does seem to allow for sql updates via commandline.
Yes it is a problem because you hard code for x360 pad but now i have more 8bitDo controllers, there are really better and perfect for old games. And each of them use different ID :(
The only solution is to update the two emulators source code.
Have you the source code ?The source code for Atari800 is located here.
The source code for Kat5200 is located here.
The source code for Kat5200 does get adjusted by my script as follows:sed -i -e '230d' /tmp/src/interface/ui.c sed -i '1221 a\ if ((SDL_JoystickGetButton(g_pc_joy[0].joy_ptr,8) == SDL_PRESSED) && (SDL_JoystickGetButton(g_pc_joy[0].joy_ptr,9) == SDL_PRESSED))
https://github.com/gabomdq/SDL_GameControllerDB
This library permit to an emulator to works fine with all the controllers we want. like Retroarch do <3
And the Joystick database is easier to update. PPSSPP use this library i think because i have add it my x360 Apator Receiver ID
If we add this options to these two emulators there are already perfect. Working fine 100%.
Maybe they they also miss Borders like on Retroarch :pBoth Atari800 and Kat5200 use SDL for joystick support, i'm not sure if changing libraries is feasable, but you're welcome to try.
Edit: I see it's not a replacement for SDL but a sort of lookup table, i'll look in to it.it works but I'd suggest instead of removing /etc/kat5200/atari5200.db3 to move the file over to $home/pi/.kat5200/ and change ownership to user pi. This because not all tables get recreated and result in strange errors.
It's what i do, and i think it's the best solution.
Also, as a sidenote, would it not be an idea to create a update section in the menu so the scriptmodules can be updated from within retropie ?
For sure, for some emulators or games in retropie Setup it can be really cool to alone update settings and not install again all the emulator :(
Here it can help, when we already install it, to update alone the BDD and other settings file. -
@zerojay said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
@zerojay it works but I'd suggest instead of removing /etc/kat5200/atari5200.db3 to move the file over to $home/pi/.kat5200/ and change ownership to user pi. This because not all tables get recreated and result in strange errors.
Also, as a sidenote, would it not be an idea to create a update section in the menu so the scriptmodules can be updated from within retropie ?I'll do that, but that also sounds like an upstream bug that should be reported.
Done: https://github.com/zerojay/RetroPie-Extra/commit/7328c1d00514cdeb33678f8e233f8d662d8f2bb0Thanks, for so far i have tested i found no other problems.
I do believe the author intended for the database to be moved as it comes pre configured with a lot of data (settings based on rom-crc, input keycodes etc), so i think a bug report is not needed but will add it to the list of questions i am preparing. -
WOAW lr-a800 is out :D
I have try some A800 games and A5200 and they works fine :)
With all the cool Retroach feature ;)
But for the moment i have a strange bug, the image has like a white filter. Not really beautiful :( -
@darknior Where is it ?
Edit: the white filter over your image sounds like the gamma is set too high.
Edit2: found it... but what makes this one (asside it being built as a single binary libretro core) differ from the one already available in scriptmodules/emulators ? -
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
Edit: the white filter over your image sounds like the gamma is set too high.
But where do you change it ? i don't found the option :(
Edit2: found it... but what makes this one (asside it being built as a single binary libretro core) differ from the one already available in scriptmodules/emulators ?
I don't know or understand what about you speak ?
I don't have any A800/5200 emulator in retroarch before.
But is it work fine with good gamma it let us use Boder, Joypad RA Mapping, Savestate, and maybe Fast and rewind ... i don't take time to try it many more ... -
@darknior said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
@future-child said in Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons:
Edit: the white filter over your image sounds like the gamma is set too high.
But where do you change it ? i don't found the option :(
In the config file is a entry to adjust gamma
COLOURS_PAL_GAMMA=0.3
andCOLOURS_NTSC_GAMMA=0.3
.
See this link.Edit2: found it... but what makes this one (asside it being built as a single binary libretro core) differ from the one already available in scriptmodules/emulators ?
I don't know or understand what about you speak ?
I don't have any A800/5200 emulator in retroarch before.It was available as a retropie optional install (see above link).
But is it work fine with good gamma it let us use Boder, Joypad RA Mapping, Savestate, and maybe Fast and rewind ... i don't take time to try it many more ...
This is new then, the normal Atari800 did not have (all of) this.
I'll do an install just for the fun of it and see what's what.
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.