Where each shipped build finds the config a platform installs and reads
every key it opens a file from, read at the build the platform ships:
duckstation (EmuELEC, ROCKNIX, RetroBat), xemu, armsx2, hatari, melonDS,
dsperate, NanoBoyAdvance, mednafen (ROCKNIX's sydarn fork) and ares,
gzdoom, xroar, lrps2 and the amiberry builds at their pins. pin_build
names the builds ROCKNIX, EmuELEC and AmberELEC compile, revision the
ones RetroBat and Flathub install unpinned.
tests/test_launcher_evidence.py covers the rule, the extractor helpers,
the invariants and the chains that move placements.
KNULLI builds amiberry from Batocera's package through its batocera
submodule: the reference now names knulli-linux at 20260511, the tag
platforms/knulli.yml is read at, and the package file below the
submodule. check_freshness follows a path .gitmodules declares to the
commit the tree pins, which reads AMIBERRY_VERSION = v7.1.0 there.
RetroBat pins amiberry 8.3.0.0 only in emulators/versions.xml on its
download server, read by emulatorLauncher/Installer.cs. No repository
holds it, so amiberry-8.3.0 keeps pin_frozen, which says so, and no
pin_build.
AmberELEC builds amiberry c53d6db (CMakeLists.txt declares 7.1.1). Its
ROM path is rom_path, else roms/ below the home directory
(AMIBERRY_HOME_DIR, ~/Amiberry, or the working directory in portable
mode), scanned at its root by the ROM database. The WHDLoad booter
reads whdboot/ below $XDG_DATA_HOME/amiberry. EmuELEC's 452783a adds
13 PPC board ROMs to the database and hashes flash images otherwise,
so it gets its own profile. AmberELEC reaches its Kickstarts through
the .uae kickstart_rom_file paths, the fixed_name records.