fix: serve generaluser gs to every dosbox

This commit is contained in:
Abdessamad Derraz committed 2026-10-17 13:25:38 +02:00
1 parent 0ea8bb4e99
commit 9a14c89abd
4 files changed
+25

No files matched your search

File renamed without changes.
+1
View File
@@ -238,6 +238,7 @@ files:
- name: "DOSBOX.SF2"
description: "General MIDI SoundFont (any .sf2/.sf3 accepted)"
aliases: ["GeneralUser-GS.sf2"]
required: false
hle_fallback: true
source_ref: "dosbox_pure_libretro.cpp:1407,2805"
+1
View File
@@ -202,6 +202,7 @@ files:
- name: "DOSBOX.SF2"
description: "General MIDI SoundFont (any .sf2/.sf3 accepted)"
aliases: ["GeneralUser-GS.sf2"]
required: false
hle_fallback: true
source_ref: "dosbox_pure_libretro.cpp:1405 (scan classifies .SF* as a SoundFont), dosbox_pure_libretro.cpp:2495-2499 (path taken from the system directory), dosbox_pure_libretro.cpp:2806-2813 (auto-detected on the mounted C: drive)"
+23
View File
@@ -2745,5 +2745,28 @@ class AnUnreadableArchiveIsSaidOutLoud(unittest.TestCase):
common.resolve_local_file(entry, db)
self.assertIn(f"unreadable archive {broken}", stderr.getvalue())
class GeneralUserGSReachesEveryCoreThatNamesIt(unittest.TestCase):
"""The SoundFont was held as dosbox_pure's DOSBOX.SF2 alone: dosbox-staging
and dosbox-x, which name it GeneralUser-GS.sf2 and GeneralUser_GS.sf2,
shipped no General MIDI bank."""
def test_each_name_resolves_to_the_one_file(self):
import common # noqa: PLC0415
if not (ROOT / "database.json").exists():
self.skipTest("database.json is not generated")
db = json.loads((ROOT / "database.json").read_text())
profiles = common.load_emulator_profiles(str(ROOT / "emulators"))
held = "bios/Other/GeneralUser GS/GeneralUser-GS.sf2"
for emulator, name in (("dosbox_pure", "DOSBOX.SF2"),
("dosbox-staging", "GeneralUser-GS.sf2"),
("dosbox-x", "GeneralUser_GS.sf2")):
with self.subTest(emulator=emulator):
entry = next(f for f in profiles[emulator]["files"] if f["name"] == name)
path, _status = common.resolve_local_file(
{**entry, "source_profile": emulator}, db, dest_hint=entry.get("path", ""))
self.assertEqual(path, held)
if __name__ == "__main__":
unittest.main()