feat: scraper adds missing arcade BIOS, ep128emu includes, new profiles

libretro_scraper: EXTRA_ARCADE_FILES adds namcoc69/70/75, msx, qsound
to arcade system. segasp.zip added to dreamcast-arcade. ep128emu
includes injected for enterprise system.

new profiles: vba_m (GB/GBC/GBA with doc vs source notes),
beetle_gba (Mednafen GBA).
This commit is contained in:
Abdessamad Derraz
2026-03-18 14:18:56 +01:00
parent c71378a71c
commit 513fd04bfd
3 changed files with 75 additions and 0 deletions

14
emulators/beetle_gba.yml Normal file
View File

@@ -0,0 +1,14 @@
# Beetle GBA (Mednafen) — Game Boy Advance (libretro)
# ref: beetle-gba-libretro/mednafen/gba, docs.libretro.com/library/beetle_gba
# Same BIOS as mGBA/VBA-M. Optional, no HLE fallback documented.
emulator: Beetle GBA (Mednafen)
type: libretro
cores: [mednafen_gba]
source: "https://github.com/libretro/beetle-gba-libretro"
systems:
- nintendo-gba
files:
- name: gba_bios.bin
system: nintendo-gba
required: false
md5: a860e8c0b6d573d191e4ec7db1b1e4f6

29
emulators/vba_m.yml Normal file
View File

@@ -0,0 +1,29 @@
# VBA-M — Game Boy / Game Boy Color / Game Boy Advance (libretro)
# ref: visualboyadvance-m/src/libretro, docs.libretro.com/library/vba_m
# Same BIOS as mGBA. Requires core option "Use BIOS file if found" = On.
#
# doc vs source: docs list gba_bios.bin md5 a860e8c0b6d573d191e4ec7db1b1e4f6
# which is the standard GBA BIOS dump. Also accepts gb_bios.bin and gbc_bios.bin
# for GB/GBC mode (not listed in mgba profile).
emulator: VBA-M
type: libretro
cores: [vbam]
source: "https://github.com/visualboyadvance-m/visualboyadvance-m"
systems:
- nintendo-gb
- nintendo-gbc
- nintendo-gba
files:
- name: gba_bios.bin
system: nintendo-gba
required: false
md5: a860e8c0b6d573d191e4ec7db1b1e4f6
note: "optional, core option vbam_usebios must be On"
- name: gb_bios.bin
system: nintendo-gb
required: false
md5: 32fbbd84168d3482956eb3c5051637f5
- name: gbc_bios.bin
system: nintendo-gbc
required: false
md5: dbfce9db9deaa2567f6a84fde55f9680

View File

@@ -265,6 +265,38 @@ class Scraper(BaseScraper):
if sys_id not in systems:
systems[sys_id] = sys_data
# Arcade BIOS present in the repo but absent from System.dat.
# FBNeo expects them in system/ or system/fbneo/.
# ref: fbneo/src/burner/libretro/libretro.cpp
EXTRA_ARCADE_FILES = [
{"name": "namcoc69.zip", "destination": "namcoc69.zip", "required": True},
{"name": "namcoc70.zip", "destination": "namcoc70.zip", "required": True},
{"name": "namcoc75.zip", "destination": "namcoc75.zip", "required": True},
{"name": "msx.zip", "destination": "msx.zip", "required": True},
{"name": "qsound.zip", "destination": "qsound.zip", "required": True},
]
if "arcade" in systems:
existing = {f["name"] for f in systems["arcade"].get("files", [])}
for ef in EXTRA_ARCADE_FILES:
if ef["name"] not in existing:
systems["arcade"]["files"].append(ef)
# segasp.zip for Sega System SP (Flycast)
if "sega-dreamcast-arcade" in systems:
existing = {f["name"] for f in systems["sega-dreamcast-arcade"].get("files", [])}
if "segasp.zip" not in existing:
systems["sega-dreamcast-arcade"]["files"].append({
"name": "segasp.zip",
"destination": "dc/segasp.zip",
"required": True,
})
# ep128emu shared group for Enterprise
if "enterprise-64-128" in systems:
systems["enterprise-64-128"].setdefault("includes", [])
if "ep128emu" not in systems["enterprise-64-128"]["includes"]:
systems["enterprise-64-128"]["includes"].append("ep128emu")
# Inject shared group references for systems that have core-specific
# subdirectory requirements already defined in _shared.yml.
SYSTEM_SHARED_GROUPS = {