From 0e0e24d905c1844c5bfb965f36ec579350f3060f Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Tue, 10 Nov 2026 12:20:40 +0100 Subject: [PATCH] feat: name the data-storage key of EKA2L1 EKA2L1 keeps its devices under the data-storage folder, data by default and relative to the working directory (src/emu/config/include/config/options.inl:45). RetroBat writes data-storage = bios/eka2l1/data (Eka2l1.Generator.cs:153, 156), so the layout's data/ folder is placed there. The SYM.ROM extra at data/roms/nem-4/ of the BIOS root, read by nobody, leaves the RetroBat manifest: RetroBat declares the file at eka2l1/data/roms/NEM-4/SYM.ROM, the same slot on its case-folding filesystem. The files shipped beside the executable are named as read in the emulator folder. --- emulators/eka2l1.yml | 2 ++ tests/test_launcher_placement.py | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/emulators/eka2l1.yml b/emulators/eka2l1.yml index 2225d30db..520cfb5c3 100644 --- a/emulators/eka2l1.yml +++ b/emulators/eka2l1.yml @@ -29,6 +29,8 @@ cores: systems: - ngage - symbian +standalone_directories: + - "data-storage = data" data_root: android: diff --git a/tests/test_launcher_placement.py b/tests/test_launcher_placement.py index 2f734d495..932223245 100644 --- a/tests/test_launcher_placement.py +++ b/tests/test_launcher_placement.py @@ -747,5 +747,26 @@ class FlycastOnEmuELEC(unittest.TestCase): self.assertEqual(entry["standalone_path"], "dc/" + entry["layout_path"]) +def standalone_view(emulator: str, platform: str) -> dict: + profile = load_emulator_profiles(str(REPO_ROOT / "emulators"))[emulator] + config = load_platform_config(platform, str(REPO_ROOT / "platforms")) + (view,) = [v for v, standalone in platform_layouts(emulator, profile, standalone_set(config)) + if standalone] + return view + + +class Eka2l1OnRetroBat(unittest.TestCase): + """RetroBat writes data-storage = bios/eka2l1/data (Eka2l1.Generator.cs:153, 156).""" + + def test_the_device_rom_lands_in_eka2l1_data(self) -> None: + view = standalone_view("eka2l1", "retrobat") + (rom,) = [e for e in view["files"] if e["name"] == "SYM.ROM"] + self.assertEqual(rom["standalone_path"], "eka2l1/data/roms/nem-4/SYM.ROM") + # Shipped beside the executable, in RetroBat's emulator folder. + for entry in view["files"]: + if entry.get("mode") == "standalone": + self.assertEqual(entry.get("unplaced"), "outside_bios_folder", entry["name"]) + + if __name__ == "__main__": unittest.main()