EmulationStation very odd behavior on "jump to"
-
ES-dev 11109be
In collection all games, if either of The Simpsons: Bart vs. the Space Mutants [NES] or The Simpsons: Bart vs. the World [NES] are present, then when select menu option "jump to [T]", then it stops at The Simpsons [Arcade].
Note that: when the NES games are present, it doesn't jump to them, but to the Arcade game which is listed first.
"IgnoreLeadingArticles" is set true, and there are plenty of other "The..." titles (and also "S..." titles) that skipped over before reaching "The Simpsons".
If both the "Bart vs." titles are removed, then it correctly skips Simpsons Arcade and The Simpsons: Bartman Meets Radioactive Man [NES] and jumps correctly to Tapper [Atari2600].
If I remove the Arcade, it will jump to the Bart vs. (whichever one is sorted first, when both are present.)
If I rename the Arcade game (in the gamelist), it gets real weird:
It will jump to:
The Simd
The Simpsona
The SimcityIt will skip over Arcade and jump to the NES game if the arcade is called:
The Simc
The Simbsons
The SimaOr if I name it The Simzzz, so it sorts after "Bart vs.", then it stops at Bart vs.
It seems that, for whatever reason, it's stopping at whatever first "The" title appears between Simcity and Simpsons, but nothing that would sort before "Simcity". I can't make any sense of it.
-
I was not able to identify the
11109be
commit in main branch. Can you retry with latest ES-dev?I could not reproduce it with your description and latest ES-dev.
If it still persists, can you share the snippets of your gamelist?
Also isParseGamelistsOnly
on/true or off/false?And in ES is the setting Sort Gamelist By (also in the same menu as Directly Jump To... set to something different than Name, Asc/Desc?
-
@Lolonois said in EmulationStation very odd behavior on "jump to":
I was not able to identify the
11109be
commit in main branch. Can you retry with latest ES-dev?Cha, that's right. Now that you mention it I remember, this was built from https://github.com/cmitu/EmulationStation/tree/metadata-fix in re: https://retropie.org.uk/forum/topic/36776/emulationstation-folders-and-play-count
Will test later the official build and report back.
-
@Lolonois It still happens on latest binary
51b6f41
Parse gamelists is off. Sort is by name, ascending.
Only happens in All Games. Arcade jumps to Teenage Mutant Ninja Turtles and NES jumps to Tecmo Bowl.
Snippets -
arcade/gamelist.xml
:<game> <path>./simpsons2pj.zip</path> <name>The Simpsons</name> <thumbnail /> <image>/home/pi/.emulationstation/downloaded_media/arcade/screenshots/simpsons2pj.png</image> <marquee>/home/pi/.emulationstation/downloaded_media/arcade/marquees/simpsons2pj.png</marquee> <texture /> <video>/home/pi/.emulationstation/downloaded_media/arcade/videos/simpsons2pj.mp4</video> <rating>0.9</rating> <desc>A jewel heist gone wrong sees Mr Burns's sidekick, Smithers, kidnapping Maggie and making his escape. Between one and four players take on the role of either Homer, Marge, Lisa, or Bart in this colorful, horizontally-scrolling beat-em-up from Konami. Each Simpsons character possesses an attacking move specific to them; Marge is armed with a vacuum cleaner, Lisa has a skipping rope, Bart has his skateboard, and Homer fights with his fists. The players must battle their way through a variety of Simpsons-themed levels - such as Springfield and Krustyland - fighting goons, thugs, zombies, drunks, firemen, and several Simpsons regulars. Many Simpsons characters that don't appear as enemies have 'cameo' scenes in the game (Otto working at a burgerstand in Krustyland, for example). The archetypal 'boss' character awaits the players at the end of every stage. The game ends with a final showdown with the evil Mr. Burns in his luxurious mansion. The Simpsons was designed to Konami's typically-high production standards and was, like the 'Ninja Turtles' games that appeared a couple of years' earlier, very faithful to its source material. The colorful, smoothly-animated sprites captured the spirit of the legendary cartoon superbly, and the game's many humorous touches were timed to perfection. This Japanese version includes gameplay improvements and additional features not present in the U.S. and other market versions.</desc> <releasedate>19910403T000000</releasedate> <developer>Konami</developer> <publisher>Konami</publisher> <genre>Beat'em Up, Fight, Fight / 2.5D</genre> <players>2</players> <playcount>8</playcount> <lastplayed>20221128T230911</lastplayed> </game>
nes/gamelist.xml
:<path>./Simpsons, The - Bart vs. the Space Mutants (USA) (Rev 1).zip</path> <name>The Simpsons: Bart vs. the Space Mutants</name> <thumbnail /> <image>~/.emulationstation/downloaded_media/nes/screenshots/Simpsons, The - Bart vs. the Space Mutants (USA) (Rev 1).png</image> <marquee>~/.emulationstation/downloaded_media/nes/marquees/Simpsons, The - Bart vs. the Space Mutants (USA) (Rev 1).png</marquee> <texture /> <video>~/.emulationstation/downloaded_media/nes/videos/Simpsons, The - Bart vs. the Space Mutants (USA) (Rev 1).mp4</video> <rating>0.4</rating> <desc>Bart vs. The Space Mutants is a platform game where the player goes into the role of Bart Simpson (from the TV show The Simpsons) and must stop the Space Mutants from invading Springfield. On each of the five levels, Bart must collect (or get rid of) the ingredients that the Space Mutants are planning to use to build their machine, such as purple objects or balloons. He also has to collect enough "proof" of the aliens existence (brown coins left behind when they are jumped on), so his family members will help him when he meets a boss (characters such as Nelson and Sideshow Bob). This won't be easy since the Space Mutants are "using" human bodies as disguise. In order to discover who are the real Space Mutants, Bart must use his X-ray Specs. The ways Bart can get rid of those objects sought by the Space Mutants are numerous. For instance, in the first stage, Bart must get rid of purple objects. He can dye them red, cover them, wash them, etc. Some even involve a little puzzle solving, like playing a trick on Moe to make him get out of the bar. Bart also has some coins that can be used in many ways throughout the game, like buying things, getting devices operating, etc. Those coins are essential to solve some puzzles in the game. </desc> <releasedate>19910202T000000</releasedate> <developer>Imagineer</developer> <publisher>Acclaim</publisher> <genre>Platform</genre> <players /> <playcount>6</playcount> <lastplayed>20240612T120958</lastplayed> </game> <game> <path>./Simpsons, The - Bart vs. the World (USA).zip</path> <name>The Simpsons: Bart vs. the World</name> <thumbnail /> <image>/home/pi/.emulationstation/downloaded_media/nes/screenshots/Simpsons, The - Bart vs. the World (USA).png</image> <marquee>/home/pi/.emulationstation/downloaded_media/nes/marquees/Simpsons, The - Bart vs. the World (USA).png</marquee> <texture /> <video>/home/pi/.emulationstation/downloaded_media/nes/videos/Simpsons, The - Bart vs. the World (USA).mp4</video> <rating>0.45</rating> <desc>This game is actually a compilation of smaller games belonging to different genres. Krusty the clown appears in the beginning of the game and presents a menu with five games to play (one of which is not available from the start): A jump-and-run game, where Bart must find an exit on a ship, while enemies fire at him and try to prevent him from reaching the exit; a card game, where you have five tries to find hidden cards on a board; a simple jigsaw puzzle; a series of trivia questions concerning the Simpsons; and finally, a platform-skateboard game (available only after you have completed the ship level). Needless to say all games are connected to the famous TV series "The Simpsons". </desc> <releasedate>19911201T000000</releasedate> <developer>Imagineer</developer> <publisher>Acclaim</publisher> <genre>Sports, Platform</genre> <players>1</players> </game> <game> <path>./Simpsons, The - Bartman Meets Radioactive Man (USA).zip</path> <name>The Simpsons: Bartman Meets Radioactive Man</name> <thumbnail /> <image>/home/pi/.emulationstation/downloaded_media/nes/screenshots/Simpsons, The - Bartman Meets Radioactive Man (USA).png</image> <marquee>/home/pi/.emulationstation/downloaded_media/nes/marquees/Simpsons, The - Bartman Meets Radioactive Man (USA).png</marquee> <texture /> <video>/home/pi/.emulationstation/downloaded_media/nes/videos/Simpsons, The - Bartman Meets Radioactive Man (USA).mp4</video> <rating>0.45</rating> <desc>Bart Simpson is reading the latest comic about the Radioactive Man but his favourite superhero is not featured in it. When he is at the last page, his sidekick Fallout Boy appears. He tells Bart he is the only one who can save Radioactive Man who has been sent to the Limbo Zone, a mysterious prison that revolves around a black hole. Bart turns into Bartman and he has to fight three super villains to collect Radioactive Man's lost powers before facing the mastermind Brain-O the Magnificent. Players control Bartman through 2D side-scrolling platform levels. He needs to defeat enemies, collect goodies, and be careful not to fall into one of the deadly traps on his way. Bartman can punch and kick, and collect lightning icons to shoot small bolts. Most of the level sequences require precise timing and pixel-perfect jumping precision. Bartman has five life points that are restored by collecting radioactive signs. </desc> <releasedate>19921201T000000</releasedate> <developer>Imagineer</developer> <publisher>Acclaim</publisher> <genre>Platform</genre> <players>1</players> <kidgame>true</kidgame> </game>
-
@sleve_mcdichael Thanks but unfortunately it is not sufficient to replicate it on my side.
So the settings are on your side:
<bool name="ParseGamelistOnly" value="false" /> <bool name="IgnoreLeadingArticles" value="true" />
Right?
Do you have accidentally a space in this setting after or before a comma or the quotes in the value part of the setting below? (
StringUtil.delimitedStringToVector()
has the habit not to trim whitespaces from the splittedvalue
)<string name="LeadingArticles" value="a,an,the" />
Do you have a specific locale set? Mine reads as.
$ locale LANG=en_GB.UTF-8 LANGUAGE= LC_CTYPE="en_GB.UTF-8" LC_NUMERIC=C LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL=
Do you change the sort order in ES from Name, Asc to something else before confirming Jumping to "T"?
-
Do you change the sort order in ES from Name, Asc to something else before confirming Jumping to "T"?
Nothing. I start ES, press Left (x2) to "All Games," A, Select, Left (x7) to "T," A to confirm, and: The Simpsons [Arcade].
Jump to T:
Result in Arcade:
Result in All Games:
(Theme doesn't seem to matter, it's happening both on a customized snes-mini and stock carbon themes.)
Do you have a specific locale set? Mine reads as.
Mine's similar except it's US:
$ locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=
So the settings are on your side:
<bool name="ParseGamelistOnly" value="false" /> <bool name="IgnoreLeadingArticles" value="true" />
Right?
Do you have accidentally a space in this setting after or before a comma or the quotes in the value part of the setting below?
<string name="LeadingArticles" value="a,an,the" />
Here are mine, they look the same to me:
<bool name="ParseGamelistOnly" value="false" /> <bool name="IgnoreLeadingArticles" value="true" /> <string name="LeadingArticles" value="a,an,the" />
I can share whole es_settings and systems files, and the NES and Arcade gamelists:
Happy to share or test whatever else to nail this down.
-
Thanks again. I have retained only
arcade
andnes
as systems and applied youres_*.cfg
's and Gamelists but still no luck to reproduce it (neither in Carbon nor in Snes-Mini).Two ideas from the distance:
- Are there more files in arcade/nes folder than the ones from the gamelist?
- My screen resolution is 1280x1024, which resolution do you use?
-
The weirdness continues. In brief: it's the
es_systems.cfg
, but also it's the rom files?! And nothing actually helps.By shuffling files in and out of my rom folders, I can change whether it happens or not. The results are consistent but not predictable. By this I mean:
consistent: any particular arrangement of files either will, or will not trigger the error, and whether it does, or not, remains constant, it does not change for that particular arrangement.
not predictable: I can't make any sense of whether a particular arrangement will trigger it or not, without loading up ES and actually trying "Jump to".
For example if I remove two files from n64 then it seems to be fixed; if I put either one of them back then it's broke. If I remove two files from snes then, it seems fixed; if I put either one of them back then it's broke... So you might think that "remove two files" fixes it (I did). Until you find that, remove different two files from snes, and it doesn't fix it this time. Removing the first two again will fix it again and putting one of them back will re-break it. So some files matter and some files don't, but which ones?
...
From another angle, I am trying to recreate this from scratch. First step, dummy roms. I removed all my roms to a backup location and made dummy files in their place using:
for gamelist in /home/pi/.emulationstation/gamelists/*/gamelist.xml; do system="$(echo "$gamelist" | cut -d/ -f6)"; mkdir "$system"; cd $system; xmlstarlet sel -t -m '//path[1]' -v . -n <"$gamelist" | cut -d/ -f2 | while read file; do touch "$file"; done; cd .. ; done
(There's probably a better way to do this, but it got the job done. Mostly. I did have to manually touch-up the Gran Turismo folder/files in the psx system.)
It still happens with the dummy files.
Next I removed my
/opt/retropie/configs/all/emulationstation
folder and reinstalled emulationstation-dev. I then put back some of my backups includinges_settings.cfg
and the gamelists folder.When I got to
es_systems.cfg
, it made the error. Without it (so, using the automated one in/etc
which I don't touch through this whole process), then no error.STEPS TO REPRODUCE:
- (Be on Pi 4/Buster?)
- Remove to a safe backup
/opt/retropie/configs/all/emulationstation/
and$HOME/RetroPie/roms
- Re-install emulationstation-dev from binary
- Download and unpack my zip: there are no roms here
- Place the provided *dummy* roms in
$HOME/RetroPie/roms
- Place the provided gamelists folder and
es_*.cfg
files in the near-empty/opt/retropie/configs/all/emulationstation
folder (install has put aes_input.cfg
there already. Leave it.) - Start ES and configure your own input.
- Go to All Games, jump to T: The Simpsons [Arcade] (error)
- Test: quit ES, remove
es_systems.cfg
, and restart - All games, jump to T: Tapper [Atari2600] (correct)
- Replace
es_systems.cfg
, restart: - Jumps to: The Simpsons (bad)
- Now: remove from snes folder
Tecmo Super Bowl III - Final Edition (USA).zip
andTecmo Super Bowl (USA).zip
and restart - Jumps to: Tapper (good)
- Replace the Tecmo Super Bowls and remove
Arkanoid - Doh It Again (USA).zip
andTetris Battle Garden (Japan).zip
- Jumps to: Simpsons
- Remove both the Tecmo Super Bowls, jumps to Tapper
- Put just one of them back (dealer's choice), jumps to Simpsons
...
...with all my backups back in place, I remove my
es_systems.cfg
again and ... well, it's different now, at least. Now it jumps to The Secret of Monkey Island [ScummVM]. So clearly there's something else going on, it's still jumping to a The S... something instead of making it all the way to T, even with the stocksystems.cfg
.I still can't nail down exactly how it happens, but with this gamelists, dummy files, and
settings/systems.cfg
, then I can recreate the error on a fresh EmulationStation folder at least. If this still not enough to recreate for you, I guess I'll look to do a full wipe and stock image......
Two ideas from the distance:
- Are there more files in arcade/nes folder than the ones from the gamelist?
With the dummy files still producing the error I think this won't matter (?) but a few, yes. None of them are roms. nes has some
.srm .cfg .ips
and.state
files. arcade has many.cfg
and some folders: fbneo and mame2003-plus were created not by me; ikaruga holds the.chd
for that game, and bezels has the.cfg
and.png
files for all of the arcade bezels.- My screen resolution is 1280x1024, which resolution do you use?
Mine is 1280x720.
-
I tried my best to get it reproduced with the binary ES install, but whatever I do on my side I land correctly at "Teenage Mutant..." which is the first with "T" (in Arcade) and at "Tecmo Bowl" (first with "T" in "NES" and "All Games").
As it is non-deterministic on your side I am leaning towards the hardware and maybe in conjunction with
"ThreadedLoading" value="true"
but it is a vague guess.If you have the patience, you may install the whole shebang Retropie on your Desktop or in a Linux VM or if you have a spare Pi4 at hand use that. If it also happens on a different RetroPie installation it indicates something with the filestructure/gamelist data, if not then the plot thickens that it might be hardware related.
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.