RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    [dev] Folder navigation through gamelist.xml! Bug or feature?

    Scheduled Pinned Locked Moved Ideas and Development
    favoritefavouritescyperghostdevdevelopment
    4 Posts 2 Posters 1.9k 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.
    • cyperghostC
      cyperghost
      last edited by cyperghost

      As I talked to @pjft about the topic folder sorting through auto-favorite in this forum and after a short night after work I remebered a strange behaviour as I developed Little Favourite Launcher.

      For quick readers: How to make fine tuning and how to interpret this feature is done in second posting :D

      It was in the beginning stage and I was in need to find a place to store gamedata and rompathes. So the gameslist.XML was on consideration. As you know I used annother path...

      But for now the bug (or feature) and how to do this:

      1. Create a gamelist.xml on a system you don't need (segacd for ex.)
      2. Fill the gamelist with roms from different systems
      3. Go to options > Other Settings
      4. Save data on exit = off
      5. Parse gamelists only = on
      6. Restart ES

      content off: gamelist.xml

      <?xml version="1.0"?>
      <gameList>
      	<game>
      		<path>/home/pi/RetroPie/roms/nes/Darkwing Duck (E).nes</path>
      		<name>Darkwing Duck (E)</name>
      		<playcount>3</playcount>
      		<lastplayed>20170117T221633</lastplayed>
      	</game>
      	<game>
      	<path>/home/pi/RetroPie/roms/nes/Probotector (E).nes</path>
      		<name>Probotector (E)</name>
      		<playcount>1</playcount>
      		<lastplayed>20170117T205906</lastplayed>
      	</game>
      	<game>
      		<path>/home/pi/RetroPie/roms/gamegear/Super Battletank (U) [!].gg</path>
      		<name>Super Battletank (U) [!]</name>
      		<playcount>1</playcount>
      		<lastplayed>20160814T184511</lastplayed>
      	</game>
      	</gameList>
      

      That results in the following

      1. Picture // 2 Roms from NES and 1 entry r (as last charachter of gamegear)

      img

      2. Picture // 1 Roms from gamegear inside folder g

      img

      1 Reply Last reply Reply Quote 0
      • cyperghostC
        cyperghost
        last edited by cyperghost

        This even work for more than one subfolder

        This will create three entries acting as folders ... that can hold files

        1. CAPCOM
        2. MEGAMAN
        3. TETRIS GAMES

        Approach?

        I think it faulty file parsing (=bug)? The last foldername inkl. / and 7 characters are assigned as one system. Any other assingment that shows that behaviour is treated as subfolder. Any other folders CAPCOM, MEGAMAN and TETRIS GAMES here after the 7 character bug will result in a subfolder entry. But it may considered as feature!

        I think I'm not the first one who saw this behaviour but it may get in the right time for ES development ;) I hope so!

        The folder TETRIS GAMES contains two files TESTFILE und TESTFILE5

        <?xml version="1.0"?>
        <gameList>
        	<game>
        	<path>/home/pi/RetroPie/roms/123456/CAPCOM/TESTFILE.test</path>
        		<name>TESTFILE</name>
        		<playcount>1</playcount>
        		<lastplayed>20160814T184511</lastplayed>
        	</game>
        	<game>
        	<path>/home/pi/RetroPie/roms/123456/MEGAMAN/TESTFILE.test</path>
        		<name>TESTFILE</name>
        		<playcount>1</playcount>
        		<lastplayed>20160814T184511</lastplayed>
        	</game>
        	<game>
        	<path>/home/pi/RetroPie/roms/123456/TETRIS GAMES/TESTFILE.test</path>
        		<name>TESTFILE</name>
        		<playcount>1</playcount>
        		<lastplayed>20160814T184511</lastplayed>
        	</game>
        	<game>
        	<path>/home/pi/RetroPie/roms/123456/TETRIS GAMES/TESTFILE2.test</path>
        		<name>TESTFILE5</name>
        		<playcount>1</playcount>
        		<lastplayed>20160814T184511</lastplayed>
        	</game>
        	</gameList>
        

        img

        1 Reply Last reply Reply Quote 0
        • pjftP
          pjft
          last edited by

          I'm not sure what exactly you're referring to here, but I'll give it a shot. :)

          The gamelists from a specific system are expected to have games inside that same folder. If they don't, then they're incorrectly generated and it's normal that ES misbehaves. Same thing if you'd create an invalid XML file or something.

          The fact that you can replace <system name string> with <string of equivalent length> in the gamelist is a non-factor, though a curious find. :)

          Normal use of ES and the scraper should never generate one such gamelist, so users should not run into that kind of setup unless they muck around.

          So: pointing to games outside of the current folder (i.e. in parents or sibling folders) is not supported. Not a bug. Bot a feature. Working as intended. :)

          Games in subfolders: that's intended. However, be aware that all those games will be executed using the same system's emulator. So you won't be able to use it for multiple system games.

          That being said, lots of users organize their ROMs in such way (I personally don't, but there are several mentions in the forums for that - even creating a sub-folder with their favorites and such).

          So that's a feature, I suppose. :)

          cyperghostC 1 Reply Last reply Reply Quote 1
          • cyperghostC
            cyperghost @pjft
            last edited by cyperghost

            @pjft I refer to the output result ;) Really no idea?
            If I want to launch CAPCOM/TESTFILE.test then the output is

            /home/pi/RetroPie/roms/123456/CAPCOM/TESTFILE.test
            segacd
            /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so --config /opt/retropie/configs/segacd/retroarch.cfg "/home/pi/RetroPie/roms/123456/CAPCOM/TESTFILE.test"
            
            1. Line is ROMname+it's path as in Gamelist...
            2. Is Emulatorcall
            3. is command call via runcommand.sh

            And yes you are totally right... how to find correct emulator call :) But with a bit of investigation it is no problem. But you are totally right that are just cases no user will run in this. But I just want to show what is possible and with the knowledge collected in the last few days it seems absolutly possible to give ES the right push.

            So hold on:

            Consider if you terminate/shorten 123456/ in the string then you may have the full path of the rom ;) and now compare it to es_systems.cfg? We can parse the system out ;) and then ..... voila a launching abilty via folder navigation :)

            In fact I won't use 123456/ give to more a stylish name hidden/, toxxic/or just vvaste/ :D I'm joking but it should work...

            1 Reply Last reply Reply Quote 1
            • 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.