fix: keep platform hashes cores disagree on

When two cores declare different values for one file, the truth keeps the first and marks the entry hash_conflict. Its hashes pair an entry and never replace the platform's: armsx2's GameIndex.yaml no longer overwrites System.dat's line for LRPS2.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 09:57:20 +02:00
1 parent f7b758a41d
commit 83a4b21d30
3 files changed
+37 -1

No files matched your search

+3
View File
@@ -316,6 +316,9 @@ def _merge_hashes(
existing[h] = [*o_list, *added]
continue
if not {str(v).lower() for v in t_list} & {str(v).lower() for v in o_list}:
# The value kept is one revision among those the cores accept:
# it pairs an entry, it never overrules one (checked_hashes).
existing["hash_conflict"] = sorted({*existing.get("hash_conflict", ()), h})
# Once per process: a run over every platform met the same pair
# once per platform and opened its output on six copies.
key = (file_entry["name"], h, str(ours), str(theirs), emu_name)