Crear un tema de Recalbox

45 páginas · 8 secciones
FRENESDE Mostrar todo Crear mi tema

Declarar una opción: <subset>

La sintaxis exacta, en dos tiempos.

Una opción se construye en dos tiempos: se declara, y luego se enumeran sus elecciones.

<subset subset="colorTheme" declara el GRUPO + su título <include … name="1 - Azul"> <include … name="2 - Rojo"> cada elección = un archivo cargado por encima Ajustes ▸ Tema Colores del tema ◁ Azul ▷ lo que ve el usuario en su máquina el prefijo « 1 - » sirve para ORDENAR las elecciones: no se muestra

1. Declarar el grupo

<subset subset="colorTheme"
        title="THEME : Colors"      title.fr="THÈME : Couleurs"
        help="Choose the color set"  help.fr="Choisissez la palette" />
AtributoFunción
subsetel identificador del grupo — es él quien enlaza las elecciones entre sí
titleel rótulo que el usuario lee en el menú
helpla frase de explicación bajo el rótulo

title y help aceptan un sufijo de idioma: title.fr, title.es… La versión sin sufijo sirve de repliegue.

2. Enumerar las elecciones

Cada elección es un <include> que lleva el mismo subset:

<include subset="colorTheme" name="Blue"  name.fr="Bleu">${root}/options/couleurs/bleu.xml</include>
<include subset="colorTheme" name="Green" name.fr="Vert">${root}/options/couleurs/vert.xml</include>
<include subset="colorTheme" name="Red"   name.fr="Rouge">${root}/options/couleurs/rouge.xml</include>
AtributoFunción
subseta qué grupo pertenece esta elección
nameel rótulo de la elección en la lista (traducible: name.fr)

La elección « ninguno »

Un <include> vacío da la opción « ninguno » — útil para dejar el tema en su estado original:

<include subset="shader" name="None" name.fr="Aucun"></include>

Proponer una elección solo en ciertas pantallas

<include subset="systemView" if="(hd | fhd) and !tate"
         name="Vertical left" name.fr="Vertical gauche">${root}/_views/vertical.xml</include>
<include subset="systemView" if="crt | jamma"
         name="Horizontal">${root}/_views/horizontal.xml</include>

El usuario solo ve las elecciones pertinentes para su material. Así es como el filtro retro no aparece en una pantalla catódica, que no lo necesita.

El contenido de un archivo de elección

Es un archivo de tema ordinario, que solo redefine lo que cambia:

<?xml version="1.0" encoding="UTF-8"?>
<theme>
  <variables>
    <variable name="CouleurPrincipale" value="7C2E44" />
  </variables>
</theme>

Tres líneas útiles, y todo el tema pasa al rojo — a condición de haber construido el tema sobre variables en lugar de sobre colores escritos en duro.

⚠️ Las opciones se cargan ANTES que las vistas. Una variable vale para lo que se lee después de ella: es por ahí por donde debe pasar la elección para que las vistas la aprovechen.

El orden a escribir en theme.xml:

<theme name="Mon Thème" …>
  <include>${root}/variables.xml</include>      <!-- 1. los valores por defecto -->
  <include>${root}/options.xml</include>        <!-- 2. la elección los redefine -->
  <include>${root}/views/system.xml</include>   <!-- 3. las vistas, que los emplean -->
</theme>

Lo que ocurre cuando la persona cambia de elección

Recalbox relee el tema entero — todos los archivos, desde theme.xml, con la nueva elección activa. Por eso aparece en ese momento un breve « Actualizando el tema… ».

Una opción que solo cambia colores redefine únicamente variables. Es la manera más corta de escribir un juego de colores — y la principal razón para usar <variables>.