Making a Recalbox theme

45 pages · 8 sections
FRENESDE Show everything Create my theme

The system view — the machines

The carousel, the logo, the information line.

The first screen: the list of your machines.

The reserved components

NameTypeRole
systemcarouselcarouselthe carousel — one only, not renamable
logoimagethe system's logo in the carousel
systemInfotextthe “510 games available, 13 favorites” line
bgsoundsoundthe theme's background music
directorysoundthe theme's music folder

bgsound and directory are the only names <sound> accepts, and only in this view.

Two traps

systemInfo has a gray background by default. To remove it:

<text name="systemInfo">
  <backgroundColor>00000000</backgroundColor>
</text>

The carousel is unique. A second <carousel> is read without error but never drawn.

When the theme does not provide a logo, Recalbox looks for its own in this order:

<system>-<language_COUNTRY>.svg   →   <system>-<language>.svg
      →   <system>-<region>.svg   →   <system>.svg

That is what allows a “Genesis” logo in the United States and “Mega Drive” in Europe without writing anything.

PropertyDefaultDetail
typehorizontalhorizontal, vertical, vertical_wheel; any other value falls back to horizontal
logoSizecomputedratio of the screen, not of the carousel
logoScale1.2enlargement of the chosen logo
maxLogoCount3rounded to the integer — a decimal is useless
colortransparentthe carousel's background

The spacing of the logos is computed like this:

spacing = (length − logoSize × maxLogoCount) / maxLogoCount + logoSize

where length is size.y in vertical, size.x in horizontal.