[dev] Folder navigation through gamelist.xml! Bug or feature?
As I talked to @pjft about the topic folder sorting through
auto-favoritein 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.XMLwas on consideration. As you know I used annother path...
But for now the bug (or feature) and how to do this:
- Create a
gamelist.xmlon a system you don't need (
- Fill the gamelist with roms from different systems
- Go to options > Other Settings
- Save data on exit = off
- Parse gamelists only = on
- Restart ES
<?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)
2. Picture // 1 Roms from gamegear inside folder g
- Create a
This even work for more than one subfolder
This will create three entries acting as folders ... that can hold files
- TETRIS GAMES
I think it faulty file parsing (=bug)? The last foldername inkl.
/ and 7 charactersare assigned as one system. Any other assingment that shows that behaviour is treated as subfolder. Any other folders
TETRIS GAMEShere 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!
TETRIS GAMEScontains 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>
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. :)
@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"
- Line is ROMname+it's path as in Gamelist...
- Is Emulatorcall
- 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
vvaste/:D I'm joking but it should work...