Create a custom ES system able to launch games for many systems
-
@spruce_m00se I would love to have a Mega Man category, I just need a cool SVG logo for it...
-
@meleu Is it possible to create symbolic links on a windows machine and move them over, or does it have to be done on the Pi itself. I see them in my mind basically as shortcuts to the real file, but I'm guessing it's a bit more complicated than that.
I have the idea to have a new System for "Classics" and then in the have folders and subfolders within that system eg:
Classics - Super Mario - NES - Mario 1.nes - Mario 2.nes - SNES - Mario 3.sfc - Tetris - Gameboy - Tetris.gb - NES - Tetris 2.nes - SNES - Super Tetris.sfc
Etc.
Do you think that would be possible?
-
@meleu maybe if im free tommorow at work I will knock something up in photoshop.
-
@mattrixk perfectly possible (but I wouldn't use so many directories, too many button presses until launch a game).
Unfortunately symbolic links can only be created in a Linux partition.
-
Is there a way to batch create the links? I really want to combine gb, gbc, nes, snes etc under Nintendo and Gamegear, Sega 32x etc under Sega. And even i don't have that many Roms it seems like a lot of work.
Also is it possible to remove the unused systems afterwards from the es_system.cfg without breaking this method? -
@EctoOne assuming you're comfortable with the basics of a Linux shell, these commands can help you (you need to adapt to your needs):
# in this example I'm creating links for every file in gameboy directory original_system="/home/pi/RetroPie/roms/gb" destination_system="/home/pi/RetroPie/roms/nintendo" while read -r file; do ln -s "$original_system/$file" "$destination_system/$file" done < <(ls "$original_system")
You guys need to keep in mind that scraped data don't work using this method.
Also is it possible to remove the unused systems afterwards from the es_system.cfg without breaking this method?
I didn't test, but I can't see a problem.
-
@meleu said in Create a custom ES system able to launch games for many systems:
You guys need to keep in mind that scraped data don't work using this method.
Well in that case i won't use it. Thanks for getting my hopes up! :P (Just kidding)
-
@EctoOne @meleu are you able to create a new gamelist within the kanomi folder that will recognize the linked games?
@EctoOne if you see the steps in my original post that inspired @meleu's method, you would be able to create a new gamelist for the "kanomi" system and have metadata etc. in the coming days I will have an updated process for my method. It works just like the Arcade folder.
-
@meleu said in Create a custom ES system able to launch games for many systems:
You guys need to keep in mind that scraped data don't work using this method.
Actually I meant "scraped data don't work automatically". You'll need to edit gamelist.xml.
edit: I updated the OP with this info.
-
@meleu perfect! And my recommendation is to copy paste the gamelist info for each rom from the original gamelist and just update the path for the
drapeddata to point to the folder location.Edit: Scraped - stupid phone!
-
@meleu Ahh good to know, will try it on the weekend.
-
Can the games be scraped in a custom system?
-
@lilbud I think scrapers that uses hashes cand do it. Sselph can, but I think you'll need to invoke it from command line (not the retropie_setup frontend).
UPDATE: I tested Sselph's scaper from RetroPie-Setup menu and it works pretty well. There's no need to do any tweak, just select konami in
Scrape chosen system
. -
@lilbud but it would duplicate several files...
When I have a free time I'll try to automate this thing...
Edit: Duh! With an automated way to create a gamelist.xml there's no need to use symbolic links... Why can't I stop writing these damn scripts?!?! Am I a bash addicted? Should I look for a professional treatment?
-
@lilbud I've just used the ES builtin scraper, and when I chose only KONAMI to scrape, I got this warning:
And indeed the results aren't very accurate, but it works reasonably well:
Let me see what sselph's scraper can do...
UPDATE: sselph scraper in RetroPie-Setup runs pretty well and (as expected) much faster than the ES scraper.
-
@meleu any update on how save states work? Where do the save files get saved? If I play TMNT in the konami folder and save progress. Will I be able to open my saved game from the Konami folder? I am guessing that the script runs the same as we discussed in the other thread? Games played in konami will save in Konami, and i open the same game in NES folder, it will not have that saved game info.
Basically, the 2 folders are independent. I can't play in one folder and then access the saved info from the other folder. Correct?
Edit: also launching images - I assume that the launching image will match whatever the current launch image is within the NES folder? So if all my NES roms launch an NES splash, when i launch from konami i will still get the NES splash?
-
Where do the save files get saved?
The Save States will be saved next to the rom in the same folder unless you manually override this in
/opt/retropie/configs/konami/retroarch.cfg
. You might be able to fix this if you use Symbolic Links for the Save States in the Konami as well.also launching images
It will look for the "Konami" system launching image at
/opt/retropie/configs/konami/launching.jpg
and each games's launching image/opt/retropie/configs/konami/RomName-launching.png
Symbolic Links are your friend!
This is why @lilbud said "Don't try this at home, kids!"
-
@backstander Hmmmmmm...Maybe @meleu can expand on this, but i think the point of @meleu script is that we are not creating /opt/retropie/configs/konami/ therefore none of the locations you mention in your post exist. In my original build of how this works i created the configs folder and the retroarch.cfg, thus launching.jpg and save files would work. The problem was you had to place your rom in a new roms folder of the same name, thus having 2 instances of 1 rom as well as needing to set the roms emulator. My understanding of the sybmolic link is that it is linking to the rom in its original folder or example nes and then the script says, use the
./configs/nes/retroarch.cfg
This would mean that it isn't using the konami.cfg and there is no location to launch an image from either. -
but i think the point of @meleu script is that we are not creating /opt/retropie/configs/konami/
After a closer look at @meleu script, I believe you are correct! On step 8, it gets the system's name to launch from so theoretically it should use the corresponding
/opt/retropie/configs/
directory's retroarch.cfg but without fully testing it myself, I'm not sure what it actually does lol. Since it also points to the actual ROM location, it should keep the Save States right next to that ROM in it's original location but again, it would be worth a test as well.The launching images I'm not sure what will happen. Will it look for it in the correct directory or
/opt/retropie/configs/konami/launching.jpg
. I'm not sure how launching images get invoked in the code. -
@backstander said in Create a custom ES system able to launch games for many systems:
This is why @lilbud said "Don't try this at home, kids!"
Maybe if y'all listened to me, you would've not jumped into this rabbit hole. Especially @meleu, he is so far into the bash rabbit hole, you'd have to skydive to the bottom.
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.