Pi4 MAME2010 crashing on Tab menu > Inputs
-
Hi all,
Just probing if it's just me or anyone else experiencing this.
I get a consistent crash on lr-mame2010 when opening the Tab menu, and then trying to navigate to the Inputs configuration (general or inputs for this game), and then opening one of the pages where you actually edit the buttons.
I'm on the beta image from late March, but this worked pretty well on the Pi3B, so if anyone has any feedback with similar experiences or not I'd love to hear from you just so I know whether I'm alone in this.
Thanks.
-
It's been already reported - but it looks like an upstream bug: https://github.com/libretro/mame2010-libretro/issues/121.
-
Cool - that solves it then :)
Thanks!
-
i actually put a fix in for the input and closed it for personal reasons with libretro. The pull request is here test it out if you like.
-
@grant2258 Interesting - tell me more. Were you trying to - or do you know if it addresses this?
-
info is here https://github.com/libretro/mame2010-libretro/issues/119 youll need to expand my comments lol
-
@grant2258 Ah - didn't see that it was you, since the comments were minimized. :)
I'll try it out - thanks!
-
@grant2258 So, I've been trying it out and I do confirm that the 6 buttons do work - well done!
I have a few quirks that I'm trying to figure out, first checking if it's a config thing on my end, and if not, where on the code might it be.
In summary: in my current setup, at least, the P1 PS3 controller left analog controls both the P1 and P2 movement. Furthermore, on the DragonRise joysticks, the actual left/right/up/down controls from RetroArch don't control the directions the in-game directions. However, if I map those joystick directions to a button (1, 2, 3), when moving the joystick in that direction it will act as if the button was pressed, so it seems that MAME is detecting those inputs, but isn't set up to translate them to the proper in-game controls.
Specifically:
- DPad controls, mapped to left/right/up/down on RetroArch don't do anything right now;
- Mapping anything in RetroArch to "Joystick Up/Down/Left/Right" doesn't do anything either;
- Any of the acceptable buttons are detected by RetroArch.
So it seems to me that - other than the Analog Joystick for Player 1 controlling both P1 and P2's movement - the challenge with Joystick Up/Down/Left/Right on the RetroPad is the key thing.
But I'm still trying to figure out if it's a settings thing on my end or not. This has at least pointed me in a positive direction - thank you!
If you have any suggestions or pointers about specific parts of the code that might be causing this, feel free to bring them up. :)
EDIT: the analog for P1 controlling all players was a simple copy and paste mistake that kept the index. I'm not commenting on the lr-mame2010 repository, but I fixed it on my end. Now I'm chasing down the up/down/left/right mappings.
-
well for mame there is only one control used for up down left right. Ill have a look at the code at some point in my barcade. For a start i would clear the current mame2010 cfg dir. In plain english you would need to set up down left right to dpad even in current mame.
-
@grant2258 Indeed. In this PR I need to go to the tab menu and manually set up U/D/L/R to
<mameconfig version="10"> <system name="sfex2"> <input> <port tag="P1" type="P1_JOYSTICK_UP" mask="1" defvalue="1"> <newseq type="standard"> JOYCODE_1_HAT1UP </newseq> </port> <port tag="P1" type="P1_JOYSTICK_DOWN" mask="2" defvalue="2"> <newseq type="standard"> JOYCODE_1_HAT1DOWN </newseq> </port> <port tag="P1" type="P1_JOYSTICK_LEFT" mask="4" defvalue="4"> <newseq type="standard"> JOYCODE_1_HAT1LEFT </newseq> </port> <port tag="P1" type="P1_JOYSTICK_RIGHT" mask="8" defvalue="8"> <newseq type="standard"> JOYCODE_1_HAT1RIGHT </newseq> </port> <port tag="P2" type="P2_JOYSTICK_UP" mask="1" defvalue="1"> <newseq type="standard"> JOYCODE_2_HAT1UP </newseq> </port> <port tag="P2" type="P2_JOYSTICK_DOWN" mask="2" defvalue="2"> <newseq type="standard"> JOYCODE_2_HAT1DOWN </newseq> </port> <port tag="P2" type="P2_JOYSTICK_LEFT" mask="4" defvalue="4"> <newseq type="standard"> JOYCODE_2_HAT1LEFT </newseq> </port> <port tag="P2" type="P2_JOYSTICK_RIGHT" mask="8" defvalue="8"> <newseq type="standard"> JOYCODE_2_HAT1RIGHT </newseq> </port> </input> </system> </mameconfig>
and then it works... better. Still digging into the niggles - the main issue is that accessing the TAB menu on the Pi4 crashes mame2010 these days :)
-
@pjft is it just the pi 4 doing this ? again i would repeat the advice i gave before delete all the contents of cfg dir corruption in here can cause crashes if that doesnt help ill try on a pi 3 and 4 bit linux and see if i can find any issues.
-
@grant2258 The Pi3B doesn't crash - that's how I got it to generate these mappings. Same code base, compiled from source on both accounts.
It seems to work well now - I had been messing with the indexes on the code on the Pi4 myself and that messed up the control labels and that was breaking the mappings I had gotten from the Pi3B.
In the end I don't know if there are any key differences from your commit, but I did make some changes on the labels and on reading the axis for P2-P4 that I imagine were copy&paste mistakes, but I can't test on my end.
See my commit here on my fork:
https://github.com/pjft/mame2010-libretro/commit/a4674570a157fc50fdd30e16e347df23a1361d2fThanks for leading me to a good solution here!
-
yea that was copy and paste errors i just forked off to my github and fixed the axis reads. Is teh pi 4 still crashing with the tab menu if your clear the cfg dir?
-
@grant2258 Yes. Removed the cfg folder.
/opt/retropie/supplementary/runcommand/runcommand.sh: line 1255: 2693 Bus error /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2010-controls/mame2010_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg "/home/pi/RetroPie/roms/arcade/sfex2.zip" --appendconfig /dev/shm/retroarch.cfg
Pi3B works fine.
As Mitu mentioned, it seems others have experienced it:
-
@pjft said in Pi4 MAME2010 crashing on Tab menu > Inputs:
/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2010-controls/mame2010_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg "/home/pi/RetroPie/roms/arcade/sfex2.zip"
just a quick question can you close emulationstation and run this command
/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2010-controls/mame2010_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg "/home/pi/RetroPie/roms/arcade/sfex2.zip"
do you get any output from this?
another big one is what flags are you compiling this with on the pi4 ?
ok updated the makefile for pi 4
wget https://github.com/grant2258/mame2010-libretro/raw/b430fd1300f8c1d38c3a3bab45ad81fa1a09b460/Makefile
make platform=pri4 -j4
be sure to copy this over the original Makefile
execute with
opt/retropie/emulators/retroarch/bin/retroarch -L ./mame2010_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg "/home/pi/RetroPie/roms/arcade/sfex2.zip"
-
@grant2258 said in Pi4 MAME2010 crashing on Tab menu > Inputs:
/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2010-controls/mame2010_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg "/home/pi/RetroPie/roms/arcade/sfex2.zip"
I do - I get the following more:
Unhandled fault: alignment exception (0xa21) at <memory address>
--- which I just noticed is exactly what the other user reported on their GitHub, but since I hadn't caught that message so far I didn't connect the dots.
I'm using the standard flags for the RetroPie module:
https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/libretrocores/lr-mame2010.sh
I don't know the compilation flags by heart, but from a sample compilation line in the logs, I get these:
-- building for platform "unix"
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL -DNATIVE_DRC=drcbe_x86_be_interface -DDISABLE_MIDI -DGIT_VERSION=\"" 1fd4de5"\" -D__LIBRETRO__ -fsigned-char -finline -fno-common -fno-builtin -fweb -frename-registers -falign-functions=16 -fsingle-precision-constant -D__LIBRETRO__ -fstrict-aliasing -fno-merge-constants -DALIGN_INTS -DALIGN_SHORTS -ffast-math -fPIC -pipe -O3 -fno-strict-aliasing -march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard -O2 -pipe -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 -c src/osd/retro/retromain.c -o obj/retro/osd/retro/retromain.o
Anything on your mind or catching your eye?
-
yea can you compile from the makefile i provided above
ok updated the makefile for pi 4
wget https://github.com/grant2258/mame2010-libretro/raw/b430fd1300f8c1d38c3a3bab45ad81fa1a09b460/Makefile
make platform=rpi4 -j4
be sure to copy this over the original Makefile
execute with
opt/retropie/emulators/retroarch/bin/retroarch -L ./mame2010_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg "/home/pi/RetroPie/roms/arcade/sfex2.zip"
ARM_ENABLED = 1 X86_SH2DRC = 0 FORCE_DRC_C_BACKEND = 1
-DNATIVE_DRC=drcbe_x86_be_interface is wrong for arm please compile test and let @mitu know if it fixes it these parameters can be added to the script module.
ps i dont have a pi4 so cant test it :(
-
@grant2258 thanks. I'll test tomorrow as it's late here and tomorrow is a work day, but I'll let you know how it goes and update the scriptmodule if/as needed. Thanks for the guidance here!
-
well its just a guess at this point we defo need to force these settings for arm though worth a try. Stay safe going out there!
like i said i dont have a pi 4 and have no idea what kernel its on.
if the first make command didnt give you any joy try.
make platform=rpi4 PTR64=1
I really would need a pi4 and use asan to see whats going on beyond that
-
@grant2258 said in Pi4 MAME2010 crashing on Tab menu > Inputs:
make platform=rpi4 PTR64=1
Morning!
Thanks for the pointers - no pun intended. :)
The first make command resulted in the same exceptions.
The second one didn't compile with a nice error message:
src/emu/validity.c:33:57: error: size of array 'your_ptr64_flag_is_wrong' is negative
:D
It isn't a tremendous problem right now, as most things do get edited in the RetroArch menu, but indeed can be problematic if someone wants to get into more detailed controls customization.
To be clear, all the menus and sub-menus work other than any that list inputs to be redefined, so it's probably something finicky around filling out the list of available inputs and descriptors.
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.