Emulationstation issue - idle game selection change
-
Hi everyone,
I'm experiencing an issue which is better described in the below video:
So if I leave ES in idle with a selected rom, it would play the video snap in loop as expected but at some time it would randomly select another game. After some time another game again in an infinite loop. It has also happened that ES has frozen during the loop.
Issue persists even if quick platform change is turned off. If tuned on it would select another rom of another system as shown in the video, otherwise it would select randomly other roms of the same system.My setup below:
Pi 4b 4GB
Powered via Jamma - new PSU
Using a GPIO Jamma converter called JammaPi. These are the drivers and specs: https://github.com/vince87/JammaPi/blob/master/install.sh
Retropie 4.8.6 (1fd3bf5)
Linux raspberrypi 6.1.0-rpi7-rpi-v7l #1 SMP Raspbian 1:6.1.63-1+rpt1 (2023-11-24) armv7l GNU/Linux
Built from the light bookworm image 32bit and then installed latest retropie via command line. Installed on top of it the JammaPi drivers.
All images/snaps have been sourced via Skraper on Windows.ES LOG
Jan 19 23:51:06 lvl2: EmulationStation - v2.11.2rp, built Jan 17 2024 - 22:48:37 Jan 19 23:51:06 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamenames.xml"... Jan 19 23:51:06 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamebioses.xml"... Jan 19 23:51:06 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamedevices.xml"... Jan 19 23:51:06 lvl2: Creating window... Jan 19 23:51:08 lvl2: Created window successfully. Jan 19 23:51:08 lvl2: GL vendor: Broadcom Jan 19 23:51:08 lvl2: GL renderer: V3D 4.2 Jan 19 23:51:08 lvl2: GL version: 3.1 Mesa 23.2.1-1~bpo12+rpt2 Jan 19 23:51:08 lvl2: Checking available OpenGL extensions... Jan 19 23:51:08 lvl2: ARB_texture_non_power_of_two: ok Jan 19 23:51:08 lvl2: Loading system config file /etc/emulationstation/es_systems.cfg... Jan 19 23:51:08 lvl1: System "amstradcpc" has no games! Ignoring it. Jan 19 23:51:08 lvl2: Parsing XML file "/home/pi/.emulationstation/gamelists/arcade/gamelist.xml"... Jan 19 23:51:08 lvl1: System "atari2600" has no games! Ignoring it. Jan 19 23:51:08 lvl1: System "atari5200" has no games! Ignoring it. Jan 19 23:51:08 lvl1: System "atari7800" has no games! Ignoring it. Jan 19 23:51:08 lvl1: System "atari800" has no games! Ignoring it. Jan 19 23:51:08 lvl1: System "atarilynx" has no games! Ignoring it. Jan 19 23:51:08 lvl1: System "channelf" has no games! Ignoring it. Jan 19 23:51:08 lvl1: System "coleco" has no games! Ignoring it. Jan 19 23:51:08 lvl2: Parsing XML file "/home/pi/.emulationstation/gamelists/dreamcast/gamelist.xml"... Jan 19 23:51:09 lvl1: System "fba" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "fds" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "gamegear" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "gb" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "gba" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "gbc" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "mame-libretro" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "mastersystem" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "megadrive" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "msx" has no games! Ignoring it. Jan 19 23:51:09 lvl1: System "n64" has no games! Ignoring it. Jan 19 23:51:09 lvl2: Parsing XML file "/home/pi/RetroPie/roms/neogeo/gamelist.xml"... Jan 19 23:51:09 lvl1: System "nes" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "ngp" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "ngpc" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "pcengine" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "psx" has no games! Ignoring it. Jan 19 23:51:10 lvl2: Parsing XML file "/home/pi/.emulationstation/gamelists/retropie/gamelist.xml"... Jan 19 23:51:10 lvl1: System "sega32x" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "segacd" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "sg-1000" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "snes" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "vectrex" has no games! Ignoring it. Jan 19 23:51:10 lvl1: System "zxspectrum" has no games! Ignoring it. Jan 19 23:51:11 lvl2: Added known joystick 'JoyPi Joystick 0' (instance ID: 0, device index: 0) Jan 19 23:51:11 lvl2: Added unconfigured joystick 'JoyPi Joystick 1' (GUID: 1800b8704a6f795069204a6f79737400, instance ID: 1, device index: 1). Jan 19 23:51:12 lvl2: Added known joystick 'JoyPi Joystick 0' (instance ID: 0, device index: 0) Jan 19 23:51:12 lvl2: Added unconfigured joystick 'JoyPi Joystick 1' (GUID: 1800b8704a6f795069204a6f79737400, instance ID: 1, device index: 1).
Can you please help?
Many thanks
-
Videos crashing ES can be something Bookworm related - as it is right now, support for Bookworm is still in beta. Is there any error in the system log during the crash ?
Randomly selecting other game may be an issue with the input drivers - run
emulationstation
withemulationstation --debug
and reproduce the issue, then post the log on pastebin.com. -
I've tested for few hours and did not experience any crash so that must have been a temporary issue.
Below ES debug log
ES debug logThe loop would continue until the screensaver kicks in which pauses all video playback (according to my settings). I've not moved my joystick unless for the original game select and to select other roms with video snaps as if a rom without video snap is randomly selected by the issue it would interrupt the loop.
Many thanks
-
@ilpappa said in Emulationstation issue - idle game selection change:
Below ES debug log
ES debug logThe log shows ES getting inputs from the gamepad (JoyPi Joystick 0) and - when the input is mapped - moving the cursor accordingly. Doesn't seem like a bug in EmulationStation if the gamepad is generating events.
EDIT:
If you usejstest
to test the gamepad, outside of EmulationStation, can you see the same inputs from the gamepad, that is without actually pressing any buttons/joysticks/d-pad/etc. ? -
Tried both jstest and evtest but command is not recognized. Anything specific I should do?
EDIT: command works, my bad with a typo. Testing and will return results soon.
P.s. my Jamma PSU GROUND was bridged by me with FG otherwise I would have a small ground loop intereference on my CRT monitor...do you think that could be the issue? my old "stable" build never had similar issues tho.
Many thanks
-
Done some testing. Instead of going straight to test the bookworm build, I rebuilt a new config based on the latest RetroPie image (buster). Nothing has been done except for updating to latest Buster update and same for Retropie. Finally installed the above JammaPi drivers.
Strangely enough, the behavior is the same. Games are randomly changed. Below ES debug:
My last action was at Jan 21 02:03:38 lvl3: selecting konami88.zip. What happened from there onwards was not input but affected by the issue.
That's very wierd. Two things come to my mind:
- the Ground/FG bridge on the PSU
- the setup is slightly undervolted on 5v (4.90 if I recall). Will try to go slightly above 5v
EDIT:
- removed Ground/FG bridge, but issue persist
- adjusted 5v to 5.03v and 12v to 12.40v, but issue persist as well
ALL builds are affected. Did not notice the problem on what I considered my "stable" as I normally go straight to play games and never leave video snaps more than few secs.
EDIT 2: Log says that I've jumped from konami88 to abcopj with only
Jan 21 02:03:47 lvl3: UIModeController::logInput( JoyPi Joystick 1 ):Button 5, isMappedTo= x, , value=1 Jan 21 02:03:47 lvl3: UIModeController::logInput( JoyPi Joystick 0 ):Axis 1-, isMappedTo= up, , value=-1
but abcopj it's far away from konami88 as I'm packed with games...does it makes sense?
What are your thoughts?
-
@ilpappa said in Emulationstation issue - idle game selection change:
What are your thoughts?
What did testing with
jstest
/evtest
showed up ? -
@mitu said in Emulationstation issue - idle game selection change:
What did testing with
jstest
/evtest
showed up ?Jstest showed nothing suspicious, no input reported unless I was touching something. I also have the suspect that if I stay on upper level on system selection the issue would be gone. It happens only if I’m inside a system game list.
EDIT: I'm right, being on upper level does not create any issue, the selected system remains the same and no input is registered as expected.
I recently updated all my scraps via skraper, will try rolling back with old image/video sets to see what happens. I'd say the issue is within emulationstation and media sets. I'm also enclosing below last log from tonight, where even a game was launched so it's actually not only random selection but sometimes also game launch.
Starting point at```
Jan 21 03:05:36 lvl3: fireEvent: game-select neogeo /home/pi/RetroPie/roms/neogeo/19yy.zip -
@ilpappa Did you test both joysticks ? The ES log shows input from both joysticks.
EDIT: EmulationStation uses SDL for input processing. The equivalent utility tojstest
for SDL input diagnosis is SDL-Jstest. My guess is that if you use it it will show the same symptoms ('ghost' inputs). -
@mitu said in Emulationstation issue - idle game selection change:
@ilpappa Did you test both joysticks ? The ES log shows input from both joysticks.
EDIT: EmulationStation uses SDL for input processing. The equivalent utility tojstest
for SDL input diagnosis is SDL-Jstest. My guess is that if you use it it will show the same symptoms ('ghost' inputs).Tested both, no issues. Will now start testing with SDL-Jtest.
Strange thing is that being on upper level does not create any issue, the selected system remains the same and no input is registered as expected.
-
@mitu I could not install sdl-jstest as I had following errors so I went for jstest-sdl.
I could not see any ghost input during the several hours of test, from both joysticks, so all went fine. Apparently other people are suffering same issue by looking online, of course only in emulationstation Emulation Station menu phantom scrolling .
Not sure at this point what to do, other than drestroying my cab :D
pi@retropie:~/sdl-jstest $ cmake . -- Could NOT find tinycmmc (missing: tinycmmc_DIR) -- tinycmmc module path: /home/pi/sdl-jstest/external/tinycmmc/modules/ -- ProjectVersion: sdl-jstest 0.2.2-20-ga73cfcb -- Configuring done CMake Error at CMakeLists.txt:64 (add_executable): Target "sdl-jstest" links to target "SDL::SDL" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? -- Generating done CMake Generate step failed. Build files cannot be regenerated correctly. pi@retropie:~/sdl-jstest $ make [ 50%] Built target sdl2-jstest [ 75%] Building C object CMakeFiles/sdl-jstest.dir/src/sdl-jstest.c.o /home/pi/sdl-jstest/src/sdl-jstest.c:24:10: fatal error: SDL.h: File o directory non esistente #include <SDL.h> ^~~~~~~ compilation terminated. make[2]: *** [CMakeFiles/sdl-jstest.dir/build.make:63: CMakeFiles/sdl-jstest.dir/src/sdl-jstest.c.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:105: CMakeFiles/sdl-jstest.dir/all] Error 2 make: *** [Makefile:130: all] Error 2
-
@ilpappa said in Emulationstation issue - idle game selection change:
I could not see any ghost input during the several hours of test, from both joysticks, so all went fine.
OK. Do you get the same behavior if you disconnect the gamepads completely or use a different gamepad ?
Apparently other people are suffering same issue by looking online, of course only in emulationstation Emulation Station menu phantom scrolling .
A 7 years old post where 2 of the posters identified the issue as hardware/controller related (see here for a a similar issue caused by faulty controllers reported in the forums). I'm not sure there's a bug since I can't reproduce this and I imagine if it were a widespread issue the forums would have been full of similar reports.
Not sure at this point what to do, other than drestroying my cab :D
Not sure either. If it's a bug, it's related somehow to your configuration, but can't think of anything that would cause this outside of ghost inputs from the controller themselves.
-
First of all a BIG thank you @mitu for the time you're dedicating for my issue.
I'm back after several fix attempts which were unsuccessfull. I tried to:
- Replace pi4 with brand new -> same issue
- Replace JammaPi with brand new -> same issue
- Disconnect all USB devices from the pi (I have three extension cables + keyboard receiver) -> same issue
- Re-wired my Jamma making some improvements (ie finally fixing the ground loop, bridging GND points together, using video ground, etc.) -> no ground loop anymore + better images but same issue as above
- Changed microswitches with cheap china (I have good DX44) -> same issue
Now the cherry on the cake is that I actually disconnected Joystick 1 except the axis and all buttons of Joystick 0 except axis, x, start and coin 1, but got same issue. Curios thing is that in the log I see many ghost Joystick 1 inputs despite being disconnected...how is this possible?
Another wierd thing is that my phisical buttons go from 4 to 10, but log shows input for buttons 1 and 2...where does this come from?Log here, check from Jan 24 00:43:33 lvl3:
I could not think of anything else...I'm going to receive a new PSU with better quality, will try that as well but I've basically rebuilt the whole thing.
Any ideas?
EDIT: forgot to mention that with the above improvements my stable build on buster gets issues only after >10mins of video snaps running, while the test build on bullseye take couple of mins to show the issue.
-
Sorry, I have no further ideas besides what I've already written before.
My idea of disconnecting was to completely disconnect the devices and use a keybooard or an USB controller only just to see if any ghosting still shows up.
-
Thanks. I can do full disconnection but need to do couple of modification on the wires. Nothing complicated but at this point what this test could tell us?
Many thanks again.
-
@ilpappa said in Emulationstation issue - idle game selection change:
Nothing complicated but at this point what this test could tell us?
Whether the 'ghost' inputs are caused by your inputs or there's a bug in EmulationStation caused by your config/rom list.
-
@mitu
Completely disconnected both controllers and used Keyboard, but issue persists. We can def agree that this is a bug somewhere then.Is there any setting in emulationstation I should consider doing? All video snaps/screens have been fetched via Skraper, is there any particular setting I should be using there as well (I'm not super familiar of the skraper but was quite intuitive on how to be used)?
Many thanks
-
@ilpappa said in Emulationstation issue - idle game selection change:
Completely disconnected both controllers and used Keyboard, but issue persists. We can def agree that this is a bug somewhere then.
From the log, I see the joysticks are still detected and there's still input being processed from them. Are these (JammaPi) using a special driver ? How did you configure them in Linux ?
-
Probably they’re still detected because the microcontroller sits within the GPIO->Jamma board and of course I’m not able to disconnect that.
I’m not sure about the configuration, this is the script used for the installation where I’m sure the answers are. Apologies but my linux knowledge is quite basic. If you visit the link you’ll be able to see the code which seems not complicated.
https://github.com/vince87/JammaPi/blob/master/install.sh
Images of the board here:
https://www.arcadeitalia.net/viewtopic.php?t=30495
Thanks
-
Try removing the kernel module
joypi
withsudo rmmod joypi
maybe this stops any processing done for the inputs.
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.