fix: replay outer roots as the pack builds them

The ZIP replay in packextras.hidden_extras now skips roms, emulators and configs entries as the builder does, so verify and pack integrity stop counting files only the installer places. The consistency check treats the Android .nomedia marker as a pack note. MAME4droid's hiscore.dat leaves bios/: the app unpacks it from its own files.zip. VVVVVV's Make and Play data.zip is collected as a release asset, which EmuELEC declares as required.
This commit is contained in:
Abdessamad Derraz committed 2026-11-10 01:33:10 +01:00
1 parent 2dc427d5d0
commit 372d41e3b4
8 files changed
+42 -18940

No files matched your search

+5
View File
@@ -419,6 +419,11 @@ def hidden_extras(
dest = sanitize_pack_path(fe.get("destination", fe.get("name", "")))
if not dest or (region_drops and extra_region_key(fe, region_prefix) in region_drops):
continue
if fe.get("root") in OUTER_ROOTS:
# As the builder does: the pack is extracted into the BIOS folder
# and cannot reach the roms, emulator or configs folder, the
# installer places these files.
continue
full = extra_full_destination(fe, prefix)
if not full:
continue
+7 -2
View File
@@ -77,6 +77,7 @@ from common import (
publish_hold,
)
from refresh_data_dirs import hold_data_dirs
from packpaths import MEDIA_MARKER
class StepResults(dict):
@@ -432,8 +433,12 @@ def parse_pack_paths(output: str) -> dict[str, str]:
return paths
# Members the builder writes for the reader rather than for a core.
_PACK_NOTES = re.compile(r"(^README\.txt$|^manifest\.json$|(^|/)(INSTRUCTIONS|RENAMED)_[^/]*\.txt$)")
# Members the builder writes for the reader or the device rather than for a
# core: the documents, and the empty marker an Android pack carries.
_PACK_NOTES = re.compile(
r"(^README\.txt$|^manifest\.json$|(^|/)(INSTRUCTIONS|RENAMED)_[^/]*\.txt$"
rf"|(^|/){re.escape(MEDIA_MARKER)}$)"
)
def _tree_members(