mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-31 16:17:19 -05:00
fix: call a region claim ambiguous on every file
PCSX-ReARMed opens the three regional BIOS files whatever the disc, and the rule called that a confirmation because one of them held the region. A run that opened its own region's file and the others too now settles nothing.
This commit is contained in:
1 parent
6bbf0f137c
commit
356a101c53
3 files changed
+14
-4
No files matched your search
@@ -114,8 +114,9 @@ def outcome(records: dict[str, dict], entries: list[dict], region: str) -> dict:
|
||||
"""What the four records of one game on one core settle.
|
||||
|
||||
`selected` is the regional file the core opened with every one staged.
|
||||
The `region:` claim is `confirmed` when the regions of what it opened
|
||||
hold the game's region, `contradicted` when none does, `unread` when it
|
||||
The `region:` claim is `confirmed` when every regional file it opened
|
||||
holds the game's region, `contradicted` when none does, `ambiguous`
|
||||
when it opened its own region's file and others too, `unread` when it
|
||||
opened none. Each variant's result is its oracle verdict. While no
|
||||
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
|
||||
@@ -128,8 +129,12 @@ def outcome(records: dict[str, dict], entries: list[dict], region: str) -> dict:
|
||||
claim = "unrun"
|
||||
elif not selected:
|
||||
claim = "unread"
|
||||
elif any(region in regions_of(by_dest[d]) for d in selected):
|
||||
elif all(region in regions_of(by_dest[d]) for d in selected):
|
||||
claim = "confirmed"
|
||||
elif any(region in regions_of(by_dest[d]) for d in selected):
|
||||
# Opened every region's file, to hash them or to choose: the open
|
||||
# alone does not say which one the core runs.
|
||||
claim = "ambiguous"
|
||||
else:
|
||||
claim = "contradicted"
|
||||
results: dict[str, dict] = {}
|
||||
|
||||
@@ -135,6 +135,11 @@ class Outcome(unittest.TestCase):
|
||||
records = {"full": record("f", self.ALL, ["scph5501.bin"], [[0, "a"]], "boots")}
|
||||
self.assertEqual(rc.outcome(records, self.ENTRIES, "japan")["claim"], "contradicted")
|
||||
|
||||
def test_a_core_opening_every_region_file_settles_nothing(self) -> None:
|
||||
"""PCSX-ReARMed opens the three regional files whatever the disc."""
|
||||
records = {"full": record("f", self.ALL, self.ALL, [[0, "a"]], "boots")}
|
||||
self.assertEqual(rc.outcome(records, self.ENTRIES, "japan")["claim"], "ambiguous")
|
||||
|
||||
def test_region_free_bios(self) -> None:
|
||||
records = {"full": record("f", self.ALL, ["scph5501.bin"], [[0, "a"]], "boots"),
|
||||
"own": record("o", ["scph5502.bin"], [], [[0, "a"]], "boots"),
|
||||
|
||||
+1
-1
@@ -1129,7 +1129,7 @@ python scripts/region_check.py report # the outcome of every region recor
|
||||
|
||||
The file the core opened in the `full` run, read from strace, settles the
|
||||
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
|
||||
when it does not, `ambiguous` when the core opened its own region's file and the others too (PCSX-ReARMed opens all three), `unread` when it 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. Other frames give no verdict: the US disc reaches its game on the Japanese and European BIOS through another licence screen. The system
|
||||
|
||||
Reference in new issue
Block a user