diff --git a/database.json b/database.json index a499352b..6f1064ae 100644 --- a/database.json +++ b/database.json @@ -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": { diff --git a/platforms/retroarch.yml b/platforms/retroarch.yml index a1bb13bf..65b4496a 100644 --- a/platforms/retroarch.yml +++ b/platforms/retroarch.yml @@ -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/ diff --git a/scripts/scraper/libretro_scraper.py b/scripts/scraper/libretro_scraper.py index 3abdce69..f26656ef 100644 --- a/scripts/scraper/libretro_scraper.py +++ b/scripts/scraper/libretro_scraper.py @@ -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//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: