runcommand launching images for ANY theme
-
Yo!
I've got excited after making that script to automatically generate launching images for the Carbon theme and then I've made another script to generate launching images for ANY theme.If you don't know what a "launching image" is, take a look at these links:
- https://github.com/retropie/retropie-setup/wiki/runcommand#adding-custom-launching-images
- https://retropie.org.uk/forum/topic/4611/runcommand-system-splashscreens
[UPDATE 22/feb/2017]: It's part of RetroPie-Setup now!
You just have to update RetroPie-Setup scripts and then "Manage Packages" >> "Manage experimental packages" >> "launchingimages" >> "Install from binary"After the installation, the option "launchingimages" will be available at RetroPie-Setup >> "Configuration / tools" >> "launchingimages". Just follow the instructions on screen. ;-)
[OLD POST]
It's still a work in progress but perfectly usable.
The script is here: https://github.com/meleu/generate-launching-images/blob/master/generate-launching-images.sh
And you can download it this way:
wget https://raw.githubusercontent.com/meleu/generate-launching-images/master/generate-launching-images.sh
And to assure that it's executable:
chmod +x generate-launching-images.sh
usage
USAGE: generate-launching-images.sh -t theme-name [options] Use '--help' to see all the options -h, --help Print the help message and exit. -t, --theme THEME Create launching images based on THEME. This is the only mandatory option in order to generate the images (see --list-themes). --list-themes List the available themes and exit. --extension EXT Set the extension of the created image file (valid options: png|jpg). --no-ask Do not show the created images and ask for confirmation (blindly accept the created images). --loading-text "TEXT" Set the "LOADING" text (default: "NOW LOADING"). --press-button-text "TEXT" Set the "PRESS A BUTTON" text (default: "PRESS A BUTTON TO CONFIGURE LAUNCH OPTIONS"). --loading-text-color COLOR Set the color for the "LOADING" text (default: white). --press-button-text-color COLOR Set the color for the "PRESS A BUTTON" text. (default: gray50). --no-logo Do not put the system logo on the created image. --destination-dir DIR Put the created images in DIR directory tree (default: /opt/retropie/configs/). --system SYSTEM Create image only for SYSTEM (the default is create for all systems found in es_systems.cfg). --show-timeout TIME Show the created image for TIME seconds before ask if the user accept it (see --no-ask). --solid-bg-color [COLOR] Use a solid color as background. If COLOR is omitted, use the color specified by the theme.
check some tips in this post below
TO-DO list
I would do all these before announcing the script here, but it's summer here in Brazil and I need to take my kids to the beach and chill out with my wife. :-)
polish the codeusetrap
to delete the /tmp files- add option to apply color to the logo
add option to apply color to the backgroundadd option to use a solid color as a backgroundadd an option to put a color belt as the logo backgroundadd an option to change the text color.
In the following posts you can see some examples of the generated images.
-
cool examples
Here are some examples of cool generated images:
clean-look theme
arcade
fba
mame-libretro
pcengine (tg16)
Generated with the--logo-belt
option.
metapixel theme
game boy color (needs a better color for the "press a button" text)
material theme
master system
megadrive
-
cool examples 2
simple theme
32x
mame
nbba theme
game boy advance
fds
tronkyfran theme
fba
-
bad examples
tronkyfran theme
The background images from the tronkyfran theme are amazingly beautiful, they alone are good launching images, maybe I'll add an option to generate with no logo (UPDATE: it's already implemented, use the
--no-logo
option).atari2600
clean-look theme
Maybe I'll add an option to put a background belt behind the logo...
UPDATE: the problem below can be avoided using the--logo-belt
option.turbografx
simple theme
the colors make some letters become invisible (UPDATE: you can avoid it using
--loading-text-color
and--press-button-text-color
options).
neogeo
-
very nice! may want to edit the OP to add the additional step of chmod a+x script for our less linux-familiar friends :-)
-
@lilbud said in runcommand launching images for Carbon theme:
@meleu Is there a way to choose color of background per system?
Yep, there's a way to do it, but I didn't implement it yet on my script. It's already in the TO-DO list. ;-)
-
This is fantastic (and can be modified for user-installed themes that aren't in /etc). Any way to get it so that it will run over SSH? It wants to show me each splash, which is fantastic, but PuTTY doesn't display graphics, so the script ends for me (I think)
-
@liquidzoo said in runcommand launching images for ANY theme:
can be modified for user-installed themes that aren't in /etc
Do you mean the themes installed in
$HOME/.emulationstation/themes
? OK. I can do this.Any way to get it so that it will run over SSH?
I think the only way to make it usable over SSH is adding a, let's say,
--yes
option. Where you accept every generated image with no confirmation. Is it enough for you? (Keep in mind that some images won't look so good, as you can see in the bad examples) -
@meleu said in runcommand launching images for ANY theme:
Do you mean the themes installed in
$HOME/.emulationstation/themes
? OK. I can do this.Yes, that's exactly what I mean (I was able to modify my own copy for this, but I'd rather have it as an option if possible)
I think the only way to make it usable over SSH is adding a, let's say,
--yes
option. Where you accept every generated image with no confirmation. Is it enough for you? (Keep in mind that some images won't look so good, as you can see in the bad examples)I think that would be acceptable. The bad examples I did see, and I can work on tweaking things on my end to help avoid that (I will look through the script to see which files are being used).
-
@meleu I was thinking that the system color, would be the background, and the logo would be white
-
@lilbud could you show me an image as an example?
-
@liquidzoo Done and (partially) done.
The script now looks for themes in
$HOME/.emulationstation/themes
too.And to use it over SSH you have to edit the script and set the
yes_flag
to true (I'm assuming you're comfortable to edit a script). I know it's ugly, I've made this way as a fast solution to make it usable for you. I'll polish the code later. -
Fantastic! And yes, I can edit the script myself, thanks for adding the option.
Looks like I need to make some modifications to my theme, though (or add in some sort of a background file). Right now I don't have a separate entry in my xml for a per-system background and it gave some errors. Going to look into it and see what I can come up with.
-
@liquidzoo is your theme available somewhere? I would like to know what's wrong.
or add in some sort of a background file
I'm planning to add an option to make the background as a solid color. It would be useful when there's no background image file.
Another problem is that my script currently looks for the data it needs in the
[SYSTEM_THEME]/theme.xml
, and if not find, it looks in the file that is<include>
d in thetheme.xml
. I need to improve this searching method (e.g. the @mattrixk 's IO theme use yet another<include>
inside theio/io.xml
and my script is currently unable to look at it). -
-
Mine isn't anywhere to view yet. It's a homebrew combination of Carbon and nbba with a little added flair (it also has Genesis and TG16 rather than MegaDrive and PCEngine)
It does have a background defined in the overall theme.xml rather than the individual systems, but I don't know if the script is picking it up.
From the theme.xml (called test.xml):
<image name="background" extra="true"> <!---<tile>true</tile>---> <size>0 1</size> <pos>0.5 0.5</pos> <origin>0.5 0.5</origin> <path>./_art/whitehex.jpg</path> </image>
And the error:
WARNING: No background found for "snes" system.
The launching image for "snes" was NOT created.Repeated for each system (though not every system I have ROMS in, for example it is not there for either PCEngine or TG16)
-
@lilbud I'm not sure if I convert any logo to a white version it will look good... Some logos has several colors. Example:
If the white logo is provided by the theme it's OK, but I'm not sure if applying a color to a logo would be cool...
-
<image name="background" extra="true"> <!---<tile>true</tile>---> <size>0 1</size> <pos>0.5 0.5</pos> <origin>0.5 0.5</origin> <path>./_art/whitehex.jpg</path> </image>
Good that you posted that code snippet! The problem is there!!
To get the XML data in my script I use a tool named
xmlstarlet
. This tool takes the XML Specification very seriously. :-)According to the comments section of XML Specification: "the grammar does not allow a comment ending in
--->
". And thexmlstarlet
doesn't recognize this string as closing comment string.That's the why my script is unable to create images for the pixel theme. I've submitted a PR fixing it, but @Rookervik needs to approve it.
-
That fixed it, for sure. I deleted that comment and it worked, mostly.
Launching image for "fba" created with success!
Launching image for "fds" created with success!
Launching image for "gamegear" created with success!
Launching image for "gb" created with success!
Launching image for "gba" created with success!
Launching image for "gbc" created with success!
Launching image for "mastersystem" created with success!
Launching image for "megadrive" created with success!
Launching image for "n64" created with success!
Launching image for "neogeo" created with success!
Launching image for "nes" created with success!
Launching image for "pcengine" created with success!
Launching image for "ports" created with success!
Launching image for "psx" created with success!
Launching image for "sega32x" created with success!
Launching image for "segacd" created with success!
Launching image for "sg-1000" created with success!
Launching image for "snes" created with success!Am I correct in thinking that it's only looking for the systems that have emulators installed, and even then only certain naming structures (megadrive over genesis, pcengine over tg16)?
-
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.