feat: pack every core batocera offers in es

Batocera's cores were read from configgen-defaults.yml, one per system,
and a hand-kept registry list overrode even that; DOSBox Staging,
melonDS DS and nine other cores a user can pick in ES were outside the
pack, while mamemess, which Batocera does not ship, was in. The
scraper now reads es_systems.yml, the registry list is gone, and the
target scraper names standalone emulators (amiberry, fsuae, vice)
instead of only the machines listed under them.
This commit is contained in:
Abdessamad Derraz committed 2026-10-17 02:26:14 +02:00
1 parent e5b8cede92
commit decd70b19e
6 files changed
+603 -225

No files matched your search

@@ -228,7 +228,7 @@ def _parse_es_systems(text: str) -> dict[str, list[str]]:
emulators = system_data.get("emulators")
if not isinstance(emulators, dict):
continue
for _group_name, group_data in emulators.items():
for group_name, group_data in emulators.items():
if not isinstance(group_data, dict):
continue
for core_name, core_data in group_data.items():
@@ -237,9 +237,13 @@ def _parse_es_systems(text: str) -> dict[str, list[str]]:
require = core_data.get("requireAnyOf", [])
if not isinstance(require, list):
continue
# A standalone emulator is its own core: amiberry, fsuae and
# vice list machines under their name, and the package that
# builds a machine builds the emulator.
names = [core_name] if group_name == "libretro" else [group_name, core_name]
for pkg_flag in require:
if isinstance(pkg_flag, str):
package_to_emulators.setdefault(pkg_flag, []).append(core_name)
package_to_emulators.setdefault(pkg_flag, []).extend(names)
return package_to_emulators