mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 00:27:20 -05:00
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:
1 parent
1c613dc4b4
commit
6d3045cbb3
3 files changed
+16
-12
No files matched your search
+10
-8
@@ -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."
|
||||
|
||||
Reference in new issue
Block a user