Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons
-
@darknior
I have just tested your config and found no real problems playing pengo using atari800 as the emulator.
Just to be sure you could try my config files:atari5200_mouse_st.cfg :
Atari 800 Emulator, Version 3.1.0 ROM_OS_A_NTSC= ROM_OS_A_PAL=/home/pi/RetroPie/BIOS/ATARIOSA.ROM ROM_OS_B_NTSC= ROM_OS_AA00R10= ROM_OS_AA00R11= ROM_OS_BB00R1= ROM_OS_BB01R2=/home/pi/RetroPie/BIOS/ATARIXL.ROM ROM_OS_BB02R3= ROM_OS_BB02R3V4= ROM_OS_CC01R4= ROM_OS_BB01R3= ROM_OS_BB01R4= ROM_OS_BB01R59= ROM_OS_BB01R59A= ROM_5200=/home/pi/RetroPie/BIOS/5200.ROM ROM_5200_A= ROM_BASIC_A= ROM_BASIC_B= ROM_BASIC_C=/home/pi/RetroPie/BIOS/ATARIBAS.ROM ROM_XEGAME= ROM_400/800_CUSTOM=/home/pi/RetroPie/BIOS/ATARIOSB.ROM ROM_XL/XE_CUSTOM= ROM_5200_CUSTOM= ROM_BASIC_CUSTOM= ROM_XEGAME_CUSTOM= OS_400/800_VERSION=AUTO OS_XL/XE_VERSION=AUTO OS_5200_VERSION=AUTO BASIC_VERSION=AUTO XEGS_GAME_VERSION=AUTO ATARI_FILES_DIR=/home/pi/RetroPie/BIOS H1_DIR= H2_DIR= H3_DIR= H4_DIR= HD_READ_ONLY=1 PRINT_COMMAND=lpr %s SCREEN_REFRESH_RATIO=1 MACHINE_TYPE=Atari 5200 RAM_SIZE=16 DEFAULT_TV_MODE=PAL MOSAIC_RAM_NUM_BANKS=0 AXLON_RAM_NUM_BANKS=0 ENABLE_MAPRAM=1 DISABLE_BASIC=1 ENABLE_SIO_PATCH=1 ENABLE_H_PATCH=1 ENABLE_P_PATCH=1 ENABLE_NEW_POKEY=1 STEREO_POKEY=0 SPEAKER_SOUND=1 BUILTIN_BASIC=0 KEYBOARD_LEDS=0 F_KEYS=0 BUILTIN_GAME=0 KEYBOARD_DETACHED=0 1200XL_JUMPER=0 CFG_SAVE_ON_EXIT=0 MIO_ROM= BLACK_BOX_ROM= XLD_D_ROM= XLD_V_ROM= PROTO80_ROM= CARTRIDGE_FILENAME=/home/pi/RetroPie/roms/atari5200/pengo.bin CARTRIDGE_TYPE=4 CARTRIDGE_PIGGYBACK_FILENAME= CARTRIDGE_PIGGYBACK_TYPE=0 CARTRIDGE_AUTOREBOOT=1 CASSETTE_FILENAME= CASSETTE_LOADED=0 CASSETTE_WRITE_PROTECT=0 RTIME=1 XEP80_CHARSET= AF80_ROM= AF80_CHARSET= COLOURS_NTSC_SATURATION=0 COLOURS_NTSC_CONTRAST=0 COLOURS_NTSC_BRIGHTNESS=0 COLOURS_NTSC_GAMMA=0.3 COLOURS_NTSC_HUE=0 COLOURS_NTSC_GTIA_DELAY=26.8 COLOURS_NTSC_EXTERNAL_PALETTE= COLOURS_NTSC_EXTERNAL_PALETTE_LOADED=0 COLOURS_NTSC_ADJUST_EXTERNAL_PALETTE=0 COLOURS_PAL_SATURATION=0 COLOURS_PAL_CONTRAST=0 COLOURS_PAL_BRIGHTNESS=0 COLOURS_PAL_GAMMA=0.3 COLOURS_PAL_HUE=0 COLOURS_PAL_GTIA_DELAY=23.2 COLOURS_PAL_EXTERNAL_PALETTE= COLOURS_PAL_EXTERNAL_PALETTE_LOADED=0 COLOURS_PAL_ADJUST_EXTERNAL_PALETTE=0 ARTIFACT_NTSC=NONE ARTIFACT_PAL=NONE ARTIFACT_NTSC_MODE=0 SCREEN_SHOW_SPEED=0 SCREEN_SHOW_IO_ACTIVITY=1 SCREEN_SHOW_IO_COUNTER=0 SCREEN_SHOW_1200XL_LEDS=1 FILTER_NTSC_SHARPNESS=-0.5 FILTER_NTSC_RESOLUTION=-0.1 FILTER_NTSC_ARTIFACTS=0 FILTER_NTSC_FRINGING=0 FILTER_NTSC_BLEED=0 FILTER_NTSC_BURST_PHASE=0 VIDEOMODE_WINDOW_WIDTH=336 VIDEOMODE_WINDOW_HEIGHT=240 VIDEOMODE_FULLSCREEN_WIDTH=800 VIDEOMODE_FULLSCREEN_HEIGHT=600 VIDEOMODE_WINDOWED=0 VIDEOMODE_HORIZONTAL_AREA=TV VIDEOMODE_VERTICAL_AREA=TV VIDEOMODE_HORIZONTAL_SHIFT=0 VIDEOMODE_VERTICAL_SHIFT=0 VIDEOMODE_STRETCH=INTEGRAL VIDEOMODE_FIT=BOTH VIDEOMODE_IMAGE_ASPECT=SQUARE-PIXELS VIDEOMODE_ROTATE90=0 VIDEOMODE_HOST_ASPECT_RATIO=4:3 VIDEOMODE_80_COLUMN=1 SOUND_ENABLED=1 SOUND_RATE=44100 SOUND_BITS=16 SOUND_FRAG_FRAMES=0 SOUND_LATENCY=20 SCANLINES_PERCENTAGE=5 INTERPOLATE_SCANLINES=1 VIDEO_VSYNC=0 VIDEO_ACCEL=0 PIXEL_FORMAT=BGR16 BILINEAR_FILTERING=0 OPENGL_PBO=1 VIDEO_BPP=32 SDL_JOY_0_ENABLED=1 SDL_JOY_0_LEFT=276 SDL_JOY_0_RIGHT=275 SDL_JOY_0_UP=273 SDL_JOY_0_DOWN=274 SDL_JOY_0_TRIGGER=306 SDL_JOY_1_ENABLED=0 SDL_JOY_1_LEFT=97 SDL_JOY_1_RIGHT=100 SDL_JOY_1_UP=119 SDL_JOY_1_DOWN=115 SDL_JOY_1_TRIGGER=306 SDL_JOY_0_SELECT=8 SDL_JOY_0_START=9 SDL_JOY_0_TRIGGER1=1 SDL_JOY_0_TRIGGER2=2 SDL_JOY_0_ASTERISK=4 SDL_JOY_0_OPTION=5 SDL_JOY_0_HASH=0 SDL_JOY_0_SECOND_AXIS=2 SDL_JOY_0_SECOND_AXIS_ENABLED=0 SDL_JOY_0_DIGIT_1=0 SDL_JOY_0_DIGIT_2=6 SDL_JOY_0_DIGIT_3=7 SDL_JOY_0_DIGIT_4=10 SDL_JOY_0_DIGIT_5=11 SDL_JOY_0_DIGIT_6=12 SDL_JOY_0_DIGIT_7=13 SDL_JOY_0_DIGIT_8=14 SDL_JOY_0_DIGIT_9=15 SDL_JOY_0_DIGIT_0=16 SDL_JOY_0_A52_PAUSE=17 SDL_JOY_0_A52_RESET=18 SDL_JOY_0_INDEX=0 SDL_JOY_1_INDEX=1 JOY_SPEED_ADJUST=2 TRUE_ANALOG_JOYSTICK=0
used command in emulators.cfg :
atari5200_mouse_st = "echo %ROM: -\ % > /dev/null;/opt/retropie/emulators/atari800/bin/atari800 -config /opt/retropie/configs/atari5200/atari5200_mouse_st.cfg -mouse st -cart-type 4 -cart %ROM%"
the reason kat5200 uses
/etc/kat5200/kat5200.db3
is because is first searches the$HOME\kat5200
directory, when no config is found there it uses/etc/kat5200
as fallback directory.I am testing kat5200 but am getting a buffer overflow for some reason when saving the config using the @zerojay installer instead of my own, i'm not sure if it's platform related (my pi's sd-card died on me so i am testing this on a x64 pc) , OS related (using Debian server with Openbox for wdm) or something during build time in zerojay's installer.
Unless you have a real reason to switch emulators you may want to stick with Atari800, otherwise my advice for now would be to uninstall kat5200 using the retropie menu and install the emulator again using my install script, this has worked for me.
-
Can't say I've seen this buffer overflow. Can you give me steps to repro it?
-
@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 ?
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.