Commit Graph
112 Commits
Author SHA1 Message Date
Abdessamad Derraz 9ea1630caa feat: install case twins where case is kept
The RetroArch list is folded for Windows and macOS. Its manifest
now carries the names a case-keeping directory also needs, and the
installer adds them after probing the BIOS directory.
2026-10-18 13:52:37 +02:00
Abdessamad Derraz 6dc373fcfd fix: refuse two output forms in diff_truth 2026-10-18 08:40:01 +02:00
Abdessamad Derraz dedcf32192 fix: report a failed bootstrap download plainly 2026-10-18 07:38:52 +02:00
Abdessamad Derraz 3116a57617 docs: document every option the scripts accept
Fifty options appeared in no page. fileless_audit also gains --all, so
its example sweeps instead of naming three settled profiles, and it and
download.py --info now fail on an unknown name or an unreachable source.
2026-10-18 07:29:16 +02:00
Abdessamad Derraz 23ed3e92ab docs: mend a torn sentence in the tools page 2026-10-18 07:25:06 +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 731faee6e1 docs: tie the tools page counts to their artifacts 2026-10-18 07:20:34 +02:00
Abdessamad Derraz 2977615f99 docs: list every exporter and target scraper 2026-10-18 07:19:58 +02:00
Abdessamad Derraz d6d03617db fix: exit 1 when a hash lookup finds nothing
The documented example looked up a test fixture hash, printed NOT FOUND
and exited 0. The docs now use a hash the database holds and say which
line forms a hash file accepts.
2026-10-18 07:19:01 +02:00
Abdessamad Derraz 84a144be66 docs: send RetroPie users to the RetroPie pack 2026-10-18 07:17:19 +02:00
Abdessamad Derraz 572a2d20de feat: check a release against its record
A count of assets misses a failed upload beside a stray file and a part
re-uploaded from an older build. check_release.py holds each asset's
GitHub sha256 against SHA256SUMS.txt and release.json, and the release
process publishes the draft only on its clean exit.
2026-10-18 06:26:39 +02:00
Abdessamad Derraz 648784d875 fix: run the suite so its package setup applies
The documented command, discover tests, makes tests/ the top level,
so tests/__init__.py never ran and the variable it sets to keep tests
offline was missing from every local run. Every documented and CI
run now passes -s tests -t ., and a test requires it.
2026-10-18 05:05:09 +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 8a9d6919d9 feat: record the pin a prose reread confirmed
A prose citation whose text lived under several pins stayed in
read again until the text changed, so fixnes, zesarux and emucorex,
exact at their pins, would have refused every later bump.
prose_written_at names the pin a reader confirmed; it settles the
readings and never overrides a history with one candidate.
2026-10-18 02:49:24 +02:00
Abdessamad Derraz 08730575aa fix: pass the installer status through install.ps1 2026-10-17 21:21:41 +02:00
Abdessamad Derraz e089cb86e3 docs: align tools and release pages with the code 2026-10-17 21:20:26 +02:00
Abdessamad Derraz 2c61a909f7 fix: find RetroArch where Windows and macOS keep it 2026-10-17 20:26:02 +02:00
Abdessamad Derraz 7fe65936e0 fix: apply verify --strict in every mode 2026-10-17 18:26:57 +02:00
Abdessamad Derraz 5a3d9bdc9d fix: resolve the DSP ROMs as a pair the code takes
Dolphin and its forks hash dsp_rom.bin and dsp_coef.bin together and
warn on any combination outside known_roms. The profiles now carry the
accepted pairs, and the resolver keeps both files inside the first pair
the collection holds whole: MMJR and Ishiiruka were served the free ROM
beside the official coefficients.
2026-10-17 18:20:00 +02:00
Abdessamad Derraz 5cc45794f4 docs: show installer runs as they really print 2026-10-17 15:06:04 +02:00
Abdessamad Derraz 0fc71793a9 feat: mark catalog gaps a held dump contains 2026-10-17 13:40:05 +02:00
Abdessamad Derraz f6b808b1d9 feat: let verify fail on a missing required file 2026-10-17 12:36:35 +02:00
Abdessamad Derraz 6e8f2df24f fix: keep both cases on lakka and retropie
Both run on Linux but inherited RetroArch's case folding, so a core
file differing from a platform name only by case left their packs:
MesenCE's bios.col and np2kai's lowercase 2608_*.wav, which those
cores open with that exact case. They are now case-sensitive, the
shared groups fold only where the platform does, and Lakka gets its
own pack instead of sharing RetroArch's.
2026-10-17 08:38:16 +02:00
Abdessamad Derraz a4da6d205f feat: profile the MAME releases recalbox builds
Recalbox ships libretro/mame built at 0.258 and at 0.278, and no
profile described either release. mame_hash_scraper gains --release,
which reads the BIOS root sets at one mamedev tag and writes a profile
pinned to it; mame0258 and mame0278 are generated from it, every
source_ref anchored at its tag.
2026-10-17 03:31:11 +02:00
Abdessamad Derraz 42950a553c feat: refresh data trees once per online pipeline
Step 2 refreshed the data directories, then the pack build and the
manifest build refreshed them again, so a tree tracking a moving
branch could differ between the pack and the manifest. generate_pack
gains --no-refresh-data, which packs the cached trees and still
fetches release assets; the online pipeline passes it to both builds.
2026-10-17 01:59:20 +02:00
Abdessamad Derraz e659228777 fix: let target installs match their target pack 2026-10-17 00:39:57 +02:00
Abdessamad Derraz 8892432866 fix: fail install --check when files are missing 2026-10-16 22:09:12 +02:00
Abdessamad Derraz 4dc6af5a89 fix: send the token from the tag helper 2026-10-16 16:58:26 +02:00
Abdessamad Derraz 0408c5d359 fix: state and check the 3.12 build floor 2026-10-16 16:05:10 +02:00
Abdessamad Derraz fbe432ccd0 feat: install only what the installed cores read 2026-10-16 05:02:50 +02:00
Abdessamad Derraz a3941e843c feat: show installer progress and resume downloads 2026-10-15 22:24:39 +02:00
Abdessamad Derraz 6fca4149f5 feat: offer the files no platform system owns 2026-10-10 04:42:11 +02:00
Abdessamad Derraz ece2c06aaf feat: choose systems, cores and regions to install 2026-10-10 04:31:57 +02:00
Abdessamad Derraz fc4451c59f docs: split parts are named, not renamed 2026-10-06 12:29:10 +02:00
Abdessamad Derraz 0c39fc479d fix: drop the --include-extras flag nothing read 2026-10-06 12:27:21 +02:00
Abdessamad Derraz 5c89ac6edc docs: name jsonschema where the build needs it 2026-10-06 09:46:10 +02:00
Abdessamad Derraz 0d3a2b87ed fix: name homonymous release assets by path 2026-10-05 02:51:13 +02:00
Abdessamad Derraz 243e95725b fix: print the released pack counts, not main's 2026-10-04 20:26:09 +02:00
Abdessamad Derraz 14975ce5da fix: keep an issue number from opening a heading 2026-10-04 20:02:34 +02:00
Abdessamad Derraz 52f682cdd6 feat: publish a large pack as zips, not byte ranges 2026-10-04 18:09:24 +02:00
Abdessamad Derraz 63af5167ed feat: state how many files each pack holds 2026-10-04 18:01:33 +02:00
Abdessamad Derraz 2efc37a738 feat: pack the files a directory entry names 2026-10-04 17:58:10 +02:00
Abdessamad Derraz 1be50e056f docs: state what separates two platform packs 2026-10-04 17:49:16 +02:00
Abdessamad Derraz 59ccb5b7d5 feat: scope a profile data directory to a build mode 2026-10-04 17:09:14 +02:00
Abdessamad Derraz b81199ff26 feat: keep cached platform originals in step 2026-10-04 16:36:35 +02:00
Abdessamad Derraz 08bce47668 fix: keep install manifests and release assets true 2026-09-14 01:17:49 +02:00
Abdessamad Derraz 691ccbfca7 feat: make the native export round-trip a platform file 2026-09-05 17:32:48 +02:00
Abdessamad Derraz a0b2263bae feat: let a profile say its pin is held on purpose
nethersx2-turnip-classic documents the shim rules of the revision it
pins, and says so in prose: the classic build is that revision. Compared
to HEAD it reported the same two changes every pass, and recaling would
have repointed its refs at rules this build never had.

pin_frozen says the freeze is deliberate, and the profile is then judged
against its own revision, exactly as one pinned to a superseded tag
already was. Recale and bump are refused for it, which is what makes the
declaration safe to trust.
2026-09-05 10:50:53 +02:00
Abdessamad Derraz 771c38ab09 fix: say nothing was run when the fingerprint differs 2026-09-05 07:50:18 +02:00
Abdessamad Derraz ab170f990d docs: add a first install walkthrough 2026-09-05 07:46:06 +02:00