fix: give EmuDeck its RetroArch cores' files

The scraper skipped RetroArch's own EmuScripts installer, so no libretro core's files reached the EmuDeck pack: np2kai, neocd and every core checkBIOS.sh does not name. RetroArch now stays in the list, as in RetroPie's.
This commit is contained in:
Abdessamad Derraz committed 2026-10-18 20:35:18 +02:00
1 parent ac58bf68d4
commit a913fbf539
3 files changed
+31 -10

No files matched your search

+1
View File
@@ -24,6 +24,7 @@ cores:
- pcsx2
- ppsspp
- primehack
- retroarch
- rpcs3
- ryujinx
- scummvm
+11 -7
View File
@@ -440,13 +440,16 @@ class Scraper(BaseScraper):
"base_destination": "bios",
"hash_type": "md5",
"verification_mode": "md5",
# RetroArch is one of them: its cores read the same bios folder,
# and naming it makes the pack carry every libretro core's files,
# as RetroPie's list does. Without it np2kai, neocd and the other
# cores EmuDeck installs got nothing checkBIOS.sh does not name.
"cores": cores,
# Every EmuScripts installer sets up a standalone app (RetroArch's
# cores come from its own script, skipped above): Dolphin, Cemu,
# xemu, ARMSX2 and Supermodel ran with the libretro layout and
# lost their standalone-only files. A profile with no standalone
# build keeps its layout (runs_standalone).
"standalone_cores": list(cores),
# Every other EmuScripts installer sets up a standalone app:
# Dolphin, Cemu, xemu, ARMSX2 and Supermodel ran with the libretro
# layout and lost their standalone-only files. A profile with no
# standalone build keeps its layout (runs_standalone).
"standalone_cores": [core for core in cores if core != "retroarch"],
"systems": systems,
}
@@ -467,7 +470,8 @@ class Scraper(BaseScraper):
"cemuproton": "cemu",
"rmg": "mupen64plus_next",
}
skip = {"retroarch_maincfg", "retroarch"}
# The main RetroArch config script installs no emulator.
skip = {"retroarch_maincfg"}
try:
req = urllib.request.Request(api_url, headers=github_headers())
+19 -3
View File
@@ -4272,14 +4272,30 @@ class EmuDeckRunsItsEmulatorsStandalone(unittest.TestCase):
from scripts.common import load_platform_config, runs_standalone, load_emulator_profiles
config = load_platform_config("emudeck", str(ROOT / "platforms"))
self.assertEqual(sorted(config["standalone_cores"]), sorted(config["cores"]))
self.assertEqual(
sorted(config["standalone_cores"]),
sorted(c for c in config["cores"] if c != "retroarch"),
)
profiles = load_emulator_profiles(str(ROOT / "emulators"))
standalone = set(config["standalone_cores"])
for name in ("dolphin", "cemu", "armsx2", "supermodel"):
with self.subTest(emulator=name):
self.assertTrue(runs_standalone(name, profiles[name], standalone))
source = (ROOT / "scripts" / "scraper" / "emudeck_scraper.py").read_text()
self.assertIn('"standalone_cores": list(cores)', source)
def test_retroarch_brings_its_libretro_cores(self):
"""The scraper dropped RetroArch's own script: np2kai, neocd and
every core EmuDeck installs through RetroArch got no file that
checkBIOS.sh does not name."""
from scripts.common import (
load_emulator_profiles, load_platform_config, resolve_platform_cores,
)
config = load_platform_config("emudeck", str(ROOT / "platforms"))
self.assertIn("retroarch", config["cores"])
cores = resolve_platform_cores(config, load_emulator_profiles(str(ROOT / "emulators")))
for name in ("np2kai", "neocd", "dolphin"):
with self.subTest(core=name):
self.assertIn(name, cores)