Commit Graph
4422 Commits
Author SHA1 Message Date
Abdessamad Derraz 63fafaf0f9 fix: read teknoparrot and simple64 from mirrors
teknogods/TeknoParrotUI and simple64/simple64 answer 404 on the API and the web, and neither organisation lists them now. simple64's README at the pin archives the project for gopher64. Each profile declares upstream_gone and a fork that keeps its default branch at the analysed commit: thecrixux/TeknoParrotUI master is b75872ad, simple64-vault/simple64 main is d8c969c7. realign_prose reads a source declared gone through that mirror, which unblocks five teknoparrot notes citations that anchor unchanged.
2026-11-06 08:37:12 +01:00
Abdessamad Derraz 4377cbb2af fix: another tree's casing does not hold a file
dosbox-x's et4000.bin matched only pcem's et4000.BIN. resolve_local_file, asked as dosbox-x, refuses another emulator's tree in its case-insensitive step, so the pack and installer leave it out, while the gap report and verify's core files resolved without the asker and counted it held. Both now resolve as the profile, and the manifests of Batocera and KNULLI no longer flag it held.
2026-11-06 08:36:42 +01:00
Abdessamad Derraz a0ecca0024 fix: collect abbreviated prose citations
A location written without its file, (:507), reads in the file named last in the scalar, either cited or named as 'path:' before a list. A dotless file cited with its directory (tools/errorgen:20) is a citation too. devilutionx, corsixth, starship, plastic, eden-nightly, theforceengine, lightspark and higan_sfc gain 33 citations that bump and realign now follow. Two read that way pointed at another file and now name theirs: devilutionx assets.cpp:511-518, corsixth app.lua:1591.
2026-11-06 08:33:16 +01:00
Abdessamad Derraz b3f8f64395 fix: refuse options a listing does not read
Two listing options printed one list, and --list-platforms, --list-targets and --list-emulators printed the same output with --system, --region or --core as without, code 0. A run now prints one list, and an option a listing ignores is refused.
2026-11-06 08:33:01 +01:00
Abdessamad Derraz 21dd14c851 fix: a verified large file keeps its bytes
fetch_large_file verified a cached copy and returned its name, which another run replaces when the release serves a re-upload: the caller then packed bytes it never verified. The returned path is now a hard link under .cache/large/.by-sha1/<sha1>/, kept only if it holds the inode that was hashed. Revisions no name holds are dropped a day later. restore_large_files hashes each copy before moving it into place.
2026-11-06 08:30:55 +01:00
Abdessamad Derraz f255efca0f docs: list pipeline flag refusals in one table
tools.md said --full-narrowings is refused with --skip-packs only, while
pipeline.py also refuses it with --source platform or truth, and
advanced-usage.md kept a second, shorter list. The tools table now
carries every pair, checked against _refuse_unapplied_flags, and
advanced-usage links to it.
2026-11-06 08:27:59 +01:00
Abdessamad Derraz 04aad25683 feat: pipeline compares split parts to the pack
Step 5 compared every narrowed pack with verify and never the --split parts with the full pack, so a part writing a path the full pack settles passed every check. check_split_packs builds each platform's parts in memory and compares their union with the full pack, path for path and byte for byte.
2026-11-06 08:27:48 +01:00
Abdessamad Derraz da9e1f568c fix: refuse an offline export with no originals
pipeline.py --offline --with-export, listed as a standard command, passes
no --fetch to step 2e: on a fresh clone the database, verify and truth
were built before the export failed on every platform whose own file it
patches. The run is refused before step 0 when .cache/upstream-native/
holds nothing for such a platform, and tools.md says how to fill it.
2026-11-06 08:27:32 +01:00
Abdessamad Derraz 5f8205b36b docs: date the Redump DATs instead of judging them
The catalog table called redump.org's DATs stale and said Dat-o-Matic
blocks automation. redump.org serves BIOS DATs dated 2010 to 2022
(Content-Disposition of /datfile/{psx,ps2,gc,xbox}-bios/, read
2026-11-06), and the Redump row named /static/bios links the scraper
replaced with one /bios/<CODE> route per system.
2026-11-06 08:26:22 +01:00
Abdessamad Derraz 556855421a fix: keep release notes to checked claims
The v2026.10.10 notes said a pack holds every file its emulators open, so
a game never stops on a missing file, and that hashes never come from a
forum list: the gap analysis lists files no pack carries, and in md5
mode a pack keeps the platform's own md5 (verification-modes.md). The
generated text and the README now point to the gap analysis, and
release_notes.py refuses a whats-new text holding a judging or
contradicted phrase.
2026-11-06 08:25:25 +01:00
Abdessamad Derraz 8dc3ac82c7 fix: date each prose citation on its own
realign_prose dated a whole field from the last commit that changed any of its citations. idtech4a++ corrected two notes citations by hand in the commit that advanced its pin, so the untouched Game.java:69-72 and GameResourceUrl.java:14-118 read as written under the current pin and were never offered again. Each citation is now followed through the history on its own. The two idtech4a++ ranges move to 72-75 and 15-121, read at ce49510f.
2026-11-06 08:24:49 +01:00
Abdessamad Derraz fd3733fcaa docs: give the FAQ console answer a command
The answer said --region us keeps only your region's BIOS, with nothing
to run. On the PlayStation it keeps 44 files, Japanese PS2 images among
them (install.py --system sony-playstation --region us --dry-run). The
answer now gives the --core command the installer itself suggests, in
the tabs of each system, and says what --region drops.
2026-11-06 08:23:29 +01:00
Abdessamad Derraz 1518ca53ad docs: say the legal answer once
A closing Summary restated the opening lines on the strongest and weakest
ground, and the not-legal-advice line came three times. The disclaimer
stays at the top, and the one sentence the summary added, the risk the
project accepts, moves to the encryption keys section.
2026-11-06 08:22:27 +01:00
Abdessamad Derraz f696d4974f fix: name a --dest that is a file
A BIOS folder that is a file, or lies under one, failed at mkdir with EEXIST or ENOTDIR, and the run blamed permissions and offered sudo. It is now refused before anything is checked, with an error event whose reason is not_a_folder.
2026-11-06 08:22:18 +01:00
Abdessamad Derraz e871e01abf docs: list the community tool's fields
Author, Repository and License sat on three lines of one paragraph, which
renders as one line. They are a list, and a guard refuses two bold
labels on consecutive lines of a paragraph.
2026-11-06 08:22:06 +01:00
Abdessamad Derraz 3e2a5279a1 fix: split parts hold what the full pack holds
Each part was built alone: the Other_Cores part never saw the platform's destinations and each part had its own case fold. RetroDECK's parts wrote bios/SGB1.sfc/ members beside the file bios/SGB1.sfc, RetroBat's wrote 21 openmsx/ twins of openMSX/ files, and a path two systems declare got each system's file. The full pack is now built in memory first and a part writes a declared file or core extra only where the full pack writes the same bytes.
2026-11-06 08:21:52 +01:00
Abdessamad Derraz 7a03578dd9 fix: count name holders with case folded
A hashless profile entry adopted the only exact holder of its name as the file its aliases designate. dosbox's SC-55 ROM2.BIN found Galaksija's ROM2.BIN, and ROM2_ST.BIN was indexed against a 4 KiB BASIC ROM while SC-55's rom2.bin sat under the same folded name. The name now has to designate one file once case is folded, a primary and its own variants counted as one.
2026-11-06 08:21:47 +01:00
Abdessamad Derraz 7876dc09e9 fix: send moved part cards to the emulator index
Adding one entry to mame.yml moves 938 cards from one part page to the
next, and a published emulators/mame-files-1/#file-... address landed
on a page without the card. A part page now sends a file- id it does
not hold to the emulator page, whose card index row opens the part that
holds it.
2026-11-06 08:21:30 +01:00
Abdessamad Derraz c7a30856b0 feat: link the build file that holds a revision
pin_build, in 36 profiles, names the platform repository, revision, file
and variable that hold a pin_frozen revision, and the site read none of
it: the Revision held row printed the file as plain text. A Build file
row links each one at the revision it was read at.
2026-11-06 08:20:46 +01:00
Abdessamad Derraz d1535d0787 fix: name the file a variant download is saved as
A .variants/ copy downloads as advision.zip.1c086064, its storage name:
raw.githubusercontent.com sends no Content-Disposition and the download
attribute is ignored across origins. A card whose download name differs
from the file name now says what to save it as, at a glance.
2026-11-06 08:20:03 +01:00
Abdessamad Derraz 9f3f1cec3b fix: validate_schemas names its jsonschema install
Without jsonschema the documented command stopped on an ImportError
traceback. Run as a command it now prints the install pipeline.py names
for the same step, with the format-nongpl extra, and exits 1. An import
from the tests still raises ImportError, which they skip on.
2026-11-06 08:19:36 +01:00
Abdessamad Derraz 4f930b5573 feat: find wanted dumps by hash on the files page
files/?hash= read the collection, platforms, emulators and retired files,
never the Wanted list: the SHA1 of Redump's ps2-dvd-212k.bin answered
that nothing the site knows has it. The lookup now carries a wanted
layer from the rows of provenance-wanted.csv, computed once for both,
and the page names the catalog that lists the dump.
2026-11-06 08:19:08 +01:00
Abdessamad Derraz 54eac3b2df refactor: verify keeps its lock stack name
The --destinations branch of _main rebound held, the ExitStack that
holds the data directory locks, to the dict it writes. It is now
named destinations, and a test refuses a rebinding of the stack.
2026-11-06 08:19:00 +01:00
Abdessamad Derraz 97d0a478d2 fix: read RetroArch's config under XDG_CONFIG_HOME
Native RetroArch on Linux keeps retroarch.cfg under $XDG_CONFIG_HOME/retroarch when the variable is set, and falls back to ~/.retroarch.cfg (file_path_special.c fill_pathname_application_data, configuration.c open_default_config_file at e98e1da0). Detection read ~/.config/retroarch only.
2026-11-06 08:18:59 +01:00
Abdessamad Derraz 2a0088a0fc docs: name the launcher index in installer changes
install/launchers/index.json records the SHA-256 of install.py that
--add-app checks, and the page listed only the pins of install.sh and
install.ps1 as what a change to install.py rewrites.
2026-11-06 08:17:11 +01:00
Abdessamad Derraz 2f721bc640 fix: list unsourceable files as not collected yet
Every card read "Not collectable" and the gaps page listed 259 entries as
acknowledged gaps verified from source code. unsourceable: only keeps a
same-named file from being served in the entry's place, and each entry
stays an acquisition target (wiki/profiling.md). The section now names
the catalog or romset that lists each file, from the provenance report
built with the profiles' needs: XM7's KANJI2.ROM is in No-Intro and in
MAME's fm7740sx.zip. The old anchor still leads to the section.
2026-11-06 08:16:44 +01:00
Abdessamad Derraz dfa1cc31d3 fix: generate_truth refuses a target it lacks
--platform bizhawk --target switch printed skipped, then Done., and
exited 0 with no model written. generate_truth now resolves targets
through build_target_cores_cache, as verify and generate_pack do: a
named platform without the target is refused with exit 1, --all
leaves such platforms out and says so.
2026-11-06 08:16:18 +01:00
Abdessamad Derraz 6695efeebe fix: scope slot labels to system and region
slots reads content_alternatives too, so a content-found label is settled only by a dump of its own system and region slot.
2026-11-06 08:16:08 +01:00
Abdessamad Derraz 807ffa0ca9 fix: let content labels accept their region slot
verify judged a found_by: content entry by its label alone and called ROCKNIX's scph1001.bin (v2.0) a rustation sha256 mismatch, though rustation declares and boots that dump. A label now accepts the dumps its core takes for the same system and declared region.
2026-11-06 08:16:08 +01:00
Abdessamad Derraz 25b9c85208 fix: refuse an unreadable native sources index
_load_sources read a truncated .sources.json as empty: fetch served
the cached original of an older pin as current, the next download
rewrote the index with one entry, and check_freshness said no URL was
recorded. It now raises SourcesIndexUnreadable naming the remedy, and
check_freshness reports one ERROR row for the index.
2026-11-06 08:15:15 +01:00
Abdessamad Derraz 6a79281e07 chore: read every site module in the text guards
Three guards named generate_site.py or a fixed list of four modules, while
page text now lives in twelve site modules and packreadme.py. The list
is a glob. Read that way, the pack README said "all of theirs" twice.
2026-11-06 08:14:45 +01:00
Abdessamad Derraz 9b871db83a fix: read the given profiles and platform files
Five generate_site helpers read ./emulators or ./platforms, and
has_release_pack read platforms relative to the working directory: run
from scripts/, a released setup's get page showed the No ZIP line.
siterender's fallbacks and sitediagrams read the repository too. All of
them now read siteinputs. platforms/_guides.yml stays the repository's:
siteguides loads it at import, before any flag is parsed.
2026-11-06 08:14:30 +01:00
Abdessamad Derraz afceabaf3c fix: bios_integrity stops when git fails
modified_for_git read the stdout of git status without its exit code:
a corrupt index printed nothing, the working change read as unmodified,
and --apply wrote HEAD's blob over it. Every git call now raises on a
non-zero status, and the command exits 2 naming the git error.
2026-11-06 08:14:17 +01:00
Abdessamad Derraz 57ccca640a refactor: importers write through write_if_changed
game_dat_importer and arcade_parent_importer each kept an exact-text
copy of write_if_changed, so a redump refresh rewrote every catalog for
its fetched date alone. Both now use artifacts.write_if_changed, which
treats fetched as a timestamp. A No-Intro rebuild still rewrites its
catalogs, since asset_updated_at moves with it, so check_freshness keeps
reading a fetched date no older than the pack.
2026-11-06 08:13:32 +01:00
Abdessamad Derraz 8022ef4cb3 fix: read the given database on every page
The page-finishing pass reloaded the repository's database.json whatever
--db said, so a card held only by the given collection raised KeyError.
siteinputs holds the inputs generate_site was given.
2026-11-06 08:12:43 +01:00
Abdessamad Derraz 895a520afd fix: verify --platform names uncached data dirs
A platform entry that resolves only through a data directory tree read as missing with no cause on a checkout where data/ was never refreshed, while an online pack build refreshes the trees and packs it. verify_platform now reports the uncached trees and prints them when files are missing.
2026-11-06 08:12:37 +01:00
Abdessamad Derraz b550b9780c fix: judge content-found cores by any dump
A core with found_by: content reads no file by the destination's name. Any dump its profile accepts for the system settles the slot: Batocera, KNULLI and ROCKNIX ship scph1001.bin v2.0, which DuckStation and rustation accept under scph1001_v20.bin.
2026-11-06 08:12:25 +01:00
Abdessamad Derraz 5c93c6dc6b refactor: one emudeck script-to-profile rule
The target scraper kept its own copy of the EmuScripts table and took
.ps1 files the platform scraper never read, so emudeck-we's template
skeleton was published as a core and removed afterwards by an override.
Both scrapers now read emulator_of_script, and the platform scraper
lists the installers at the pinned revision, as launchers: and the
SteamOS target already did. Targets rescraped, override dropped.
2026-11-06 08:12:19 +01:00
Abdessamad Derraz c634a282d8 fix: a shipped twin path is untested, not excluded
A path declared twice, once unpinned and once with a pin the copy misses: the builder wrote excluded over the file it shipped, in either order of the two systems. It now counts the path untested, as verify does, and lists no exclusion.
2026-11-06 08:11:28 +01:00
Abdessamad Derraz 5883df80af fix: verify --emulator counts release assets
generate_emulator_pack resolves with offline=offline and fetches a release asset the cache lacks, while verify_emulator resolved offline and called it missing. verify --emulator now applies pending_release_asset as verify --platform does, accepts --offline, and the pipeline compares emulator packs offline on both sides.
2026-11-06 08:10:24 +01:00
Abdessamad Derraz 19898cb6ea chore: merge site and docs fixes, third pass 2026-11-06 06:38:47 +01:00
Abdessamad Derraz df801fd311 chore: merge resolver and export fixes 2026-11-06 05:54:29 +01:00
Abdessamad Derraz 7cf5af2d7b docs: name Lakka among the cards found by itself
install.py tells a Lakka card by its retroarch.cfg since f8702a19f. The
FAQ and the README now name it with the other cards.
2026-11-06 05:53:19 +01:00
Abdessamad Derraz 96a1f98d24 docs: regenerate README counts
EmuELEC no longer counts xrick's data.zip as VVVVVV's, and RetroPie no longer resolves DOSBox Pure Unleashed.
2026-11-06 05:43:04 +01:00
Abdessamad Derraz b9dae414db docs: list test_cited_lines in the testing guide 2026-11-06 05:22:14 +01:00
Abdessamad Derraz c6713118bc fix: launcher test names packages as the scraper
PlatformRecords stripped lr- to compare package records with cores. The scraper now names a libretro package with core_name(), lr-dosbox-pure as dosbox_pure, so the test reads the same function.
2026-11-06 05:21:55 +01:00
Abdessamad Derraz 305adb288e docs: report excerpt counts 1764 core files
The RetroDECK verify excerpt counted 1800 core files in the pack. Companion entries no longer sweep cheats, GameIndex.yaml and DVD firmware to the BIOS root, and the same run prints 1764.
2026-11-06 05:19:45 +01:00
Abdessamad Derraz 83076818b0 chore: merge origin/main 2026-11-06 05:18:32 +01:00
Abdessamad Derraz f12ba5632b fix: run retired_files through run_cli
The new script's entry point skipped run_cli and its options were in no
tools.md row, which two suite checks hold every tracked script to.
2026-11-06 05:18:11 +01:00
Abdessamad Derraz 7a98d73d79 chore: merge engine fixes, third pass 2026-11-06 05:06:59 +01:00