RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    es_systems.cfg systems file extensions and rom filenames

    Scheduled Pinned Locked Moved Help and Support
    emulationstatiov2.11.2rpcapitalupper-caseessystems.cfg
    34 Posts 3 Posters 4.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 2Play2
      2Play
      last edited by 2Play

      @mitu @pjft

      -RockPro64

      -RetroPie 4.8.5
      10ace093-beb1-4787-a948-02c61546ff98-image.png

      -EmulationStation V2.11.2RP
      e45dd96e-d72a-4b29-9197-55f1d3eee926-image.png

      I was testing systems and roms on above setup.
      Im not using an xml in ES for the testing just roms

      I wanted to hide in AGS .EXE files and .ZIP in arcade for example

      I have removed these extensions (.EXE .ZIP respectively) from the only es_systems.cfg residing in etc/emulationstation folder (while ES was closed).
      Then started ES and roms files with .EXE .ZIP were treated as if was .exe or like .EXE never been deleted

      This behavior was similar to an older exact problem with a dev es release i tested in the past

      Other users reported as I can see similar with .CUE in the past

      Is this ES binary related (bug), permission of the rom file (pi is owner with usual permissions), something else?

      I havent tested on another system (ex pi4 but i will and report back)

      I know you have created the lower and upper-case extensions for a reason. Tested 2 diff systems with same result

      Any feedback is appreciated, bug or not related.

      Kind regards

      Your friend,
      2Play!

      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by

        I'll take a look at this.

        2Play2 1 Reply Last reply Reply Quote 0
        • 2Play2
          2Play @mitu
          last edited by 2Play

          @mitu
          I tried also below to troubleshoot in ags system. I have 2 .exe files
          Ive exited ES, applied below and restarted it

          • removed all extension > systems hides
          • removed .EXE from es_systems.cfg > Both files show in ES even though one is .EXE
          • es_systems applied ".exe " > both files show
          • es_systems applied ".exe ." > ES crashed
          • es_systems applied ".exe .not" > both files show
          • es_systems applied .exe . > ES crashed
          • es_systems applied only .bat > ES shows only the .exe file (correct).
            last one, i did back forth and works

          Seems ES expects/uses .exe even if not set in es_systems.cfg

          About the arcade i found out that you have implemented the mamebios.xml for bioses
          So as long as it is in that xml bios wont show which is great.
          But the case sensitve remains. for example a filename in arcade with .ZIP even if removed from es_systems removed, shows up

          Just thought it might help.
          Also tried ES 2.10.2rp wtith same result on same system.

          Any feedback is welcome. Let me know if to open on git a new issue

          Your friend,
          2Play!

          1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator
            last edited by

            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 existing gamelist.xml and let EmulationStation re-create it.

            1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator
              last edited by

              The fix was added to the -dev branch, if you update from source emulationstation-dev, then you can check if it solves the issue.

              2Play2 2 Replies Last reply Reply Quote 0
              • 2Play2
                2Play @mitu
                last edited by

                @mitu thank you for all your time and replies!

                Your friend,
                2Play!

                1 Reply Last reply Reply Quote 0
                • 2Play2
                  2Play @mitu
                  last edited by 2Play

                  @mitu
                  exited ES
                  I have compiled the -dev 1h ago.
                  2.12.0rp-dev
                  I see the commit about checking xml and extensions

                  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? )

                  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")"

                  Your friend,
                  2Play!

                  1 Reply Last reply Reply Quote 0
                  • mituM
                    mitu Global Moderator
                    last edited by

                    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.

                    2Play2 1 Reply Last reply Reply Quote 0
                    • 2Play2
                      2Play @mitu
                      last edited by

                      @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 xml

                      Test 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 extension

                      But 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.

                      Your friend,
                      2Play!

                      1 Reply Last reply Reply Quote 0
                      • mituM
                        mitu Global Moderator
                        last edited by

                        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.

                        mituM 1 Reply Last reply Reply Quote 0
                        • mituM
                          mitu Global Moderator @mitu
                          last edited by mitu

                          @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).

                          2Play2 2 Replies Last reply Reply Quote 1
                          • 2Play2
                            2Play @mitu
                            last edited by 2Play

                            @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

                            Your friend,
                            2Play!

                            S 1 Reply Last reply Reply Quote 0
                            • 2Play2
                              2Play @mitu
                              last edited by

                              @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?

                              Your friend,
                              2Play!

                              mituM 1 Reply Last reply Reply Quote 0
                              • mituM
                                mitu Global Moderator @2Play
                                last edited by mitu

                                @2Play I don't know, but I kind of agree with the current behavior.

                                1 Reply Last reply Reply Quote 0
                                • S
                                  sleve_mcdichael @2Play
                                  last edited by sleve_mcdichael

                                  @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.

                                  2Play2 1 Reply Last reply Reply Quote 1
                                  • 2Play2
                                    2Play @sleve_mcdichael
                                    last edited by

                                    @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

                                    Your friend,
                                    2Play!

                                    mituM 1 Reply Last reply Reply Quote 0
                                    • mituM
                                      mitu Global Moderator @2Play
                                      last edited by mitu

                                      @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.

                                      2Play2 2 Replies Last reply Reply Quote 1
                                      • 2Play2
                                        2Play @mitu
                                        last edited by

                                        @mitu uh ok. just thought it wasnt really a requirement.
                                        Ill test soonest possible

                                        Your friend,
                                        2Play!

                                        1 Reply Last reply Reply Quote 0
                                        • 2Play2
                                          2Play @mitu
                                          last edited by

                                          @mitu Tried the favorite trick and works as you both advised.

                                          Now ill check the es dev again

                                          Your friend,
                                          2Play!

                                          2Play2 1 Reply Last reply Reply Quote 0
                                          • 2Play2
                                            2Play @2Play
                                            last edited by 2Play

                                            @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
                                              29b3a9f7-d320-4fb8-98af-701543f55cad-image.png

                                            • 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.
                                            printscreen10_12_2023--h12-m35-s23.jpg

                                            Should I recompile? Shouldnt with xml the file with capitals .EXE to be omitted from being displayed with the bug fix?

                                            Your friend,
                                            2Play!

                                            mituM 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.