This section describes work done on my own RetroPie theme. Note that some of the folders below are named as per the build used and in other builds might use different folders, e.g. _art instead of _inc and other names for ROM artwork.
- Custom themes should be placed in:
/opt/retropie/configs/all/emulationstation/themes
- General folder structure used:
…/themes/my_theme/theme.xml
- This is the main theme description file. It is “included” by each system level theme.xml file (see below) and is the best place to put items that are common to all systems. Any system level variations can be put in the system specific theme.xml
…/themes/my_theme/_inc/
- Folder for artwork and fonts files used by the main XML file
…/themes/my_theme/<system>/theme.xml
- The system level specific file referenced above. Usually used for defining system specific parameters referenced in the main theme.xml file, such as the system description. Can customise/override elements defined in the main file with elements specific to the system
- “shortdescription” and “longdescription” are defined per system in each system level theme.xml then used in the main theme file
- in the RetroPie Config “system” page the position of “md_image” is adjusted to more suit the custom design of this page. Whereas in most pages the background contains all the graphic elements, in the RetroPie Config page the extra elements “pi” and “cogs” SVG images are sized & positioned from within the system theme file
…/themes/my_theme/<system>/_inc/
- Folder for system level artwork; e.g. background / logo files
- ROM game artwork is stored in the each system folder, each artwork folder containing files referenced by the ROM name
/home/pi/RetroPie/roms/
roms/<system>/boxart/
has the box art or poster art for each gameroms/<system>/snaps/
has video previews of each gameroms/<system>/marquee/
if present, has the arcade cabinet marquee (illuminated image in top of cabinet) for each game
- Notes
- Use “helper” images to determine areas for a theme such as text boxes. These are sized & positioned the same same as the element they are “helping” and show the position and limits of the area of interest
- For metadata, if no position is specified for the item it will follow immediately after its associated label
- If a particular display element is defined but not used in a particular display view (e.g. system_description required in system view, but not in detailed view) then this must be specifically “hidden” so that it does not appear where unwanted. Generally setting colour transparency to 00 is sufficient
- Errors are reported in the
/opt/retropie/configs/all/emulationstation/es_log.txt
file and can be useful for tracking issues whilst developing themes. It is easiest to access this through FileZilla and SSH into RetroPie
References / Resources
- Files on Titan:
/Archive_Jekyll/files/computer/retro-arcade/…
- Folder
MyTheme stuff
has the PhotoShop PSD masters for the Systems and Game detail pages
- Folder
- RetroPie docs for creating EmulationStation themes
Retro-Arcade Navigator |
Retro Arcade Machine |
Install RetroPie on Raspberry Pi 4B |
RetroPie – EmulationStation |
>> RetroPie – Themes |