Making a Recalbox theme

45 pages · 8 sections
FRENESDE Show everything Create my theme

The header: the <theme> tag

What identifies your theme — and belongs ONLY in theme.xml.

<theme> is the root of every XML file in a theme. But its identity attributes only make sense in theme.xml: that is the file the theme manager reads to know what it is dealing with.

Remember In theme.xml, fill them all in: without them, your theme shows up with no name, no version, and the manager does not know which screens it works on. In the other files, write a bare <theme>: repeating them brings nothing and can sow confusion.

The attributes

AttributeRoleExampleIf missing
nameName shown in the theme listname="My Theme"the folder name
versionTheme versionversion="1.2"not shown
authorThe authorauthor="Benoît"not shown
recalboxMinimum Recalbox version requiredrecalbox="10.0"all versions
compatibilitySupported screen types: hdmi, crt, jamma, tatecompatibility="hdmi,crt"hdmi
resolutionsSupported resolutions: qvga, vga, hd, fhdresolutions="hd,fhd"fhd,hd

compatibility and resolutions are exactly the pictograms shown by the theme manager: HDMI / CRT / JAMMA / TATE on one side, SD 240p / SD+ 480p / HD 720p / FULLHD 1080p on the other. Announcing them wrong is promising what the theme does not deliver.

⚠️ Without them, your theme cannot be published in the theme manager: the official repository requires a name, a version and an author. See Sharing your theme.

The two cases

In theme.xmlthe full tag:

<theme name="My Theme" version="1.2" author="Benoît"
       recalbox="10.0" compatibility="hdmi,crt" resolutions="hd,fhd">
  …
</theme>

In every other file of the theme — the bare tag:

<theme>
  <view name="system"> … </view>
</theme>