feat: dolphin IPL.bin paths, scraper dedup by (name, destination)

dolphin: gc-ntsc-12.bin mapped to dolphin-emu/Sys/GC/<region>/IPL.bin
ref: DolphinLibretro/Boot.cpp:72-73, CommonPaths.h:139
scraper EXTRA_SYSTEM_FILES dedup now by (name, destination) to allow
same source file at multiple destinations.
retroarch pack: 448 files, 0 missing.
This commit is contained in:
Abdessamad Derraz
2026-03-18 15:08:26 +01:00
parent 4bffc23ab5
commit e5681c4ae8
3 changed files with 27 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-18T14:01:17Z",
"generated_at": "2026-03-18T14:08:26Z",
"total_files": 5563,
"total_size": 4908008969,
"files": {

View File

@@ -1238,6 +1238,15 @@ systems:
md5: db92574caab77a7ec99d4605fd6f2450
crc32: ad1b7f16
size: 2097152
- name: gc-ntsc-12.bin
destination: dolphin-emu/Sys/GC/USA/IPL.bin
required: false
- name: gc-pal-12.bin
destination: dolphin-emu/Sys/GC/EUR/IPL.bin
required: false
- name: gc-ntsc-12.bin
destination: dolphin-emu/Sys/GC/JAP/IPL.bin
required: false
core: dolphin
manufacturer: Nintendo
docs: https://docs.libretro.com/library/dolphin/

View File

@@ -351,6 +351,16 @@ class Scraper(BaseScraper):
"sony-playstation": [
{"name": "psxonpsp660.bin", "destination": "psxonpsp660.bin", "required": False},
],
# Dolphin GC BIOS — ref: DolphinLibretro/Boot.cpp:72-73,
# BootManager.cpp:200-217, CommonPaths.h:139 GC_IPL="IPL.bin"
# Core searches: system/dolphin-emu/Sys/GC/<region>/IPL.bin
# System.dat names (gc-ntsc-10.bin etc.) are NOT what Dolphin loads.
# We add the correct Dolphin paths pointing to the same files.
"nintendo-gamecube": [
{"name": "gc-ntsc-12.bin", "destination": "dolphin-emu/Sys/GC/USA/IPL.bin", "required": False},
{"name": "gc-pal-12.bin", "destination": "dolphin-emu/Sys/GC/EUR/IPL.bin", "required": False},
{"name": "gc-ntsc-12.bin", "destination": "dolphin-emu/Sys/GC/JAP/IPL.bin", "required": False},
],
# minivmac casing — ref: minivmac/src/MYOSGLUE.c
# doc says MacII.rom, repo has MacII.ROM — both work on case-insensitive FS
"apple-macintosh-ii": [
@@ -359,10 +369,15 @@ class Scraper(BaseScraper):
}
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", [])}
existing = {
(f["name"], f.get("destination", f["name"]))
for f in systems[sys_id].get("files", [])
}
for ef in extra_files:
if ef["name"] not in existing:
key = (ef["name"], ef.get("destination", ef["name"]))
if key not in existing:
systems[sys_id]["files"].append(ef)
existing.add(key)
# ep128emu shared group for Enterprise
if "enterprise-64-128" in systems: