Themes have a certain folders and files structure. Everything is described below.
All the files that make up a theme are in XML
format. This is a simple language to use. It uses classic tags such as <tag></tag>
or self-closing tags <tag />
.
Every theme is made up of lots of folders.
For each system available in Recalbox, you have a folder containing all the images corresponding to that system.
Basic virtual systems correspond to systems such as favorites, last played games, multiplayer games, etc.
Here's a list of basic virtual systems and their folder names.
Virtual system | Folder name |
---|---|
Arcade | arcade |
All games | auto-allgames |
Last played | auto-lastplayed |
Lightgun | auto-lightgun |
Multiplayer | auto-multiplayer |
TATE Mode | auto-tate |
Favorite | favorites |
Virtual systems by genre correspond to the game genres you retrieve from your game scraps. You can also modify the genres of each of your games yourself.
Here's the list of virtual systems by genre and their folder names.
Virtual system | Folder name |
---|---|
Action (all) | auto-action |
Action - Battle Royale | auto-actionbattleroyale |
Action - Beat'em up | auto-actionbeatemup |
Action - Fighting | auto-actionfighting |
Action - First Person Shooter | auto-actionfirstpersonshooter |
Action - Platformer | auto-actionplatformer |
Action - First Person Shooter | auto-actionfirstpersonshooter |
Action - Rhythm & music | auto-actionrythm |
Action - Shoot-em up | auto-actionshootemup |
Action - Shoot with accessories | auto-actionshootwithgun |
Action - Infiltration | auto-actionstealth |
Action - Infiltration | auto-actionstealth |
Adventure - Adventure graphics | auto-adventuregraphics |
Adventure - Interactive Film | auto-adventureinteractivemovie |
Adventure - Realtime 3D Adventure | auto-adventurerealtime3d |
Adventure - Survival Games | auto-adventuresurvivalhorror |
Adventure - Text Adventure | auto-adventuretext |
Adventure - Visual news | auto-adventurevisualnovels |
Board game | auto-board |
Casino | auto-casino |
Casual games | auto-casual |
Multi-game compilation | auto-compilation |
Demo scene | auto-demoscene |
Digital Cards | auto-digitalcard |
Educative games | auto-educative |
Multiplayer board game | auto-party |
Pinball | auto-pinball |
Puzzle & logic | auto-puzzleandlogic |
Role-playing (all) | auto-rpg |
Role-Playing - Action Role-Playing | auto-rpgaction |
Role Playing - Dungeon Exploration | auto-rpgdungeoncrawler |
Role-Playing - First Person Party based | auto-rpgfirstpersonpartybased |
Role-playing - Japanese Role-Playing Games | auto-rpgjapanese |
Role-Playing - Massive Multiplayer Role-Playing Games | auto-rpgmmo |
Role-Playing - Tactical Role-Playing | auto-rpgtactical |
Simulation - Construction and management | auto-simulationbuildandmanagement |
Simulation - Hunting and fishing | auto-simulationfishandhunt |
Simulation - Life simulation | auto-simulationlife |
Simulation - Science fiction | auto-simulationscifi |
Simulation - Simulation vehicle | auto-simulationvehicle |
Sport (all) | auto-sports |
Sport - Competitive sport | auto-sportcompetitive |
Sport - Fighting/Violent sport | auto-sportfight |
Sport - Racing | auto-sportracing |
Sport - Sports simulation | auto-sportsimulation |
Strategy (all) | auto-strategy |
Strategy - Exploration, expansion, exploitation & extermination | auto-strategy4x |
Strategy - Artillery | auto-strategyartillery |
Strategy - Automated battles | auto-strategyautobattler |
Strategy - Multiplayer battle arena | auto-strategymoba |
Strategy - Real-time strategy games | auto-strategy-artillery |
Strategy - Real-time strategy games | auto-strategyrts |
Strategy - Turn-based strategy | auto-strategytbs |
Strategy - Tower defense | auto-strategytowerdefense |
Strategy - War game | auto-strategywargame |
Trivia | auto-trivia |
Arcade virtual systems correspond to the arcade manufacturers listed.
Here's a list of arcade virtual systems by manufacturer and their folder name.
Système virtuel | Nom du dossier |
---|---|
Acclaim | auto-arcade-acclaim |
Atari | auto-arcade-atari |
Atlus | auto-arcade-atlus |
BanPresto | auto-arcade-banpresto |
Capcom | auto-arcade-capcom |
Capcom CPS1 | auto-arcade-capcom-cps1 |
Capcom CPS2 | auto-arcade-capcom-cps2 |
Capcom CPS3 | auto-arcade-capcom-cps3 |
CAVE | auto-arcade-cave |
Data East | auto-arcade-dataeast |
Exidy | auto-arcade-exidy |
International Games System (I.G.S) | auto-arcade-igs |
IREM Software Engineering | auto-arcade-irem |
Incredible Technologies | auto-arcade-itech |
Jaleco | auto-arcade-jaleco |
Kaneko | auto-arcade-kaneko |
Konami | auto-arcade-konami |
Midway | auto-arcade-midway |
Mitchell | auto-arcade-mitchell |
NAMCO | auto-arcade-namco |
Neo-Geo | auto-arcade-neogeo |
Nichibutsu | auto-arcade-nichibutsu |
Nintendo | auto-arcade-nintendo |
NMK | auto-arcade-nmk |
Psikyo | auto-arcade-psikyo |
Raizing | auto-arcade-raizing |
Sammy | auto-arcade-sammy |
SEGA | auto-arcade-sega |
SEGA System 16 | auto-arcade-sega-system16 |
SEGA System 32 | auto-arcade-sega-system32 |
Seibu | auto-arcade-seibu |
SETA | auto-arcade-seta |
SNK | auto-arcade-snk |
TAITO | auto-arcade-taito |
TAITO F3 | auto-arcade-taito-f3 |
Technōs | auto-arcade-technos |
TECMO | auto-arcade-temco |
TOAPLAN | auto-arcade-toaplan |
VISCO | auto-arcade-visco |
At the root of any theme, you'll find a file called theme.xml
. This contains information about general objects such as menu configuration, help bar, etc.
In each system seen above, you'll have an xml file (the file name will depend on your preference) which will contain system information such as information texts and the colors of the 4 vertical bars on the right of your screen with the default theme.
The file structure is as follows:
<theme>
<include>path/to/include1</include>
<include>path/to/include2</include>
...
<include>path/to/includeX</include>
<view name="...">
<object>
<property1>value</property1>
<property2>value</property2>
...
<propertyX>value</propertyX>
</object>
...
</view>
...
<view name="...">
<object>
...
</object>
...
</view>
</theme>
The exact content is described in the other theme tutorials.
<theme>
and <include>
tags work<theme>
For this example, any xml file for the theme begins between the <theme></theme>
tags. With Recalbox 9.2, this tag can contain 5 attributes:
name
The name
attribute indicates the theme name. This can be different from the theme folder name. This name will be visible in the list of available themes.
Example:
<theme name=“My own theme”>
...
</theme>
Without this attribute, the theme folder name will be used.
recalbox
The recalbox
attribute indicates the minimum version of Recalbox the theme can be used with. This allows you to indicate whether the theme is compatible with the version of Recalbox installed.
Example:
<theme recalbox=“9.2”>
...
</theme>
Without this attribute, the theme can be used on any version of Recalbox.
version
The version
attribute indicates the version of the theme. If this information exists, it will be visible in the list of available themes.
Example:
<theme version=“3.1”>
...
</theme>
Without this attribute, the theme version will not be displayed in the theme list.
compatibility
The compatibility
attribute indicates the type of screen the theme is compatible with. The theme can be compatible with a single screen type or several.
List of possible values:
hdmi
: HDMI screenscrt
: CRT screensjamma
: JAMMA screenstate
: TATE vertical screensExample:
<theme compatibility=“hdmi,jamma”>
...
</theme>
Without this attribute, the theme will be considered hdmi
compatible only.
resolutions
The resolutions
attribute is used to indicate the resolution ranges with which the theme is compatible. It can contain several values.
List of possible values:
qvga
: QVGA resolutions (<= 288p)vga
: VGA resolutions (<= 576p)hd
: HD resolutions (<= 920p)fhd
: Full HD resolutions (> 920p)Example:
<theme resolutions=“hd,fhd”>
...
</theme>
Without this attribute, the theme will be considered hd, fhd
compatible only.
<formatVersion>
The formatVersion
tag is used to indicate the version of the content format governing the theme.
<formatVersion>5</formatVersion>
<include>
The <include></include>
tag is used to fetch/include another file containing other information related to the current theme.
Example:
<include>
/path/to/file
</include>
<include path=“/path/to/file” />
subset
The subset
attribute is used to define the option group to which the content of the <include>
tag belongs. There is a defined list of possible option groups:
colorset
: colorsiconset
: iconsmenuset
: menussystemview
: systems listgamelistview
: game listsgameclipview
: game clips<include subset=“iconset”>
/path/to/file/of/iconsets.xml
</include>
<include subset=“iconset” path=“/path/to/file/of/icons.xml” />
name
The name
attribute is used to specify a name for the file to be included.
This is used in conjunction with the
subset
attribute.
<include subset=“menuset” name=“Light blue”>
/path/to/file/of/menus.xml
</include>
<include subset=“menuset” name=“Light blue” path=“/path/to/file/of/menus.xml” />
<view>
The <view></view>
tag and its child objects are described in the objects page.