fix: refuse an export without its original

System.dat, RomM, Recalbox and RetroBat were rebuilt from our data when
their file was not cached: libretro's quoted names, Recalbox's comments
and one of its two zxspectrum blocks were lost, and the run said OK.
needs_original now follows native_sources, so every format we patch
fails without the file it patches and writes nothing.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 15:09:16 +02:00
1 parent 77deef1820
commit 7a65a2cf83
3 files changed
+35 -8

No files matched your search

+9 -4
View File
@@ -50,10 +50,15 @@ class BaseExporter(ABC):
"""
return {}
@staticmethod
def needs_original() -> bool:
"""Whether a faithful export requires the platform's own file."""
return False
@classmethod
def needs_original(cls) -> bool:
"""Whether a faithful export requires the platform's own file.
Any format we patch does: System.dat rebuilt from our data lost
libretro's quoted names, es_bios.xml its comments and one of its two
zxspectrum blocks, and both runs said OK.
"""
return bool(cls.native_sources())
@staticmethod
def may_write_nothing() -> bool: