fix: report md5 lists Recalbox and RetroDECK grow

Both formats write every accepted md5 when the truth extends the platform's list without contradicting it, but only Batocera answered written_list, so landed_changes reported nothing for a diff the maintainer would find. Both now name the list they write when it holds several values.
This commit is contained in:
Abdessamad Derraz committed 2026-11-05 19:36:02 +01:00
1 parent d8cfd283b4
commit 4af0d70e4e
3 files changed
+50

No files matched your search

+7
View File
@@ -245,6 +245,13 @@ class Exporter(BaseExporter):
return f" <bios {' '.join(attrs)} />"
def written_list(self, fe: NativeFile, field_name: str) -> list[str] | None:
"""md5 is the comma list Bios.cpp splits and compares one by one, so
a list the truth extended is a change the report names."""
if field_name == "md5" and len(fe.hashes("md5")) > 1:
return fe.hashes("md5")
return None
def states(self, fe: NativeFile, field_name: str) -> bool:
"""An element it cannot rewrite is written back as Recalbox wrote it.
+7
View File
@@ -96,6 +96,13 @@ class Exporter(BaseExporter):
return fe.hash(field_name)
return super().written(fe, field_name)
def written_list(self, fe: NativeFile, field_name: str) -> list[str] | None:
"""Several md5 values are a JSON array in the manifest, as _entry
writes them: a list the truth extended is a change the report names."""
if field_name == "md5" and len(fe.hashes("md5")) > 1:
return fe.hashes("md5")
return None
def states(self, fe: NativeFile, field_name: str) -> bool:
if id(fe) in getattr(self, "_appended", ()):
return False