Les variables permettent d'écrire une seule fois ce qui change d'un système à l'autre, d'une langue à l'autre ou d'une machine à l'autre. Elles s'écrivent ${nom.de.la.variable} et se résolvent à chaque chargement du thème.
<text name="titre" extra="true" text="${system}" pos="0.5 0.1" origin="0.5 0.5" />
<image name="logo" path="${system.logo}" />
<variables>.$Les variables listées ci-dessous datent de Recalbox 9. Elles sont toujours lues par Recalbox 10.1, mais elles sont dépréciées et pourront disparaître : remplacez-les par leurs équivalents
${...}.
Contrairement aux variables ${...}, elles ne sont résolues que dans les chemins (path) et dans les inclusions, pas partout.
| Ancienne variable | Remplacement recommandé | Contenu |
|---|---|---|
$system |
(aucun) | Dossier de thème du système en cours |
$language |
${settings.language} |
Code de langue (fr) |
$country |
${settings.locale} |
Code pays (FR) |
$fullname |
${system} |
Nom complet du système |
$type |
${system.type} |
Type de système |
$pad |
${system.input.pad} |
Nécessité d'une manette |
$keyboard |
${system.input.keyboard} |
Nécessité d'un clavier |
$mouse |
${system.input.mouse} |
Nécessité d'une souris |
$releaseyear |
${system.releasedate} |
Année de sortie du système |
$netplay |
(aucun) | yes / no : le système gère le netplay |
$lightgun |
(aucun) | yes / no : le système a des jeux au pistolet |
$crt |
${hardware.crt} |
yes / no : adaptateur CRT actif |
$jamma |
${hardware.jamma} |
yes / no : adaptateur JAMMA actif |
$tate |
${display.tate} |
yes / no : mode TATE |
$tateleft |
${display.tateleft} |
yes / no : TATE tourné à gauche |
$tateright |
${display.tateright} |
yes / no : TATE tourné à droite |
$overscan |
${display.overscan} |
yes / no : CRT sans JAMMA |
$resolution |
${display.resolution} |
qvga, vga, hd ou fhd |
$system reste utile dans un cas précis : dans un chemin, si <theme>/$system/fichier n'existe pas, Recalbox essaie automatiquement <theme>/default/fichier avant d'abandonner. Aucune variable ${...} ne reproduit ce repli.
<include>./$system/custom.xml</include>
Valeurs possibles de $type : arcade, computer, console, engine, fantasy, handheld, port, virtual, virtual-arcade.
Valeurs possibles de $pad, $keyboard et $mouse : mandatory, recommended, optional, no.
Dans un chemin, $random(a,b,c) tire au hasard une des valeurs proposées. Le tirage est fait une seule fois par chargement de thème : toutes les occurrences de $random(...) d'un même fichier renvoient la même valeur, ce qui permet de faire varier ensemble un fond, une couleur et une police.
<image name="fond" extra="true" path="./art/$random(nuit,jour,aube)/fond.png" />
<image name="cadre" extra="true" path="./art/$random(nuit,jour,aube)/cadre.png" />
Pour un tirage aléatoire dans un texte, utilisez plutôt les variables globales ${random.between(...)} et ${random.range(min,max)}.