Commit Graph
4267 Commits
Author SHA1 Message Date
Abdessamad Derraz 8d0ba26a0f docs: show --required-only in the README 2026-11-05 11:53:11 +01:00
Abdessamad Derraz f2e25aeea2 feat: list platforms with --list-platforms
install.py took --list-platforms, generate_pack.py --list and verify.py
nothing. Both tools now take --list-platforms and print the same list
from common.py. generate_pack.py keeps --list (finding 80).
2026-11-05 11:52:26 +01:00
Abdessamad Derraz 329fcc0f62 docs: name the installer cache and its variable 2026-11-05 11:52:23 +01:00
Abdessamad Derraz 3f07924faf fix: validate_pr reads each platform's own check
A file was matched by its container sha1 or md5 alone. A zipped_file
member, a Recalbox member digest, a RetroDECK sha256 and a RomM size and
crc32 are now read the way verify reads them, and an identical copy's
folder is where its variants go.
2026-11-05 11:51:56 +01:00
Abdessamad Derraz 34ef0cda1d fix: clk western sms bios answers latin america
CLK reads every export cartridge as Europe or USA and boots the western
BIOS for any region but Japan (StaticAnalyser.cpp:49-66,
MasterSystem.cpp:137-140). The tag named brazil without its parent, so
--region mx dropped the BIOS from the Batocera pack.
2026-11-05 11:51:53 +01:00
Abdessamad Derraz 000877689f fix: name the split directory by the pack stem
The prefix was assembled by hand and kept a '/' or ':' the full pack
name makes safe (finding 17).
2026-11-05 11:50:44 +01:00
Abdessamad Derraz 442d49e4e1 chore: drop the scheduled campaign job 2026-11-05 11:50:35 +01:00
Abdessamad Derraz f5140aad0c fix: declare the higan Super GameBoy.sfc folder
higan and nSide look program.rom up in the option's folder, SGB.sfc/,
then Super GameBoy.sfc/. Only the SGB1.sfc/ and SGB2.sfc/ folders were
entries, and both names are files bsnes, Mesen-S and ares read from the
same system directory, so no pack could give the higan cores a Super
Game Boy. SGB.sfc/ collides with SuperSnes9x's sgb.sfc on a
case-insensitive file system. Super GameBoy.sfc/ collides with nothing.
2026-11-05 11:50:27 +01:00
Abdessamad Derraz d7d6f3e412 fix: one hash mismatch rule for diff and export
diff_truth read sha1, md5 and crc32 and let one shared value settle the
entry, while export_native corrected each of the four fields on its own.
contradicted_hashes is now the single decision both read.
2026-11-05 11:50:09 +01:00
Abdessamad Derraz 92ee0cf118 fix: align freshness details in one column 2026-11-05 11:49:45 +01:00
Abdessamad Derraz 1718813728 fix: skip a platform without the --system asked
--all --system built every pack asked for and exited 1 on a platform
that has no such system. The scope is now decided before the lock:
skipped under --all, refused under --platform (finding 15).
2026-11-05 11:49:41 +01:00
Abdessamad Derraz 651b1404db fix: skip the core-info row when offline 2026-11-05 11:49:31 +01:00
Abdessamad Derraz 1a7389076d fix: file the xbox dashboard under the console
x1-box and hakuX both import the retail partition C tree. It sat in
hakuX's tree, so for x1-box the C/xbox.xtf tail was set aside as foreign
and the name step served Xenia's Xbox 360 dashboard font. xbox.xtf and
xboxdash.xbe now live in bios/Microsoft/Xbox/C/ and resolve by path for
both. msdash.xbe stays: its bytes are cxbx-reloaded's xboxdash.xbe, whose
path the RetroBat manifest names.
2026-11-05 11:49:27 +01:00
Abdessamad Derraz f195e714c4 fix: name a missing pack in the consistency step 2026-11-05 11:48:51 +01:00
Abdessamad Derraz 4d46587693 fix: name a Python built without ssl or zlib 2026-11-05 11:48:50 +01:00
Abdessamad Derraz f285c32d67 feat: validate every file of a folder 2026-11-05 11:48:31 +01:00
Abdessamad Derraz 7b6b22351a fix: show no digest for a file never read 2026-11-05 11:48:31 +01:00
Abdessamad Derraz 6876fe7ec3 docs: show the profile check CI runs 2026-11-05 11:47:48 +01:00
Abdessamad Derraz 7f31cf37cf fix: split only the systems the target runs
--split --target asked for a part per declared system, and each one
the target drops ended on a refusal naming it unknown (finding 14).
2026-11-05 11:47:37 +01:00
Abdessamad Derraz c7df790744 fix: one system scope for verify and the packs
A system the target leaves no core for was verified 0/0 with exit 0,
and generate_pack blamed the platform for lacking it. Both read
platform_scope_systems and system_scope_error now (findings 13, 14).
2026-11-05 11:47:03 +01:00
Abdessamad Derraz 43711a2507 feat: name --from-pack in the pack README 2026-11-05 11:46:46 +01:00
Abdessamad Derraz f78da21656 fix: say why the games index did not download 2026-11-05 11:46:40 +01:00
Abdessamad Derraz 0c92fb6705 fix: suggest the closest data directory key 2026-11-05 11:46:30 +01:00
Abdessamad Derraz cfc2515909 fix: check the zipped_file member before composite
A one-member archive whose member carries the zipped_file md5 under
another name has that md5 as its composite. The name step returned it as
md5_composite_exact, which slots and the site take as content proof, while
Batocera looks the member up by name and finds nothing.
2026-11-05 11:45:58 +01:00
Abdessamad Derraz b79e551b88 fix: keep scratch paths out of pack probe records 2026-11-05 11:45:55 +01:00
Abdessamad Derraz 0c384e0446 fix: say when retroarch.cfg cannot be read 2026-11-05 11:45:53 +01:00
Abdessamad Derraz 0b8e4b4767 fix: build the site before the CI test suite 2026-11-05 11:45:49 +01:00
Abdessamad Derraz ecb56c43e5 fix: link every platform's launcher citations 2026-11-05 11:45:24 +01:00
Abdessamad Derraz f69bd7cbd5 fix: read the database size of a declared hash
A platform declaration that names only an md5 left the size check
undecided, and an undecided same-named match overrode a profile's
system:. The size the database holds for that md5 now refutes it: clk's
Oric basic10.rom no longer joins Batocera's BK list.
2026-11-05 11:44:40 +01:00
Abdessamad Derraz 9ae0ede21d fix: check --target before the output lock
A mistyped target waited on the dist lock and the data directory refresh
before it was refused (finding 62).
2026-11-05 11:44:22 +01:00
Abdessamad Derraz ba150de469 fix: name RomM's size rule in every check label 2026-11-05 11:43:55 +01:00
Abdessamad Derraz a434c1a8a0 fix: add a retropie file to its own system's list
Only the first BIOS clause of a help string was read, so naomi2.zip and
segasp.zip went into flycast's Dreamcast sentence. A file now joins the
clause whose names the platform files under its system, or is not added.
2026-11-05 11:43:54 +01:00
Abdessamad Derraz 8ef4eb47fc fix: refuse a target --verify-packs cannot honour
An unknown target, or one the platform does not publish, was dropped and
the full pack verified under it with rc 0 (finding 34).
2026-11-05 11:43:53 +01:00
Abdessamad Derraz 2a243985c0 fix: rename extracted BIOS files into place 2026-11-05 11:43:03 +01:00
Abdessamad Derraz 609710e2d7 fix: say a platform has no hardware targets
The error named platforms/targets/<name>.yml, which read as a file
missing from the repository (finding 63).
2026-11-05 11:42:46 +01:00
Abdessamad Derraz 08cf4dd914 fix: skip other casings in a foreign tree
reminiscence's Flashback module reunion resolved to skyline's
zoneinfo/Indian/Reunion through the case-insensitive name step, and the
emulator pack shipped the time-zone file. Another casing found only in
another emulator's tree says nothing about the entry.
2026-11-05 11:42:29 +01:00
Abdessamad Derraz 34293f7bbb fix: give each download.sh run its own staging 2026-11-05 11:41:48 +01:00
Abdessamad Derraz f3fe6f58b4 fix: name the path of a file read at two places
MyMinUI printed the same MISSING line twice for Bios/FBN/ and Bios/NG/
sfiii2a.zip (finding 78).
2026-11-05 11:41:46 +01:00
Abdessamad Derraz e54d146954 fix: keep install lists unfiltered on --target 2026-11-05 11:41:34 +01:00
Abdessamad Derraz 4e5b48ddbe fix: keep the md5 a mister entry already holds
A BiosDB entry is one record: md5, size and url describe one dump. The
first md5 the truth accepts replaced an accepted one with no change
reported. The exporter now writes record_hash, as RomM and System.dat do.
2026-11-05 11:41:18 +01:00
Abdessamad Derraz 666883ad53 fix: print missing core files under their count
They came after the held-but-not-packed line and read as files
installed with their emulator (finding 79).
2026-11-05 11:41:02 +01:00
Abdessamad Derraz df5de91b37 fix: clean download.sh staging on a failed part 2026-11-05 11:41:00 +01:00
Abdessamad Derraz 34319a56e2 chore: test the bundled rule on the collection 2026-11-05 11:40:56 +01:00
Abdessamad Derraz 0418df5337 fix: truth region is the union of every reader
The first core to tag a file set its region. The pack's region index takes
the union of the tags and voids it on an untagged reader: the truth now
applies the same rule (psxonpsp660.bin, epr-17952a.ic8).
2026-11-05 11:40:41 +01:00
Abdessamad Derraz 5e4becf876 fix: count each reason a held file is not packed
The first entry's reason stood for the whole count: 16 Lakka files
under one cause that 2 of them carried (findings 23 and 76).
2026-11-05 11:40:40 +01:00
Abdessamad Derraz 28a8eec1c4 fix: skip scratch downloads in the restore scan 2026-11-05 11:40:17 +01:00
Abdessamad Derraz 6e77da4b82 fix: write every platform count in the summary
A platform with one entry had no number, so the named counts did not
add up to the total (finding 81).
2026-11-05 11:39:25 +01:00
Abdessamad Derraz d38cd58036 feat: scrape recalbox rom folders per board
GitLab refused the hundred raw reads per IP. A GitLab directory is now
read from one archive request, else a shallow sparse git fetch, and the
cache keeps its file list so offline runs know what is absent.

Each board builds system.ini against its defconfig: a core whose package
the board does not enable is dropped (pisnes was the SNES default
everywhere), and a system with no core is not built. The row names the
default most boards share, board_defaults the others. A files: list
names whole files and is carried as files through the index and the
installer.

A folder no name resolves, run by a core of several machines, now holds
those machines: thomson, multivision and pcv2 had no fallback, so their
games got no file. Arcade-indexed cores keep naming files per set.
2026-11-04 16:48:34 +01:00
Abdessamad Derraz a05fc599d9 fix: read recalbox board sections as romfs does
board_cores walked only the plain [core.N] sections and replaced a board
section whole. romfs2 systemholder.py reads a slot present as
[core.N.<board>] alone (gb and gbc bsnes on x86_64) and each key from the
board section, then <key>.<board>, then the plain key. The committed
target lists are unchanged on all seven boards.
2026-11-04 16:48:34 +01:00
Abdessamad Derraz 9d3458d47a chore: merge generated page refresh 2026-11-04 05:54:14 +01:00