Commit Graph
3806 Commits
Author SHA1 Message Date
Abdessamad Derraz dbc9da283d refactor: run line mode findings for parity
The line-mode findings of code audit 18 and tui audit 11, the escape
sequence checks among them, run in LineModeAndScreenDecideAlike.
2026-10-27 16:29:58 +01:00
Abdessamad Derraz 39c2809a4b fix: polish the screens audit 11 named
Long messages scroll with their position, a small window says why the
questions come line by line, one bar rule per width, the folder a
config names sits under it and wraps whole, the help while typing a
filter lists what does not type, the plan names --core and --region,
pc finds the computer setups, rows keep sizes near their names, a
partial result counts once, a quit is said as one, the WSL browser
names drives by letter and No connection names the pack.
2026-10-27 16:27:47 +01:00
Abdessamad Derraz 2b94be9516 fix: count a game only under its emulator systems
One catalog name is a PlayStation disc and a Saturn disc. The coverage table counted a record for every system listing its label, so the Saturn row showed the PlayStation cores. A record now counts only where its emulator's profile names the system, runs on games outside the list are named apart, and two ids of one console share one row.
2026-10-27 16:22:42 +01:00
Abdessamad Derraz 4cc0a34d3c docs: describe the region and standalone probes 2026-10-27 16:17:56 +01:00
Abdessamad Derraz cdaaf7529f feat: add region checks and site coverage
region_check.py runs each region game of content.yml with every regional BIOS, its own only, the others only, and the region-filtered pack, and reads the outcome from the records: the file opened settles region:, the verdicts say whether the BIOS is locked. System pages show the outcome with its records, the Measurements page lists which systems are tested and why the others are not. The campaign text says a maintainer starts each pass.
2026-10-27 16:17:56 +01:00
Abdessamad Derraz cfc7a13be2 feat: add the standalone emulator probe
standalone_probe.py runs the release binary a platform installs (EmuDeck's asset rule for DuckStation and PCSX2), unpacked without running the AppImage runtime, in core_probe's allowlist sandbox with a private Xvfb, strace and core_probe's oracle and record functions. Records go to measurements/<emulator>.jsonl.
2026-10-27 16:17:49 +01:00
Abdessamad Derraz d6537d5838 feat: list test games per system and region
The content list now covers the BIOS-required systems in order of the users a missing BIOS stops, one game per region where a profile ties the BIOS to a territory (PS1, Saturn, Mega CD, Master System, N64, GameCube, DS), the same title in each region so the screens compare. Systems no catalog romfetch reads covers are listed under uncovered with the set or game wanted and romfetch's error code.
2026-10-27 16:17:45 +01:00
Abdessamad Derraz 302c7737b2 fix: one remedy per card and plainer line mode
A full or read-only card is freed or unlocked, checked again first,
never left for another drive. Line mode names --dest where it said
choose another one, numbers out of range, the folder copied from, the
frontend's save directory and the command after Enter. The words name
RETROBIOS_INSTALL_OFFLINE when it, not --offline, made a run offline.
2026-10-27 16:13:10 +01:00
Abdessamad Derraz 0fb1047231 feat: count game data apart from BIOS files
The installer knew BIOS files from game data and no count showed it.
The plan, the line menu and the result count them apart for a list that
marks game data, the plan gets a game data row and the menu a g key,
each toggling it in one press, and one sentence says what game data is.
2026-10-27 16:03:25 +01:00
Abdessamad Derraz a17406edae feat: let the campaign read another content list
--content-file names the test content list for run and references.
2026-10-27 15:53:25 +01:00
Abdessamad Derraz 873b645c0c chore: merge main 2026-10-27 15:52:46 +01:00
Abdessamad Derraz 3f93da6394 docs: show boot verdicts on the measurement pages
The Tested blocks and the explorer show each variant's verdict. A frame comparison from before the oracle shows no verdict. The SQLite variants table gains verdict columns. The method page says what each verdict means and how a file is proven.
2026-10-27 15:52:29 +01:00
Abdessamad Derraz b95bf466e8 feat: add the PlayStation reference frames
Bust-A-Move 2 (USA) on Beetle PSX, Beetle PSX HW, SwanStation, PCSX-ReARMed and PCSX1, each frame reviewed on its PNG. A boot needs a screen of the game: the BIOS screens alone are not one.
2026-10-27 15:52:29 +01:00
Abdessamad Derraz 992bc8ce70 fix: keep paths whole and spelled one way
A Termux run named /sdcard and /storage/emulated/0 for one storage, read
saves/<core> as a folder, split a backup path and the restore command
inside their words and named no folder for missing game data. Paths are
spelled as the BIOS folder was named, folders per core are said in
words, the result keeps paths and commands whole, and the game data line
names the folder it goes in.
2026-10-27 15:50:51 +01:00
Abdessamad Derraz 38dd7401fd feat: keep the campaign timer as an opt-in
campaign.py install-timer writes the autorun units and enables nothing unless --enable is passed. The docs say a contributor who wants a schedule on their own machine installs the timer.
2026-10-27 15:46:20 +01:00
Abdessamad Derraz 44ab3febf4 feat: settle profile fields from boot verdicts
The campaign runs the full set, no BIOS, and per file the file alone with zeros, its first half and other regions' dumps under its name. required, hle_fallback and validation are read from the verdicts, never from frames that differ. Benchmarks run only with --bench. The timer command is gone: a maintainer starts each pass. references lists stable screens for the oracle.
2026-10-27 15:45:22 +01:00
Abdessamad Derraz e4c7ded489 feat: judge each probe run with a boot oracle
core_probe writes record version 4. Each run is boots, bios_error, crash, hang or unknown, from reference frames, core error patterns and screens, and the process status. A crash or a timeout is a verdict now, rebuilt from the events the worker streamed. --vary accepts @zeros:SIZE and @head:SIZE:PATH, and run takes --repeat.
2026-10-27 15:45:22 +01:00
Abdessamad Derraz 2ab01d3eec fix: ignore Ctrl-Z when no shell can resume
Started with no job-control shell, a Ctrl-Z stopped the screen and its
launcher for good. The key now stops it only when its process group is
a shell's job, and the bar says why otherwise.
2026-10-27 15:39:50 +01:00
Abdessamad Derraz 0fa4552dae fix: refuse only the axis a list lacks
The MinUI family's lists record cores and regions and no system: every
narrowing was refused with a remedy that fetched the same list. Each
option is now refused by the axis missing, with what works, and a pack
names its platform's list only when that list records the axis. Line
mode names what c chooses and skips a question with one answer, and
Options leaves out parallel downloads when nothing is downloaded.
2026-10-27 15:37:24 +01:00
Abdessamad Derraz c43872cdb6 feat: accept the pack and standalone probes
frontend.script names core_probe.py, pack_probe.py or standalone_probe.py.
2026-10-27 15:30:52 +01:00
Abdessamad Derraz aa6ee6db1c feat: add the boot verdict to the record schema
Record version 4 carries verdict and verdict_evidence on every repetition and variant, verdicts on a check result, and inputs.oracle. Version 3 records stay valid.
2026-10-27 15:25:30 +01:00
Abdessamad Derraz 50e84866cf docs: autorun schedules nothing by default 2026-10-27 15:25:06 +01:00
Abdessamad Derraz dcaf9d4764 docs: say who starts a test run 2026-10-27 15:22:19 +01:00
Abdessamad Derraz 5704dd6793 fix: offer a drive by the folder its system reads
RetroArch's folder question numbered a Batocera SHARE drive and filled
its root. A drive is now offered by its own system's BIOS folder, one
nothing names by its bios folder, and another system's is left out and
named with the options that reach it. A list or pack card setups read
too opens on those setups, in both modes.
2026-10-27 15:19:03 +01:00
Abdessamad Derraz 19bd88131d fix: show outside text, never obey it
Pack and list paths with a control character are refused, the names a
list records, card labels, folders and events pass one filter, and a
folder a configuration names with one is not taken.
2026-10-27 14:46:14 +01:00
Abdessamad Derraz a334ace439 fix: name cards by files no menu rewrites
A KNULLI card renamed in its menu was read as a Batocera SHARE drive.
KNULLI is now named by about.info first, Batocera by its own hostname,
and a drive two systems fit is said instead of guessed. Runs without
questions see mounted cards as the screen does and stop on two setups.
The card marker table of the wiki is generated.
2026-10-27 14:40:28 +01:00
Abdessamad Derraz 9c8dbcd99a chore: merge the automatic test campaign 2026-10-27 14:05:18 +01:00
Abdessamad Derraz 9c63327da3 chore: record the MPEG card fixes on Lunar
Ten core_probe runs of the beetle-saturn fix-mpeg-auth-cr2 branch, one
per commit: the Lunar opening movie (2400 frames) and the Big Buck Bunny
Video CD booting through the card's player. Issue 85.
2026-10-27 13:52:01 +01:00
Abdessamad Derraz 332c217155 feat: pass GITHUB_TOKEN to declared API steps
A step marked github_token: true receives the token. autorun accepts the key only on check_freshness.py, refresh_stale.py and python -m scripts.scraper.* tracked in this repository, refuses it on any other step and in the campaign job. The nightly steps declare it.
2026-10-27 13:41:40 +01:00
Abdessamad Derraz ea460a6c87 docs: keep the measurements page in its budget 2026-10-27 13:39:40 +01:00
Abdessamad Derraz 57436839a8 fix: start each open finding with a capital
The statement of a finding follows a full stop on the Measurements page.
2026-10-27 13:07:33 +01:00
Abdessamad Derraz 40fca7fb1a chore: merge line mode on shared decisions 2026-10-27 13:02:52 +01:00
Abdessamad Derraz 5f3c836db9 chore: merge origin/main into the campaign work 2026-10-27 13:02:18 +01:00
Abdessamad Derraz 37d2c14e1d chore: keep campaign prose to the style rules
No clause semicolons in the campaign docstring and content list, and a help text for every option.
2026-10-27 13:02:15 +01:00
Abdessamad Derraz 8ab24a97d3 fix: test the new setup labels and skip 3.8 builds
The site tests read the SHARE drive label and the line-mode wording
from the source, and the pack-systems test needs generate_pack.py,
which needs Python 3.9.
2026-10-27 13:02:03 +01:00
Abdessamad Derraz a67dc339bc chore: merge main into the audit 17 answers
# Conflicts:
#	install.ps1
#	install.sh
#	install/launchers/index.json
2026-10-27 12:48:04 +01:00
Abdessamad Derraz e2bc06f216 fix: keep the copy hint whole under a long list
The browser hint goes below the list, which scrolls: three folders at
40x12 cut it. The test browses a folder of its own, not the host's /home.
2026-10-27 12:47:54 +01:00
Abdessamad Derraz c138270edc refactor: keep commit rules in a tracked module
The rules lived only in the local commit-msg hook, which CI and other clones do not have, so autorun could only check a subject's shape there. scripts/commit_rules.py now holds them, the hook calls it, and autorun checks every job subject with it when the job list loads.
2026-10-27 12:41:06 +01:00
Abdessamad Derraz b439371579 fix: take a backup folder on one-owner storage 2026-10-27 12:39:28 +01:00
Abdessamad Derraz 6fd831fc67 fix: keep pack system names out of the terminal
A pack's system titles, names and ids are read only without control
characters, and the systems list and the same-choice line go through
screen_text. The --yes row of the option table says it implies
--no-input.
2026-10-27 12:36:15 +01:00
Abdessamad Derraz 082b14afeb chore: apply tested fields to swanstation
Evidence for hle_fallback on scph5501.bin, written by campaign.py with the record id of measurements/swanstation.jsonl.
2026-10-27 12:25:16 +01:00
Abdessamad Derraz 8bc14c67a8 chore: apply tested fields to pcsx_rearmed
Evidence for hle_fallback on scph5501.bin, written by campaign.py with the record id of measurements/pcsx_rearmed.jsonl.
2026-10-27 12:25:15 +01:00
Abdessamad Derraz 945b8be035 chore: apply tested fields to pcsx1
Evidence for hle_fallback on scph5501.bin, written by campaign.py with the record ids of measurements/pcsx1.jsonl.
2026-10-27 12:25:13 +01:00
Abdessamad Derraz 281468c830 chore: apply tested fields to beetle_psx
Written by campaign.py from its rule table: six upper-case .BIN names the core opened for scph5501.bin, and evidence for hle_fallback, with the record ids of measurements/beetle_psx.jsonl.
2026-10-27 12:25:11 +01:00
Abdessamad Derraz 19e207217b chore: add playstation campaign measurements
First real pass of campaign.py: the libretro PlayStation profiles with an hle_fallback claim (beetle_psx through mednafen_psx and mednafen_psx_hw, pcsx_rearmed and swanstation nightlies, pcsx1 built from its pinned commit), each run on Bust-A-Move 2 - Arcade Edition (USA) with and without scph5501.bin, under bubblewrap. Every core reached the game without the BIOS.
2026-10-27 12:25:10 +01:00
Abdessamad Derraz f2425377ad chore: merge main into the audit 17 answers 2026-10-27 12:24:29 +01:00
Abdessamad Derraz 31c574aab0 fix: line mode and screen share one decision
Answers code_audit_17 and tui_audit_10: the folder found after o, SHARE
drive roots, one same-choice command, a counted confirm step in line
mode, counts from the narrowed list, read-only advice without sudo,
systems recorded in packs, Ctrl-Z stopping the whole job, and the
wording, layout and docs items.
2026-10-27 12:24:26 +01:00
Abdessamad Derraz f5e98bfda6 refactor: fetch builds into bare mirrors
Host git only fetches into bare mirrors no sandbox ever sees, https only, with no user or system config and overrides emptying hooks, fsmonitor, ssh and proxy commands and every filter driver the mirror defines. Each build is a git archive of the commit and of each submodule commit from its own mirror. Old working-tree clones are deleted. The core copied out must be a regular file inside the build folder, opened without following links.
2026-10-27 12:19:55 +01:00
Abdessamad Derraz fdcf120a7d refactor: build cores from an exported tree
make runs on a git archive export of the commit and its submodules, the clone and its .git never bound into the sandbox. Host-side git runs with no user or system config, no hooks, no fsmonitor and the file and ext transports refused.
2026-10-27 12:07:16 +01:00
Abdessamad Derraz 34963a732f docs: describe the allowlist sandbox 2026-10-27 11:53:35 +01:00