Fourteen lists gain the data trees their cores read. AmberELEC and EmuELEC fetch the 192 blueMSX machine configs from the tree instead of holding them back, and RetroPie drops the blueMSX tree its lr-bluemsx module installs.
A platform pack carried only the trees its own systems declared, so for_platforms reached RetroArch, Lakka and RetroPie alone and every other platform running blueMSX, FBNeo or Dolphin got no tree. The pack, the install list and the pipeline's tree members now add the trees of the libretro cores the platform runs, below the system directory and build folder the core reads, unless the platform installs or never opens them. A platform entry the manifest resolved into a carried tree becomes that tree's member, which the installer can fetch: AmberELEC and EmuELEC no longer hold 192 blueMSX machine configs back. stonesoup reads its tree beside the content and pcee2 compiles its resources in, so neither tree reaches a BIOS pack.
The RetroDECK report quoted on reading-reports.md counts the two np2
FONT.ROM files, the testing guide lists test_np2_fonts, and the source
paths record follows fontv98.c and the new pcem upstream pin.
release-process.md listed tbblue.mmc, removed from bios/ on 2026-10-20, and left out uqm-remix-disc1.uqm. A test now reads the list against git ls-files.
reading-reports.md said the cross-reference checks whether a profile's files appear in the platform config, a rule by name. Since 2026-10-10 declaration_settles counts a declaration only at the core's slot or at a size the core accepts, and an alias only where the core reads it.
architecture.md said a file found by its name claims nothing. Since 2b535525e slots.py counts such a copy (size_exact) when it has the exact size the profile declares and the platform's file another size, as RetroDECK's sgb2.boot.rom shows.
pin_frozen was prose, and no tool read the build file it cites, so a platform building another revision left the profile holding one nobody ships. pin_build records the platform, its repository, the revision read, the file, the variable and its value. check_freshness reads the file again where the platform's YAML now stands and reports STALE when the value moved. 36 of the 46 held profiles carry it, each value read from the build file at the platform's scraped revision. The other ten name no build file and are counted on one row: six RetroBat binary packages and four holds not tied to a platform build.
Since fed03c3db _add_zip_to_pack copies every archive of the collection as is. architecture.md and tools.md still said MAME and FBNeo romsets were rebuilt deterministically, so a third party rebuilding neogeo.zip to compare would read a sound pack as corrupt.
Step 5 built emulator packs one profile at a time, where two profiles never share a path. It now also builds each system pack that gathers several profiles and compares it with verify. The first run found five standalone MSX and ColecoVision packs where verify skipped the data tree of a profile the system filter left without files, and credited msx-emu's copies the pack never wrote. verify now places those trees too: 541 system packs, all equal.
The report named the folder of each file and left the copy to the contributor, one file and one .variants/ name at a time. --place copies each recognised file from outside bios/ to its folder under the name the lists declare, or to the .variants/ slot of a name already held, never over a file. A hash with two names or two folders is not placed.
AmberELEC and EmuELEC declare blueMSX's Machines/<model>/config.ini and
Shared Roms/RS232.ROM with no hash. The name step served msx-emu's
ColecoVision config.ini in 192 machine folders and the 16 KB RS232.ROM,
while data/bluemsx held blueMSX's own file at that very path. A platform
declaration with no hash now reads its destination's tail in the data
directories before the name step. Profile entries keep the foreign-tree
redirect, so Dolphin's dsp_coef.bin dump still outranks the free copy.
Manifests: amberelec and emuelec omit 192 config.ini entries (held in
data/bluemsx only, so the installer has no URL) and serve colecodb.xml,
MSX2+/config.ini, MSXturboR/config.ini and RS232.ROM from blueMSX's bytes.
--skip-packs said --skip-docs would stop after verify while 4d and 4e still run, and the tools.md flag table left 8b out of --skip-docs. The help, the usage and the flag table now name the steps the step table marks.
pyproject had no [build-system] and no module list, so setuptools' flat-layout discovery found scripts/ and tests/ and refused to build. Nothing is packaged now and pip install -e ".[dev]" installs the tooling.
The tooling merge took its own install.sh and install.ps1, which only
moved the pin, and dropped the bootstrap checks of the installer
batch. The ported checksum test calls the TypeScript node helper of
its merged module, and the retrodeck excerpt follows the run.
The excerpt and the source tree record follow the merged batches:
the pack counts two more core files, the held-but-not-packed line
names each reason, and the hatariB upstream tree is recorded.
The resolver now keeps a name inside its own emulator tree and the retail Xbox dashboard files moved to bios/Microsoft/Xbox/C/, so the install lists, README counts, installer samples and games index are rebuilt from the merged tree. Built twice, identical.
The site test modules were cut by review pass (test_site_r2_css to test_site_r5_wiki): the passes of one subject become one module, and the modules that stood alone take the name of what they hold. The installer test classes named after a review take the name of what they test. One test left --manifest set for the tests after it, which the new order showed: it now resets the sources.
KNULLI builds per board on Batocera's Kconfig model from its own tree (knulli-cfw/knulli-linux at the tag platforms/knulli.yml pins): configs/knulli-*.board, package/system/knulli-system/Config.in, knulli-es-system/es_systems.yml and the knulli-cfw/buildroot submodule. Ten boards, the armhf library builds excluded.