es_systems.cfg systems file extensions and rom filenames
-
It's a bug, inherited from the original fork. I have a preliminary fix, but I haven't submitted a correction yet.
If you want to work around it, just remove your existinggamelist.xml
and let EmulationStation re-create it. -
The fix was added to the
-dev
branch, if you update from sourceemulationstation-dev
, then you can check if it solves the issue. -
@mitu thank you for all your time and replies!
-
@mitu
exited ES
I have compiled the -dev 1h ago.
2.12.0rp-dev
I see the commit about checking xml and extensionsI have deleted the gamelist.xml from
"\configs\all\emulationstation\gamelists\ags"
(just a note, ES not recreating new xml at quit and start it again.
When is it supposed to recreate an xml in above? )Started ES with only .exe in es_systems.cfg for ags
As said no xml on above path, ES still shows both exe and .EXE files (.EXE removed)So if no xml either in roms or es xml both extensions show.
NOTE
I run with debug an i see below. Is this normal when ags is valid platform and correct in the es_systems.cfg?
"Oct 08 20:17:28 lvl1: Unknown platform for system "ags" (platform "ags" from list "ags")" -
I have deleted the gamelist.xml from
"\configs\all\emulationstation\gamelists\ags"
(just a note, ES not recreating new xml at quit and start it again.
When is it supposed to recreate an xml in above? )Are you sure you don't have an additional gamelist in the ROMs folder (
ags
) ?Started ES with only .exe in es_systems.cfg for ags
As said no xml on above path, ES still shows both exe and .EXE files (.EXE removed)Is your ROM folder on the sdcard or it's using a USB stick ?
NOTE
I run with debug an i see below. Is this normal when ags is valid platform and correct in the es_systems.cfg?
"Oct 08 20:17:28 lvl1: Unknown platform for system "ags" (platform "ags" from list "ags")"The scraper doesn't have
ags
registered as a known scraping platform, probably because none of the scrapers offer it as a separate system/platform. That's ok. -
@mitu hello!
No gamelist whatsoever.
I delete the ES xmls with a script except the retropie one that has the menu
This thing about ES not creating his auto xml after deletion of existing xml, isnt new behavior to me but not bothered me as in the final tests i use scraped xmlTest rom is on sd card. not using usb.
Ags test game is in subfolder due to multiple files (like a dos game). There are 2 exe which one is with .EXE extensionBut when I need to test if a system working I just drop a simple file to test or in this case a game folder
Noted on the error.
-
Hm, this seems to be a different 'bug' - extension seems to be is case-insensitive. We can also categorize it as an 'accidental enhancement' since it allows us to list the extension just once.
I'll take a look to see if it's intentional or not.
-
@mitu said in es_systems.cfg systems file extensions and rom filenames:
I'll take a look to see if it's intentional or not.
Yes, it seems intentional:
-
when the list of extensions is populated, they're lower-cased and put in the list - https://github.com/RetroPie/EmulationStation/blob/2fd3a78e5297d24781b2eb89c76210eec054c0a2/es-app/src/SystemData.cpp#L190
-
when a system's folder is read and the gamelist is populated, each file extension is lower-cased first - https://github.com/RetroPie/EmulationStation/blob/2fd3a78e5297d24781b2eb89c76210eec054c0a2/es-app/src/SystemData.cpp#L108C81-L108C81
So it's not possible to add
.exe
and exclude.EXE
. It's probably better for Linux or other systems where the filesystem is case-sensitive, the extensions of the files don't need to be an exact match (i.e. lowercase only). -
-
@mitu tx again for looking into it.
So the reason its working with xml specifics can be ignored as per your patch above.Maybe this is why not noticed when you have no xml and just roms
To pick you brains, about the ES xml auto creation mentioned above.
When these are supposed to be created automatically from ES.
A complete change in the rom folder?
Is there a cached location of these?My regards
-
@mitu Do you think, in the future, a condition can be included (as an enhancement) in the source code, so if OS is linux based (case-sensitive), ES to read/skip systems extensions accordingly?
-
@2Play I don't know, but I kind of agree with the current behavior.
-
@2Play said in es_systems.cfg systems file extensions and rom filenames:
about the ES xml auto creation mentioned above.
When these are supposed to be created automatically from ES.The XML is written at end of runtime (when you exit EmulationStation.) Entries will be written for any game whose information was added or updated during the preceding runtime including last played and playcount information.
Example: you have a folder with:
Legend of Fitzgerald Super Maōri Brothers Tremendous Man
...in your XML it only has Legend of Fitzgerald and Super Maōri Brothers.
You start up ES. You play Tremendous Man once, and then you go into the menu and fix the wrong name of Super Zulu Brothers to what it should be.
Nothing happens yet. Later, you quit ES or restart the system. Now, the XML is written. A new entry is created for Tremendous Man, and an updated entry for Super Zulu Brothers, overwriting the previous Super Maōri Brothers entry. Now the XML has entries for all three.
-
@sleve_mcdichael tx for you feedback. So restart ES isnt enough in my understanding
Full restart will be needed after the change.FYR If i delete the ES xml and restart the system it doesnt create a new one to replace deleted one, just displays the filenames though
Do you know if its using a cached location somewhere
-
@2Play said in es_systems.cfg systems file extensions and rom filenames:
Full restart will be needed after the change.
No, as @sleve_mcdichael said:
Entries will be written for any game whose information was added or updated during the preceding runtime including last played and playcount information.
You need to play at least a game, so that it's info is changed and will be persisted on exit. If you don't play any game, then ES considers nothing changed so it doesn't need to save anything. Instead of playing a game you can also just mark it as favorite or scrape it so that its info changes.
-
@mitu uh ok. just thought it wasnt really a requirement.
Ill test soonest possible -
@mitu Tried the favorite trick and works as you both advised.
Now ill check the es dev again
-
@mitu
Tested below:-
I have applied the 2.12.0.rp binary of ES
-
In roms/ags there are 2 exe files as per image
-
In roms/ags applied below test gamelist.xml
<?xml version="1.0"?> <gameList> <game> <path>./Apprentice 1 Deluxe/App.exe</path> <name>App</name> <favorite>true</favorite> </game> </gameList>
- es_systems.cfg has only .exe
<system> <name>ags</name> <fullname>Adventure Game Studio</fullname> <path>/home/pi/RetroPie/roms/ags</path> <extension>.exe</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ ags %ROM%</command> <platform>ags</platform> <theme>ags</theme> </system>
Result in ES
ES Version and the 2 games show behind on above test.
Should I recompile? Shouldnt with xml the file with capitals .EXE to be omitted from being displayed with the bug fix?
-
-
@2Play said in es_systems.cfg systems file extensions and rom filenames:
Should I recompile? Shouldnt with xml the file with capitals .EXE to be omitted from being displayed with the bug fix?
No, and I'm confused why you'd think it would.
-
@mitu
My understanding was that what the bug fix would do.
"Gamelist bugfix: don't show un-registered extensions"I thought that on the dev binary it would do this. Or the fix expects to see both in the xml and then exclude what is not in es_systems.cfg
For Reference
In the past, on pi3,4 if you wanted to hide a rom file from showing in the ES gamelist, you just removed the extension and these were not displayed any moreIts a practice many used the past years by changing the extension to CAPITAL letters and then remove from the es_systems.cfg
I ll try to dig up an older binary for pi4 that I used in same way and provide you the version
-
@2Play said in es_systems.cfg systems file extensions and rom filenames:
I thought that on the dev binary it would do this. Or the fix expects to see both in the xml and then exclude what is not in es_systems.cfg
It does that, but - as I explained later on - extension search is case-insensitive so if you add
.exe
, then.EXE
is also matched even if not listed.I ll try to dig up an older binary for pi4 that I used in same way and provide you the version
Sure, let me know the version and I'll check.
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.