Themes ====== EmulationStation allows each system to have its own "theme." A theme is a collection of resources defined in an XML document. Themes are loaded like this: 1. Initialize to default values. 2. If `$HOME/.emulationstation/es_theme_default.xml` exists, load it. 3. If there is a `theme.xml` present in the root of a system's `path` directory, load it. IF NOT, If `$HOME/.emulationstation/%SYSTEMNAME%/theme.xml` exists, load it. Example ======= ``` 0000FF 00FF00 ./../all_themes/font.ttf 0.045 ./../all_themes/font.ttf 0.035 ./theme/background.png true ./theme/logo.png false ./../all_themes/scrollSound.wav ``` Themes must be enclosed in a `` tag. All paths automatically expand `./` to the folder containing the theme.xml. All paths automatically expand `~/` to the home directory ($HOME on Linux, %HOMEPATH% on Windows). Stuff you can define ==================== Fonts ===== Fonts are defined like so: ``` ./some/path/here.ttf 0.035 ``` `` - Default size: 0.045. `` - Default size: 0.035. `` - Default size: 0.15. Colors ====== Colors are defined in hex, like this: `00FF00FF` or `00FF00` (without the alpha channel specified - will assume FF) `` - Default: 0000FFFF. `` - Default: 00FF00FF. `` - Default: 000000FF. `` - Default: 00000000. `` - Default: 48474DFF. `` - Default: FFFFFFFF. `` - Default: DDDDDDFF. Images ====== Images are defined like this: ``` ./some/path/here.png true ``` Pretty much any image format is supported. `` - No default. `` - No default. `` - No default. `` - No default. `` - Nine patch. Default is the "button.png" resource. Sounds ====== Sounds are defined like this: `./some/path/here.wav` Only .wav files are supported. `` - No default. Played when a list scrolls. `` - No default. Played when a game is launched. `` - No default. Played when leaving a folder in the game list. `` - No default. Played when the menu is opened. `` - No default. Played when the menu is closed. Nine Patches ============ EmulationStation borrows the concept of "nine patches" from Android (or "9-Slices"). Currently the implementation is very simple and hard-coded to only use 48x48px images (16x16px for each "patch"). Check the `data/resources` directory for some examples (button.png, frame.png). -Aloshi http://www.aloshi.com