Commit Graph
4571 Commits
Author SHA1 Message Date
Abdessamad Derraz b4346ebf14 fix: no composite md5 as a container target
Recalbox hashes a ZIP by its members (zip_digest: composite, Bios.cpp:64-68), so its md5 names no container bytes: romset_recipes --missing tried to rebuild it and counted it unreproducible.
2026-11-06 18:34:34 +01:00
Abdessamad Derraz 5b6feef785 chore: merge site fixes 2026-11-06 18:17:24 +01:00
Abdessamad Derraz 4ac3f7de71 fix: count clicks apart from direct visits
GoatCounter files an action as a direct visit: the report subtracts
them and states page views and actions apart.
2026-11-06 18:17:19 +01:00
Abdessamad Derraz e7c4de27bc fix: lead the old oric address to tangerine
A reader followed /systems/oric/ to the 404 page: Oric has been filed
under its maker since 2026-10-23.
2026-11-06 18:17:19 +01:00
Abdessamad Derraz 0c074f8458 fix: run mypy and shellcheck in pr_checks
validate.yml runs mypy against its baseline and checks that shellcheck
is installed, and pr_checks ran neither. The guard test only knew the
python, vermin and npm commands, so it missed both. A step can now pipe
its output into a second command, as mypy into mypy-baseline filter.
2026-11-06 17:58:44 +01:00
Abdessamad Derraz 2e949a8cc6 docs: describe profile copies without field names 2026-11-06 17:35:23 +01:00
Abdessamad Derraz 2e32b12f64 fix: import the test isolation in test_proven_name 2026-11-06 17:25:26 +01:00
Abdessamad Derraz b9f309940c chore: merge site and docs fixes, fifth pass 2026-11-06 17:15:57 +01:00
Abdessamad Derraz 84cffe3f8d chore: merge origin/main 2026-11-06 16:42:16 +01:00
Abdessamad Derraz 8e3ba2cfd3 chore: merge scraper and tool fixes 2026-11-06 16:36:32 +01:00
Abdessamad Derraz faf444a476 fix: hold the exit status page to code 3 2026-11-06 16:18:35 +01:00
Abdessamad Derraz 2ae34b9497 fix: keep the --target help a literal string 2026-11-06 16:18:35 +01:00
Abdessamad Derraz 99bdfccdd7 docs: regenerate README coverage counts
One core file fewer per platform running minivmac.
2026-11-06 16:10:28 +01:00
Abdessamad Derraz 7cbfa53851 fix: give commit_rules.py a --help 2026-11-06 16:01:27 +01:00
Abdessamad Derraz fd62b21abd chore: expect binary citation annotations 2026-11-06 16:01:27 +01:00
Abdessamad Derraz 3755729beb fix: end pr_checks through run_cli 2026-11-06 16:01:27 +01:00
Abdessamad Derraz a195023d3d chore: run every test class when a file runs alone 2026-11-06 16:01:27 +01:00
Abdessamad Derraz 0d52df4ea7 docs: update the RetroDECK report excerpt
MinivMacBootv2.dsk left the minivmac profile: RetroDECK packs 1763 core
files.
2026-11-06 16:01:04 +01:00
Abdessamad Derraz f69a142a1c docs: list test_proven_name in the testing guide 2026-11-06 16:01:04 +01:00
Abdessamad Derraz 35be4cf033 fix: compare whole md5 in the folder check
check_platform_folder.py, the script the site publishes, still accepted
a cut md5 by prefix. It now compares whole digests as Batocera does
(batocera-systems:1088), like verify since cut_md5_owner.
2026-11-06 16:01:04 +01:00
Abdessamad Derraz 5a1c157ded chore: merge cli output fixes 2026-11-06 15:57:13 +01:00
Abdessamad Derraz 17e035ac8d fix: keep the folder check's mode in DIGESTS 2026-11-06 15:47:18 +01:00
Abdessamad Derraz 1bbbdcd4e4 fix: keep tool names out of the probe path check 2026-11-06 15:46:54 +01:00
Abdessamad Derraz 8477cda1ca feat: end a check with files missing on code 3 2026-11-06 15:44:14 +01:00
Abdessamad Derraz 7d99685ce1 fix: drop the Recalbox boot disk from minivmac
Mini vMac opens no MinivMacBootv2.dsk at babdf7b5: disks come from a .cmd
(libretro-core.c:181-195) or disk1.dsk to disk9.dsk
(OSGLUERETRO.c:563-579). The name is the one Recalbox's configgen writes
into its .cmd, already recorded in its launchers: layer. Nine manifests
no longer send the 24 MB image to platforms that never open it.
2026-11-06 15:25:02 +01:00
Abdessamad Derraz 537f814d4a refactor: one refusal for profile-blind narrowings
generate_pack and verify each held a copy of the refusal added for MiSTer
and BizHawk. without_profile_blind in common.py is the one both read.
2026-11-06 15:23:13 +01:00
Abdessamad Derraz 286c2e8d29 fix: hold install.py under the one-liner size cap 2026-11-06 15:22:11 +01:00
Abdessamad Derraz 8a48156830 fix: drop RMG launcher names from Mupen64Plus
IPL_USA.n64 and IPL_DEV.n64 are the names RetroBat's mupen64 generator
writes for Rosalie's Mupen GUI (Mupen64.Generator.cs:232-238).
Mupen64Plus, Mupen64Plus-AE and M64Plus FZ fix no IPL name: the path
comes from the IPL-ROM key or --dd-ipl-rom, then the Android front ends
copy the chosen file to dd_rom.n64.
2026-11-06 15:22:10 +01:00
Abdessamad Derraz c24738a81d fix: say a full drive as such, not a read error 2026-11-06 15:21:59 +01:00
Abdessamad Derraz 7d8a3486e6 fix: count data trees in the free space check 2026-11-06 15:20:50 +01:00
Abdessamad Derraz 4eba10d1ad fix: name every board system in --target help 2026-11-06 15:19:32 +01:00
Abdessamad Derraz 01a13c6457 feat: derive standalone copies from profiles 2026-11-06 15:19:01 +01:00
Abdessamad Derraz ed6643022d fix: write the cut md5 rule once
Six places read an md5 shorter than 32 digits, each with its own bound.
digest_verdict accepted any prefix down to one digit, while Batocera
compares the whole string (batocera-systems:1088). A cut value now names
a dump only when one held md5 starts with it (cut_md5_owner, read by the
scraper, the resolver and --from-md5), and every verdict compares whole
digests.
2026-11-06 15:18:38 +01:00
Abdessamad Derraz 8af7b0da13 docs: state why XM7 KANJI.ROM is not held
The reason named only MSX and FPseNG fonts, while fm7.zip and fm77av.zip
hold a Fujitsu kanji ROM (MAME kanji.rom, crc32 62402ac9). Rendered at
the codes kanji.c:353-380 swaps between JIS78 and JIS83 (0x3646, 0x445B,
0x4768), it draws the JIS83 forms: the ROM is a first standard JIS83
table, not the JIS78 one XM7 reads as KANJI.ROM.
2026-11-06 15:15:35 +01:00
Abdessamad Derraz fc10223a85 fix: reseal the ids of cleaned probe records 2026-11-06 15:14:40 +01:00
Abdessamad Derraz 057fd2d0f6 fix: isolate every test module however it runs
tests/__init__.py keeps a run offline, its scratch under tmp/ and its
installer cache its own, but only discover -s tests -t . imported it.
discover tests ran with RETROBIOS_OFFLINE unset, scratch on the /tmp
tmpfs and the user's real installer cache, the setting in which e2e
fixtures had written into the shared .cache/large. Every test module now
imports the package first, and a test fails on a module that does not.
test_verify_listing.py took its line with the previous commit.
2026-11-06 15:14:05 +01:00
Abdessamad Derraz 7dcb427e27 fix: hint at --verbose when no bundled name shows
With no required firmware among the bundled entries the line read
'20 (20 more, --verbose lists them)'. It now reads '20 (--verbose lists
them)', and reading-reports.md quotes the run as it prints.
2026-11-06 15:13:55 +01:00
Abdessamad Derraz cca439a903 fix: run refused writers in a copy of the tree 2026-11-06 15:13:30 +01:00
Abdessamad Derraz 6d1e8e36fc fix: refuse a restore without its asset registry
gitignored_paths read a missing file as an empty registry: nothing to
restore, nothing unsatisfied, exit 0 with every release asset absent.
The run now stops with the path it could not read.
2026-11-06 15:13:05 +01:00
Abdessamad Derraz b6b26392e1 refactor: move the collection model to its module 2026-11-06 15:12:36 +01:00
Abdessamad Derraz cf4afccf04 fix: show source_ref annotations on the cards 2026-11-06 15:10:40 +01:00
Abdessamad Derraz 64ed86cd5f fix: pin the large file inode just verified
_pin_verified returned an existing <sha1>/<name> link without checking
its inode. A link whose cache name was gone had one link left, and the
prune of the same download removed it after it was returned, so
fetch_large_file handed out a path that no longer existed. The link is
now replaced when it holds another inode, and a revision directory a
prune removed before the link is made again.
2026-11-06 15:10:05 +01:00
Abdessamad Derraz 1b4b31fb32 fix: run the read-only tools from the repo root
Only verify.py and generate_pack.py moved to the repository root. From
any other folder slots, region_audit, provenance_report and bundled_only
said database.json was missing and to rebuild it, identity and
list_platforms named a missing folder, and game_rules ended on a
FileNotFoundError traceback. work_from_repo_root moves to common.py and
the eight tools call it: defaults are read from the root, a path the
user typed from where it was typed.
2026-11-06 15:09:35 +01:00
Abdessamad Derraz 0ec99cc771 fix: key losing core claims like the winner
_collect_emulator_extras recorded a losing claim's path without the
declared root, while the winner's was rewritten with it. On RetroDECK
verify --region kept Rustation and Mednafen STV copies of withdrawn
bios/ files in undeclared_files as packed (7 under japan, 4 under
north-america, 3 under europe).
2026-11-06 15:09:21 +01:00
Abdessamad Derraz bc489273a0 fix: read a pack version past its platform part
_pack_version took the text after the last underscore of the pack name.
AmberELEC's prerelease-20261019_1835 read as 1835 and the page would
announce a version gap that does not exist. The site now removes the
platform part the builder writes (platform_pack_prefix).
2026-11-06 15:07:25 +01:00
Abdessamad Derraz bf10ebaa82 docs: say verify --all covers every platform
The --all help still read 'Verify all active platforms' after the
archived status was dropped. --all covers every registered platform.
2026-11-06 15:06:42 +01:00
Abdessamad Derraz 52b7ee0f46 fix: succeed when an emulator needs no file
--emulator handy --required-only removed the empty ZIP, printed the
path it had just removed and exited 1, while verify reported 0/0 OK and
exited 0. The builder now says no file is needed and succeeds.
2026-11-06 15:06:28 +01:00
Abdessamad Derraz 1fe37d16ac fix: keep stderr after the report it closes
verify.py --emulator fbneo --strict > log 2>&1 put the ERROR verdict on
the first line of the log: redirected, stdout is block-buffered and
stderr is not, and run_cli flushed stdout only after main returned.
run_cli now sets stdout to line buffering, so every tool it runs keeps
the two streams in the order they were written.
2026-11-06 15:06:26 +01:00
Abdessamad Derraz 3eade14d4f refactor: keep the bundled names out of listed
The bundled line reused the name of the str that holds the Core files
hint for a list. mypy reports it against the baseline.
2026-11-06 15:06:15 +01:00
Abdessamad Derraz 74a4a036ea fix: read crc32 past a copier header in slots
Geargrafx drops a 512-byte header before its crc32 (src/media.cpp:754-773
at 7c447b0b), and its profile lists both sizes. slots compared the crc32
of the whole file, so EmuELEC's headered syscard3.pce read as contested.
2026-11-06 15:04:26 +01:00