Create a custom ES system able to launch games for many systems
-
@meleu
I planed something similar and wanted to write a program calledlittle favourite launcher
- but as always.... There is no time :(It uses not symbolic links but description files.
So you create a file likeTetris (GB).fav
The file contains two lines- ROM fullpath
- runcommand
For example
ROM location:~/RetroPie/roms/GB/Tetris (JUE) (V1.1) [!].gb
runcommand:/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ gb
The
little launcher
reads out those two lines and excutes the runcommand in addition with ROM path. and Execute:/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ gb ~/RetroPie/roms/GB/Tetris (JUE) (V1.1) [!].gb
. That's just a 6 to 8 liner in any language you want.
The big advantage is that you don't have to mess around with symlinks. To create the FAV files you can use any frontend you want.Changes that must be done to es_launcher.cfg
<fullname>Favorites</fullname> <path>/home/pi/RetroPie/roms/favorites</path> <extension>.fav .FAV</extension> <command>.lilfavlaunch %ROM%</command> <platform>all</platform> <theme>Favorites</theme> </system>
-
@cyperghost pretty cool idea too. But one thing I can anticipate is that it won't be possible to scrape in the traditional ways.
-
Ah... You're right!
Well, I never scrape :)
I would suggest it as small workaround for a favorite folder -
@cyperghost if you were about to write a program to create those files, your program could also get the game's metadata info from the respective gamelist.xml and dump it in
favorites/gamelist.xml
. ;-) -
Sorry, this has been a bit hard to follow, I probably should know the answer here and it was likely answered before, but couldn't we just create a gamelist file that points to relative paths in other folders and achieve the same thing without the symbolic links?
-
@pjft perfectly doable, but the problems would be:
-
the users would need to edit
konami/gamelist.xml
manually, (less practical thanln -s target symlink
). -
the script to launch the game would be a little more complex (get the actual system from the xml file).
-
the use of gamelist.xml would be mandatory, not an option.
I'll add this question to the FAQ.
-
-
@meleu Got it, thank you.
Just wanted to check if I was missing something from the overall picture, but it was mostly curiosity and feasibility for non-Linux file tables (i.e. those who run their ROMs from a FAT32 USB drive like me).
Well done!
Hope your boy has fully recovered by now :)
-
@meleu There is a difference in creating config files like a database or to create some filepieces to call some files. But here it is ... A pity I can't call other bash files.
I think it caused while a user (pi) calls user with privleges. It can run easy bash files and other binaries but this makes no sense so far :(It's compiled on a raspberry 1 .... but due compatibilty it can run on the pi 2/3
Make it executable via chmod +xUsage: create any file you want (maybe testfile.test)
First line contains parameters
Second contains binary or bashrun
./lfl testfile.testoutput is:
first line of testfile
second line of testfile
Execute firstline+secondlineEDIT:
Can't upload... well this small binary isn't usefull anyway :) -
@pjft said in Create a custom ES system able to launch games for many systems:
feasibility for non-Linux file tables (i.e. those who run their ROMs from a FAT32 USB drive like me)
The symbolic links must be in a Linux partition, but the target file can be in any valid path. As a FAT32 partition is mounted in a valid path, I think the method works fine for those people. :-)
The boy is recovering well! :-)
-
@meleu said in Create a custom ES system able to launch games for many systems:
The symbolic links must be in a Linux partition, but the target file can be in any valid path. As a FAT32 partition is mounted in a valid path, I think the method works fine for those people. :-)
I think I get that, but if the whole ROM folder and subfolders are in a FAT32 partition, there's no way to add symlinks in a Linux partition for this purpose (i.e. all the roms are expected to be in that folder anyway), or am I missing something?
Or would you suggest in the
es_systems.cfg
file to add a<path>
pointing to a folder in the SD card? Is that what you'd be recommending?Thanks!
-
@pjft That should work
Create a folder to /home/pi/RetroPie/symlinks and point from FAT32-ROM to that folder
Changees_systems.cfg
folder path to/home/pi/RetroPie/symlinks
-
@pjft yep! @cyperghost answered well.
Also, I've just updated the question 3 of the FAQ:
3. Is it possible to create symbolic links on a Windows machine and move them to my RetroPie later?
No. Symbolic links can't be created on Windows and can't be placed on a Windows partition.
But if your ROMs are stored on a Windows partition, you can use the method described here. You just have to place the symbolic links themselves on a Linux partition (target files can be in any valid path). Click here to see the conversation about it.
-
Excellent work, thanks for posting, will give this a go over the weekend!
-
Changelog:
Small update in the
runcustom.sh
. I've just discovered thereadlink
command, no need to pipels
output tosed
in order to get the target file name. -
@meleu
So work done - I created a litlle unix binary for a fav launcher in a new thread -
Guess what? Yes, you're right, another script...
This time it's a script to let you use the already existent metadata. So, there's no need to scrape the games in
konami
folder.The script can be found here: https://github.com/meleu/share/blob/master/custom-system-autoscraper.sh
And you can download it with this command:
wget https://raw.githubusercontent.com/meleu/share/master/custom-system-autoscraper.sh
Launch it with
--help
to see the usage:$ ./custom-system-autoscraper.sh -h This script gets all the symbolic links in a custom ES system directory and tries to create a gamelist.xml based on already existent metadata, boxart, marquee, and video. More info here: https://retropie.org.uk/forum/post/84125 Usage: ./custom-system-autoscraper.sh /path/to/custom/system/directory
Updated the OP with this info.
-
@meleu said in Create a custom ES system able to launch games for many systems:
Maybe this one from title screen:
Logo done. Complete manual design.
Works best on dark background.Available here.
-
OMG! I'm loving this theme tweaking stuff!!!
-
I'm still trying to fully understand the differences between the various config directories, but following along with the OP for setting up a Konani directory, I ended up getting it to work by editing my ~/.emulationstation/es_systems.cfg file instead of the one listed in /etc/emulationstation/ directory.
Are the files in the ~/.emulationstation intended to be only for overrides, so essentially empty except for and local changes? I started with an existing image setup a few months ago, so while it's helpful for getting started, does add some confusion later on when trying to weed-out unnecessary files.
melue, thanks for putting together this tutorial, very helpful, and thanks to UDB23 for the Mega Man vector, nice work!
-
removed duplicated post (due to poor internet connection)
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.