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.
This commit is contained in:
Abdessamad Derraz committed 2026-10-27 05:18:10 +01:00
1 parent 625bee35cc
commit 00b034612f
6 files changed
+1514

No files matched your search

+6
View File
@@ -616,6 +616,12 @@ def main() -> int:
errors.extend(_save_directory_blocks())
errors.extend(_registry_contract())
errors.extend(_event_schema_errors())
errors.extend(
_validate_json_files(
sorted((ROOT / "measurements").glob("**/*.json")),
"core-probe-record.schema.json",
)
)
if not args.source_only:
database_path = ROOT / "database.json"