Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

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:


    [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 code
    • use trap to delete the /tmp files
    • add option to apply color to the logo
    • add option to apply color to the background
    • add option to use a solid color as a background
    • add an option to put a color belt as the logo background
    • add 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
    0_1484226086401_launching.png

    fba
    0_1484226221525_launching.jpg

    mame-libretro
    0_1484226334802_launching.jpg

    pcengine (tg16)
    Generated with the --logo-belt option.
    tg16

    metapixel theme

    game boy color (needs a better color for the "press a button" text)
    0_1484226534834_launching.png

    material theme

    master system
    0_1484190876151_launching.png

    megadrive
    0_1484191362048_launching.png



  • cool examples 2

    simple theme

    32x
    0_1484226758252_launching.png

    mame
    0_1484226698976_launching.png

    nbba theme

    game boy advance
    0_1484086447873_nbba-gba.png

    fds
    0_1484226948888_launching.jpg

    tronkyfran theme

    fba
    0_1484227108466_launching.jpg



  • 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
    0_1484074145666_bad-tronkyfran-atari.png

    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
    0_1484074240141_bad-cleanlook-pcengine.png

    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
    0_1484074420877_bad-simple-neogeo.png



  • 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 the theme.xml. I need to improve this searching method (e.g. the @mattrixk 's IO theme use yet another <include> inside the io/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:
    0_1484181938500_megadrive.png

    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 the xmlstarlet 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.



  • @meleu

    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.