fix: no region verdict from frames that differ

The first runs showed it: beetle_psx reaches the game of the US disc on the Japanese and European BIOS, through a different licence screen, so its frames differ from the full run while the oracle says boots. The interim rule read those frames as a failure. A variant now boots on the same frames as the full run or by its oracle verdict, and otherwise has no answer.
This commit is contained in:
Abdessamad Derraz committed 2026-10-27 22:28:43 +01:00
1 parent 1c613dc4b4
commit 6d3045cbb3
3 files changed
+16 -12

No files matched your search

+10 -8
View File
@@ -117,9 +117,9 @@ def outcome(records: dict[str, dict], entries: list[dict], region: str) -> dict:
The `region:` claim is `confirmed` when the regions of what it opened
hold the game's region, `contradicted` when none does, `unread` when it
opened none. Each variant's result is its oracle verdict. While no
reference frame is known for the game, a variant is compared with the
full run instead: `as_full` when it samples the same frames, which is
what the oracle's reference frames will name.
reference frame is known for the game, a variant that samples the same
frames as the full run (`as_full`) boots, and one that does not stays
without an answer: frames that differ never make a verdict.
"""
by_dest = {entry_dest(e): e for e in entries}
full = records.get("full")
@@ -152,10 +152,12 @@ def outcome(records: dict[str, dict], entries: list[dict], region: str) -> dict:
return None
if item["verdict"] != "unknown":
return item["verdict"] == "boots"
# No verdict: the interim rule, as the full run behaves, and only
# while the full run itself is not shown to fail.
if full_verdict in ("boots", "unknown") and "as_full" in item:
return item["as_full"]
# No verdict: the interim rule. The same frames as the full run is a
# boot, while the full run itself is not shown to fail. Other frames
# say nothing: the US disc reaches its game on the Japanese and
# European BIOS through another licence screen.
if full_verdict in ("boots", "unknown") and item.get("as_full"):
return True
return None
return {
@@ -178,7 +180,7 @@ def sentence(game_region: str, result: dict) -> str:
return f"The {word} game has no run with its own BIOS yet."
first = f"The {word} BIOS {'boots' if own else 'does not boot'} the {word} game"
if others is None:
return first + "."
return first + ". The other regions' BIOS have no verdict yet."
if others:
return first + ", and so do the other regions' BIOS."
return first + ", the other regions' BIOS do not."
+5 -3
View File
@@ -108,7 +108,7 @@ class Outcome(unittest.TestCase):
self.assertEqual(rc.sentence("japan", result),
"The Japanese BIOS boots the Japanese game, the other regions' BIOS do not.")
def test_interim_rule_compares_with_the_full_run(self) -> None:
def test_interim_rule_counts_the_same_frames_as_a_boot_and_nothing_else(self) -> None:
records = {
"full": record("f", self.ALL, ["scph5501.bin"], [[0, "a"], [10, "b"]]),
"own": record("o", ["scph5501.bin"], ["scph5501.bin"], [[0, "a"], [10, "b"]]),
@@ -117,10 +117,12 @@ class Outcome(unittest.TestCase):
result = rc.outcome(records, self.ENTRIES, "north-america")
self.assertEqual(result["judged_by"], "full_run_frames")
self.assertTrue(result["own_boots"])
self.assertFalse(result["others_boot"])
# Other frames are no verdict: a US disc reaches its game on the
# Japanese BIOS through another licence screen.
self.assertIsNone(result["others_boot"])
self.assertIsNone(result["pack_boots"])
self.assertEqual(rc.sentence("north-america", result),
"The US BIOS boots the US game, the other regions' BIOS do not.")
"The US BIOS boots the US game. The other regions' BIOS have no verdict yet.")
def test_no_interim_answer_when_the_full_run_fails(self) -> None:
records = {"full": record("f", self.ALL, [], [[0, "a"]], "bios_error"),
+1 -1
View File
@@ -1117,7 +1117,7 @@ claim: `confirmed` when its `region:` holds the game's region, `contradicted`
when it does not, `unread` when the core opened none of them. Each variant's
result is the oracle verdict of its record. While the oracle has no reference
frame for a game, a variant counts as booting when it samples the same frames
as the `full` run, and the outcome says it was judged that way. The system
as the `full` run, and the outcome says it was judged that way. Other frames give no verdict: the US disc reaches its game on the Japanese and European BIOS through another licence screen. The system
pages show each outcome as a sentence ("the Japanese BIOS boots the Japanese
game, the other regions' BIOS do not") with links to the four records. A
maintainer starts each run. Each core_probe run takes the host probe lock for itself and frees it before the next, so do not wrap the command in `flock`. Nothing runs by itself.