Commit Graph
4226 Commits
Author SHA1 Message Date
Abdessamad Derraz 1ad6570468 fix: drop BIOS files from app-only emulator titles
A profile whose every file comes with the app was titled "<X> BIOS files" and described by its system alone. The title now reads "<X> emulator" and the description says every file it reads comes with the app.
2026-11-05 19:34:00 +01:00
Abdessamad Derraz 101757675b fix: say in place only with data files in place 2026-11-05 19:33:05 +01:00
Abdessamad Derraz 439b2cdaba fix: split the np2 V98 font from font.bmp
NP2kai and meowPC98 read font.bmp (PC-98 bitmap) and FONT.ROM (V98) as
separate files, each through its own reader (NP2kai font/font.c:192-195,
meowPC98 font/font.c:180-181). The V98 names hung on font.bmp as aliases
let a collection without font.bmp serve the PC-88 2 KB font.rom there.
FONT.ROM is now its own entry, at least 0x46800 bytes (fontv98.c:8, 51).

Manifests: np2/FONT.ROM and np2kai/FONT.ROM are added where the platform
did not declare them, served by the V98 font bios/NEC/PC-98/font.rom.
2026-11-05 19:33:04 +01:00
Abdessamad Derraz 8cbd720480 docs: say what a SHA1 lookup leaves out
The Data page said a SHA1 lookup was enough because MD5 and CRC32 declarations are filed under the collection file's SHA1 too. That holds only for a file the collection holds: 702 platform MD5s and 18 CRC32s are filed under their own value alone.
2026-11-05 19:32:51 +01:00
Abdessamad Derraz 525c06419b feat: link the version to the file or tag
The Version cell printed the file a version is read from, or its tag, as bare text beside a pinned Revision link. The file now links at the pin where the recorded tree holds it, and the tag links to its tree. cited_paths records the version files so the record can confirm them.
2026-11-05 19:32:08 +01:00
Abdessamad Derraz e0f11ed175 fix: deploy the site when validate_pr changes
CONTRIBUTING now reads the large file issue URL from validate_pr, which imports dedup: a change to either rewrites the contributing page.
2026-11-05 19:32:08 +01:00
Abdessamad Derraz d8cfd283b4 fix: show packed core files with an empty gap list
verify --platform recalbox --system nec-pc-engine printed no Core files line while the pack held six syscard copies for geargrafx: the section returned on an empty gap report before reading packed_extras. It now prints the pack's counts whenever they are not zero.
2026-11-05 19:32:05 +01:00
Abdessamad Derraz aaaafd5771 fix: name the address a download was refused at 2026-11-05 19:31:42 +01:00
Abdessamad Derraz 137f971dae fix: drop bundled files from provenance needs
profile_needs read every profile entry, so --missing named 43 files the emulator installs itself among 50 needs and buried the six xm7 ROMs. A bundled entry is skipped unless a platform package leaves it out (not_bundled_on). The report now lists 7 needs.
2026-11-05 19:30:57 +01:00
Abdessamad Derraz a05b1da9a0 fix: leave bundled files out of auto_fetch targets
find_missing kept undeclared files reached only by bundled entries, so auto_fetch searched for and offered files the emulator installs itself, and a placed copy would fail bundled_only.py --strict. RetroPie drops from 55 to 14 missing files.
2026-11-05 19:30:29 +01:00
Abdessamad Derraz f9a786896e fix: restore the profile when the prose read fails
_apply_writes promoted the bumped profile, then read its prose under the new pin. A NotCachedError, RateLimitError or UpstreamError from that read left the profile written with a pin the guard would refuse. The original bytes are now put back before the error goes on.
2026-11-05 19:30:04 +01:00
Abdessamad Derraz d78af1b00d feat: narrow a retropie install to its pi 2026-11-05 19:29:58 +01:00
Abdessamad Derraz f8dce8f8c3 fix: keep upstream HEAD for a pin past the fork
_follow_fork_base swapped the fork merge base in as upstream HEAD even when upstream_commit was newer than that base, as for melonds and easyrpg whose upstream is the standalone build they document. melonds read its Qt refs 825 commits back and reported 4 to review. A pin that descends from the base now keeps the HEAD, melonds shows 0 to review.
2026-11-05 19:29:23 +01:00
Abdessamad Derraz 4bc9074dfe feat: say why an upstream revision is held
The emulator page showed the reason for pin_frozen and never the one for upstream_frozen, which 11 profiles record: mupen64plus read as left behind HEAD.
2026-11-05 19:29:22 +01:00
Abdessamad Derraz 1b388e3cdc fix: credit a core the archive it reads members in
FBNeo reads sm1.sm1 inside neogeo.zip. The site resolved each member entry by its crc32, credited loose copies FBNeo never opens, and no neogeo.zip card named FBNeo. A member entry now resolves through archive_entry as the pack does, and its card names the archive.
2026-11-05 19:29:02 +01:00
Abdessamad Derraz fbc530123e fix: say offline that a platform has no targets 2026-11-05 19:28:28 +01:00
Abdessamad Derraz 651cabf412 fix: rank orphaned and moved pins first in triage
drift_score ignored orphaned pins and moved repositories although triage_state says they are fixed before any ref is read: pcem ranked last at 0 with an upstream_commit on no branch. Each now weighs more than a GONE ref.
2026-11-05 19:27:36 +01:00
Abdessamad Derraz a3c853316a fix: name the dirty profiles profile_sync refuses
The refusal said the directory carried uncommitted changes without naming the profile, among about 375. It now lists the files git status reports, and says that --force writes over them.
2026-11-05 19:27:12 +01:00
Abdessamad Derraz bb5ac226d6 fix: find a python3.x beside an old python3 2026-11-05 19:26:51 +01:00
Abdessamad Derraz fb9b5592a5 feat: let --emulator take an alias name
--emulator mednafen_psx refused with 'use --emulator beetle_psx' although the profile names its target. The alias now selects that profile and says so on stderr, in verify, generate_pack and cross_reference alike. Launchers are still refused, and pipeline step 5 skips aliases since they compare under the profile they name.
2026-11-05 19:26:36 +01:00
Abdessamad Derraz 62568f6d76 fix: stop the windows bootstrap on a silent server 2026-11-05 19:26:12 +01:00
Abdessamad Derraz f24b34c1ef feat: place recognised files with validate_pr
The report named the folder of each file and left the copy to the contributor, one file and one .variants/ name at a time. --place copies each recognised file from outside bios/ to its folder under the name the lists declare, or to the .variants/ slot of a name already held, never over a file. A hash with two names or two folders is not placed.
2026-11-05 19:25:47 +01:00
Abdessamad Derraz c54a68c6ca fix: end the bootstrap with 130 on ctrl+c 2026-11-05 19:25:33 +01:00
Abdessamad Derraz 73b82375d9 feat: recognise a mister card on a computer 2026-11-05 19:25:30 +01:00
Abdessamad Derraz 640331b159 docs: regenerate the installer output samples
The RetroArch manifest gained ep128emu/roms/ide12.rom in c624a820f and the page still quoted the earlier counts, which failed test_doc_pages.
2026-11-05 19:23:54 +01:00
Abdessamad Derraz eaa7effa74 fix: mark held and unknown PR files for review
validate_pr said all checks passed for random bytes and for a copy of a held file, and sent the copy to the folder that already holds it. Each now reads REVIEW with its next step, the status line counts them, and a held copy gets no placement hint. A copy inside a tree kept out of dedup is still accepted.
2026-11-05 19:22:55 +01:00
Abdessamad Derraz 3b0112001e fix: serve a data dir file at its platform path
AmberELEC and EmuELEC declare blueMSX's Machines/<model>/config.ini and
Shared Roms/RS232.ROM with no hash. The name step served msx-emu's
ColecoVision config.ini in 192 machine folders and the 16 KB RS232.ROM,
while data/bluemsx held blueMSX's own file at that very path. A platform
declaration with no hash now reads its destination's tail in the data
directories before the name step. Profile entries keep the foreign-tree
redirect, so Dolphin's dsp_coef.bin dump still outranks the free copy.

Manifests: amberelec and emuelec omit 192 config.ini entries (held in
data/bluemsx only, so the installer has no URL) and serve colecodb.xml,
MSX2+/config.ini, MSXturboR/config.ini and RS232.ROM from blueMSX's bytes.
2026-11-05 19:21:26 +01:00
Abdessamad Derraz 4b54b82966 fix: suggest the target when no platform has it
verify --all --target swich ended on 'no platform has it' after seventeen INFO lines, two of which held the suggestion. The refusal now names the closest targets across every platform with the platforms that have them, and the per-platform lines print only when some platform keeps the target.
2026-11-05 19:21:23 +01:00
Abdessamad Derraz a06f5ad2ba fix: fetch the project main an upstream lacks
A remote named upstream added as CONTRIBUTING said and never fetched made validate_pr --changed compare with the fork's main and exit 0 on nothing. It now fetches the project's main when the remote does not hold it. profile_sync names the fetch when --base is absent, and CONTRIBUTING adds git fetch upstream.
2026-11-05 19:20:50 +01:00
Abdessamad Derraz 66dae2a974 fix: refuse a cores folder that cannot be listed 2026-11-05 19:20:14 +01:00
Abdessamad Derraz 9ae3919d34 fix: spell cited commands so a paste runs them
Messages in check_freshness, generate_pack, common, profile_sync and fileless_audit named commands as export_native.py --platform x, which fails from the repository root. They now read python scripts/<name>.py like the rest of the report.
2026-11-05 19:19:04 +01:00
Abdessamad Derraz c0bb3443c0 fix: read a batocera zen3 board as its target 2026-11-05 19:18:50 +01:00
Abdessamad Derraz 9e04bf887d docs: give files over 100 MB their route
CONTRIBUTING sent any file over the browser's 25 MB through a clone, which GitHub refuses past 100 MB, and named a release only a maintainer can write to. It now gives the route validate_pr.py prints: an issue with the hashes.
2026-11-05 19:18:38 +01:00
Abdessamad Derraz 289c180bfa feat: narrow a knulli install to its board 2026-11-05 19:18:29 +01:00
Abdessamad Derraz 46a6ac2675 docs: list the site build among the PR checks
CONTRIBUTING named the checks CI runs on a pull request and left out the npm build, validate_site.py, vermin and the pip packages the test job installs. A wiki-only change passed every listed check and failed CI.
2026-11-05 19:17:52 +01:00
Abdessamad Derraz 232cebb513 chore: ignore the metadata pip install writes 2026-11-05 19:17:34 +01:00
Abdessamad Derraz dd904e2fab fix: say what differs in games index --check
--check printed only STALE and a path, after the whole coverage table. It now skips the table, names what changed in each document (an added file, a changed key) and the command that writes them. The published index lagged the RetroArch manifest by ep128emu/roms/ide12.rom and is regenerated.
2026-11-05 19:17:23 +01:00
Abdessamad Derraz 891741433b fix: publish the games index whole or not at all
install/games/, the event schema, the launcher index and wiki/installer.md were truncated at their final name, so an interrupted run left a committed-looking partial JSON document. They now go through write_text_atomic.
2026-11-05 19:16:59 +01:00
Abdessamad Derraz 6ae9e461bd docs: name the steps the pipeline skip flags skip
--skip-packs said --skip-docs would stop after verify while 4d and 4e still run, and the tools.md flag table left 8b out of --skip-docs. The help, the usage and the flag table now name the steps the step table marks.
2026-11-05 19:16:32 +01:00
Abdessamad Derraz 83f5d161ab fix: say a config detection fails to read 2026-11-05 19:15:35 +01:00
Abdessamad Derraz 9d51052c25 docs: rerun the installer samples on the new lists
c624a820f rewrote install/*.json when ide12.rom was collected and left the run samples one file behind, which failed four tests in test_doc_pages.
2026-11-05 19:15:24 +01:00
Abdessamad Derraz ed100a5c08 fix: skip the wide table check without a build
A missing page was a continue, so with no website/dist the test ran no assertion and reported ok.
2026-11-05 19:13:51 +01:00
Abdessamad Derraz 17538bcddf refactor: keep one region word table on the site
_REGION_WORDS was bound twice in generate_site. The second table won at import, so the first, read by _region_word, was never used. The region lines now read the one table through _region_words.
2026-11-05 19:13:23 +01:00
Abdessamad Derraz b6b7856e97 fix: read bundled on the site as verify does
comes_with_app kept an entry narrowed by mode as required and missing, while verify and the pack read it as installed with that build (validation.installed_with_emulator). The four other site checks of bundled now go through the same function.
2026-11-05 19:12:52 +01:00
Abdessamad Derraz 59c8217280 fix: say a settings file detection cannot read 2026-11-05 19:11:08 +01:00
Abdessamad Derraz 80f736c167 fix: read the umask under one lock
plain_file_mode and safe_extract_zip set the umask to 0 to read it. Two threads doing so could restore 0 last, leaving every later file world-writable. Both now read it through process_umask, which holds a lock.
2026-11-05 19:10:57 +01:00
Abdessamad Derraz 494e390de8 fix: take an elec bios folder as its games part 2026-11-05 19:09:43 +01:00
Abdessamad Derraz a1d5e7c13d fix: let pip install the dev extra
pyproject had no [build-system] and no module list, so setuptools' flat-layout discovery found scripts/ and tests/ and refused to build. Nothing is packaged now and pip install -e ".[dev]" installs the tooling.
2026-11-05 19:08:16 +01:00
Abdessamad Derraz dc146312a8 docs: regenerate installer examples 2026-11-05 19:08:03 +01:00
Abdessamad Derraz 4b02ab33da fix: one sha1 rule at the manifest boundary 2026-11-05 19:08:03 +01:00