fix: give solarus and eka2l1 their own pad mappings

This commit is contained in:
Abdessamad Derraz committed 2026-10-06 05:26:54 +02:00
1 parent d3e02c8c5e
commit 2c0f37ff85
4 files changed
+2291

No files matched your search

File diff suppressed because it is too large. Load diff
+4
View File
@@ -701,6 +701,10 @@ files:
mode: standalone
required: false
bundled: true
size: 408885
sha1: "8c272ae624c56d48d788fafe0397fab2e33d838f"
md5: "b1586eb09b91f65c37a2f5e7c6ef7980"
note: "src/external/SDL_GameControllerDB is a submodule pinned at a113e7fa"
description: "SDL2 controller mapping database handed to SDL_GameControllerAddMappingsFromFile"
source_ref: "src/emu/drivers/src/input/backend/emu_controller_sdl2.cpp:143-145, src/emu/qt/CMakeLists.txt:277"
+4
View File
@@ -57,6 +57,10 @@ files:
system: solarus
category: game_data
required: false
bundled: true
size: 600521
sha1: "ab035b7804089690018318e4a05f9a8fc59421ff"
md5: "1e70da4de91be79b9ccf47209a1fc73f"
description: "SDL gamepad mappings applied on top of the built-in table"
source_ref: "src/core/System.cpp:71-99, cmake/AddDefines.cmake:44-49, cmake/AddInstallTargets.cmake:23-28"
note: >-
+23
View File
@@ -261,5 +261,28 @@ class CollectionCarriesNoGameDataHomonym(unittest.TestCase):
self.assertEqual(homonyms(claims), [])
class ControllerDatabasesAreTheirOwn(unittest.TestCase):
"""Solarus and EKA2L1 were handed the 26 KB C-Dogs copy by name.
Each ships its own gamecontrollerdb.txt: Solarus its assets/ copy,
EKA2L1 the SDL_GameControllerDB submodule it pins.
"""
def test_each_resolves_by_content(self):
db_path = REPO_ROOT / "database.json"
if not db_path.exists():
self.skipTest("no database.json")
db = load_database(str(db_path))
profiles = load_emulator_profiles(str(REPO_ROOT / "emulators"))
for key in ("solarus", "eka2l1"):
entry = next(
e for e in profiles[key]["files"] if e["name"] == "gamecontrollerdb.txt"
)
with self.subTest(profile=key):
path, status = resolve_local_file(entry, db)
self.assertIn(status, ("sha1_exact", "md5_exact"))
self.assertNotIn("C-Dogs", path or "")
if __name__ == "__main__":
unittest.main()