Commit Graph
4061 Commits
Author SHA1 Message Date
Abdessamad Derraz 8ddaabe07a fix: check the core file at a refused pin path
The integrity check let a platform file the frontend's hash refuses
hold its path, so the core file the builder ships there was never
compared (finding 3).
2026-11-05 11:57:06 +01:00
Abdessamad Derraz 8dcf531625 fix: report pinned trees the source record lacks 2026-11-05 11:57:01 +01:00
Abdessamad Derraz 8e6d672136 fix: hold CONTRIBUTING to the CI profile check 2026-11-05 11:56:50 +01:00
Abdessamad Derraz dde6229775 fix: count a core's release asset as packed
verify replayed the core extras offline: a release asset an online
build fetched and packed took no path in its report (finding 2).
2026-11-05 11:55:53 +01:00
Abdessamad Derraz d5c4cd3575 fix: read ti99sim version from its changelog
core_version went null although doc/CHANGES.html at the pin opens on
Version 0.16.0. ti99sim cites v0.16.0 and v0.0.11 parts side by side,
and with no documented version every part read as another program:
profile_sync reported 6 external, 0 to review, nothing checked. The v0.16.0
parts are anchored at the pin again, the v0.0.11 parts stay external.
2026-11-05 11:55:52 +01:00
Abdessamad Derraz 71020c3974 fix: list a pending release asset as packed
verify counted it OK but kept its path out of pack_destinations, so an
online step 5 reported the fetched file as pack only (finding 1).
2026-11-05 11:54:42 +01:00
Abdessamad Derraz 0d60cc19c9 docs: quote the current verify report 2026-11-05 11:54:22 +01:00
Abdessamad Derraz fd93381c3e fix: drop region tags chosen by machine model
XRoar reads the Dragon 200-E and Alice ROMs for those machine configs
(src/xroar.c:437-444, 552-558 at 1.12.1), and VICE the Japanese kernal
and chargen for the C64 JAP and VIC-1001 models: a (Japan) file name
selects the NTSC model (libretro-core.c:2018-2034). No code branches on a
territory for these files, so region: is removed, as profiling.md rules
for a model enum.
2026-11-05 11:54:06 +01:00
Abdessamad Derraz 25b5523024 fix: name the file each emulator reads in slots
A keep line gave every emulator the file of the first profile claim:
Recalbox's neocdz.zip line said geolith reads the archive fbneo reads.
The JSON 'expected' lists each file with its emulators (finding 4).
2026-11-05 11:53:58 +01:00
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 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 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 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 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 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 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 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 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 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
Abdessamad Derraz 33add072cb chore: merge installer page refresh 2026-11-04 05:52:02 +01:00
Abdessamad Derraz fa9fbbed9e fix: a cited module may be a package
python -m runs a package by its __main__.py: scripts.scraper.romfolders is one.
2026-11-04 05:51:40 +01:00
Abdessamad Derraz 8848f3e6f6 chore: merge tools page refresh 2026-11-04 05:49:49 +01:00
Abdessamad Derraz 058bb13884 docs: list pipeline step 4e
The games index step came in with main. The installer samples test now reads step 7 in the list form the pipeline steps test holds.
2026-11-04 05:45:29 +01:00
Abdessamad Derraz 0bd206da4d chore: merge main into Sony pages 2026-11-04 05:11:58 +01:00
Abdessamad Derraz 1077d77125 fix: reset console pages in the index tests
A Sony fixture split by console recorded its pages in the shared map, and the index tests that ran after it linked PlayStation to the split page. They now start from an empty map, and the fixture clears it when done.
2026-11-04 04:47:01 +01:00