The libretro core passes system/mame/{hash,plugins,samples} (retro_init.cpp:111-155). Software lists are required in mamemess, where softlists are on by default. The trees and the 19 floppy samples are collected from libretro/mame at the pin.
Seven artwork zips from the core's metadata/artwork are read from mame2003-plus/artwork/ when Display Artwork is on, the default (artwork.c:2242-2258).
The libretro core copies whdboot from the system directory and uses a candidate only when WHDLoad, JST, AmiQuit, boot-data, the game database and the five RTB files are all there (amiberry.cpp:11510-11584). The core zip has none of them, so they are collected.
The standalone build loads it from the working directory then the profile root (app.cpp:5084-5119). The release packages ship it, the libretro tree never reads it.
tilemap.bin and tilepatch.bin are compiled into the core and settings come from core options, so no res/ file or config.xml is opened (omusic.c:50-67, config.c:86-87).
The A500 and LOUD floppy sound sets are read from uae_data/ (driveclick.c:77-104) when the option picks them, and capsimg is loaded from the system folder for IPF images (caps.c:37-96). The ten samples are collected from the core repository.
Since 3fffeb1 prboom.wad is compiled into the core (d_main.c:1449-1465). The IWADs it searches beside the content, in system/prboom/ and in system/ are now listed, with the ZDoom pk3 loaded before a pk3 mod.
The profile listed none. id1/pak0.pak is required (host.c:711-760), the retail and mission pack paks are read in order until one is missing, and Quoth 2.2 is mounted when the content path names it (common.c:1017-1020, 1724-1725). The three Quoth paks are collected, pak1.pak as a release asset.
With colorization set to custom, a DMG game reads palettes/<rom>.pal, then <header title>.pal, then default.pal under the system directory (libretro.cpp:2012-2091). A user-made file, so the entry is unsourceable.
realrtcwdefault.cfg is required (files.c:4364-4368), autoexec.cfg runs unless in safe mode, and eleven pk3 archives are loaded by the scan of main/. All of them ship in the RealRTCW 5.2 package, so they are bundled and stay out of the packs.
legacy_<version>.pk3 is the engine's own build output, named from git describe and different for each release and architecture (ETLBuildMod.cmake:301-316, ETLVersion.cmake:120-131). It is installed with the engine, not downloaded on first run as the note said.
The pin was an unreleased tree past r49 labelled r50, while the rom.bin hashes were r49's. No r50 emulator release exists, so the profile now pins the r49 tag those hashes describe, and names its source repository so the pin is read.
LoadShadersFromDisk opens five shaders and two includes from the hlsl folder beside cxbx.exe and aborts when one is missing (Shader.cpp:812-825, 846-929). They ship in the release zip, so they are bundled.
Recalbox compiles uae4all from Chips-fr/uae4all-rpi, a libretro core, while RetroPie's uae4all package is the standalone uae4all2. A profile whose built_by names the platform now wins the name there, and a bare key match still decides everywhere else.
The pin (1e0de94d) already loads Sega CD, 32X, ColecoVision and LaserActive firmware from the system directory, and the profile still described the earlier core with no BIOS at all. Each file now carries its code reference, required flag and build. The LaserActive player firmware (uPD78237, 64 KiB) is collected from the dump its author published.
unread_on names the platforms whose launcher points the emulator at other files. RetroBat writes absolute BIOS paths into standalone BlastEm's config, so the default names were reported as required and missing there. Such an entry leaves that platform's gap report and pack, and its emulator page says where it is never opened.
hiscore_init opens the file through emu_file with no search path. The branch that built system_dir/mame/ is under #if 0, so the profile's mame2015/ path named a place the core never reads.
A .uqm in content/packages is mounted at the root, one in content/addons at addons, and loadAddon opens addons/3domusic, addons/3dovoice and addons/remix (options.c:393-402, 518-551, setup.c:118-132). The six music, voice and remix packs were placed where they would not load. The installer writes them to content\addons too.
A file that arrives with the emulator is already on the user's machine
and the packs leave it out. 4558 collected copies (1.4 GB) were reached
only by such entries, with no platform, other profile entry or install
manifest needing them. They are removed, and two release-asset copies
leave the ignore list. bundled_only.py now lists every copy of a listed
file, since the database keeps one path per content, and pipeline step
4d fails while one remains.
The per-system lookup named its dictionary declared, which the file loop below reassigns to a list, so the second system of a platform page raised AttributeError.
336 entries for files that arrive with the emulator named no hash, so
the collected copy was the only record of which file the release
ships. Each now carries the sha1 and size of the copy collected from
that emulator's own release, so the profile keeps the file's identity
once the copy leaves the collection. Entries whose name is a pattern
keep no hash.
exports/ is committed but CI cannot rebuild it, since the originals it
patches live in the local cache. The native freshness check now runs
the export offline and compares it with the committed files, and
refresh_stale writes the export again after refreshing an original.
exports/ now holds the twelve platforms' own files, corrected, with a
report of every change, read by the site's corrected files page. Two
summaries are reworded for the page: an addition the format cannot
carry is counted as left out, and RetroPie names each skipped package
by sentence instead of joining reasons with semicolons. Its parser no
longer reads "e.g" as a file name.
Profiles that read two repositories, a libretro port and its upstream,
now prefix each citation with source or upstream, decided by which tree
carries the cited value at its pin. The emulator pages use the word to
tell libretro glue, emulator code as the port carries it, and the
upstream emulator apart.
Batocera, Recalbox and RetroBat launch pcsx2 standalone and as LRPS2.
The name matched the standalone profile's key, so lrps2, which lists
pcsx2 among its cores, was left out and its files never reached those
packs. A name in dual_mode_cores now also resolves to the libretro
profiles that claim it.
RetroArch, Lakka, RetroPie, EmuDeck and RetroBat group NAOMI and
Atomiswave as sega-dreamcast-arcade and the Enterprise 64 and 128 as
one system. No profile uses those ids, so the emulator cell was empty.
When no id matches, a platform page now names the emulators that read
a file the system lists. Archive members do not count.
export_native now writes into exports/ by default, and beside each
platform's corrected file a report naming every change, where the run
printed five per kind. A new site page lists each platform with its
original file, a download of the corrected one and every corrected,
filled or withheld value. Each platform page links to its row.
Dropping the double-dash asides left 72 comments and docstrings with
half a dash glued to the next word ("shape -a size or a size range -is
all"). They now read as a colon, a comma or parentheses, and a prose
style test names any that comes back.
install.py --emulator NAME keeps what the named emulators read on the detected platform: their own files and the platform's files of the systems they run, as a pack built for them carries, without the systems no core is mapped to. Each emulator page now gives that command for Linux, macOS and Windows, beside the per-file links.
A libretro port carries the emulator's own sources beside its glue: pcem cites src/mem.c in the port, which is PCem's code. A citation in the port is labelled libretro glue when it is one of the libretro interface files, emulator code otherwise, and upstream emulator when it is in the original repository.
BizHawk's NDS firmware slot accepts six dumps, two of which the collection holds, and the profile named one. Kega Fusion's US Mega CD BIOS covers the Americas. Sonic 3 A.I.R. data is installed by Batocera in unpacked form. izApple2 downloads its ProDOS images when a card is added, which is no install. The Lakka list now equals a case-keeping RetroArch install less what Lakka's packages install, and the profile hash contradiction count leaves out entries no pack ships. The pipeline table names step 8b.
A file a core reads at several destinations is added again at each one by a second pass that worked from the raw profile entries, so files the emulator or the platform's package installs came back into the packs and manifests by that route: the installer's per-target replay disagreed with the builder on six files.
Each platform's own packages were read at the revision our data pins, for every emulator and core it ships: Batocera, Recalbox, RetroPie, ROCKNIX, Lakka, RetroDECK, RetroBat and EmuDeck. Files a package installs where the emulator reads them are recorded with installed_on, and files a release bundles but a package leaves out with not_bundled_on, so each platform's pack brings what its users lack and nothing they already have. The standalone profiles never checked before were held against their releases the same way. Batocera's imame4all is the mame2000 core. The primary neogeo.zip was a 7.7 KB placeholder no platform pins and no pack served: removed, the real dumps stay in .variants.
A copy filed under two consoles of one maker was listed twice with the same id, and a data directory listed the same bytes twice, so the site deploy refused 20 pages. The first card keeps the id. The pipeline only generated the pages, so it now renders them with mkdocs build --strict and runs validate_site as the deploy does. The resumed-speed test read the clock and failed on a slow runner, it now fixes the elapsed time.
The platform layer names data trees for its systems: retroarch.yml carries dolphin-sys and ppsspp-assets, and Lakka inherits them, while Lakka's core packages install both trees into the system directory. A profile records that with installed_on on its data directory, and the pack and the install manifest now leave those trees out for that platform.
A file the emulator installs itself is left out of the packs, per build and per platform. The profiling guide documents bundled, installed_on and not_bundled_on, the FAQ says why a file the emulator reads may be missing from a pack, and an emulator page names the build that installs it and the platforms whose package differs.
The profiles written for RetroBat and RetroPie were checked the same way: UZDoom, LZDoom, SRB2 and AdvanceMAME data ship with their releases, RetroPie installs the shareware Doom, Quake III and Wolfenstein data, the Aleph One scenarios and 4DOS beside the ports it builds, RetroBat installs Jynx's ROMs, and Recalbox's uae4all core comes without the AROS ROMs.
A data directory appeared on its emulator page as a URL whose content moves, and the 2,534 files the packs ship from these trees were on no page. Each tree now shows the revision it was fetched at and its files with size and sha1, and the site lookup by sha1 resolves them. The page description reads the repository list the JSON-LD now carries.
The data page promises that v1 fields are only ever added, and the envelope schema left items unconstrained, so a renamed field passed validation. Each kind now lists the fields its items carry and their types.
The structured data of an emulator page published one repository and one commit. A profile whose builds live in two repositories, or a port with an upstream_commit, now lists each repository with its own pin.
The collection DAT named its sets "Sony - PlayStation", and the data page said it audits a copy of bios/. clrmamepro and RomVault looked for a folder of that name and reported the 330 sets missing. A Logiqx set name writes a subfolder with a backslash: Sony\PlayStation.
The gaps page and the Advanced usage, Verification modes, Release process and Testing guide pages titled in Title Case beside sentence-case pages. A test now reads every wiki heading.
100 emulator names the two platforms run had no profile, so their packs carried nothing for them. Each was read from the platform's own launcher or scriptmodule: the same program as an existing profile takes the name in cores:, a different build gets its own profile read from that version, a launcher or self-contained game goes to remove_cores, and the rest are new profiles written from their source or shipped binary. The files they need that the collection lacked are collected from the upstream distributions. Bungie and splitwolf trees are read by path and stay out of dedup.
Every bundled flag was checked against the release or the build recipe of the build that reads the file. A libretro core zip holds the core alone: fMSX, Nuance, ep128emu and PCEE2 files the source tree carries are no longer bundled, and blueMSX, ARMSX2, YAPS2, Cemu and Jazz2 entries are split per build. Files the release ships and the profile missed are now bundled (POM2, ZQuest Classic, EmuCoreX, Linux Loader). Platform packages that differ are named: Batocera installs hcl and Hurrican without their data, ROCKNIX ships touchHLE's Liberation Sans fonts only, Batocera and RetroPie install blueMSX's machines beside the core.