RetroPie, ROCKNIX, AmberELEC, EmuELEC and RomM keep their save directory in no fixed place, and their lists leave those files out with no hash or address. The run said to name the folder with --save-dir, and said it again when --save-dir was given. It now says the list holds none of them.
Two listing options printed one list, and --list-platforms, --list-targets and --list-emulators printed the same output with --system, --region or --core as without, code 0. A run now prints one list, and an option a listing ignores is refused.
fetch_large_file verified a cached copy and returned its name, which another run replaces when the release serves a re-upload: the caller then packed bytes it never verified. The returned path is now a hard link under .cache/large/.by-sha1/<sha1>/, kept only if it holds the inode that was hashed. Revisions no name holds are dropped a day later. restore_large_files hashes each copy before moving it into place.
tools.md said --full-narrowings is refused with --skip-packs only, while
pipeline.py also refuses it with --source platform or truth, and
advanced-usage.md kept a second, shorter list. The tools table now
carries every pair, checked against _refuse_unapplied_flags, and
advanced-usage links to it.
Step 5 compared every narrowed pack with verify and never the --split parts with the full pack, so a part writing a path the full pack settles passed every check. check_split_packs builds each platform's parts in memory and compares their union with the full pack, path for path and byte for byte.
pipeline.py --offline --with-export, listed as a standard command, passes
no --fetch to step 2e: on a fresh clone the database, verify and truth
were built before the export failed on every platform whose own file it
patches. The run is refused before step 0 when .cache/upstream-native/
holds nothing for such a platform, and tools.md says how to fill it.
The catalog table called redump.org's DATs stale and said Dat-o-Matic
blocks automation. redump.org serves BIOS DATs dated 2010 to 2022
(Content-Disposition of /datfile/{psx,ps2,gc,xbox}-bios/, read
2026-11-06), and the Redump row named /static/bios links the scraper
replaced with one /bios/<CODE> route per system.
The v2026.10.10 notes said a pack holds every file its emulators open, so
a game never stops on a missing file, and that hashes never come from a
forum list: the gap analysis lists files no pack carries, and in md5
mode a pack keeps the platform's own md5 (verification-modes.md). The
generated text and the README now point to the gap analysis, and
release_notes.py refuses a whats-new text holding a judging or
contradicted phrase.
The answer said --region us keeps only your region's BIOS, with nothing
to run. On the PlayStation it keeps 44 files, Japanese PS2 images among
them (install.py --system sony-playstation --region us --dry-run). The
answer now gives the --core command the installer itself suggests, in
the tabs of each system, and says what --region drops.
A closing Summary restated the opening lines on the strongest and weakest
ground, and the not-legal-advice line came three times. The disclaimer
stays at the top, and the one sentence the summary added, the risk the
project accepts, moves to the encryption keys section.
A BIOS folder that is a file, or lies under one, failed at mkdir with EEXIST or ENOTDIR, and the run blamed permissions and offered sudo. It is now refused before anything is checked, with an error event whose reason is not_a_folder.
Author, Repository and License sat on three lines of one paragraph, which
renders as one line. They are a list, and a guard refuses two bold
labels on consecutive lines of a paragraph.
install/launchers/index.json records the SHA-256 of install.py that
--add-app checks, and the page listed only the pins of install.sh and
install.ps1 as what a change to install.py rewrites.
Five generate_site helpers read ./emulators or ./platforms, and
has_release_pack read platforms relative to the working directory: run
from scripts/, a released setup's get page showed the No ZIP line.
siterender's fallbacks and sitediagrams read the repository too. All of
them now read siteinputs. platforms/_guides.yml stays the repository's:
siteguides loads it at import, before any flag is parsed.
generate_emulator_pack resolves with offline=offline and fetches a release asset the cache lacks, while verify_emulator resolved offline and called it missing. verify --emulator now applies pending_release_asset as verify --platform does, accepts --offline, and the pipeline compares emulator packs offline on both sides.
The RetroDECK verify excerpt counted 1800 core files in the pack. Companion entries no longer sweep cheats, GameIndex.yaml and DVD firmware to the BIOS root, and the same run prints 1764.
files/?sha1= of a file the collection no longer holds answered that no
file the site knows has the hash. generate_db.py now records each sha1 a
rebuild drops in retired.json, with the day and the file in its place,
backfilled from the history since 0d586ef6b (4,139 files). The lookup
answers with it and leads to the successor's card.
install.py tells a MiSTer card by its MiSTer binary and menu.rbf since
73b82375d. installer.md said so, the FAQ and the README did not, and sent a
MiSTer user to --dest the card's root, where nothing reads the files.
tools.md listed what keeps a platform entry out of removal_candidates
without the platform's launchers: records, which candidates.py checks
right after a path (_PROOF_ORDER).
testing-guide listed the generated artifacts without derivable.json and
the run samples of wiki/installer.md, and tools.md gave the manifest
command alone. The nightly's commit rules also had no place for the two
files its offline pipeline rewrites, so autorun stopped on them.
PCSX2 stats <bios>.rom1 then <stem>.rom1, case-sensitive on Linux (BiosTools.cpp:214-229), and so does PCSX2 1.6 for erom. The pack wrote the stored SCPH-70004.ROM1, never found. A companion entry also seeded a scan of its own with a 4 MB bound and swept cheats, GameIndex.yaml and DVD firmware to the BIOS root. A companion now scans its image's folder for its own extension only, any size, since the code reads min(size, filesize), and is written as the code spells it.
A data tree's archive came with no progress line, and the run ended on the BIOS bytes alone (310.5 KB where 82 MB arrived). Its download now draws the progress line and adds its bytes and time to the end line, a cut attempt taken back. It writes no progress event: those count the download event's files.
Lakka keeps its BIOS on its STORAGE partition (/storage/system). A computer now tells that partition by the retroarch.cfg RetroArch writes there, whose system_directory is Lakka's /tmp/system overlay, and --platform lakka on a computer asks for the card instead of writing to /storage/system here.
Batocera and KNULLI write the image name, not the board, to the card's board file (post-image-script.sh). The target scraper now records each board's images from Config.in, the target lists carry them, and the installer maps a card's image to its board. KNULLI's boot/knulli.board is read too.
data/ppsspp-assets was refreshed after the manifests were written: 46 lang files changed. Regenerated so the next commits carry their own changes only.
profile_sync.py finds and fetches the project's main by itself. The
documented --base upstream/main failed in any clone without that remote,
where the same command without --base passes.
The README, the setup pages and adding-a-platform tied archived to a
scraping schedule and a CI matrix that do not exist. Archived keeps a
platform out of the runs that cover every platform unless
--include-archived is passed.
The ci area of check_freshness read the PyPI and action pins only. The
exact versions website/package.json pins (astro, starlight) now get a row
each, STALE once npm publishes a newer release.
architecture.md said the pack and verify decide through slots.arbitrate(),
while a test forbids them to call it: they read slot_choices() through
pack_overrides(). build_claim_index, the name-keyed index the module
docstring described, had no caller outside its own tests.
Step 5 builds the --required-only, --no-game-data, --region, --target
and --system packs of every platform in memory and compares their paths
with verify run under the same narrowing. verify_platform gains
required_only, generate_pack a record mode. A run samples three regions,
targets and systems per platform (155 packs, about 3 minutes);
--full-narrowings compares all 1,150 (25 minutes). A test fails when
_narrowings() gains a dimension that is neither compared nor exempted.
The published platform contract validates against platform.schema.json, which does not carry the resolver's per-entry system key. The two inheritance tests and the alias call check read the new entry shape, and the testing guide lists test_maker_folder_names.
Demul 0.7 build 251220 (demul.exe sha1 e326ae66, the build RetroBat and Batocera 43.1 ship) loads its BIOS from MAME-style sets named in seven tables in the executable: dc, naomi, naomi2, segasp, awbios, hikaru, mie and segadimm, each member checked by size, crc32 and sha1. The profile lists every set with its members and cites the tables and the loader by address. dc_boot.bin, dc_flash.bin, naomigd.zip, hod2bios.zip, f355bios.zip, f355dlx.zip, airlbios.zip and jvs13551.zip are not read by this build and leave the profile.
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.