mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 18:59:07 -05:00
fix: correct no hash the code does not check
validation: names what the code verifies. dosbox checks MT32_CONTROL.ROM against nine sha1 and size; the truth's one md5 and crc32 describe one of those revisions, and the export wrote them beside System.dat's own sha1, a rom line no file satisfies, and replaced Batocera's md5. pcsx_rearmed and DuckStation check scph1001.bin by size, and the v2.0 md5 platforms name was replaced by v4.1's. checked_hashes keeps a hash the code does not name only where a checked hash pins one content. Otherwise it still pairs a renamed file but never corrects or fills a value the platform wrote. Additions keep every hash. diff_truth reads the same rule.
This commit is contained in:
1 parent
cc31f9f863
commit
e81c63804a
3 files changed
+112
-4
No files matched your search
@@ -602,9 +602,13 @@ def _hash_mismatch(t_entry: dict, s_entry: dict) -> dict | None:
|
||||
|
||||
A value shared on any field settles it: the truth holds every revision a
|
||||
core accepts, and a profile may give one revision's sha1 without its md5.
|
||||
A hash the code does not check contradicts nothing (checked_hashes).
|
||||
"""
|
||||
from exporter.baseline import checked_hashes
|
||||
|
||||
if _hash_set(t_entry) & _hash_set(s_entry):
|
||||
return None
|
||||
t_entry = checked_hashes(t_entry) or {}
|
||||
for h in ("sha1", "md5", "crc32"):
|
||||
t_hash = t_entry.get(h, "")
|
||||
s_hash = s_entry.get(h, "")
|
||||
|
||||
Reference in new issue
Block a user