Commit Graph
1910 Commits
Author SHA1 Message Date
Abdessamad Derraz b23f5b04ad fix: refuse a --bios-dir that does not exist 2026-10-18 08:39:27 +02:00
Abdessamad Derraz 4240c98359 fix: name a missing database in one error line 2026-10-18 08:34:09 +02:00
Abdessamad Derraz 9579f6c449 fix: name platforms and core misses in the summary 2026-10-18 08:31:16 +02:00
Abdessamad Derraz dd86124165 fix: name platform and folder in the sudo advice 2026-10-18 08:29:50 +02:00
Abdessamad Derraz 09e51c2f0a fix: retry the installer's file and target lists 2026-10-18 08:27:54 +02:00
Abdessamad Derraz fe35de9607 fix: name RETROBIOS_REF when a list is too old 2026-10-18 08:25:26 +02:00
Abdessamad Derraz ebf44d523b fix: make the closed-pipe test meet a full pipe 2026-10-18 08:23:38 +02:00
Abdessamad Derraz 7310f9ad54 chore: regenerate README 2026-10-18 08:22:56 +02:00
Abdessamad Derraz 2433ef30c0 fix: read verify's verdict call across lines
The source check matched the call on one line; passing the RomM hash rule
split it, and the check failed although verify still applies the rule.
2026-10-18 08:22:56 +02:00
Abdessamad Derraz e75482777d fix: leave aliases out of the fileless audit 2026-10-18 07:41:54 +02:00
Abdessamad Derraz e660022628 docs: say why openlara reads nothing it is given
OpenLara asks for the system directory to keep its own shader and cache
files under openlara/cache, which it writes and reads back itself.
2026-10-18 07:41:12 +02:00
Abdessamad Derraz 592f8fef2d fix: exit 2 when the BIOS folder cannot be made 2026-10-18 07:40:32 +02:00
Abdessamad Derraz ad3dfa6770 feat: profile and collect b2's standalone ROMs
The standalone b2 loads its machine ROMs from assets/roms; the profile
declared none because the libretro port embeds them. 44 entries from
tom-seddon/b2 e1c9b84, 31 ROMs collected, 12 already held.
2026-10-18 07:39:21 +02:00
Abdessamad Derraz dedcf32192 fix: report a failed bootstrap download plainly 2026-10-18 07:38:52 +02:00
Abdessamad Derraz 0f52c18eca fix: let every installer prompt be quit 2026-10-18 07:34:20 +02:00
Abdessamad Derraz 7531ccad8f fix: refuse a profile_sync filter matching nothing 2026-10-18 07:33:11 +02:00
Abdessamad Derraz 2362466903 fix: suggest a region for an unknown spelling 2026-10-18 07:32:46 +02:00
Abdessamad Derraz a8c23ad11d docs: number pipeline steps as the run prints them 2026-10-18 07:31:43 +02:00
Abdessamad Derraz 1305516e87 docs: say --offline cuts release asset downloads 2026-10-18 07:30:56 +02:00
Abdessamad Derraz d84f81874b docs: say why emucv and eightyone read nothing
Both cores ask for the system directory. emucv never reads the answer
back, and eightyone serves every ROM from its embedded table and only
writes zxpand-eeprom.bin there. The reasons were in their notes, not in
the exclusion_note the fileless audit accepts as an answer.
2026-10-18 07:30:25 +02:00
Abdessamad Derraz 3116a57617 docs: document every option the scripts accept
Fifty options appeared in no page. fileless_audit also gains --all, so
its example sweeps instead of naming three settled profiles, and it and
download.py --info now fail on an unknown name or an unreachable source.
2026-10-18 07:29:16 +02:00
Abdessamad Derraz 23ed3e92ab docs: mend a torn sentence in the tools page 2026-10-18 07:25:06 +02:00
Abdessamad Derraz ae3dc63bc3 fix: accept RomM files on size and any hash
RomM's verify_file_hashes compares the size, then md5, sha1 or crc. We
compared md5 alone, so a fixture entry with one mistyped hash was left out
of the pack RomM would accept it from. The rule is declared in romm.yml
and read by verify, the builder and the manifest.
2026-10-18 07:24:33 +02:00
Abdessamad Derraz 731faee6e1 docs: tie the tools page counts to their artifacts 2026-10-18 07:20:34 +02:00
Abdessamad Derraz 2977615f99 docs: list every exporter and target scraper 2026-10-18 07:19:58 +02:00
Abdessamad Derraz d6d03617db fix: exit 1 when a hash lookup finds nothing
The documented example looked up a test fixture hash, printed NOT FOUND
and exited 0. The docs now use a hash the database holds and say which
line forms a hash file accepts.
2026-10-18 07:19:01 +02:00
Abdessamad Derraz 84a144be66 docs: send RetroPie users to the RetroPie pack 2026-10-18 07:17:19 +02:00
Abdessamad Derraz 6d48d9e71e fix: report the emulator cross_reference is asked
A mistyped --emulator exited 0 with no profile found, and a correct one
with no gaps was left out of its own report, totalled across all
emulators. The name is now checked, the emulator always printed, and
--list-emulators added for the suggestion to point at.
2026-10-18 07:16:30 +02:00
Abdessamad Derraz 195fb92036 fix: name the platform a typo meant in every CLI
slots ended a mistyped --platform on a traceback; generate_truth,
refresh_data_dirs and auto_fetch exited 0 having done nothing for it.
All six now stop on require_platform before any work.
2026-10-18 07:14:38 +02:00
Abdessamad Derraz 803f9dce96 fix: hash only files that share a size
identity.py read the whole 18 GB tree on every pipeline. A file whose
size no other file shares cannot have a duplicate.
2026-10-18 07:12:59 +02:00
Abdessamad Derraz 90b39ed955 chore: regenerate install manifests
Lakka package names joined the profiles' cores, and Lakka now has a
per-device target list.
2026-10-18 07:06:33 +02:00
Abdessamad Derraz 2db83a5e01 feat: confront added profiles in CI
profile_sync --strict exits 1 when a profile has refs to review. The
validation workflow runs it on every profile a pull request or a push to
main adds, so a profile whose refs miss their value no longer lands green.
2026-10-18 06:29:14 +02:00
Abdessamad Derraz 572a2d20de feat: check a release against its record
A count of assets misses a failed upload beside a stray file and a part
re-uploaded from an older build. check_release.py holds each asset's
GitHub sha256 against SHA256SUMS.txt and release.json, and the release
process publishes the draft only on its clean exit.
2026-10-18 06:26:39 +02:00
Abdessamad Derraz 694d1defc0 fix: file truth models by each platform's target
Lakka builds an image named switch while RetroArch files switch as
nintendo-switch. One canonical name taken across the registry put
Lakka's model under RetroArch's target. generate_truth now writes each
platform under its own target name, and diff_truth --target reads it.
2026-10-18 06:24:07 +02:00
Abdessamad Derraz c3162dcd27 feat: scrape Lakka per-device core lists
Lakka builds LIBRETRO_CORES minus the exclusions each project, device
and GLES image adds. Without a list, --target refused Lakka and its RPi1
pack carried firmware for cores the image does not build.
2026-10-18 06:24:01 +02:00
Abdessamad Derraz bac91d0824 fix: stop asking for dumps the collection can make
The Wanted page listed 79 dumps the collection already produces,
such as a Kickstart's byte-swapped words or the halves of a C128
character ROM. The pipeline now records which missing dumps can be
derived, in derivable.json, and the page moves them to a section of
their own that names the held file and the transform.
2026-10-18 06:16:16 +02:00
Abdessamad Derraz fd4c118a38 fix: count a catalogued dump once across its DATs
Several DATs list the same dump, as No-Intro's three FM-7 sets do
for their system ROMs, and the provenance report counted it once per
listing: 2485 missing announced for 2284 distinct dumps, on the site
as well. Dumps are now counted by identity, each keeping the DATs
that list it.
2026-10-18 06:11:12 +02:00
Abdessamad Derraz e1b6aad51b fix: refuse abbreviated flags in every script
argparse completed a prefix into the only flag starting with it:
slots.py --emulator read profiles from a directory named after the
emulator and reported nothing, and pipeline.py --all built every pack
variant. Every parser now refuses an abbreviation.
2026-10-18 05:30:58 +02:00
Abdessamad Derraz 88a3bb8953 fix: let auto_fetch read lists and keep held files
auto_fetch stopped on any profile listing several accepted hashes,
and filed a fetched file in the first folder sharing one word of its
system, overwriting a same-named revision held there. Hash fields are
read as sets, a folder must match the whole system slug, and another
revision goes to .variants/ beside the file already held.
2026-10-18 05:30:10 +02:00
Abdessamad Derraz cc7f9fbdac docs: say what the pack installers really do
The EmuDeck pack README promised standalone keys set up
automatically, which needs --standalone-copies, and named a Citra
folder the installer never uses. The RetroArch README gave Windows
users a shell command only, and RetroPie's sent a PC to a Linux
partition it cannot open. Each guide now matches the installer.
2026-10-18 05:28:31 +02:00
Abdessamad Derraz 8d0b6d5f93 fix: find RetroArch in Steam libraries and ES-DE
The installer looked for retroarch.exe in C:\RetroArch-Win64 and
Program Files\RetroArch only, so a RetroArch under Program Files\
RetroArch-Win64, in a Steam library on another drive, or in an
installed ES-DE's Emulators folder went undetected. All three are
searched; Steam libraries come from Steam's own library list.
2026-10-18 05:26:39 +02:00
Abdessamad Derraz d0312428e4 fix: let the parity test pass a complete system
The system pack parity test guarded against an empty parse by
requiring files to stay missing, so it would fail once the MSX and
Neo Geo gaps are collected. It now requires both reports to have run
and the pack's own missing count to match the lines it parsed.
2026-10-18 05:24:10 +02:00
Abdessamad Derraz d3dd045c04 fix: let --write run the report it writes from
romset_recipes --identify --write ran only the identification, so
the reconstructions --write saves were never computed and the run
exited 0 having written nothing. --write now implies --missing.
2026-10-18 05:21:06 +02:00
Abdessamad Derraz 999a77a96a fix: refuse a data key the platform does not use
Under --key the platform restriction was not applied, so dolphin-sys
was downloaded again for RomM, which never reads it. A key whose
platforms exclude the one named is now refused.
2026-10-18 05:20:25 +02:00
Abdessamad Derraz 32d32e5718 fix: refuse validate_pr flags it would drop
Named files beside --changed were replaced by the git diff, and the
run reported no changed files about files it never read; --json
beside --markdown dropped the markdown. Both combinations are now
refused, and an empty JSON run prints an empty list.
2026-10-18 05:20:03 +02:00
Abdessamad Derraz 1df23e3f7d fix: check verify applies the flags it accepts
The mode and flag matrix only tests refusals, so a flag verify
accepted and ignored, --verbose under --json, passed it. Each mode is
now checked to change its output when that flag is given.
2026-10-18 05:19:31 +02:00
Abdessamad Derraz c28895ffdd fix: hold the scripts to stdlib and pyyaml
The build scripts are documented as needing only the standard
library and pyyaml, and the Windows downloader none of it, but CI
installs both pyyaml and jsonschema's tree, so a stray import would
pass everywhere it is tested. The suite now scans every import and
runs the downloader with yaml unavailable.
2026-10-18 05:18:56 +02:00
Abdessamad Derraz 5a32a42d25 fix: pass the installer's own lint gate
install.py held a local it never read and, since the registry path
rules, a loop variable shadowing the platform module, so the py38
ruff gate the installer is held to failed. Both are fixed, and the
suite reads the two rules from the syntax tree since CI has no ruff.
2026-10-18 05:18:08 +02:00
Abdessamad Derraz e04646d67a fix: stop the MAME scrape on a clone with no pin
A failed rev-parse in the MAME clone returned an empty commit, which
was cached for a day and let the merge advance the profile's version
and refs while its upstream pin stayed on the previous release. The
scrape now stops instead.
2026-10-18 05:15:52 +02:00
Abdessamad Derraz baf635cf4e fix: refuse to pack an archive that fails its CRC
The deterministic rebuild raises on a member whose bytes fail their
CRC, and the builder caught it and copied the damaged archive into
the pack, expecting verify to flag it, which nothing did. The run now
stops on it and names the file to restore.
2026-10-18 05:15:15 +02:00