Commit Graph
437 Commits
Author SHA1 Message Date
Abdessamad Derraz 25b11fa497 chore: merge site fixes, fourth pass 2026-11-06 10:33:56 +01:00
Abdessamad Derraz d0c65dca22 chore: merge pack and verify fixes 2026-11-06 10:28:27 +01:00
Abdessamad Derraz 79a21ba1f1 feat: name the files in emulator search snippets
A search for gba_bios.bin or scph5500.bin landed on a page described as
"It reads 4 files, none of them required". The snippet now names the
console and the files, required first, in the longest form that fits.
2026-11-06 09:28:03 +01:00
Abdessamad Derraz 856cb5618f fix: link a build file only where it is recorded
Every source link on the site leads to a path the source record saw at
a commit. The Build file row linked pin_build files unchecked, eight of
them at commits the record did not hold. build_source_paths now records
the build files read at a commit, and the row links only those: a tag
can move and stays plain text. The record run also picked up two cited
paths it had not seen before (pom2 CMakeLists.txt, pcem configure.ac).
2026-11-06 09:14:42 +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 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 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 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 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 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 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 acd2ef31fd fix: keep the Run by row out of the search
Setup names on 530 emulator pages lowered their weight in the index and
ranked the data page first for batocera folder and retroarch system
folder. The row is left out of the search, as the card's setup lists are.
2026-11-06 04:41:13 +01:00
Abdessamad Derraz 5621737c29 fix: name an emulator's packs once per page
A Packed line on each file card put the MAME parts, BizHawk, blueMSX,
FBNeo and GroovyMAME over the 10,000 element budget. The Run by row of
the page already names the setups that pack the emulator's files.
2026-11-06 04:32:04 +01:00
Abdessamad Derraz 350cd6d600 feat: keep the address of a file that left
files/?sha1= of a file the collection no longer holds answered that no
file the site knows has the hash. generate_db.py now records each sha1 a
rebuild drops in retired.json, with the day and the file in its place,
backfilled from the history since 0d586ef6b (4,139 files). The lookup
answers with it and leads to the successor's card.
2026-11-06 04:24:44 +01:00
Abdessamad Derraz b23931e14d feat: find archive members by their CRC32
The lookup held a member only where a profile's contents: declares it,
so 26,014 of the 33,403 members of collection archives answered nothing.
Each member's CRC32 is now an archive-member record leading to its
archive's card, read from the central directory, and files/ names the
archive holding it.
2026-11-06 04:12:20 +01:00
Abdessamad Derraz 78e2b85c1b refactor: pick the install box setup from guides
The default setup named RetroArch in page code, which a test forbids. It
is now the setup whose guide runs under the most of the box's OS tabs,
then on the most systems, then one with a release ZIP.
2026-11-06 04:05:20 +01:00
Abdessamad Derraz 28d310d8bc fix: preselect RetroArch in a system's install box
The box showed the first setup by name, AmberELEC on 17 system pages,
under Windows tabs. It now selects RetroArch, which runs on every system
the box has a tab for, else a setup the release publishes a ZIP for.
2026-11-06 04:02:14 +01:00
Abdessamad Derraz 6015552fb2 fix: offer Lakka's card route from Linux only
Lakka keeps /storage on the card's ext4 partition (Lakka-LibreELEC
4696b48f scripts/mkimage:72, 95), which Windows and macOS do not open, and
its page offered them a card route. card_run is now [linux], and a page
with no Windows route says only Linux opens the card.
2026-11-06 03:58:38 +01:00
Abdessamad Derraz 2f81aa9c0f fix: write region names in pack READMEs as labels
packreadme title-cased each slug, printing asia-ntsc as Asia Ntsc.
region.label() holds the words the site already used, and both read it.
2026-11-06 03:50:49 +01:00
Abdessamad Derraz 00aac8dc72 docs: say what catalog.json lists
index.json called the catalog every published file, while the one-item
documents of emulators/, platforms/, systems/ and lookup/ are in none of
its items. The description and the data page now say so.
2026-11-06 03:48:37 +01:00
Abdessamad Derraz 225cdaff22 fix: show exact sizes where the code compares them
A size validated by the emulator is shown with its bytes on the emulator
page, and a collection card's badge gives the exact size, in whole KB or
MB only when it is one. raze's three DUKE3D.GRP read 42.3 MB alike.
2026-11-06 03:44:57 +01:00
Abdessamad Derraz 1ed605969d fix: standalone writers take the repository lock 2026-11-06 03:42:09 +01:00
Abdessamad Derraz 6d6a79019a feat: name the setups on each emulator page
An emulator page said nothing of the setups that run it, and a file
card's Platforms line named only the setups whose own list holds the file.
A Run by row lists the platforms resolve_platform_cores gives, and each
card names the packs that carry the file for their emulators.
2026-11-06 03:37:17 +01:00
Abdessamad Derraz 9efb34c761 fix: resolve the data directory source link
The Fetched from line printed source_url with {version} unsubstituted, a
404 on six pages, and Revision showed a zip's ETag as a revision. The URL
now carries the registry version, and only a git commit is shown, linked.
2026-11-06 03:30:12 +01:00
Abdessamad Derraz 402e688b01 fix: platform entries skip other emulators' trees
A platform entry names no profile, so bios/Other/<emulator>/ was never foreign to it. EmuELEC's ports/VVVVVV/data.zip resolved to xrick's data.zip, then to xrick's data directory copy. A system that lists its cores now takes no name match only another emulator's tree answers.
2026-11-06 03:21:07 +01:00
Abdessamad Derraz 7b4c03afc2 docs: say what the archived status changes
The README, the setup pages and adding-a-platform tied archived to a
scraping schedule and a CI matrix that do not exist. Archived keeps a
platform out of the runs that cover every platform unless
--include-archived is passed.
2026-11-06 03:20:01 +01:00
Abdessamad Derraz 33db4e9c83 fix: file a device set under each of its systems
The site read an entry's system: only, so the 430 MAME entries that list
systems: were filed under no section. It now reads common.entry_system_ids
for an entry that names its own systems.
2026-11-06 03:15:39 +01:00
Abdessamad Derraz 20a6266923 fix: keep platform_system out of the site contract
The published platform contract validates against platform.schema.json, which does not carry the resolver's per-entry system key. The two inheritance tests and the alias call check read the new entry shape, and the testing guide lists test_maker_folder_names.
2026-11-05 23:54:47 +01:00
Abdessamad Derraz d1ebd411ab fix: narrow hashless name matches to their maker
AmberELEC's nec-pc-88 declares DISK.ROM with an empty md5. QUASI88 reads
that name as n88sub.rom, the 2 KB PC-88 disk ROM (libretro.c:1085), but
the name step served the 16 KB MSX disk ROM, the only primary of that
name. The quasi88 alias never reached by_name, which refuses an alias a
primary already carries.

load_platform_config now writes each entry's system as platform_system.
A platform entry with no hash and no owning emulator, whose system id
names a maker, takes no name candidate filed under another maker, in
the name step and in the hash_mismatch step after it. When nothing is
left, by_shadowed_alias, the profile aliases by_name refuses, answers
within the system's maker folder. names_manufacturer and BUCKET_FOLDERS
move to common.py, and generate_site imports them.

Across every registered platform the only resolution that moves is
AmberELEC nec-pc-88 DISK.ROM, from bios/Microsoft/MSX/DISK.ROM to
bios/NEC/PC-88/N88SUB.ROM. Manifests, truth and exports are otherwise
byte-identical.
2026-11-05 23:17:04 +01:00
Abdessamad Derraz 0350f42351 chore: merge site and docs batch 2026-11-05 22:22:37 +01:00
Abdessamad Derraz 213b20e2c8 refactor: read an entry's target as a function
The emulator card read entry_target from the consumers object, which the tests stand in for with a namespace. It is a module function now, and the pairing test resolves an archive member through it as the site does.
2026-11-05 20:33:37 +01:00
Abdessamad Derraz 8584847bc9 fix: link the check commands from the pack pages
The get pages told a reader on another setup version to run `--check` after copying, with no command and no link, to someone holding a ZIP and no installer. The line now links the setup page's How to check section.
2026-11-05 19:49:22 +01:00
Abdessamad Derraz 32cc1ce4fa fix: render a single tab without a tab bar
142 tab bars held one tab, most of them "On the device" under a heading saying so. One item now stands alone, led by its label unless it names the place the text around already gives. The network route drops "Run the command on the computer" under the heading "From your computer", which keeps RetroPie in its word budget.
2026-11-05 19:46:22 +01:00
Abdessamad Derraz da19bb5755 fix: keep MinUI core dirs out of the tree view
Without --platform, cross_reference and the site's gap report merged every
platform's standalone set, MinUI, NextUI and MyMinUI coredir: markers
included. A marker says which cores one platform hands a folder, so in the
union every core those three do not list got no layout: px68k showed 0 of
6 files and the global report lost 238 profiles and 1201 files.
merged_standalone_set drops the markers, and both readers use it.
2026-11-05 19:39:07 +01:00
Abdessamad Derraz d63ef4b1cf fix: keep an initial inside the note sentence
The emulator description taken from the notes cut at the first period followed by a space, so hcl's read "open-source port of E.".
2026-11-05 19:34:41 +01:00
Abdessamad Derraz 564bfe8b18 fix: describe platform pages by what they give
The meta description of each platform page was its summary followed by the label of a link, "ROCKNIX website.", and never said the page gives the BIOS files, their folder and the install command.
2026-11-05 19:34:19 +01:00
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 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 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 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 cf7b2ad9c1 fix: install site sections before the page plan
plan_emulator_pages names systems, and siterender then fell back to the repository's database.json and emulators/ whatever --db and --emulators-dir gave.
2026-11-05 19:06:54 +01:00
Abdessamad Derraz b90f8bb0b9 chore: merge tooling batch 2026-11-05 15:57:19 +01:00
Abdessamad Derraz 46302de5bb chore: merge installer batch 2026-11-05 15:21:48 +01:00
Abdessamad Derraz 4ee0fd67a2 chore: merge site and docs batch 2026-11-05 14:37:10 +01:00
Abdessamad Derraz 21b8d902e3 fix: name a served sha1 only when it differs
A RomM row printed the served copy's sha1 under the same SHA1 it
had just declared, 313 times on the page. The note stays where the
copy is not one the row declares.
2026-11-05 14:36:14 +01:00