Commit Graph
1721 Commits
Author SHA1 Message Date
Abdessamad Derraz cb5bb738cb fix: core probe through run_cli, documented
The probe skipped run_cli, accepted option prefixes in its shared options, left three options undocumented and was missing from the published schemas. The worker runs under -I, so the script directory is put back on sys.path before importing common.
2026-10-27 07:11:45 +01:00
Abdessamad Derraz e627f0cf49 chore: merge the core probe and issue 85 runs 2026-10-27 07:02:05 +01:00
Abdessamad Derraz 22ece6998d docs: describe every core_probe option 2026-10-27 06:58:38 +01:00
Abdessamad Derraz fecc6d9d32 chore: merge round 5 search fixes 2026-10-27 06:54:51 +01:00
Abdessamad Derraz 07f785cfd7 fix: rank a console first for its own name
The PlayStation 2 page holds every word of "playstation bios" and pagefind ignores the words a page has that the query lacks, so its own body matches put it first. A console whose every word another system page's consoles also hold is now written again in an `exact` field (weight 20). File names reach the `files` field as their parts: whole names let "ds" reach twelve dsi_* names on the DSi page. `consoles` weighs 100 so an emulator named after its console (Saturn.emu) comes second, and `aliases` 10 so the Nintendo page keeps "gba bios". The gate runs both directions of the PlayStation, Game Boy, DS and Wii pairs and Saturn.
2026-10-27 06:54:08 +01:00
Abdessamad Derraz 4522f3ba01 fix: keep the paths of a tree no folder lists
A repository that answers 404 (TeknoParrotUI) was listed folder by folder,
every listing failed, and the tree read as holding nothing: a fetch without
its cached tree dropped its recorded paths. It is now unread, so the record
keeps what it held.
2026-10-27 05:55:10 +01:00
Abdessamad Derraz 8b12685c16 feat: settle a probe check per observable
A check is inconclusive when the compared observable differs between repetitions, a run fails to load or a file changes during it. A disagreement on another observable stays flagged without voiding the comparison. Core log lines name the staged directories instead of the host paths.
2026-10-27 05:53:52 +01:00
Abdessamad Derraz 68f42bf8e2 fix: judge each build's refs in its own tree
A profile keyed by build mode compared a part in every repository and kept
the best outcome: xenia-edge's libretro tree carries emulator.cc offset,
and its lines vouched for standalone refs that had moved 4 lines. A part
of an entry with a mode is read in that build's repository, and a part
naming none in the first build declared, as _realign_part decides.
2026-10-27 05:41:27 +01:00
Abdessamad Derraz 9b2cddfbe5 fix: structured data names releases, not pins
The home page is the site: named RetroBIOS, part of nothing. A source repository states the core_version of its build when it names a release, never a commit id or a pin, and no placeholder description.
2026-10-27 05:40:03 +01:00
Abdessamad Derraz 15f7c72077 feat: setup tab, letter crumbs, console words
get/ pages join the tab of the setup pages of the same name, so no page is excluded from every tab and the tabs keep their names. Groups filing emulators by first letter are no crumb. A console page carries "<name> BIOS" in its terms field. The search gate runs the console, checker, schema, license and iOS queries.
2026-10-27 05:39:59 +01:00
Abdessamad Derraz 9690579f34 feat: record env files by name and sha256
A path given to --env is a detail of the host that ran the probe. The record keeps the file name and its sha256, which is what the run depended on.
2026-10-27 05:34:31 +01:00
Abdessamad Derraz d0de6dde30 fix: rebuild source paths from the written pins
load_emulator_profiles caches by directory, and the run had loaded the
profiles before writing them, so the record rebuilt after a write kept the
pins just replaced: linapple, then ten profiles in one advance. The cache
is cleared first. The record is rebuilt for those ten.
2026-10-27 05:24:04 +01:00
Abdessamad Derraz 00b034612f feat: add headless libretro core probe
core_probe.py loads a libretro core with no window, runs it for a
number of frames and reports the files it opened (strace), its log
lines, frame, audio and save-state hashes and its speed. bench repeats
a run after warm-up and gives median, mean, deviation and range; check
swaps one system file between runs and compares one observable.

--record writes a JSON record with the core build, frontend commit,
host and every input by hash, validated against
core-probe-record.schema.json. A busy host is refused, and a
repetition that disagrees with the first is flagged.
2026-10-27 05:18:10 +01:00
Abdessamad Derraz 951bd070bf feat: advance profiles that cite no source
_needs_review held every skipped report, so a profile with no source_ref
never moved: anarch sat behind a CI-only commit through every bulk advance.
Its source pin now moves; its upstream pin does not, since nothing was
compared there.
2026-10-27 04:26:28 +01:00
Abdessamad Derraz 4b11a43a86 feat: version check reads tags and numbers
A project that tags without releases (eightyone, higan) was never compared,
and a core_version naming no tag (parallel-launcher 9.0.5 beside v9.0-6)
silenced the passed-release warning. The newest tag stands in when it is a
version number, and an untagged core_version is compared by number within
one scheme. --emulator is repeatable: a stored value kept only the last.
2026-10-27 04:16:31 +01:00
Abdessamad Derraz 44378ae5c9 feat: name a release newer than the pinned tag
A profile pinned on its release tag read as clean forever: armsx1, armsx2
and x1-box sat on old tags while newer releases were out. --check-version
now names the latest release when it follows both the declared tag and
the pin, unless pin_frozen holds the pin on purpose.
2026-10-26 23:25:51 +01:00
Abdessamad Derraz f3a161b60e fix: keep unread trees in the source paths record
A sitesources run that GitLab rate-limited dropped about twenty trees it
never read from website/src/data/source-paths.json. A tree key names a
pinned sha, so the last record's entry for an unread tree still holds and
is carried over, in sitesources and in profile_sync's refresh.
2026-10-26 22:52:23 +01:00
Abdessamad Derraz 9dbe68f990 fix: skip the gained-names check on held pins 2026-10-26 22:16:43 +01:00
Abdessamad Derraz 45d611332a feat: hold a bump when cited files gained names
Refs that still anchor say nothing of what the code added around them:
mame2003_plus's zn.c gained two Taito G-NET BIOS sets while its cited
lines only shifted. --rebase-refs and --bump-commit now refuse a profile
whose cited files gained a file name or a hash literal since the pin, or
could not be read, until --accept-changed says the additions were read.
With this, --all --rebase-refs --fresh is safe to run as is.
2026-10-26 21:55:23 +01:00
Abdessamad Derraz 32633c4e5c fix: let any refusal confirm a declared dead forge
citron's taken domain now resolves to an unrelated host that fails TLS,
so the pass reported an upstream error where the profile already states
the forge is gone. Any forge error now agrees with upstream_gone; a rate
limit still does not.
2026-10-26 21:53:47 +01:00
Abdessamad Derraz da573fc6f3 chore: merge main into the p3 fixes 2026-10-26 21:19:43 +01:00
Abdessamad Derraz f4bc8878d9 chore: merge the app on the card 2026-10-26 21:14:51 +01:00
Abdessamad Derraz fad5b10665 feat: ship the muos glyph the app header names 2026-10-26 21:14:24 +01:00
Abdessamad Derraz fa3651d14d feat: refresh source paths after a profile write
Each pin advance left website/src/data/source-paths.json behind and the
site's freshness test red until sitesources.py --fetch ran by hand.
profile_sync now rebuilds it after any run that wrote a profile, online
and not in a dry run.
2026-10-26 21:07:08 +01:00
Abdessamad Derraz 9002c67eb6 chore: merge main 2026-10-26 21:01:54 +01:00
Abdessamad Derraz b24fc06e51 feat: download button on every file card
The Apple II page named its start files with no visible way to get one: the download sat after the collection path, fourth of a card's facts. Each card now carries a Download button in its title, each start-line name links to its card, and a card held on another part page is reached by its permanent link.
2026-10-26 21:01:49 +01:00
Abdessamad Derraz 4ea9ee1712 docs: describe the app put on a card 2026-10-26 21:01:45 +01:00
Abdessamad Derraz f3c816eea5 feat: put the retrobios app on a handheld card
--add-app, the result screen and a [y/N] question put the launcher of
muOS, KNULLI or ROCKNIX on the card the BIOS folder is on. The files come
from install/launchers/index.json at the same ref, each checked by size
and SHA-256 before the first is written, and the app event reports it.
2026-10-26 21:01:45 +01:00
Abdessamad Derraz 0c77ef074e feat: add --fresh and name why a keyed pin waits
Branch tips, tags and releases are cached for six hours, and the
EKA2L1, trzy/Supermodel and VICE heads read as behind their real HEAD.
--fresh asks the forges again, and is refused with --offline.

A recale on a profile whose pins are keyed by build mode said the prose
had to move first. It now says the pins are set by hand.
2026-10-24 04:08:59 +02:00
Abdessamad Derraz fbe5ba4e3e docs: say the installer opens a full screen
The README, the installer steps, the choice of what to install and platform detection still described the line prompts as what a terminal shows. They now name the full-screen interface first, with --plain for the questions, and say that no default folder is taken where detection was refused.
2026-10-24 03:49:10 +02:00
Abdessamad Derraz 00bb4aa0ba fix: no empty code span for a bare data directory 2026-10-24 02:49:23 +02:00
Abdessamad Derraz 1c3db5b4d8 fix: print each app's data folder per system 2026-10-24 02:49:23 +02:00
Abdessamad Derraz a7558a5d4d chore: merge doubled destinations in exports 2026-10-24 02:42:33 +02:00
Abdessamad Derraz 2ee777824a feat: name doubled destinations in exports
A platform list that declares one path for two files fails one of the
two checks on every install. The export report lists each declaration
with its hash and the emulators whose profile reads that file.
2026-10-24 02:42:04 +02:00
Abdessamad Derraz 1998580772 fix: start each pack run with no stale notices
_MISSING_DATA_DIRS is module state: a test that called main() after one
whose data directories were not cached exited 1 with the earlier run's
notice. main() now clears it first.
2026-10-24 02:34:47 +02:00
Abdessamad Derraz 973394717c fix: place core extras by one destination rule
The collector deduplicated a destination already carrying the extras
prefix at prefix/prefix/name while the builder wrote it at prefix/name.
DuckStation's standalone bios/<name> on Recalbox and PCSX2's scan then
held one path under two keys, and --region withdrew only one. The
second pass also no longer claims a path another core's extra holds
for a name only that extra covers.
2026-10-24 02:31:48 +02:00
Abdessamad Derraz fa7977d2c3 fix: ask again for a tip older than the pin
A branch tip is cached for six hours. scummvm-standalone was pinned on
6f7b060d while the cache still held 77d80d7, its ancestor, so profile_sync
showed a HEAD behind the pin and a bump would have moved it backwards. A
tip that is a strict ancestor of the pin is now asked for again.
2026-10-24 02:00:21 +02:00
Abdessamad Derraz 4db718bb5c chore: merge round 5 system page fixes 2026-10-24 01:30:36 +02:00
Abdessamad Derraz 6936302133 chore: merge round 5 wiki fixes 2026-10-24 01:30:33 +02:00
Abdessamad Derraz d47763fdc1 chore: merge round 5 package a29b43f1fc43aba6b 2026-10-24 01:27:26 +02:00
Abdessamad Derraz 3d7b374326 chore: drop a system name no source uses
No profile or platform names the gba id since the beetle_gba profile left. The table test reads every entry against the ids in use.
2026-10-24 01:26:49 +02:00
Abdessamad Derraz 4dd3800f11 fix: file system cards by board, machine, engine
Every board set sits on its board page whatever folder holds it, a set a
reviewed machine owns joins that machine (neogeo.zip under SNK, the Atom
under Acorn, the MZ-2000 under Sharp), and a game engine's files form one
section named after it. Board pages drop the heading that repeated their
title, parts drop the Part of line their crumbs already say, and pages
that moved redirect.
2026-10-24 01:19:56 +02:00
Abdessamad Derraz 7d3d5b5efd fix: start lines name alternatives, not extras
A file most of whose readers take beside another one is no start file
(NAOMI opened on hod2bios.zip), and names that answer one slot for
different emulators read as alternatives with their readers, each by
the name of its card.
2026-10-24 01:19:56 +02:00
Abdessamad Derraz 64abc4e61a docs: give each system its retroarch folder 2026-10-24 01:01:07 +02:00
Abdessamad Derraz 33c2c64c0c fix: keep the bizhawk get title unique 2026-10-24 00:54:00 +02:00
Abdessamad Derraz 0695b5404b feat: setup routes on get pages, card route 2026-10-24 00:54:00 +02:00
Abdessamad Derraz b12c0af4b8 feat: card computers and retrooz folder in guides 2026-10-24 00:54:00 +02:00
Abdessamad Derraz 801b8bbda0 fix: one pack answer and fuller reference data
The API reads release_pack from the registry entry, not the inherited config, and the picker gets release-advertised.json. The lookup counts emulators that read a file by name, every record names what was declared, the Data page lists all schemas, the target lists and nested manifest fields, and systems.json items carry their api address.
2026-10-24 00:51:13 +02:00
Abdessamad Derraz 78c3ab7aa9 fix: exit 1 when the folder check finds gaps
Unknown platforms now print the known names instead of a traceback.
2026-10-24 00:51:13 +02:00
Abdessamad Derraz 3609f66401 fix: keep schema rows readable by the floor python 2026-10-23 23:45:39 +02:00