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.
`` - No default. Large image, shown in the system select menu.
`` - 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