Runcommand launch images automatically chosen for ROM-specific emulatorchoices
-
Hey all
When having all MAME/FBA/ADVMAME roms mixed in the Arcade folder, as discussed in this thread, I'd still love to have launch images match, so the MAME image shows with some roms and FBA image with other roms.
In the above link, @dudleydes mention runcommand-onstart script and here's the doc for this function. I just don't really understand what to do with it.
Anyone has experience with this? @meleu perhaps?
-
@andershp well, it came to my mind a trick to (possibly) achieve what you want, but I'm kinda busy with other projects currently. If some other bash lover ( @cyperghost @hiulit ?) wanna look into it, my idea is making
runcommand-onstart.sh
do the following:- get the emulator of choice for the ROM that is going to be launched (the second arg
$2
for -onstart script). - using the emulator's name, detect the SYSTEM (
mame
orfba
). - create a symbolic link
~/RetroPie/roms/arcade/images/${ROM_NAME}-launching.png
pointing to/opt/retropie/configs/${SYSTEM}/launching.png
(note: take care of the image extension, it can be jpg).
I hope it helps in some way.
- get the emulator of choice for the ROM that is going to be launched (the second arg
-
-
@cyperghost said in Runcommand launch images automatically chosen for ROM-specific emulatorchoices:
@meleu Thx
@AndersHP I just made my progress through the Pimoroni OnOff SHIM that took nearly my whole sparetime for yesterday. Maybe I can take a look but don't expect a fast answerThanks all, no fast answer expected, just take your time, I will be looking forward to it.
-
@meleu I'm currently working on another project that I'll release soon, but yeah, I'd gladly take a look and help whenever and however I can :)
But I have to admit that I've never worked withruncommand-onstart.sh
. -
@hiulit The
runcommand-onstart.sh
is a simple shell script job that provides $1-$4 command calls for any script that would be called there.$1 - the system (eg: atari2600, nes, snes, megadrive, fba, etc). $2 - the emulator (eg: lr-stella, lr-fceumm, lr-picodrive, pifba, etc). $3 - the full path to the rom file. $4 - the full command line used to launch the emulator.
Refer to here: https://github.com/RetroPie/RetroPie-Setup/wiki/Runcommand
So it is a relativ simple taks to solve ;) I have to admit that I never worked with launch images so I'm not sure if I can provide a working solution in the first loop as I would provide a shell script that was developed out of my head :)So for example my
runcommand-onstart.sh
looks like thispkill -STOP mpg123 $HOME/RetroPie/scripts/RetroAchievements.sh "$3" "$1"
So I appreciate people that help others ;)
-
@cyperghost I cannot see through what your example of the onstart script does, but launching images are generally placed at /opt/retropie/configs/systemname/ and named as launching.png/jpg.
So, I'm not a coder, but if I was to place a launching.png for my mame games in /opt/retropie/configs/mame-libretro/ , and similar for advmame and fba, maybe the script could somehow aquire the emulatorchoice and point in either of these with the $2 command?
But be aware, that some games can have specific launching images, and that'd be cool if this takes higher priority over the system ones.
These are placed at /RetroPie/roms/systemname/images/ and named as RomName-launching.png. -
@AndersHP That was just an example how
runcommand-onstart.sh
can be used.But here you can find some info about String manipulation with BASH and you can participate also here in our Shell Scripting Topic
-
@cyperghost OK, I catch your draft, but since I'm no coder whatsoever, prepare to have a laugh.
Does the $1 and $2 mean, that it catches the actual emulators and inserts these instead of $1 and $2?
So, a possible test could be to have this in the script (written in my own coding language) :Dif $3/images/[howtoinsertromname]-launching.png = present then show that image, if not:
if $2 = lr-fbalpha
show /opt/retropie/configs/fba/launching.pngor
same as above but with mame and advmame.
-
I have no idea of coding either but i would go for something simple like this:
show /path-to-images/$2-launching.png
well, you have to replace the actual command of course.
-
I was thinking about this, and it always kinda bothered me that the launching images are scattered around in subfolders on the SD card and won't even be moved by the usbmount service. I wish we could have a dedicated
launchimage
folder like we have thesplashscreen
folder already. This then could (maybe?) work when on a USB Stick, and it would be easier to share custom launching image sets.
And in addition to the OPs request, and I myself could see the need now after installing some Ports, the script could look like this:if exists /path/$2-launch.png // Checks if an image for a specific emulator exists show /path/$2-launch.png else if exists /path/$1-launch.png // Checks for an image for a specific system show /path/$1-launch.png else do nothing
-
This snipplet extracts all relevating info out of $3
#!/bin/bash romfile=$1 #romfile="/home/pi/RetroPie/roms/arcade/mygame.zip" romname=${romfile##/*/} echo $romname rompath=${romfile%/*.*}/ echo $rompath romroot=${rompath%/*/}/ echo $romroot
You will optain the name of the rom, the path to it and the rootdirectory of your rom location.
Now you need a case selection as @meleu wrote out of the called emulator you obtain with $2
system=$2 case "$system" in "pifba"|"lr-fba") system="fba" ;; "mame2003"|"mame2010") system="mame" ;; esac
Now rebuild path were your image is located. But now you have your toolkit and you can try to write a working script with a symlink pointing to your launch image.
-
I was at work, on my night shift. Everything was calm and I was fighting agains the mythological Morpheus when I looked at the computer and glanced the bash prompt...
Here is the result: https://github.com/meleu/share/blob/master/system_specific_arcade_launching_images.sh
To download it to your RetroPie:
wget https://raw.githubusercontent.com/meleu/share/master/system_specific_arcade_launching_images.sh
After downloading do the following:
cat system_specific_arcade_launching_images.sh >> /opt/retropie/configs/all/runcommand-onstart.sh
WARNING! WARNING! WARNING
I made some quick tests on an environment that only mimic a RetroPie system but didn't test on an actual RetroPie (you didn't think I had an actual RetroPie system at work, did you?). That being said, don't blame me if sh!t happens. ;)
Cheers!
-
@meleu That's great, thanks! Will try it out! :)
-
@meleu Nice! You are so quick coding stuff!!! ;)
-
@meleu said in Runcommand launch images automatically chosen for ROM-specific emulatorchoices:
mythological Morpheus
Would you take the blue pill or the red one NEOleu?
-
Any One Piece fan here? :)
I would like to know if it works for what you want @AndersHP
Have a nice day fellows!
-
Hmm.. nothing shows, just the run command menu. Tried copying one of my launching images to the arcade config folder, and that showed fine.
Could it be because my roms are run from USB?
-
@andershp please, give me the output of these commands (paste on http://dumptext.com/):
ls -l /opt/retropie/configs/mame/launching.* ls -l /opt/retropie/configs/fba/launching.* ls -l /home/pi/RetroPie/roms/arcade/images/
And just for checking:
cat /opt/retropie/configs/all/runcommand-onstart.sh
-
There's no folder called "mame". It's either mame-advmame og mame-libretro.
Sorry, this is probably me not being specific enough. The 3 types in my arcade folder is fba, mame2003 and advmame.the fba related line returns this:
-rw-r--r-- 1 pi pi 548406 Jan 11 20:24 /opt/retropie/configs/fba/launching.png
I have no images folder in the arcade folder. Should the three corresponding system images be placed in there?
When typing the last line I can confirm that your code is there. Do you want me to SSH into the pi and get the code, or I guess the above things are the reason for my issues..
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.