Commit Graph
184 Commits
Author SHA1 Message Date
Abdessamad Derraz f7d57dd91d feat: a platform package can differ from upstream
bundled describes the emulator's own release, and a platform package can differ both ways: Batocera's hcl package installs the binary alone and sends users to fetch the data, while its blueMSX core package copies the machines and databases beside the core. not_bundled_on and installed_on name those platforms, and the builder reads them through one rule.
2026-10-20 06:11:10 +02:00
Abdessamad Derraz ddc7432825 feat: packs leave out what the emulator installs
A file or tree installed with the emulator is already on the user's machine, so packs, install manifests and verify's pack count leave it out. bundled is scoped by mode like any entry: Dolphin's Sys and PPSSPP's assets ship with the standalone releases, not with the libretro cores, so they now follow the libretro build only and still reach RetroArch packs. PrimeHack, standalone only, ships its own Sys.
2026-10-20 06:04:10 +02:00
Abdessamad Derraz 89050ea5d9 fix: count core files as the pack places them
The report counted claims, not files: several cores claim one path (rom.key by three Amiga cores, openbios.bin with and without a region) and the builder ships one file there. RetroArch read 1130 core files, 48 more than its pack. Game data ignored the in_pack marker, so RomM read 351 game data files in a pack that holds none. verify now takes both counts from its replay of the builder's placement, one per pack path.
2026-10-20 00:28:40 +02:00
Abdessamad Derraz 8fd8437351 refactor: share the core file lookup with verify
verify replayed the builder's placement of core files with a bare name lookup, without the archive index, the data directories or the core's own choice of copy. It compared other bytes than the pack's (blueMSX's MSX2P.rom from bios/ against the data tree's copy) and let an unresolved file take a path the builder leaves free. ExtraResolver now holds the builder's lookup and both call it.
2026-10-19 23:08:12 +02:00
Abdessamad Derraz 2bd9f8a264 fix: verify applies storage tiers like the pack
The builder never looks up a user_provided entry (it writes instructions in its place) nor an external one (fetched from its URL at build time). verify resolved both by name, so a same-named file in bios/ made it credit a file the pack does not carry.
2026-10-19 23:02:54 +02:00
Abdessamad Derraz 1ea6b9d070 fix: a refused file is held, not present
On a hash platform the builder leaves out a file whose declared hash the local copy contradicts, but the README coverage added every UNTESTED file to the present count. RetroDECK read 2,008/2,008 for a pack carrying 2,007. verify now lists the destinations the builder refuses, and the coverage subtracts them.
2026-10-19 23:00:31 +02:00
Abdessamad Derraz 53f9746bfa fix: count a core file only where it is packed
verify kept its own copy of the placement rule and missed the flat RomM folder, so the report still counted 543 unreachable files as packed. It now asks the builder's ExtraPlacement. The README fraction counted every held core file, including those a platform cannot place or that a same-named packed file hides. It now counts what the pack holds.
2026-10-19 07:44:12 +02:00
Abdessamad Derraz 4231902a6c docs: write prose without dashes or semicolons
Profiles, the wiki, comments, docstrings, command output and schema descriptions carried em-dashes, clause-joining semicolons, unicode arrows, box-drawing banners and check-mark glyphs. Each sentence was rewritten rather than having its character swapped. Hashes, paths, source_ref values and every cited file:line are unchanged, which a comparison of each parsed profile against the previous revision confirms.

validate_pr comments now say PASS and FAIL in words, and source_ref values in a profile's structured blocks render as code. test_prose_style fails if any of these comes back, in tracked files or in the generated site.
2026-10-19 06:47:31 +02:00
Abdessamad Derraz 04deb95a35 docs: give every command-line option a help text 2026-10-19 04:23:34 +02:00
Abdessamad Derraz 642896346f docs: say what verify --strict fails on 2026-10-19 04:18:55 +02:00
Abdessamad Derraz 5ce2b44a57 fix: fill placeholders in emulator packs
LRPS2 declares only <bios>.bin, so its emulator pack shipped no PS2 BIOS. The images in the folder another PS2 profile proves by hash, of the declared size, now take the placeholder's place in the pack and in verify.
2026-10-19 04:11:19 +02:00
Abdessamad Derraz c2e3d64343 fix: keep only the system's entries in --system
A multi-system profile shipped every entry: the Lynx system pack carried 34 PlayStation, Saturn and Apple II files from mednafen. The entry's own system decides, as the platform pack and the installer already do.
2026-10-18 19:39:28 +02:00
Abdessamad Derraz 34c8b925d7 fix: count a shared destination once, filled
verify kept the worst verdict on the raw destination, the builder the first one it read. Both now key on the sanitized path and let a declaration that holds a file fill one that finds nothing.
2026-10-18 18:17:28 +02:00
Abdessamad Derraz 6b9300f601 fix: report ground truth as the site does 2026-10-18 16:29:18 +02:00
Abdessamad Derraz 8001b9d86d fix: compute verify's gap report once 2026-10-18 16:06:35 +02:00
Abdessamad Derraz 0c53d165c1 fix: parse member md5 lists one way 2026-10-18 14:50:26 +02:00
Abdessamad Derraz d0bdf6d08f fix: give archive details their destination 2026-10-18 14:17:46 +02:00
Abdessamad Derraz 3c856bbc10 fix: lay out both builds of a dual-mode emulator
Batocera, RetroBat, Recalbox and ROCKNIX offer some emulators both as a
libretro core and standalone. Filed as standalone only, the libretro
layout was dropped: libretro Dolphin had no dolphin-emu/Sys/GC files.
Platforms now name dual-mode emulators and each gets both layouts.
2026-10-18 13:19:53 +02:00
Abdessamad Derraz bfa6c51ff5 fix: report an archive another profile masks 2026-10-18 13:00:38 +02:00
Abdessamad Derraz 39237004db fix: reduce emulator alternatives as the pack does 2026-10-18 12:58:57 +02:00
Abdessamad Derraz 6d67a56097 fix: count untested files one way on the gaps page 2026-10-18 09:48:37 +02:00
Abdessamad Derraz 2076874c16 fix: stop listing bundled files as ones to find 2026-10-18 09:44:11 +02:00
Abdessamad Derraz 92fb885341 fix: accept platform names as the site prints them 2026-10-18 08:49:41 +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 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 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 2dcb49fa4c fix: keep a held file in emulator region packs
Emulator mode reduced region groups without knowing which files the
collection holds, so a requested-region image nobody had collected
withdrew the held one and left the slot empty. Platform mode already
kept it; both emulator readers now pass the database.
2026-10-18 03:52:47 +02:00
Abdessamad Derraz 1bdfb8d75e fix: list passing entries in verbose verify JSON
verify accepted --verbose beside --json and dropped it in every
mode, so the output was the same with or without it. The JSON now
lists every entry with its ground truth under --verbose.
2026-10-18 02:50:18 +02:00
Abdessamad Derraz 7d1b8435bc fix: rank same-named archives by what they hold
The name step only ranked archive copies by members declared
through archive sub-entries, and the contents an archive entry lists
never reached the resolver, so the first copy indexed won. contents
now ranks copies by crc32, or by member name where the code opens
by name, and the report and both extra passes carry it. With no
layout declared, a primary holding every ROM of the others wins;
two revisions keep the index order.
2026-10-18 02:30:53 +02:00
Abdessamad Derraz fad4fa6d7e fix: read core files in verify as the builder does 2026-10-18 01:18:32 +02:00
Abdessamad Derraz faa8af0800 refactor: annotate every remaining signature 2026-10-18 00:44:20 +02:00
Abdessamad Derraz 55631a2fbc fix: end listings quietly when the reader leaves 2026-10-17 20:50:22 +02:00
Abdessamad Derraz de8e7ff02e fix: separate message parts with a colon 2026-10-17 20:47:22 +02:00
Abdessamad Derraz 1ffc0a6937 fix: hold data directories while packs read them 2026-10-17 19:22:50 +02:00
Abdessamad Derraz d600a54a6e fix: report core files as the builder declares 2026-10-17 19:19:05 +02:00
Abdessamad Derraz 02ab1556cf fix: report region fallback groups in verify 2026-10-17 19:17:41 +02:00
Abdessamad Derraz e6c29452f9 fix: never drop a held file for a missing region
Region filtering ranked every declared file, held or not, so a request
answered only by a missing file dropped the held fallback and emptied
the slot. Only held files now decide what gives way; the missing better
match stays reported.
2026-10-17 18:31:56 +02:00
Abdessamad Derraz 7fe65936e0 fix: apply verify --strict in every mode 2026-10-17 18:26:57 +02:00
Abdessamad Derraz a58b65754b fix: count a core file filling a declaration
In existence mode the builder packs a core's file at a destination the
platform declares and does not hold, and counts the declaration met.
verify now reads the same placement and reports it OK, so both sides
agree on the platform's count.
2026-10-17 18:14:26 +02:00
Abdessamad Derraz 490fefac97 fix: build slot overrides from the loaded profiles 2026-10-17 17:55:00 +02:00
Abdessamad Derraz 426d3c619d fix: let a platform's only target filter nothing 2026-10-17 14:48:35 +02:00
Abdessamad Derraz 697eecfe80 fix: skip an unread zip index in verify --emulator 2026-10-17 13:29:29 +02:00
Abdessamad Derraz feb3b03a39 fix: suggest the nearest system or emulator name 2026-10-17 12:44:22 +02:00
Abdessamad Derraz 62a090be2f fix: list exclusion notes only when asked 2026-10-17 12:37:34 +02:00
Abdessamad Derraz f6b808b1d9 feat: let verify fail on a missing required file 2026-10-17 12:36:35 +02:00
Abdessamad Derraz b6331a765a fix: name the platform a typo was meant to be 2026-10-17 12:28:27 +02:00
Abdessamad Derraz 7ed5ed3cee fix: keep archives whole in verify's region filter 2026-10-17 10:43:54 +02:00
Abdessamad Derraz ccb35b9b82 refactor: read the preferred-entry rule from packresolve 2026-10-17 10:38:18 +02:00
Abdessamad Derraz e3c5d97b94 fix: free a path the builder refuses to fill
verify counted a declaration whose hash the frontend refuses as
occupying its path, while the builder leaves it out and a core file
takes the place; the report then called that core file missing from
the pack. It now reads the builder's verdict. The hidden-extras tests
move to RetroArch and RetroBat, which still fold case, and test the
same-bytes twin again instead of skipping.
2026-10-17 08:51:45 +02:00