Commit Graph
2268 Commits
Author SHA1 Message Date
Abdessamad Derraz 651b1404db fix: skip the core-info row when offline 2026-11-05 11:49:31 +01:00
Abdessamad Derraz f195e714c4 fix: name a missing pack in the consistency step 2026-11-05 11:48:51 +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 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 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 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
Abdessamad Derraz 8848f3e6f6 chore: merge tools page refresh 2026-11-04 05:49:49 +01:00
Abdessamad Derraz 0bd206da4d chore: merge main into Sony pages 2026-11-04 05:11:58 +01:00
Abdessamad Derraz 531edaa1ad feat: give every Sony console its own page
A section shares its page's search fields, and "playstation 3 bios" found the PlayStation page before the Sony page that held the PS3. CONSOLE_PAGES splits Sony by console whatever the size. The search gate now expects the PlayStation 3 page in the top two for that query, the order of words being something Pagefind does not weigh, and the page first for "ps3 bios".
2026-11-04 03:55:07 +01:00
Abdessamad Derraz fd7dd0efe5 fix: games tools write whole files, name options
The games importers wrote through fixed .part names, the new options had
no help text, and romfolders stopped on the first setup the offline cache
lacked. RetroArch's rom folder map is regenerated from its source spec
(path null, as the schema says). The installer's Python 3.8 job imports
the games tests without pyyaml, so the region rules load lazily.
2026-11-03 22:46:17 +01:00
Abdessamad Derraz af2e930d32 chore: merge games on card installer mode 2026-11-03 21:06:04 +01:00
Abdessamad Derraz 8ba0a8c3f6 chore: merge main 2026-11-03 19:12:38 +01:00
Abdessamad Derraz 2e9175a8e9 feat: install for the games on the card
--for-games reads the card's rom folders through install/games/ and keeps
what the games need: per system what its default core reads, one region
where the content proves it (crc32 and size, a disc serial, a header the
core reads), an arcade set's BIOS parents. A game not recognised gets
every BIOS of its system and is named. --required-only keeps only what
starts. The plan and the line menu open on it when the card holds games,
everything one press away. A cache keeps what reading a card found.
2026-11-03 18:51:21 +01:00
Abdessamad Derraz ff1f94e473 feat: read 0.78 era arcade parents from code
mame2000, mame2003 and mame2003-plus carry a DAT their code moved past. Their parents and BIOS sets now come from src/driver.c and src/drivers/ at the pin, named by the src tree sha. The DAT is still read to report gaps. FBNeo DATs are read one namespace each, console sets keyed by driver. A BIOS with no dumped ROM is no longer listed.
2026-11-03 18:46:45 +01:00
Abdessamad Derraz b69b33178b feat: publish board sets and sets with no bios
The games index now names, per arcade core, the game sets that load no
BIOS set and every BIOS set, so a set on a card the DAT does not know is
told apart from one that needs nothing. Each board default core of a rom
folder gets its own fallback set, and index.json maps every folder name
a setup uses to its systems, for a games folder on a computer.
2026-11-03 18:17:03 +01:00
Abdessamad Derraz 1271b338f4 fix: keep listxml machines larger than a read 2026-11-03 18:07:08 +01:00
Abdessamad Derraz c2ad67e4fa feat: publish the games index with install lists 2026-11-03 17:45:03 +01:00
Abdessamad Derraz 1aa36258b2 feat: scrape the rom folders of each setup 2026-11-03 17:37:33 +01:00
Abdessamad Derraz 249b189ec9 feat: index arcade sets by bios parent 2026-11-03 16:36:26 +01:00
Abdessamad Derraz dc337c893c feat: add region and per-game file rules 2026-11-03 16:36:26 +01:00
Abdessamad Derraz 8d8689c2e4 feat: import game catalogs and header rules 2026-11-03 16:36:22 +01:00
Abdessamad Derraz 0939cf4d77 fix: cut emulator parts by the words rows show
MAME's first card part showed 1,931 words against the 1,693 ceiling once
888 entries named their system: each row gained a "for <system>" badge
while parts were cut by card count. Parts are now cut by the words each
row shows with its card closed, balanced, at most 1,350 a part and still
at most 180 entries. MAME goes from 9 parts to 10, no part disappears.
2026-11-03 15:58:03 +01:00
Abdessamad Derraz c90c43fd46 chore: merge redump, mame and fbneo data fixes 2026-11-03 15:35:29 +01:00