feat: complete retroarch.yml conformance with libretro docs

scraper adds FBNeo subsystem BIOS (channelf, coleco, neocdz, ngp,
spectrum, spec128, spec1282a, fdsbios, aes), DSi files, SGB alt
names, JollyCV BIOS, Saturn ST-V, PSX alt BIOS. all traced to
original emulator source code. 0 missing across all platforms.
retroarch pack: 398 -> 445 files.
This commit is contained in:
Abdessamad Derraz
2026-03-18 14:46:32 +01:00
parent 2afc31e40a
commit 1d6a0b9ebc
3 changed files with 101 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-18T13:29:00Z",
"generated_at": "2026-03-18T13:46:32Z",
"total_files": 5563,
"total_size": 4908008969,
"files": {

View File

@@ -220,6 +220,33 @@ systems:
- name: qsound.zip
destination: qsound.zip
required: true
- name: channelf.zip
destination: channelf.zip
required: true
- name: coleco.zip
destination: coleco.zip
required: true
- name: neocdz.zip
destination: neocdz.zip
required: true
- name: ngp.zip
destination: ngp.zip
required: true
- name: spectrum.zip
destination: spectrum.zip
required: true
- name: spec128.zip
destination: spec128.zip
required: true
- name: spec1282a.zip
destination: spec1282a.zip
required: true
- name: fdsbios.zip
destination: fdsbios.zip
required: true
- name: aes.zip
destination: aes.zip
required: true
core: fbneo
manufacturer: Various
docs: https://docs.libretro.com/library/fbneo/
@@ -331,6 +358,12 @@ systems:
md5: 2c66f5911e5b42b8ebe113403548eee7
crc32: 3aa93ef3
size: 8192
- name: BIOS.col
destination: BIOS.col
required: true
- name: bioscv.rom
destination: bioscv.rom
required: true
commodore-amiga:
files:
- name: kick33180.A500
@@ -1237,6 +1270,18 @@ systems:
md5: e45033d9b0fa6b0de071292bba7c9d13
crc32: 945f9dc9
size: 262144
- name: dsi_bios7.bin
destination: dsi_bios7.bin
required: true
- name: dsi_bios9.bin
destination: dsi_bios9.bin
required: true
- name: dsi_firmware.bin
destination: dsi_firmware.bin
required: true
- name: dsi_nand.bin
destination: dsi_nand.bin
required: true
core: desmume
manufacturer: Nintendo
docs: https://docs.libretro.com/library/desmume/
@@ -1351,6 +1396,9 @@ systems:
md5: d574d4f9c12f305074798f54c091a8b4
crc32: ec8a83b9
size: 256
- name: sgb.boot.rom
destination: sgb.boot.rom
required: false
nintendo-snes:
files:
- name: cx4.data.rom
@@ -1766,6 +1814,9 @@ systems:
md5: ac4e4b6522e200c0d23d371a8cecbfd3
crc32: e4d61811
size: 524288
- name: stvbios.zip
destination: kronos/stvbios.zip
required: true
core: kronos
manufacturer: Sega
docs: https://docs.libretro.com/library/kronos/

View File

@@ -268,12 +268,25 @@ class Scraper(BaseScraper):
# 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
# ref: fbneo/src/burner/libretro/libretro.cpp — search order:
# 1) romset dir 2) system/fbneo/ 3) system/
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},
# FBNeo non-arcade subsystem BIOS (MAME-format ZIPs)
# ref: fbneo/src/burn/drv/ per-driver source files
{"name": "channelf.zip", "destination": "channelf.zip", "required": True},
{"name": "coleco.zip", "destination": "coleco.zip", "required": True},
{"name": "neocdz.zip", "destination": "neocdz.zip", "required": True},
{"name": "ngp.zip", "destination": "ngp.zip", "required": True},
{"name": "spectrum.zip", "destination": "spectrum.zip", "required": True},
{"name": "spec128.zip", "destination": "spec128.zip", "required": True},
{"name": "spec1282a.zip", "destination": "spec1282a.zip", "required": True},
{"name": "fdsbios.zip", "destination": "fdsbios.zip", "required": True},
{"name": "aes.zip", "destination": "aes.zip", "required": True},
]
if "arcade" in systems:
existing = {f["name"] for f in systems["arcade"].get("files", [])}
@@ -291,6 +304,42 @@ class Scraper(BaseScraper):
"required": True,
})
# Extra files missing from System.dat for specific systems.
# Each traced to the core's source code.
EXTRA_SYSTEM_FILES = {
# melonDS DS DSi mode — ref: JesseTG/melonds-ds/src/libretro.cpp
"nintendo-ds": [
{"name": "dsi_bios7.bin", "destination": "dsi_bios7.bin", "required": True},
{"name": "dsi_bios9.bin", "destination": "dsi_bios9.bin", "required": True},
{"name": "dsi_firmware.bin", "destination": "dsi_firmware.bin", "required": True},
{"name": "dsi_nand.bin", "destination": "dsi_nand.bin", "required": True},
],
# bsnes SGB naming — ref: bsnes/target-libretro/libretro.cpp
"nintendo-sgb": [
{"name": "sgb.boot.rom", "destination": "sgb.boot.rom", "required": False},
],
# JollyCV — ref: jollycv/libretro.c
"coleco-colecovision": [
{"name": "BIOS.col", "destination": "BIOS.col", "required": True},
{"name": "bioscv.rom", "destination": "bioscv.rom", "required": True},
],
# Kronos ST-V — ref: libretro-kronos/libretro/libretro.c
"sega-saturn": [
{"name": "stvbios.zip", "destination": "kronos/stvbios.zip", "required": True},
],
# PCSX ReARMed / Beetle PSX alt BIOS — ref: pcsx_rearmed/libpcsxcore/misc.c
# docs say PSXONPSP660.bin (uppercase) but core accepts any case
"sony-playstation": [
{"name": "psxonpsp660.bin", "destination": "psxonpsp660.bin", "required": False},
],
}
for sys_id, extra_files in EXTRA_SYSTEM_FILES.items():
if sys_id in systems:
existing = {f["name"] for f in systems[sys_id].get("files", [])}
for ef in extra_files:
if ef["name"] not in existing:
systems[sys_id]["files"].append(ef)
# ep128emu shared group for Enterprise
if "enterprise-64-128" in systems:
systems["enterprise-64-128"].setdefault("includes", [])