fix: declare the FreeIntv overlays on the core

FreeIntv declared no data tree while its alias freeintv_ts_overlay,
the same code, declared freeintv_overlays. The core reads
freeintv_overlays/<rom>.png only with the multi-screen option and draws
its embedded keypad image without one (src/libretro.c:278-280, 294,
321-325), so the tree is optional. A test holds every alias to the trees
of its core.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 06:06:07 +02:00
1 parent 734643b8fc
commit d678e6acfa
2 files changed
+32

No files matched your search

+10
View File
@@ -29,6 +29,16 @@ notes: |
No ECS support. No ecs.bin loading code in the source.
Per-game controller overlays are read from freeintv_overlays/<rom>.png
(or .jpg) in the system directory, only when the multi-screen option is
on (src/libretro.c:278-280, 294). Without one the core draws the keypad
image embedded in the binary (src/libretro.c:321-325).
data_directories:
- ref: freeintv-overlays
destination: freeintv_overlays
required: false
files:
- name: "exec.bin"
system: intellivision
+22
View File
@@ -5923,6 +5923,28 @@ class RequiredOnlyReachesDataDirectories(unittest.TestCase):
"required": False},
])
def test_an_alias_reads_the_trees_of_its_core(self):
"""An alias is the same binary under another name. FreeIntv declared
no overlay tree while its alias freeintv_ts_overlay did, so the
emulator pack of the core itself left the overlays out."""
profiles = {
path.stem: yaml.safe_load(path.read_text(encoding="utf-8"))
for path in (ROOT / "emulators").glob("*.yml")
}
def trees(profile: dict) -> dict:
return {
dd["ref"]: dd.get("required", True)
for dd in profile.get("data_directories") or []
}
for name, profile in profiles.items():
target = profile.get("alias_of")
if not target or target not in profiles:
continue
with self.subTest(alias=name, core=target):
self.assertEqual(trees(profile), trees(profiles[target]))
class InstallerJsonKindsNeverOverwriteEachOther(unittest.TestCase):
"""Install manifests and target core lists are both <platform>.json.