Pi4 MAME2010 crashing on Tab menu > Inputs
-
@pjft said in Pi4 MAME2010 crashing on Tab menu > Inputs:
make platform=rpi4 PTR64=1
make platform=rpi4 PTR64=0 ill look at the code when i get time not really touched this core apart from the input fixes
-
make platform=rpi4 should be working its identical to rp3 apart from the optimization flags. If your sure the file didnt go to Makefile.1 with the wget do a make platform=rpi4 PTR64=0 as a last try
this is what im getting when compiling it on my pi with make platform=rpi4 with the makefile
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL -DDISABLE_MIDI -DGIT_VERSION="" b430fd1"" -D__LIBRETRO__ -fomit-frame-pointer -ffast-math -fsigned-char -march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard -fPIC -pipe -O3 -fno-strict-aliasing -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strings -Wno-sign-compare -Wno-conversion -I./src/osd/retro/libretro-common/include -I./src/mame -Iobj/retro/mame/layout -I./src/emu -Iobj/retro/emu -Iobj/retro/emu/layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/expat -I./src/lib/util -I./src/lib/libjpeg -fno-delete-null-pointer-checks -x c++ -std=gnu++98 -Woverloaded-virtual -DARM_ENABLED -DDISABLE_SH2DRC -c src/osd/retro/retrosync.c -o obj/retro/osd/retro/retrosync.o
ill just compile the bin and add it to my git for you to test if your ok with that
ok here is the bin if you could test it (had to zip it github has a 50 meg limit)
wget https://github.com/grant2258/mame2010-libretro/raw/input/pi4.zip
code for this branch is here if it doesnt work i give up for now :)
-
@grant2258 said in Pi4 MAME2010 crashing on Tab menu > Inputs:
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL -DDISABLE_MIDI -DGIT_VERSION="" b430fd1"" -D__LIBRETRO__ -fomit-frame-pointer -ffast-math -fsigned-char -march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard -fPIC -pipe -O3 -fno-strict-aliasing -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strings -Wno-sign-compare -Wno-conversion -I./src/osd/retro/libretro-common/include -I./src/mame -Iobj/retro/mame/layout -I./src/emu -Iobj/retro/emu -Iobj/retro/emu/layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/expat -I./src/lib/util -I./src/lib/libjpeg -fno-delete-null-pointer-checks -x c++ -std=gnu++98 -Woverloaded-virtual -DARM_ENABLED -DDISABLE_SH2DRC -c src/osd/retro/retrosync.c -o obj/retro/osd/retro/retrosync.o
Correct, that's exactly what I'm getting on my end as well with DPTR=0 now:
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL -DDISABLE_MIDI -DGIT_VERSION=\"" 1fd4de5"\" -D__LIBRETRO__ -fomit-frame-pointer -ffast-math -fsigned-char -march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard -fPIC -pipe -O3 -fno-strict-aliasing -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strings -Wno-sign-compare -Wno-conversion -I./src/osd/retro/libretro-common/include -I./src/mame -Iobj/retro/mame/layout -I./src/emu -Iobj/retro/emu -Iobj/retro/emu/layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/expat -I./src/lib/util -I./src/lib/libjpeg -fno-delete-null-pointer-checks -x c++ -std=gnu++98 -Woverloaded-virtual -DARM_ENABLED -DDISABLE_SH2DRC -c src/osd/retro/retrosync.c -o obj/retro/osd/retro/retrosync.o
The only difference is the DGIT_VERSION - my commit is different, though, perhaps I'm in a newer state to yours, or it's my cherry-picking of the fixes.
It still crashes the same way, but I'll test the binary, sure! Unsure if it will actually work, as we're probably linking to different libraries on the Pi3 and the Pi4, but I suppose that'll become clear in a moment :)
We can agree to give up after this - that's more remote troubleshooting from you than one can ask for without dedicated hardware :D
Thank you!
EDIT: @grant2258 the good news is that the module ran :) The unfortunate news is that, once again, it crashed with the same message. I can confirm that I'm running the different binaries as in the RA menu it shows your commit on your binary (b430fd1), and it shows my commit on mine (1fd4de5).
But the key thing - as convoluted as it might have been - is that the original issue I had with the buttons is solved thanks to your guidance through that original PR! Thank you so much.
-
yea it opens mame2010 right up haveing controls your very welcome any issues or something i forgot let mw know. ps the pi 3 bin might run properly on the pi4
-
@grant2258 All is good - thank you so much!
-
just an update there is issues even though in runs fine on my linux machine
libretro INFO] [MAME 2010] path=/media/grant/empty/Download/Emulation/roms/arcade/mame2003-plus/chasehq.zip gamePath=/media/grant/empty/Download/Emulation/roms/arcade/mame2003-plus gameName=chasehq [libretro INFO] [MAME 2010] chasehq "Chase H.Q. (World)" rot=0 [libretro INFO] [MAME 2010] Creating frontend... game=chasehq [libretro INFO] [MAME 2010] Invoking MAME2010 CLI frontend. Parameter count: 17 [libretro INFO] [MAME 2010] Parameter list: chasehq src/emu/mconfig.c:128:61: runtime error: member call on null pointer of type 'const struct device_config' src/emu/mconfig.c:128:61: runtime error: member access within null pointer of type 'const struct device_config' ASAN:DEADLYSIGNAL ================================================================= ==4673==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f51c5653c8b bp 0x7ffce85b6770 sp 0x7ffce85b65a0 T0) ==4673==The signal is caused by a READ memory access. ==4673==Hint: address points to the zero page. #0 0x7f51c5653c8a in machine_config::detokenize(machine_config_token const*, device_config const*) src/emu/mconfig.c:128 #1 0x7f51c5653504 in machine_config::machine_config(machine_config_token const*) src/emu/mconfig.c:76 #2 0x7f51c55d6144 in image_add_device_options(_core_options*, game_driver const*) src/emu/emuopts.c:241 #3 0x7f51c55d6ab5 in image_driver_name_callback src/emu/emuopts.c:293 #4 0x7f51c6745d11 in options_parse_command_line(_core_options*, int, char**, int) src/lib/util/options.c:488 #5 0x7f51c547f301 in cli_execute(int, char**, _options_entry const*) src/emu/clifront.c:131 #6 0x7f51c3056911 in executeGame(char*) src/osd/retro/retromain.c:1470 #7 0x7f51c3056b15 in mmain src/osd/retro/retromain.c:1489 #8 0x7f51c304d425 in retro_load_game src/osd/retro/retromain.c:293 #9 0x5630eca3d75e in core_load_game /home/grant/RetroArch/retroarch.c:29430 #10 0x5630eca5a3e8 in content_file_load tasks/task_content.c:1060 #11 0x5630eca5c469 in content_file_init tasks/task_content.c:1246 #12 0x5630eca64efc in content_init tasks/task_content.c:2587 #13 0x5630ec99fc53 in event_init_content /home/grant/RetroArch/retroarch.c:6111 #14 0x5630ec9a0a55 in command_event_init_core /home/grant/RetroArch/retroarch.c:6338 #15 0x5630ec9a5f22 in command_event /home/grant/RetroArch/retroarch.c:7571 #16 0x5630eca2a88a in retroarch_main_init /home/grant/RetroArch/retroarch.c:26452 #17 0x5630eca57e46 in content_load tasks/task_content.c:610 #18 0x5630eca5df45 in command_event_cmd_exec tasks/task_content.c:1483 #19 0x5630eca5f60f in task_push_load_content_from_playlist_from_menu tasks/task_content.c:1706 #20 0x5630ed32353b in default_action_ok_load_content_from_playlist_from_menu menu/cbs/menu_cbs_ok.c:1902 #21 0x5630ed3253e5 in action_ok_playlist_entry_collection menu/cbs/menu_cbs_ok.c:2194 #22 0x5630ed23c1ec in generic_menu_entry_action menu/menu_driver.c:476 #23 0x5630ed21077e in ozone_menu_entry_action menu/drivers/ozone/ozone.c:3766 #24 0x5630ed241f13 in menu_entry_action menu/menu_driver.c:1183 #25 0x5630ed23b5ad in generic_menu_iterate menu/menu_driver.c:406 #26 0x5630ed249478 in menu_driver_iterate menu/menu_driver.c:2413 #27 0x5630eca353dc in runloop_check_state /home/grant/RetroArch/retroarch.c:28328 #28 0x5630eca39b1f in runloop_iterate /home/grant/RetroArch/retroarch.c:28874 #29 0x5630ec9aa9c9 in rarch_main /home/grant/RetroArch/retroarch.c:8678 #30 0x5630ecd64550 in main ui/drivers/qt/ui_qt_application.cpp:150 #31 0x7f520f485b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96) #32 0x5630ec978cd9 in _start (/usr/local/bin/retroarch+0x358fcd9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV src/emu/mconfig.c:128 in machine_config::detokenize(machine_config_token const*, device_config const*) ==4673==ABORTING
-
Interesting - you get this log when accessing the tab menu?
The offending line is
tag = owner->subtag(tempstring, TOKEN_GET_STRING(tokens));
and seems to be that the object
owner
is null. But that object reads as a member of thegame _driver
object. Does that also happen for other games?Regardless of whether it happens when you open the menu, maybe that is the root cause of this crash down the line.
By the way, Chase HQ - one of my favorites since the ZX Spectrum.
-
well with asan the emulation doesnt start it drops out happens during the initial executeGame(char*) src/osd/retro/retromain.c:1470 happend during the parsing of the command line might be worth checking that string thats sending. Keep in mind this is the effect not necessarily the cause.
-
ok well there was two issues going on here my plus zips where corrupted on my ole hard drive so go them fixed need to look into it not handling zip failures so well at some point. Took a while to trace it! He is the info you will need this is for input this game. it still runs on linux btw but there is issues there.
c/emu/mconfig.c:128:61: runtime error: member call on null pointer of type 'const struct device_config' pal16l8b-b52-124.ic180 NO GOOD DUMP KNOWN WARNING: the game might not run correctly. src/emu/memory.c:3154:127: runtime error: signed integer overflow: 2122219134 * 4096 cannot be represented in type 'int' src/emu/uimenu.c:1736:16: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ src/emu/uimenu.c:1737:20: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ src/emu/uimenu.c:1738:16: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ src/emu/uimenu.c:1739:19: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 20 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1740:22: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 20 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1741:17: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 20 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1742:17: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 20 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1743:17: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 20 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1747:16: runtime error: member access within misaligned address 0x63100395882d for type 'struct input_item_data', which requires 8 byte alignment 0x63100395882d: note: pointer points here 65 6e 75 00 00 00 00 00 00 00 00 00 40 1c 0f 00 40 61 00 00 00 00 00 00 20 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1913:43: runtime error: member access within misaligned address 0x631003958ddd for type 'struct input_item_data', which requires 8 byte alignment 0x631003958ddd: note: pointer points here 00 00 00 00 6d 8d 95 03 10 63 00 00 40 26 0d 00 40 61 00 00 00 00 00 00 4c 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1919:24: runtime error: store to misaligned address 0x631003958e4d for type 'struct input_item_data *', which requires 8 byte alignment 0x631003958e4d: note: pointer points here 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ src/emu/uimenu.c:1918:56: runtime error: member access within misaligned address 0x631003958ddd for type 'struct input_item_data', which requires 8 byte alignment 0x631003958ddd: note: pointer points here 00 00 00 00 6d 8d 95 03 10 63 00 00 40 26 0d 00 40 61 00 00 00 00 00 00 4c 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1884:7: runtime error: load of misaligned address 0x631003958e55 for type 'const struct input_item_data *', which requires 8 byte alignment 0x631003958e55: note: pointer points here 10 63 00 00 6d 8d 95 03 10 63 00 00 fd 8c 95 03 10 63 00 00 8d 8c 95 03 10 63 00 00 1d 8c 95 03 ^ src/emu/uimenu.c:1884:16: runtime error: member access within misaligned address 0x631003958d6d for type 'const struct input_item_data', which requires 8 byte alignment 0x631003958d6d: note: pointer points here 00 00 00 00 fd 8c 95 03 10 63 00 00 40 28 0d 00 40 61 00 00 00 00 00 00 4b 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1884:29: runtime error: load of misaligned address 0x631003958e5d for type 'const struct input_item_data *', which requires 8 byte alignment 0x631003958e5d: note: pointer points here 10 63 00 00 fd 8c 95 03 10 63 00 00 8d 8c 95 03 10 63 00 00 1d 8c 95 03 10 63 00 00 ad 8b 95 03 ^ src/emu/uimenu.c:1884:38: runtime error: member access within misaligned address 0x631003958cfd for type 'const struct input_item_data', which requires 8 byte alignment 0x631003958cfd: note: pointer points here 00 00 00 00 8d 8c 95 03 10 63 00 00 40 2a 0d 00 40 61 00 00 02 00 00 00 4b 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1886:7: runtime error: load of misaligned address 0x631003958e4d for type 'const struct input_item_data *', which requires 8 byte alignment 0x631003958e4d: note: pointer points here 00 00 00 00 dd 8d 95 03 10 63 00 00 6d 8d 95 03 10 63 00 00 fd 8c 95 03 10 63 00 00 8d 8c 95 03 ^ src/emu/uimenu.c:1886:16: runtime error: member access within misaligned address 0x631003958ddd for type 'const struct input_item_data', which requires 8 byte alignment 0x631003958ddd: note: pointer points here 00 00 00 00 6d 8d 95 03 10 63 00 00 40 26 0d 00 40 61 00 00 00 00 00 00 4c 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1886:29: runtime error: load of misaligned address 0x631003958e55 for type 'const struct input_item_data *', which requires 8 byte alignment 0x631003958e55: note: pointer points here 10 63 00 00 6d 8d 95 03 10 63 00 00 fd 8c 95 03 10 63 00 00 8d 8c 95 03 10 63 00 00 1d 8c 95 03 ^ src/emu/uimenu.c:1886:38: runtime error: member access within misaligned address 0x631003958d6d for type 'const struct input_item_data', which requires 8 byte alignment 0x631003958d6d: note: pointer points here 00 00 00 00 fd 8c 95 03 10 63 00 00 40 28 0d 00 40 61 00 00 00 00 00 00 4b 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1930:8: runtime error: load of misaligned address 0x631003958e4d for type 'struct input_item_data *', which requires 8 byte alignment 0x631003958e4d: note: pointer points here 00 00 00 00 cd 8a 95 03 10 63 00 00 2d 88 95 03 10 63 00 00 9d 88 95 03 10 63 00 00 0d 89 95 03 ^ src/emu/uimenu.c:1932:14: runtime error: member access within misaligned address 0x631003958acd for type 'struct input_item_data', which requires 8 byte alignment 0x631003958acd: note: pointer points here 00 00 00 00 5d 8a 95 03 10 63 00 00 40 0a 0f 00 40 61 00 00 00 00 00 00 1c 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1932:32: runtime error: member access within misaligned address 0x631003958acd for type 'struct input_item_data', which requires 8 byte alignment 0x631003958acd: note: pointer points here 00 00 00 00 5d 8a 95 03 10 63 00 00 40 0a 0f 00 40 61 00 00 00 00 00 00 1c 00 01 01 03 00 00 80 ^ src/emu/uimenu.c:1935:38: runtime error: member access within misaligned address 0x631003958acd for type 'struct input_item_data', which requires 8 byte alignment 0x631003958acd: note: pointer points here 00 00 00 00 5d 8a 95 03 10 63 00 00 40 0a 0f 00 40 61 00 00 00 00 00 00 1c 00 01 01 03 00 00 80 ^ src/emu/inputseq.c:416:88: runtime error: member access within misaligned address 0x631003958ae1 for type 'const struct input_seq', which requires 4 byte alignment 0x631003958ae1: note: pointer points here 00 00 00 00 1c 00 01 01 03 00 00 80 86 00 01 04 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 ^ src/emu/inputseq.c:418:14: runtime error: member access within misaligned address 0x631003958ae1 for type 'const struct input_seq', which requires 4 byte alignment 0x631003958ae1: note: pointer points here 00 00 00 00 1c 00 01 01 03 00 00 80 86 00 01 04 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 ^ src/emu/uimenu.c:1945:26: runtime error: member access within misaligned address 0x631003958acd for type 'struct input_item_data', which requires 8 byte alignment 0x631003958acd: note: pointer points here 00 00 00 00 5d 8a 95 03 10 63 00 00 40 0a 0f 00 40 61 00 00 00 00 00 00 1c 00 01 01 03 00 00 80 ^ src/emu/inputseq.h:171:25: runtime error: member access within misaligned address 0x631003958ae1 for type 'const struct input_seq', which requires 4 byte alignment 0x631003958ae1: note: pointer points here 00 00 00 00 1c 00 01 01 03 00 00 80 86 00 01 04 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 ^ src/emu/inputseq.h:173:25: runtime error: member access within misaligned address 0x631003958ae1 for type 'const struct input_seq', which requires 4 byte alignment 0x631003958ae1: note: pointer points here 00 00 00 00 1c 00 01 01 03 00 00 80 86 00 01 04 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 ^ ^[[A^[[A^CAverage speed: 99.99% (25 seconds)
-
@grant2258 Thanks - that's quite a bit to digest. I'll try to look into it in the coming days and report back if I end up tracking anything down.
-
ok have a soluton for you that should work until you do any patch work you want to do.
add
#pragma pack(1)
to src/emu/uimenu.c after the includes your input settings should work again on the pi4
pi4 bin compiled for you to test.
wget https://github.com/grant2258/mame2010-libretro/blob/input/pi4_mame.zip?raw=true
please let me know if the pi 4 improves games much over the pi 3 would love to know this
-
@grant2258 Thanks for the binary - actually I just compiled it myself before the binary and it does work!
I am technically intrigued by the "why" of it - or even more, how you got to that solution - but the fact is that yes, it does solve the crash :) I take it it was a deduction based on the "member access within misaligned address" error messages and even "signed integer overflow: 2122219134 * 4096 cannot be represented in type 'int'" suggesting that there's some potentially less zealous pointer handling going on there or what? Just for my own education, really.
The improvement of the games is always a relative thing to do - I imagine you're asking about MAME2010 specifically. In my case, there were a few games I had been running the PSX versions for that right now I can run on MAME and that for the most part perform well - meaning, with minor frame drops, if any.
The key games, as you can infer from my command line, were CPZN1 and CPZN2 ones - specifically Street Fighter EX, Street Fighter EX2, Rival Schools and Strider 2. Strider 2 runs 100%, no frameskip. Same with the Street Fighters. Rival Schools runs slower - I believe it also uses a different resolution, and that's probably the case. This one with frameskip can hover around high-50s for the most part, but on very intense animations will drop to 40s which is underwhelming. I can also run Chaos Heat at 50-55fps with minor frameskip if needed (the game is not properly emulated though). Any game in specific you'd have in mind?
@dankcushions has been experimenting with the actual MAME emulator and his feedback is quite positive - seeming to suggest that the performance is "almost there", but he can elaborate on the tests and games he's been looking into more closely.
From my end, I'm fairly happy with the results so far - honestly, Dreamcast/NAOMI/Atomiswave emulation on the Pi4 is awesome and brings a whole set of arcade games to the Pi. Not only speed, but the actual rendering is improved - games that would render with obnoxious black areas or missing polygons are rendered properly on the Pi4. Flycast and Redream do a great job.
Saturn is a bit hit or miss - emulation is a bit preliminary so far, lr-yabasanshiro is a good start compared to the performance of lr-yabause but it's still on the 50fps range in many cases. We've failed to compile the actual non-libretro yabasanshiro core so far, but I'm hoping that when we get there we can perhaps get to Saturn running nicely on the Pi4.
PSP emulation (especially on PPSSPP, the non-LR core) works well as well, though it's not really my cup of tea for an arcade setup. I have an old PSP lying around for those games. Still, it's good to use it for OutRun Coast to Coast, as I don't imagine being able to play OutRun 2 on the Pi4 in any other way.
So yeah, I've been migrating my Pi3B setup to the Pi4 now that the RetroPie team has done a tremendous job in getting it in a solid state for it - even with the current caveats of in-progress drivers, and some emulators having some quirks.
I don't quite yet know how to dive into this, but I'll take a peek during the coming days and see if anything strikes me as obviously suspicious - my development setup is purely Sublime Text editor, SSH, and testing on the Pi these days as I haven't done any serious development for over a decade. :)
Thanks so much!
-
you dont have to worry about all these errors sometimes emulators to thing intentionally that will flag errors. As for the structure pack it just takes any extra padding away the compiler might add. Some platforms are more forgiving that others when it comes to things like this. I only thinking mame the the gpu wont really come into it. Im mostly play 80s and 90s games i would imagine most of them will run fine. Ill tidy some things up at somepoint to add the mapping back in.
-
@grant2258
I am having great success with mame 2010 on pi4 but also have the problem if I goto mame menu input general, user interface it crashes back to es.I'm not sure how to fix from your post above can you please give more detail.
All I want to do is change the tab menu which is currently set to right thumbstick
To pressing both left and right thumbstick
To prevent accidental menu accessI'm using from binary install
Thanks
Sim -
Im actually in the process of updating a few things for the input so all buttons are map-able and work like they should just bear with me until i finish up and ill post instructions how to compile it. The input system as is lacking in a very bad way.
-
@Simrose different problem specifically - to prevent that from happening, go to the RetroArch menu, Controls menu, Player 1 and change the assignment from R3 to "Enter UI Menu" or something.
If you'd want to fix it, you'd need to compile from source, and between checking the code out and compiling it you'd need to edit the
src/emu/uimenu.c
so that after the includes you'd include#pragma pack(1)
.Alternatively you can overwrite your MAME binary with the one @grant2258 provided:
wget https://github.com/grant2258/mame2010-libretro/blob/input/pi4_mame.zip?raw=true
Download it and overwrite the file on
/opt/retropie/libretrocores/lr-mame2010
if I recall correctly. -
@grant2258 One remark for a conversation we had earlier in the thread:
@grant2258 said in Pi4 MAME2010 crashing on Tab menu > Inputs:
In plain english you would need to set up down left right to dpad even in current mame.
I'm not sure that is true, at least with the emulators that get installed by default (and perhaps - or in spite of - inputs being somewhat broken) the up/down/left/right are mapped to P1/P2 JOY UP/DOWN/LEFT/RIGHT, which end up being mapped by default to the RetroPie buttons as well. Once again, not sure if because - or in spite - of the inputs being broken. LR-MAME 2003, 2010, 2015, 2016 work out of the box as far as I remember.
The fact that we now change the inputs to P1/P2 JOY HAT UP/DOWN/LEFT/RIGHT makes it so that they are not recognized by default. That's the main change that I wanted to highlight that may or may not be useful for the code you're looking at right now.
Thanks!
-
@pjft load mame current stand alone you can see you have to map the digital hat as per default. I can look into adding it to input defautls like i did with mame2003-plus at some point. The truth is the core lacked any analog controls at all for mame so only digital was used.
-
@grant2258 true for standalone, correct. I was referring to the libretro cores, that was my remark. And you're right, there was no analog support.
-
ill try come up with something suitable my good man as i use a barcade myself so i will get round to it just want to hook everything up first. Most libretro cores dont support analog at all.
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.