diff --git a/emulators/beetle_psx.yml b/emulators/beetle_psx.yml new file mode 100644 index 00000000..5b807af0 --- /dev/null +++ b/emulators/beetle_psx.yml @@ -0,0 +1,83 @@ +emulator: Beetle PSX (Mednafen PSX) +type: libretro +source: "https://github.com/libretro/beetle-psx-libretro" +cores: [mednafen_psx, mednafen_psx_hw] +systems: [sony-playstation] +bios_size: 524288 # 512 KB for all accepted BIOS images +verification: sha1 +notes: > + Region-based BIOS selection: the core picks JP/NA/EU firmware based on disc region. + SHA1 validated with warning on mismatch (does not block loading). + Override option allows using PSP or PS3 extracted PS1 BIOS as region-free alternative. + "Skip BIOS" option exists but causes compatibility issues (PAL copy protection, Saga Frontier). + Alternate filenames are case variants and model aliases for the same image. + Comment in source references MAME psx.cpp as hash source. + +files: + # -- Region: Japan (REGION_JP) -- + + - name: "scph5500.bin" + description: "SCPH-5500 (v3.0 09-09-96 J)" + region: "NTSC-J" + required: true + sha1: "b05def971d8ec59f346f2d9ac21fb742e3eb6917" + md5: "8dd7d5296a650fac7319bce665a6a53c" + source_ref: "libretro.cpp:252-256" + alt_names: ["SCPH5500.bin", "SCPH-5500.bin"] + + # -- Region: North America (REGION_NA) -- + + - name: "scph5501.bin" + description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)" + region: "NTSC-U" + required: true + sha1: "0555c6fae8906f3f09baf5988f00e55f88e9f30b" + md5: "490f666e1afb15b7362b406ed1cea246" + source_ref: "libretro.cpp:258-270" + alt_names: + - "SCPH5501.bin" + - "SCPH-5501.bin" + - "scph5503.bin" + - "SCPH5503.bin" + - "SCPH-5503.bin" + - "scph7003.bin" + - "SCPH7003.bin" + - "SCPH-7003.bin" + + # -- Region: Europe (REGION_EU) -- + + - name: "scph5502.bin" + description: "SCPH-5502, 5552 (v3.0 01-06-97 E)" + region: "PAL" + required: true + sha1: "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0" + md5: "32736f17079d0b2b7024407c39bd3050" + source_ref: "libretro.cpp:272-282" + alt_names: + - "SCPH5502.bin" + - "SCPH-5502.bin" + - "scph5552.bin" + - "SCPH5552.bin" + - "SCPH-5552.bin" + + # -- Override BIOS (region-free alternatives) -- + + - name: "psxonpsp660.bin" + description: "PSP embedded PS1 BIOS (region-free override)" + region: "Auto" + required: false + sha1: "96880d1ca92a016ff054be5159bb06fe03cb4e14" + md5: "c53ca5908936d412331790f4426c6c33" + source_ref: "libretro.cpp:190-196" + alt_names: ["PSXONPSP660.bin"] + notes: "override_bios=1 (psxonpsp option). Falls back to region BIOS if not found." + + - name: "ps1_rom.bin" + description: "PS3 embedded PS1 BIOS (region-free override)" + region: "Auto" + required: false + sha1: "c40146361eb8cf670b19fdc9759190257803cab7" + md5: "81bbe60ba7a3d1cea1d48c14cbcc647b" + source_ref: "libretro.cpp:198-204" + alt_names: ["PS1_ROM.bin"] + notes: "override_bios=2 (ps1_rom option). Falls back to region BIOS if not found." diff --git a/emulators/beetle_saturn.yml b/emulators/beetle_saturn.yml new file mode 100644 index 00000000..016234d2 --- /dev/null +++ b/emulators/beetle_saturn.yml @@ -0,0 +1,93 @@ +emulator: Beetle Saturn (Mednafen) +type: libretro +core: mednafen_saturn_libretro +source: "https://github.com/libretro/beetle-saturn-libretro" +systems: + - sega-saturn + +notes: | + Beetle Saturn is the libretro port of Mednafen's Sega Saturn emulation module. + Two region-specific BIOS files are used: sega_101.bin for Japan/Asia NTSC, + mpr-17933.bin for North America, Europe, and all other regions. The core + returns false from InitCommon() if the BIOS file is missing or not exactly + 512 KB, so both BIOS files are required for full region coverage. + + Region auto-detection reads the disc header and picks the matching BIOS. + Manual region override is available via beetle_saturn_region core option. + + The KOF95 and Ultraman ROM carts are optional game-specific expansion + cartridges loaded from the system directory. The Action Replay 4M Plus + cart (satar4mp.bin) is listed but marked unfinished in source (needs + CPU UBC emulation). + + BIOS loading: mednafen/ss/ss.cpp InitCommon() lines 920-961. + Cart loading: mednafen/ss/cart.cpp CART_Init() lines 128-220. + Firmware path: libretro.cpp MDFN_MakeFName(MDFNMKF_FIRMWARE) -> system dir. + Default cart ROM filenames: mednafen/settings.cpp MDFN_GetSettingS(). + +files: + # ------------------------------------------------------- + # Saturn BIOS - Japan / Asia NTSC + # ------------------------------------------------------- + - name: "sega_101.bin" + system: sega-saturn + region: [japan, asia-ntsc] + required: true + size: 524288 # 512 KB + md5: "85ec9ca47d8f6807718151cbcca8b964" + note: "Saturn BIOS v1.01 (Japan). Used when region is JP or Asia NTSC." + source_ref: "mednafen/ss/ss.cpp:928-929" + + # ------------------------------------------------------- + # Saturn BIOS - North America / Europe / other + # ------------------------------------------------------- + - name: "mpr-17933.bin" + system: sega-saturn + region: [north-america, europe, south-korea, asia-pal, brazil, latin-america] + required: true + size: 524288 # 512 KB + md5: "3240872c70984b6cbfda1586cab68dbe" + note: "Saturn BIOS (NA/EU). Used for all non-JP/Asia-NTSC regions." + source_ref: "mednafen/ss/ss.cpp:930-931" + + # ------------------------------------------------------- + # King of Fighters '95 ROM cart + # ------------------------------------------------------- + - name: "mpr-18811-mx.ic1" + system: sega-saturn + required: false + size: 2097152 # 2 MB (0x200000, rom.cpp reads up to this) + md5: "255113ba943c92a54facd25a10fd780c" + note: "KOF95 expansion ROM cart. Loaded when cart type set to KOF95." + source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/settings.cpp:64-65" + + # ------------------------------------------------------- + # Ultraman ROM cart + # ------------------------------------------------------- + - name: "mpr-19367-mx.ic1" + system: sega-saturn + required: false + size: 2097152 # 2 MB + md5: "1cd19988d1d72a3e7caa0b73234c96b4" + note: "Ultraman expansion ROM cart. Loaded when cart type set to Ultraman." + source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/settings.cpp:66-67" + + # ------------------------------------------------------- + # Action Replay 4M Plus (unfinished) + # ------------------------------------------------------- + - name: "satar4mp.bin" + system: sega-saturn + required: false + note: "Action Replay 4M Plus firmware. Unfinished in source, needs CPU UBC emulation." + source_ref: "mednafen/ss/cart.cpp:174-188, mednafen/settings.cpp:68-69" + +platform_details: + saturn: + bios_size: 524288 # 512 KB + rom_cart_size: 2097152 # 2 MB max (rom.cpp) + workram_low: 1048576 # 1 MB + workram_high: 1048576 # 1 MB + bios_address: "0x00000000-0x000FFFFF" + cart_address: "0x02000000-0x03FFFFFF" + hle_available: false + source_ref: "mednafen/ss/ss.cpp:906-908" diff --git a/emulators/bluemsx.yml b/emulators/bluemsx.yml new file mode 100644 index 00000000..2c87a055 --- /dev/null +++ b/emulators/bluemsx.yml @@ -0,0 +1,644 @@ +emulator: blueMSX +type: libretro +source: "https://github.com/libretro/blueMSX-libretro" +cores: + - bluemsx +systems: + - msx + - msx2 + - msx2plus + - msxturboR + - colecovision + - sega-sg1000 + - sega-sc3000 + - sega-sf7000 + - spectravideo + +# blueMSX is a multi-system emulator covering MSX (1/2/2+/turboR), ColecoVision, +# SVI (Spectravideo), and SEGA SG-1000/SC-3000/SF-7000. The core ships its entire +# machine database (config.ini per machine model) plus ROM files under +# /Machines/. Each machine config.ini references ROM paths relative +# to the Machines directory. +# +# Machine type selection (libretro.c:855-896): +# Core option "bluemsx_msxtype" selects the machine. "Auto" defaults to SC-3000 +# then switches based on file extension: .dsk/.cas/.rom/.mx1/.mx2 -> MSX2+, +# .col -> ColecoVision, .sg -> SG-1000, .sc -> SC-3000, .sf/.sf7 -> SF-7000. +# +# C-BIOS (open source MSX BIOS replacement) is bundled for MSX, MSX2, MSX2+. +# Machines: "MSX - C-BIOS", "MSX2 - C-BIOS", "MSX2+ - C-BIOS" +# These allow running cartridge ROMs without copyrighted BIOS files. +# Disk and tape software requires real BIOS ROMs. +# +# ROM loading (Src/Board/Machine.c:594-647): +# machineCreate() reads //config.ini which lists +# ROM slots. ROM paths in config.ini are relative to machinesDir parent. +# +# All files go under: /Machines/ + +notes: | + The directory structure must be preserved exactly as shipped in the repo's + system/bluemsx/ folder. The core expects Machines/ and Databases/ subdirectories + inside the system directory. Each machine model has its own subdirectory with + a config.ini and associated ROM files. + + Default machines (used when selecting base type names like "MSX", "MSX2", etc.) + reference ROMs from "Machines/Shared Roms/". Machine-specific variants (e.g. + "MSX2 - Panasonic FS-A1F") have their own ROMs in their own subdirectory. + + C-BIOS machines work for cartridge-based games without any copyrighted BIOS. + For disk/tape support, real BIOS ROMs are required. + +files: + # ============================================================ + # Shared ROMs (Machines/Shared Roms/) + # Used by the default/generic machine configs and many specific models. + # ============================================================ + + # -- MSX1 main BIOS variants -- + + - name: MSX.rom + path: "Machines/Shared Roms/MSX.rom" + size: 32768 + required: true + system: msx + note: "MSX1 generic BIOS. Used by default 'MSX' machine config." + source_ref: "system/bluemsx/Machines/MSX/config.ini" + + - name: MSXJ.rom + path: "Machines/Shared Roms/MSXJ.rom" + size: 32768 + required: false + system: msx + note: "MSX1 Japanese BIOS. Used by 'MSX - Japanese' machine." + source_ref: "system/bluemsx/Machines/MSX - Japanese/config.ini" + + - name: MSXBR.rom + path: "Machines/Shared Roms/MSXBR.rom" + size: 32768 + required: false + system: msx + note: "MSX1 Brazilian BIOS." + + - name: MSXFR.rom + path: "Machines/Shared Roms/MSXFR.rom" + size: 32768 + required: false + system: msx + note: "MSX1 French BIOS." + + - name: MSXG.rom + path: "Machines/Shared Roms/MSXG.rom" + size: 32768 + required: false + system: msx + note: "MSX1 German BIOS." + + - name: MSXKR.rom + path: "Machines/Shared Roms/MSXKR.rom" + size: 32768 + required: false + system: msx + note: "MSX1 Korean BIOS." + + - name: MSXR.rom + path: "Machines/Shared Roms/MSXR.rom" + size: 32768 + required: false + system: msx + note: "MSX1 Russian BIOS." + + - name: MSXSE.ROM + path: "Machines/Shared Roms/MSXSE.ROM" + size: 32768 + required: false + system: msx + note: "MSX1 Swedish BIOS." + + - name: MSXSP.rom + path: "Machines/Shared Roms/MSXSP.rom" + size: 32768 + required: false + system: msx + note: "MSX1 Spanish BIOS." + + - name: MSXAR.ROM + path: "Machines/Shared Roms/MSXAR.ROM" + size: 32768 + required: false + system: msx + note: "MSX1 Arabic BIOS." + + - name: MSXR2.ROM + path: "Machines/Shared Roms/MSXR2.ROM" + size: 32768 + required: false + system: msx + note: "MSX1 Russian BIOS (variant 2)." + + - name: MSXHAN.rom + path: "Machines/Shared Roms/MSXHAN.rom" + size: 8192 + required: false + system: msx + note: "MSX1 Korean Hangul extension ROM." + + # -- MSX2 main BIOS + extension -- + + - name: MSX2.rom + path: "Machines/Shared Roms/MSX2.rom" + size: 32768 + required: true + system: msx2 + note: "MSX2 generic main BIOS. Used by default 'MSX2' machine config." + source_ref: "system/bluemsx/Machines/MSX2/config.ini" + + - name: MSX2EXT.rom + path: "Machines/Shared Roms/MSX2EXT.rom" + size: 16384 + required: true + system: msx2 + note: "MSX2 extension BIOS (SubROM). Required alongside MSX2.rom." + source_ref: "system/bluemsx/Machines/MSX2/config.ini" + + - name: MSX2J.rom + path: "Machines/Shared Roms/MSX2J.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Japanese main BIOS." + + - name: MSX2JEXT.rom + path: "Machines/Shared Roms/MSX2JEXT.rom" + size: 16384 + required: false + system: msx2 + note: "MSX2 Japanese extension BIOS." + + - name: MSX2BR.rom + path: "Machines/Shared Roms/MSX2BR.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Brazilian main BIOS." + + - name: MSX2BREXT.rom + path: "Machines/Shared Roms/MSX2BREXT.rom" + size: 16384 + required: false + system: msx2 + note: "MSX2 Brazilian extension BIOS." + + - name: MSX2FR.rom + path: "Machines/Shared Roms/MSX2FR.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 French main BIOS." + + - name: MSX2FREXT.rom + path: "Machines/Shared Roms/MSX2FREXT.rom" + size: 16384 + required: false + system: msx2 + note: "MSX2 French extension BIOS." + + - name: MSX2G.rom + path: "Machines/Shared Roms/MSX2G.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 German main BIOS." + + - name: MSX2GEXT.rom + path: "Machines/Shared Roms/MSX2GEXT.rom" + size: 16384 + required: false + system: msx2 + note: "MSX2 German extension BIOS." + + - name: MSX2KR.rom + path: "Machines/Shared Roms/MSX2KR.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Korean main BIOS." + + - name: MSX2KREXT.rom + path: "Machines/Shared Roms/MSX2KREXT.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Korean extension BIOS." + + - name: MSX2R.rom + path: "Machines/Shared Roms/MSX2R.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Russian main BIOS." + + - name: MSX2REXT.rom + path: "Machines/Shared Roms/MSX2REXT.rom" + size: 16384 + required: false + system: msx2 + note: "MSX2 Russian extension BIOS." + + - name: MSX2R2.ROM + path: "Machines/Shared Roms/MSX2R2.ROM" + size: 32768 + required: false + system: msx2 + note: "MSX2 Russian main BIOS (variant 2)." + + - name: MSX2SE.rom + path: "Machines/Shared Roms/MSX2SE.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Swedish main BIOS." + + - name: MSX2SP.rom + path: "Machines/Shared Roms/MSX2SP.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Spanish main BIOS." + + - name: MSX2SPEXT.rom + path: "Machines/Shared Roms/MSX2SPEXT.rom" + size: 16384 + required: false + system: msx2 + note: "MSX2 Spanish extension BIOS." + + - name: MSX2AR.ROM + path: "Machines/Shared Roms/MSX2AR.ROM" + size: 32768 + required: false + system: msx2 + note: "MSX2 Arabic main BIOS." + + - name: MSX2AREXT.ROM + path: "Machines/Shared Roms/MSX2AREXT.ROM" + size: 16384 + required: false + system: msx2 + note: "MSX2 Arabic extension BIOS." + + - name: MSX2HAN.rom + path: "Machines/Shared Roms/MSX2HAN.rom" + size: 32768 + required: false + system: msx2 + note: "MSX2 Korean Hangul BIOS." + + # -- MSX2+ main BIOS + extension -- + + - name: MSX2P.rom + path: "Machines/Shared Roms/MSX2P.rom" + size: 32768 + required: true + system: msx2plus + note: "MSX2+ main BIOS. Used by default 'MSX2+' machine config (auto-selected for .dsk/.cas/.rom)." + source_ref: "system/bluemsx/Machines/MSX2+/config.ini" + + - name: MSX2PEXT.rom + path: "Machines/Shared Roms/MSX2PEXT.rom" + size: 16384 + required: true + system: msx2plus + note: "MSX2+ extension BIOS (SubROM)." + source_ref: "system/bluemsx/Machines/MSX2+/config.ini" + + - name: MSX2PMUS.rom + path: "Machines/Shared Roms/MSX2PMUS.rom" + size: 16384 + required: true + system: msx2plus + note: "MSX2+ MSX-MUSIC BIOS (FM-PAC built-in). Used by MSX2+ and MSX2 default configs." + source_ref: "system/bluemsx/Machines/MSX2+/config.ini" + + # -- MSX turboR BIOS set -- + + - name: MSXTR.ROM + path: "Machines/Shared Roms/MSXTR.ROM" + size: 32768 + required: true + system: msxturboR + note: "MSX turboR main BIOS." + source_ref: "system/bluemsx/Machines/MSXturboR/config.ini" + + - name: MSXTREXT.ROM + path: "Machines/Shared Roms/MSXTREXT.ROM" + size: 16384 + required: true + system: msxturboR + note: "MSX turboR extension BIOS." + source_ref: "system/bluemsx/Machines/MSXturboR/config.ini" + + - name: MSXTRMUS.ROM + path: "Machines/Shared Roms/MSXTRMUS.ROM" + size: 16384 + required: true + system: msxturboR + note: "MSX turboR MSX-MUSIC BIOS." + source_ref: "system/bluemsx/Machines/MSXturboR/config.ini" + + - name: MSXTROPT.ROM + path: "Machines/Shared Roms/MSXTROPT.ROM" + size: 16384 + required: true + system: msxturboR + note: "MSX turboR option ROM (firmware utilities)." + source_ref: "system/bluemsx/Machines/MSXturboR/config.ini" + + - name: MSXDOS23.ROM + path: "Machines/Shared Roms/MSXDOS23.ROM" + size: 65536 + required: true + system: msxturboR + note: "MSX-DOS 2.3 ROM. Used by turboR default config for disk operations." + source_ref: "system/bluemsx/Machines/MSXturboR/config.ini" + + # -- Shared utility/extension ROMs -- + + - name: KANJI.rom + path: "Machines/Shared Roms/KANJI.rom" + size: 262144 + required: false + note: "Kanji font ROM (256 KB). Used by MSX2+, turboR, and Japanese MSX2 machines." + source_ref: "system/bluemsx/Machines/MSX2+/config.ini" + + - name: MSXKANJI.rom + path: "Machines/Shared Roms/MSXKANJI.rom" + size: 32768 + required: false + note: "MSX-Kanji driver ROM. Used by MSX2+, turboR, and Japanese MSX2 for kanji display." + source_ref: "system/bluemsx/Machines/MSX2+/config.ini" + + - name: FMPAC.rom + path: "Machines/Shared Roms/FMPAC.rom" + size: 65536 + required: false + note: "FM-PAC cartridge ROM (YM2413 FM synthesis). Loaded as expansion cartridge by MegaromCartridge.c." + source_ref: "Src/Memory/MegaromCartridge.c:290" + + - name: XBASIC2.rom + path: "Machines/Shared Roms/XBASIC2.rom" + size: 16384 + required: false + note: "MSX-BASIC 2 extension ROM. Used by MSX2, MSX2+, and turboR default configs." + source_ref: "system/bluemsx/Machines/MSX2/config.ini" + + - name: PAINT.rom + path: "Machines/Shared Roms/PAINT.rom" + size: 65536 + required: false + note: "Paint utility ROM. Used by some MSX2 Japanese machine configs." + + - name: SWP.rom + path: "Machines/Shared Roms/SWP.rom" + size: 32768 + required: false + note: "Software World Processor ROM. Used by Al Alamiah MSX2 machines." + + - name: ARABIC.rom + path: "Machines/Shared Roms/ARABIC.rom" + size: 32768 + required: false + note: "Arabic character set extension ROM." + + - name: HANGUL.rom + path: "Machines/Shared Roms/HANGUL.rom" + size: 131072 + required: false + note: "Korean Hangul font ROM (128 KB)." + + - name: RS232.ROM + path: "Machines/Shared Roms/RS232.ROM" + size: 8192 + required: false + note: "RS-232C serial interface ROM." + + - name: MOONSOUND.rom + path: "Machines/Shared Roms/MOONSOUND.rom" + size: 2097152 + required: false + note: "MoonSound (OPL4) wavetable ROM (2 MB). Used by MSX2, MSX2+, and turboR configs." + source_ref: "system/bluemsx/Machines/MSX2/config.ini" + + # -- Disk controller ROMs -- + + - name: PANASONICDISK.rom + path: "Machines/Shared Roms/PANASONICDISK.rom" + size: 16384 + required: false + note: "Panasonic disk controller ROM. Used by MSX2+ and turboR default configs." + source_ref: "system/bluemsx/Machines/MSX2+/config.ini" + + - name: PHILIPSDISK.rom + path: "Machines/Shared Roms/PHILIPSDISK.rom" + size: 16384 + required: false + note: "Philips disk controller ROM. Used by MSX1 and MSX2 default configs." + source_ref: "system/bluemsx/Machines/MSX/config.ini" + + - name: NATIONALDISK.rom + path: "Machines/Shared Roms/NATIONALDISK.rom" + size: 16384 + required: false + note: "National disk controller ROM." + + - name: MICROSOLDISK.ROM + path: "Machines/Shared Roms/MICROSOLDISK.ROM" + size: 16384 + required: false + note: "Microsol disk controller ROM." + + # -- Expansion hardware ROMs -- + + - name: SUNRISEIDE.rom + path: "Machines/Shared Roms/SUNRISEIDE.rom" + size: 65536 + required: false + note: "Sunrise IDE interface ROM. Loaded as expansion cartridge." + source_ref: "Src/Memory/MegaromCartridge.c:310" + + - name: BEERIDE.ROM + path: "Machines/Shared Roms/BEERIDE.ROM" + size: 16384 + required: false + note: "Beer IDE interface ROM." + source_ref: "Src/Memory/MegaromCartridge.c:318" + + - name: NOVAXIS.rom + path: "Machines/Shared Roms/NOVAXIS.rom" + size: 16384 + required: false + note: "Novaxis SCSI interface ROM." + source_ref: "Src/Memory/MegaromCartridge.c:326" + + - name: nowindDos1.rom + path: "Machines/Shared Roms/nowindDos1.rom" + size: 524288 + required: false + note: "Nowind USB disk interface with MSX-DOS 1." + source_ref: "Src/Memory/MegaromCartridge.c:334" + + - name: nowindDos2.rom + path: "Machines/Shared Roms/nowindDos2.rom" + size: 524288 + required: false + note: "Nowind USB disk interface with MSX-DOS 2." + source_ref: "Src/Memory/MegaromCartridge.c:338" + + - name: GCVMX80.ROM + path: "Machines/Shared Roms/GCVMX80.ROM" + size: 8192 + required: false + note: "GCV MX-80 printer interface ROM." + + - name: ARAB1.ROM + path: "Machines/Shared Roms/ARAB1.ROM" + size: 32768 + required: false + note: "Arabic support ROM (variant 1)." + + # ============================================================ + # C-BIOS ROMs (open source, bundled with core) + # These are pre-installed and do not require user-supplied files. + # ============================================================ + + - name: cbios_main_msx1.rom + path: "Machines/MSX - C-BIOS/cbios_main_msx1.rom" + size: 32768 + required: false + bundled: true + system: msx + note: "C-BIOS MSX1 main ROM (open source). Bundled with core. Cartridge games only." + + - name: cbios_logo_msx1.rom + path: "Machines/MSX - C-BIOS/cbios_logo_msx1.rom" + size: 16384 + required: false + bundled: true + system: msx + note: "C-BIOS MSX1 logo ROM (open source). Bundled with core." + + - name: cbios_main_msx2.rom + path: "Machines/MSX2 - C-BIOS/cbios_main_msx2.rom" + size: 32768 + required: false + bundled: true + system: msx2 + note: "C-BIOS MSX2 main ROM (open source). Bundled with core. Cartridge games only." + + - name: cbios_logo_msx2.rom + path: "Machines/MSX2 - C-BIOS/cbios_logo_msx2.rom" + size: 16384 + required: false + bundled: true + system: msx2 + note: "C-BIOS MSX2 logo ROM (open source). Bundled with core." + + - name: cbios_sub.rom + path: "Machines/MSX2 - C-BIOS/cbios_sub.rom" + size: 16384 + required: false + bundled: true + system: msx2 + note: "C-BIOS MSX2/MSX2+ sub ROM (open source). Bundled with core." + + - name: "cbios_main_msx2+.rom" + path: "Machines/MSX2+ - C-BIOS/cbios_main_msx2+.rom" + size: 32768 + required: false + bundled: true + system: msx2plus + note: "C-BIOS MSX2+ main ROM (open source). Bundled with core. Cartridge games only." + + - name: "cbios_logo_msx2+.rom" + path: "Machines/MSX2+ - C-BIOS/cbios_logo_msx2+.rom" + size: 16384 + required: false + bundled: true + system: msx2plus + note: "C-BIOS MSX2+ logo ROM (open source). Bundled with core." + + - name: cbios_music.rom + path: "Machines/MSX2+ - C-BIOS/cbios_music.rom" + size: 16384 + required: false + bundled: true + system: msx2plus + note: "C-BIOS MSX2+ music ROM (open source). Bundled with core." + + # ============================================================ + # ColecoVision BIOS + # ============================================================ + + - name: coleco.rom + path: "Machines/COL - ColecoVision/coleco.rom" + size: 8192 + required: true + system: colecovision + note: "ColecoVision BIOS ROM. Required for ColecoVision mode." + source_ref: "system/bluemsx/Machines/COL - ColecoVision/config.ini" + + # ============================================================ + # SEGA SF-7000 BIOS + # SG-1000 and SC-3000 do not require BIOS ROMs. + # ============================================================ + + - name: sf7000.rom + path: "Machines/SEGA - SF-7000/sf7000.rom" + size: 8192 + required: true + system: sega-sf7000 + note: "Sega SF-7000 BIOS ROM. SG-1000 and SC-3000 have no BIOS requirement." + source_ref: "system/bluemsx/Machines/SEGA - SF-7000/config.ini" + + # ============================================================ + # Spectravideo SVI BIOS files + # ============================================================ + + - name: svi318.rom + path: "Machines/SVI - Spectravideo SVI-318/svi318.rom" + size: 32768 + required: true + system: spectravideo + note: "SVI-318 BIOS ROM." + source_ref: "system/bluemsx/Machines/SVI - Spectravideo SVI-318/config.ini" + + - name: svi328.rom + path: "Machines/SVI - Spectravideo SVI-328/svi328.rom" + size: 32768 + required: true + system: spectravideo + note: "SVI-328 BIOS ROM." + source_ref: "system/bluemsx/Machines/SVI - Spectravideo SVI-328/config.ini" + + # ============================================================ + # Databases (required for ROM identification/mapper detection) + # Shipped with the core, not user-supplied. + # ============================================================ + + - name: msxromdb.xml + path: "Databases/msxromdb.xml" + required: false + bundled: true + note: "MSX ROM database for mapper auto-detection. Bundled with core." + + - name: msxsysromdb.xml + path: "Databases/msxsysromdb.xml" + required: false + bundled: true + note: "MSX system ROM database. Bundled with core." + +# Machine count: 170+ machine configurations covering dozens of regional MSX +# variants from manufacturers like Panasonic, Sony, Philips, Yamaha, Sanyo, +# National, Toshiba, Daewoo, Sharp, Gradiente, Spectravideo, and others. +# Each has its own ROM set in its own subdirectory. The Shared Roms directory +# covers the generic/default configs that most users will need. diff --git a/emulators/bsnes.yml b/emulators/bsnes.yml new file mode 100644 index 00000000..c04ab5f2 --- /dev/null +++ b/emulators/bsnes.yml @@ -0,0 +1,189 @@ +emulator: bsnes +type: libretro +source: "https://github.com/libretro/bsnes-libretro" +systems: [nintendo-snes, nintendo-super-game-boy, nintendo-satellaview] + +# bsnes supports HLE for DSP1/DSP1B/DSP2/DSP4, ST010, and Cx4. +# When HLE is enabled (core option bsnes_coprocessor_prefer_hle) or +# when LLE firmware files are missing, bsnes falls back to HLE automatically. +# DSP3 and ST011 have no HLE fallback - LLE firmware is required. +# SGB boot ROMs are embedded in the core (icd/boot-roms.cpp), but the SGB +# cartridge ROM (SGB1.sfc / SGB2.sfc) must be provided for Game Boy support. + +# All coprocessor firmware loaded via system directory lookup: +# RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY -> "{sysdir}/{identifier}.{type}.rom" +# SGB BIOS loaded from: "{sysdir}/{SGB1.sfc|SGB2.sfc}" (core option bsnes_sgb_bios) +# BS-X BIOS loaded from: "{sysdir}/BS-X.bin" + +files: + # -- NEC uPD7725 coprocessor (DSP1, DSP1B, DSP2, DSP3, DSP4) -- + # Used by: Pilotwings (DSP1), Super Mario Kart (DSP1B), Dungeon Master (DSP2), + # SD Gundam GX (DSP3), Top Gear 3000 / Planets Champ TG3000 (DSP4) + # program ROM: 2048 x 24-bit words, data ROM: 1024 x 16-bit words + + - name: "dsp1.program.rom" + size: 6144 # 0x1800 + required: false + note: "NEC uPD7725 program ROM for DSP1. HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:490-494, heuristics/super-famicom.cpp:601" + + - name: "dsp1.data.rom" + size: 2048 # 0x800 + required: false + note: "NEC uPD7725 data ROM for DSP1. HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:498-503" + + - name: "dsp1b.program.rom" + size: 6144 # 0x1800 + required: false + note: "NEC uPD7725 program ROM for DSP1B (default NEC identifier). HLE fallback available" + source_ref: "heuristics/super-famicom.cpp:606" + + - name: "dsp1b.data.rom" + size: 2048 # 0x800 + required: false + note: "NEC uPD7725 data ROM for DSP1B. HLE fallback available" + source_ref: "heuristics/super-famicom.cpp:606" + + - name: "dsp2.program.rom" + size: 6144 # 0x1800 + required: false + note: "NEC uPD7725 program ROM for DSP2 (Dungeon Master). HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:515-520, heuristics/super-famicom.cpp:602" + + - name: "dsp2.data.rom" + size: 2048 # 0x800 + required: false + note: "NEC uPD7725 data ROM for DSP2. HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:498-503" + + - name: "dsp3.program.rom" + size: 6144 # 0x1800 + required: true + note: "NEC uPD7725 program ROM for DSP3 (SD Gundam GX). No HLE fallback" + source_ref: "sfc/cartridge/load.cpp:531-534" + + - name: "dsp3.data.rom" + size: 2048 # 0x800 + required: true + note: "NEC uPD7725 data ROM for DSP3. No HLE fallback" + source_ref: "sfc/cartridge/load.cpp:531-534" + + - name: "dsp4.program.rom" + size: 6144 # 0x1800 + required: false + note: "NEC uPD7725 program ROM for DSP4 (Top Gear 3000). HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:522-528, heuristics/super-famicom.cpp:604-605" + + - name: "dsp4.data.rom" + size: 2048 # 0x800 + required: false + note: "NEC uPD7725 data ROM for DSP4. HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:498-503" + + # -- NEC uPD96050 coprocessor (ST010, ST011) -- + # Used by: Exhaust Heat 2 / F1 ROC II (ST010), 2dan Morita Shougi (ST011) + # program ROM: 16384 x 24-bit words, data ROM: 2048 x 16-bit words + + - name: "st010.program.rom" + size: 49152 # 0xC000 + required: false + note: "NEC uPD96050 program ROM for ST010. HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:570-574, heuristics/super-famicom.cpp:583-587" + + - name: "st010.data.rom" + size: 4096 # 0x1000 + required: false + note: "NEC uPD96050 data ROM for ST010. HLE fallback available" + source_ref: "sfc/cartridge/load.cpp:578-583" + + - name: "st011.program.rom" + size: 49152 # 0xC000 + required: true + note: "NEC uPD96050 program ROM for ST011 (2dan Morita Shougi). No HLE fallback" + source_ref: "sfc/cartridge/load.cpp:599-601, heuristics/super-famicom.cpp:586" + + - name: "st011.data.rom" + size: 4096 # 0x1000 + required: true + note: "NEC uPD96050 data ROM for ST011. No HLE fallback" + source_ref: "sfc/cartridge/load.cpp:599-601" + + # -- SETA ST018 (ARM6 coprocessor) -- + # Used by: Hayazashi Nidan Morita Shougi + # No HLE fallback exists + + - name: "st018.program.rom" + size: 131072 # 0x20000 (128 KB) + required: true + note: "ARM6 program ROM for ST018 (Hayazashi Nidan Morita Shougi). No HLE fallback" + source_ref: "sfc/cartridge/load.cpp:379-385, armdsp/armdsp.hpp:31, heuristics/super-famicom.cpp:580" + + - name: "st018.data.rom" + size: 32768 # 0x8000 (32 KB) + required: true + note: "ARM6 data ROM for ST018. No HLE fallback" + source_ref: "sfc/cartridge/load.cpp:387-393, armdsp/armdsp.hpp:32" + + # -- Hitachi HG51BS169 (Cx4 coprocessor) -- + # Used by: Mega Man X2, Mega Man X3 + # HLE fallback available (configuration.hacks.coprocessor.preferHLE) + # Built-in staticDataROM fallback also present for LLE when file missing + + - name: "cx4.data.rom" + size: 3072 # 0xC00 + required: false + note: "Hitachi HG51BS169 data ROM for Cx4 (Mega Man X2/X3). HLE fallback and built-in static ROM available" + source_ref: "sfc/cartridge/load.cpp:444-456, hitachidsp/hitachidsp.hpp:49, heuristics/super-famicom.cpp:597" + + # -- Super Game Boy cartridge ROM -- + # The SGB boot ROMs (256 bytes each) are embedded in icd/boot-roms.cpp. + # But the actual SGB cartridge ROM must be supplied for Game Boy game support. + # Core option bsnes_sgb_bios selects between SGB1.sfc and SGB2.sfc. + + - name: "SGB1.sfc" + required: false + note: "Super Game Boy 1 cartridge ROM. Needed to play Game Boy games via SGB mode" + source_ref: "target-libretro/libretro.cpp:689,933, target-libretro/libretro_core_options.h:689" + + - name: "SGB2.sfc" + required: false + note: "Super Game Boy 2 cartridge ROM. Uses dedicated oscillator for accurate GB speed" + source_ref: "target-libretro/libretro.cpp:690,933, target-libretro/libretro_core_options.h:690" + + # -- BS-X Satellaview BIOS -- + # Required for loading .bs (BS Memory) format games. + # Hardcoded filename in libretro.cpp. + + - name: "BS-X.bin" + required: true + note: "BS-X Satellaview BIOS ROM. Required for .bs format Satellaview games" + source_ref: "target-libretro/libretro.cpp:948, target-libretro/program.cpp:790-799" + +notes: + hle_available: true + hle_note: > + bsnes provides HLE for DSP1, DSP1B, DSP2, DSP4, ST010, and Cx4. + Controlled by core option bsnes_coprocessor_prefer_hle (default ON). + DSP3, ST011, and ST018 have no HLE - LLE firmware files are mandatory + for the few games that use them. + sgb_note: > + SGB boot ROMs (256 bytes each for SGB1/SGB2) are compiled into the core + at icd/boot-roms.cpp. The SGB cartridge ROM (SGB1.sfc or SGB2.sfc) is a + separate requirement. Core option bsnes_sgb_bios selects which one to use + (default SGB1.sfc). Loading .gb/.gbc files auto-loads the selected SGB ROM. + firmware_resolution: > + Firmware filenames are derived from the game manifest identifier field + (lowercased) plus ".program.rom" or ".data.rom" suffix. The mapping is: + NEC uPD7725 -> dsp1/dsp1b/dsp2/dsp3/dsp4, NEC uPD96050 -> st010/st011, + ARM6 -> st018, HG51BS169 -> cx4. Firmware can also be appended directly + to the ROM image (auto-detected by firmwareRomSize heuristic). + embedded_firmware: > + If firmware data is appended to the game ROM, bsnes splits it automatically + based on firmwareRomSize() detection. Sizes: uPD7725=0x2000, uPD96050=0xD000, + ARM6=0x28000, HG51BS169=0xC00. This eliminates the need for separate files + when using combined ROM+firmware dumps. + cx4_static_fallback: > + The Cx4 (HG51BS169) has a compiled-in static data ROM (hitachidsp/staticDataROM) + as fallback when cx4.data.rom is missing and HLE is disabled. This means + Mega Man X2/X3 work in all configurations without user-supplied firmware. diff --git a/emulators/fbneo.yml b/emulators/fbneo.yml new file mode 100644 index 00000000..6a247971 --- /dev/null +++ b/emulators/fbneo.yml @@ -0,0 +1,1343 @@ +emulator: FinalBurn Neo +type: libretro +source: "https://github.com/libretro/FBNeo" +systems: + - snk-neogeo-mvs + - snk-neogeo-aes + - snk-neogeo-cd + - snk-neogeo-pocket + - capcom-cps3 + - igs-pgm + - fairchild-channelf + - coleco-colecovision + - sinclair-spectrum + - msx + - nes-fds + - super-kaneko-nova + - deco-cassette + - namco-na1 + - namco-nb1 + - sega-system16b + - konami-bubsys + - nmk16 + - midway-mcr + +notes: | + FinalBurn Neo is a multi-system arcade and console emulator. BIOS files are + expected as MAME-format ZIP archives containing individual ROM chips. The + libretro core searches for BIOS ZIPs in this order + (src/burner/libretro/libretro.cpp:922-1030): + 1. {rom_dir}/{romName} + 2. {rom_dir}/arcade/{romName} + 3. {system_dir}/fbneo/{romName} + 4. {system_dir}/fbneo/arcade/{romName} + 5. {system_dir}/{romName} + + Each game driver specifies a parent BIOS set via BurnDriver. The BIOS ZIP + must contain the individual ROM chip files listed below. CRC32 values from + BurnRomInfo structs are used to match ROMs inside ZIPs. + + Neo Geo games reference "neogeo" as parent. The neogeo.zip BIOS set contains + multiple selectable BIOS variants (MVS, AES, Universe BIOS). Only one 68K + BIOS ROM is active at a time (selected via dipswitch), but the Z80 BIOS, + fix tiles, and zoom table are always required. + + CPS-3 games are self-contained: each game ZIP includes its own SH-2 BIOS + chip. There is no shared cps3.zip. BIOS selection is per-game per-region. + + PGM games reference "pgm" as parent. The pgm.zip contains shared text tiles, + samples, and 68K BIOS ROMs. Some PGM sub-boards use alternate BIOS sets + (theglad, dmnfrnt, svgpcb, ddp3). + + Console subsystems (Channel F, ColecoVision, Spectrum, MSX, NES/FDS, NGP) + each have their own BIOS set referenced as parent for their game drivers. + + DECO Cassette games reference "decocass" as parent. The decocass.zip contains + multiple regional BIOS variants (Japan, USA, UK, Europe) with older/newer + versions for each. + +files: + # ------------------------------------------------------- + # Neo Geo MVS/AES (neogeo.zip) + # ------------------------------------------------------- + + # 68K BIOS ROMs (selectable, one active at a time) + - name: "sp-s3.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: true + size: 131072 # 0x20000 + crc32: "91b64be3" + note: "MVS Asia/Europe ver. 6 (1 slot) - default BIOS" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1604" + + - name: "sp-s2.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "9036d879" + note: "MVS Asia/Europe ver. 5 (1 slot)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1605" + + - name: "sp-s.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "c7f2fa45" + note: "MVS Asia/Europe ver. 3 (4 slot)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1606" + + - name: "sp-u2.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "e72943de" + note: "MVS USA ver. 5 (2 slot)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1607" + + - name: "sp1-u2" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "62f021f4" + note: "MVS USA ver. 5 (4 slot)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1608" + + - name: "sp-e.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "2723a5b5" + note: "MVS USA ver. 5 (6 slot)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1609" + + - name: "sp1-u4.bin" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "1179a30f" + note: "MVS USA (U4)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1610" + + - name: "sp1-u3.bin" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "2025b7a2" + note: "MVS USA (U3)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1611" + + - name: "vs-bios.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "f0e8f27d" + note: "MVS Japan ver. 6" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1612" + + - name: "sp-j2.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "acede59c" + note: "MVS Japan ver. 5" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1613" + + - name: "sp1.jipan.1024" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "9fb0abe4" + note: "MVS Japan ver. 3 (4 slot)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1614" + + - name: "sp-45.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 524288 # 0x80000 + crc32: "03cc9f6a" + note: "NEO-MVH MV1C (Asia)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1615" + + - name: "sp-j3.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 524288 + crc32: "486cb450" + note: "NEO-MVH MV1C (Japan)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1616" + + - name: "japan-j3.bin" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "dff6d41f" + note: "MVS Japan (J3)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1617" + + - name: "sp1-j3.bin" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "fbc6d469" + note: "MVS Japan (J3, alt)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1618" + + # AES BIOS ROMs (not in MAME ROM_VERIFY builds) + - name: "neo-po.bin" + archive: neogeo.zip + system: snk-neogeo-aes + required: false + size: 131072 + crc32: "16d0c132" + note: "AES Japan" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1620" + + - name: "neo-epo.bin" + archive: neogeo.zip + system: snk-neogeo-aes + required: false + size: 131072 + crc32: "d27a71f1" + note: "AES Asia" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1621" + + - name: "neodebug.bin" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "698ebb7d" + note: "Development Kit BIOS" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1622" + + - name: "sp-1v1_3db8c.bin" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "162f0ebe" + note: "Deck ver. 6 (Git Ver 1.3)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1628" + + # Universe BIOS (third-party, multiple versions) + - name: "uni-bios_4_0.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "a7aab458" + note: "Universe BIOS ver. 4.0 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1629" + + - name: "uni-bios_3_3.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "24858466" + note: "Universe BIOS ver. 3.3 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1630" + + - name: "uni-bios_3_2.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "a4e8b9b3" + note: "Universe BIOS ver. 3.2 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1631" + + - name: "uni-bios_3_1.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "0c58093f" + note: "Universe BIOS ver. 3.1 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1632" + + - name: "uni-bios_3_0.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "a97c89a9" + note: "Universe BIOS ver. 3.0 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1633" + + - name: "uni-bios_2_3.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "27664eb5" + note: "Universe BIOS ver. 2.3 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1634" + + - name: "uni-bios_2_3o.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "601720ae" + note: "Universe BIOS ver. 2.3 older (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1635" + + - name: "uni-bios_2_2.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "2d50996a" + note: "Universe BIOS ver. 2.2 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1636" + + - name: "uni-bios_2_1.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "8dabf76b" + note: "Universe BIOS ver. 2.1 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1637" + + - name: "uni-bios_2_0.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "0c12c2ad" + note: "Universe BIOS ver. 2.0 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1638" + + - name: "uni-bios_1_3.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "b24b44a0" + note: "Universe BIOS ver. 1.3 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1639" + + - name: "uni-bios_1_2.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "4fa698e9" + note: "Universe BIOS ver. 1.2 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1640" + + - name: "uni-bios_1_2o.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "e19d3ce9" + note: "Universe BIOS ver. 1.2 older (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1641" + + - name: "uni-bios_1_1.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "5dda0d84" + note: "Universe BIOS ver. 1.1 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1642" + + - name: "uni-bios_1_0.rom" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "0ce453a0" + note: "Universe BIOS ver. 1.0 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1643" + + - name: "neopen.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 131072 + crc32: "cb915e76" + note: "NeoOpen BIOS v0.1 beta (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1645" + + # Neo Geo shared ROMs (always required) + - name: "sm1.sm1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: true + size: 131072 + crc32: "94416d67" + note: "Z80 sound BIOS" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1652" + + - name: "sfix.sfix" + archive: neogeo.zip + system: snk-neogeo-mvs + required: true + size: 131072 + crc32: "c2ea0cfd" + note: "Text layer fix tiles" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1653" + + - name: "000-lo.lo" + archive: neogeo.zip + system: snk-neogeo-mvs + required: true + size: 131072 + crc32: "5a86cff2" + note: "Zoom lookup table" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1654" + + # ------------------------------------------------------- + # Neo Geo PCB BIOS (for ms5pcb, svcpcb, kf2k3pcb games) + # ------------------------------------------------------- + - name: "sp-4x.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 524288 + crc32: "b4590283" + note: "PCB BIOS for Metal Slug 5 PCB and SVC Chaos PCB" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1791" + + - name: "spj.sp1" + archive: neogeo.zip + system: snk-neogeo-mvs + required: false + size: 524288 + crc32: "148dd727" + note: "PCB BIOS for KOF 2003 PCB" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1879" + + # ------------------------------------------------------- + # Neo Geo CDZ (neocdz.zip) + # ------------------------------------------------------- + - name: "neocd.bin" + archive: neocdz.zip + system: snk-neogeo-cd + required: true + size: 524288 # 0x80000 + crc32: "df9de490" + note: "Neo Geo CD/CDZ top-loading BIOS" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1963" + + - name: "neocd_sz.rom" + archive: neocdz.zip + system: snk-neogeo-cd + required: false + size: 524288 + crc32: "42f6b6c4" + note: "Neo Geo CDZ custom BIOS by SMKDan" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1964" + + - name: "uni-bioscd33.rom" + archive: neocdz.zip + system: snk-neogeo-cd + required: false + size: 524288 + crc32: "ff3abc59" + note: "Universe BIOS CD ver. 3.3 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1965" + + - name: "uni-bioscd32.rom" + archive: neocdz.zip + system: snk-neogeo-cd + required: false + size: 524288 + crc32: "0ffb3127" + note: "Universe BIOS CD ver. 3.2 (hack)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1966" + + - name: "000-lo.lo" + archive: neocdz.zip + system: snk-neogeo-cd + required: true + size: 131072 + crc32: "5a86cff2" + note: "Zoom lookup table (shared with MVS)" + source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1968" + + # ------------------------------------------------------- + # IGS PGM (pgm.zip) + # ------------------------------------------------------- + - name: "pgm_t01s.rom" + archive: pgm.zip + system: igs-pgm + required: true + size: 2097152 # 0x200000 + crc32: "1a7123a0" + note: "8x8 text layer tiles" + source_ref: "src/burn/drv/pgm/d_pgm.cpp:880" + + - name: "pgm_m01s.rom" + archive: pgm.zip + system: igs-pgm + required: true + size: 2097152 + crc32: "45ae7159" + note: "ICS2115 sound samples" + source_ref: "src/burn/drv/pgm/d_pgm.cpp:881" + + - name: "pgm_p01s.u20" + archive: pgm.zip + system: igs-pgm + required: false + size: 131072 # 0x20000 + crc32: "e42b166e" + note: "68K BIOS V0001 older (02/26/97)" + source_ref: "src/burn/drv/pgm/d_pgm.cpp:883" + + - name: "pgm_p02s.u20" + archive: pgm.zip + system: igs-pgm + required: true + size: 131072 + crc32: "78c15fa2" + note: "68K BIOS V0001 newer (07/10/97)" + source_ref: "src/burn/drv/pgm/d_pgm.cpp:884" + + - name: "ddp3_bios.u37" + archive: pgm.zip + system: igs-pgm + required: false + size: 524288 # 0x80000 + crc32: "b3cc5c8f" + note: "68K BIOS V0001 custom (07/17/97) for DoDonPachi III" + source_ref: "src/burn/drv/pgm/d_pgm.cpp:886" + + - name: "bios.u42" + archive: pgm.zip + system: igs-pgm + required: false + size: 131072 + crc32: "517cf7a2" + note: "68K BIOS V0001-01J custom (02/25/03) for The Gladiator" + source_ref: "src/burn/drv/pgm/d_pgm.cpp:887" + + - name: "svg_bios.u49" + archive: pgm.zip + system: igs-pgm + required: false + size: 131072 + crc32: "3346401f" + note: "68K BIOS V0001 custom (05/13/05) for SVG PCB" + source_ref: "src/burn/drv/pgm/d_pgm.cpp:928" + + # ------------------------------------------------------- + # Capcom CPS-3 (per-game BIOS, no shared archive) + # ------------------------------------------------------- + + # Street Fighter III (1st Impact) + - name: "sfiii_euro.29f400.u2" + archive: sfiii.zip + system: capcom-cps3 + required: true + size: 524288 # 0x80000 + crc32: "27699ddc" + note: "SH-2 BIOS, SF3 1st Impact Europe" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:336" + + - name: "sfiii_usa_region_b1.29f400.u2" + archive: sfiiiu.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "fb172a8e" + note: "SH-2 BIOS, SF3 1st Impact USA" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:351" + + - name: "sfiii_asia_region_bd.29f400.u2" + archive: sfiiia.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "cbd28de7" + note: "SH-2 BIOS, SF3 1st Impact Asia" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:366" + + - name: "sfiii_japan.29f400.u2" + archive: sfiiij.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "74205250" + note: "SH-2 BIOS, SF3 1st Impact Japan" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:381" + + - name: "sfiii_hispanic.29f400.u2" + archive: sfiiih.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "d2b3cd48" + note: "SH-2 BIOS, SF3 1st Impact Hispanic" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:396" + + - name: "sfiii_asia_nocd.29f400.u2" + archive: sfiiin.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "ca2b715f" + note: "SH-2 BIOS, SF3 1st Impact Asia (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:411" + + # Street Fighter III 2nd Impact + - name: "sfiii2_usa.29f400.u2" + archive: sfiii2.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "75dd72e0" + note: "SH-2 BIOS, SF3 2nd Impact USA" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:475" + + - name: "sfiii2_japan.29f400.u2" + archive: sfiii2j.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "faea0a3e" + note: "SH-2 BIOS, SF3 2nd Impact Japan" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:490" + + - name: "sfiii2_hispanic.29f400.u2" + archive: sfiii2h.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "5c799526" + note: "SH-2 BIOS, SF3 2nd Impact Hispanic" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:505" + + - name: "sfiii2_asia_nocd.29f400.u2" + archive: sfiii2n.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "fd297c0d" + note: "SH-2 BIOS, SF3 2nd Impact Asia (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:520" + + # Street Fighter III 3rd Strike + - name: "sfiii3_euro.29f400.u2" + archive: sfiii3.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "30bbf293" + note: "SH-2 BIOS, SF3 3rd Strike Europe" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:579" + + - name: "sfiii3_usa.29f400.u2" + archive: sfiii3u.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "ecc545c1" + note: "SH-2 BIOS, SF3 3rd Strike USA" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:594" + + - name: "sfiii3_japan.29f400.u2" + archive: sfiii3j.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "63f23d1f" + note: "SH-2 BIOS, SF3 3rd Strike Japan" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:609" + + - name: "sfiii3_japan_nocd.29f400.u2" + archive: sfiii3n.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "1edc6366" + note: "SH-2 BIOS, SF3 3rd Strike Japan (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:624" + + - name: "sfiii3_asia_nocd.29f400.u2" + archive: sfiii3na.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "a12ebcd1" + note: "SH-2 BIOS, SF3 3rd Strike Asia (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:637" + + # JoJo's Bizarre Adventure + - name: "jojo_euro.29f400.u2" + archive: jojo.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "513e40ec" + note: "SH-2 BIOS, JoJo's Venture Europe" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:799" + + - name: "jojo_usa.29f400.u2" + archive: jojou.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "8d40f7be" + note: "SH-2 BIOS, JoJo's Venture USA" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:814" + + - name: "jojo_asia.29f400.u2" + archive: jojoa.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "789aa72a" + note: "SH-2 BIOS, JoJo's Venture Asia" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:829" + + - name: "jojo_japan.29f400.u2" + archive: jojoj.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "02778f60" + note: "SH-2 BIOS, JoJo's Venture Japan" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:844" + + - name: "jojo_asia_nocd.29f400.u2" + archive: jojon.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "05b4f953" + note: "SH-2 BIOS, JoJo's Venture Asia (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:859" + + # JoJo's Bizarre Adventure: Heritage for the Future + - name: "jojoba_euro.29f400.u2" + archive: jojobar1.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "63cc8800" + note: "SH-2 BIOS, JoJo's BA: Heritage Europe" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:1184" + + - name: "jojoba_japan.29f400.u2" + archive: jojobajr1.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "3085478c" + note: "SH-2 BIOS, JoJo's BA: Heritage Japan" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:1199" + + - name: "jojoba_euro_nocd.29f400.u2" + archive: jojoba.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "1ee2d679" + note: "SH-2 BIOS, JoJo's BA: Heritage Europe (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:1120" + + - name: "jojoba_japan_nocd.29f400.u2" + archive: jojoban.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "4dab19f5" + note: "SH-2 BIOS, JoJo's BA: Heritage Japan (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:1133" + + # Red Earth / Warzard + - name: "redearth_euro.29f400.u2" + archive: redearth.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "02e0f336" + note: "SH-2 BIOS, Red Earth Europe" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:1362" + + - name: "warzard_japan.29f400.u2" + archive: warzard.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "f8e2f0c6" + note: "SH-2 BIOS, Warzard Japan" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:1377" + + - name: "redearth_asia_nocd.29f400.u2" + archive: redearthn.zip + system: capcom-cps3 + required: true + size: 524288 + crc32: "7a4f0851" + note: "SH-2 BIOS, Red Earth Asia (No CD)" + source_ref: "src/burn/drv/cps3/d_cps3.cpp:1392" + + # ------------------------------------------------------- + # Super Kaneko Nova System (skns.zip) + # ------------------------------------------------------- + - name: "sknsj1.u10" + archive: skns.zip + system: super-kaneko-nova + required: true + size: 524288 # 0x80000 + crc32: "7e2b836c" + note: "SKNS BIOS Japan" + source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1846" + + - name: "sknse2.u10" + archive: skns.zip + system: super-kaneko-nova + required: false + size: 524288 + crc32: "e2b9d7d1" + note: "SKNS BIOS Europe" + source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1847" + + - name: "sknsa1.u10" + archive: skns.zip + system: super-kaneko-nova + required: false + size: 524288 + crc32: "745e5212" + note: "SKNS BIOS Asia" + source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1848" + + - name: "sknsu1.u10" + archive: skns.zip + system: super-kaneko-nova + required: false + size: 524288 + crc32: "384d21ec" + note: "SKNS BIOS USA" + source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1849" + + - name: "sknsk1.u10" + archive: skns.zip + system: super-kaneko-nova + required: false + size: 524288 + crc32: "ff1c9f79" + note: "SKNS BIOS Korea" + source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1850" + + # ------------------------------------------------------- + # Fairchild Channel F (channelf.zip) + # ------------------------------------------------------- + - name: "sl31254.rom" + archive: channelf.zip + system: fairchild-channelf + required: true + size: 1024 # 0x400 + crc32: "9c047ba3" + note: "Channel F BIOS bottom half" + source_ref: "src/burn/drv/channelf/d_channelf.cpp:538" + + - name: "sl31253.rom" + archive: channelf.zip + system: fairchild-channelf + required: true + size: 1024 + crc32: "04694ed9" + note: "Channel F BIOS top half" + source_ref: "src/burn/drv/channelf/d_channelf.cpp:540" + + - name: "sl90025.rom" + archive: channelf.zip + system: fairchild-channelf + required: false + size: 1024 + crc32: "015c1e38" + note: "Luxor Video Entertainment System BIOS (top half)" + source_ref: "src/burn/drv/channelf/d_channelf.cpp:541" + + # ------------------------------------------------------- + # ColecoVision (coleco.zip) + # ------------------------------------------------------- + - name: "coleco.rom" + archive: coleco.zip + system: coleco-colecovision + required: true + size: 8192 # 0x2000 + crc32: "3aa93ef3" + note: "ColecoVision BIOS (Coleco, 1982)" + source_ref: "src/burn/drv/coleco/d_coleco.cpp:1070" + + - name: "colecoa.rom" + archive: coleco.zip + system: coleco-colecovision + required: false + size: 8192 + crc32: "39bb16fc" + note: "ColecoVision BIOS thick characters (Coleco, 1982)" + source_ref: "src/burn/drv/coleco/d_coleco.cpp:1071" + + - name: "svi603.rom" + archive: coleco.zip + system: coleco-colecovision + required: false + size: 8192 + crc32: "19e91b82" + note: "SVI-603 Coleco Game Adapter (Spectravideo, 1983)" + source_ref: "src/burn/drv/coleco/d_coleco.cpp:1072" + + - name: "czz50.rom" + archive: coleco.zip + system: coleco-colecovision + required: false + size: 16384 # 0x4000 + crc32: "4999abc6" + note: "Chuang Zao Zhe 50 (Bit Corporation, 1986)" + source_ref: "src/burn/drv/coleco/d_coleco.cpp:1073" + + # ------------------------------------------------------- + # ZX Spectrum (spectrum.zip, spec128.zip) + # ------------------------------------------------------- + - name: "spectrum.rom" + archive: spectrum.zip + system: sinclair-spectrum + required: true + size: 16384 # 0x4000 + crc32: "ddee531f" + note: "ZX Spectrum 48K BIOS" + source_ref: "src/burn/drv/spectrum/d_spectrum.cpp:181" + + - name: "zx128_0.rom" + archive: spec128.zip + system: sinclair-spectrum + required: true + size: 16384 + crc32: "e76799d2" + note: "ZX Spectrum 128K BIOS bank 0" + source_ref: "src/burn/drv/spectrum/d_spectrum.cpp:188" + + - name: "zx128_1.rom" + archive: spec128.zip + system: sinclair-spectrum + required: true + size: 16384 + crc32: "b96a36be" + note: "ZX Spectrum 128K BIOS bank 1" + source_ref: "src/burn/drv/spectrum/d_spectrum.cpp:189" + + - name: "zx128_2a_0.rom" + archive: spec128a.zip + system: sinclair-spectrum + required: false + size: 16384 + crc32: "30c9f490" + note: "ZX Spectrum +2A BIOS bank 0" + source_ref: "src/burn/drv/spectrum/d_spectrum.cpp:196" + + - name: "zx128_2a_1.rom" + archive: spec128a.zip + system: sinclair-spectrum + required: false + size: 16384 + crc32: "a7916b3f" + note: "ZX Spectrum +2A BIOS bank 1" + source_ref: "src/burn/drv/spectrum/d_spectrum.cpp:197" + + - name: "zx128_2a_2.rom" + archive: spec128a.zip + system: sinclair-spectrum + required: false + size: 16384 + crc32: "c9a0b748" + note: "ZX Spectrum +2A BIOS bank 2" + source_ref: "src/burn/drv/spectrum/d_spectrum.cpp:198" + + - name: "zx128_2a_3.rom" + archive: spec128a.zip + system: sinclair-spectrum + required: false + size: 16384 + crc32: "b88fd6e3" + note: "ZX Spectrum +2A BIOS bank 3" + source_ref: "src/burn/drv/spectrum/d_spectrum.cpp:199" + + # ------------------------------------------------------- + # MSX (msx.zip) + # ------------------------------------------------------- + - name: "msx.rom" + archive: msx.zip + system: msx + required: true + size: 32768 # 0x8000 + crc32: "a317e6b4" + note: "MSX1 standard BIOS" + source_ref: "src/burn/drv/msx/d_msx.cpp:1773" + + - name: "msxj.rom" + archive: msx.zip + system: msx + required: false + size: 32768 + crc32: "071135e0" + note: "MSX1 Japanese BIOS" + source_ref: "src/burn/drv/msx/d_msx.cpp:1774" + + - name: "kanji.rom" + archive: msx.zip + system: msx + required: false + size: 262144 # 0x40000 + crc32: "1f6406fb" + note: "MSX Kanji character support" + source_ref: "src/burn/drv/msx/d_msx.cpp:1775" + + # ------------------------------------------------------- + # NES Famicom Disk System (fdsbios.zip) + # ------------------------------------------------------- + - name: "fdsbios.nes" + archive: fdsbios.zip + system: nes-fds + required: true + size: 8192 # 0x2000 + crc32: "5e607dcf" + note: "Famicom Disk System BIOS" + source_ref: "src/burn/drv/nes/d_nes.cpp:517" + + # ------------------------------------------------------- + # Neo Geo Pocket / Pocket Color (ngp.zip) + # ------------------------------------------------------- + - name: "SNK Neo-Geo Pocket BIOS (1998)(SNK)(en-ja).bin" + archive: ngp.zip + system: snk-neogeo-pocket + required: true + size: 65536 # 0x10000 + crc32: "6232df8d" + note: "Neo Geo Pocket (b&w) BIOS" + source_ref: "src/burn/drv/pst90s/d_ngp.cpp:962" + + - name: "SNK Neo-Geo Pocket Color BIOS (1999)(SNK)(en-ja).bin" + archive: ngp.zip + system: snk-neogeo-pocket + required: true + size: 65536 + crc32: "6eeb6f40" + note: "Neo Geo Pocket Color BIOS" + source_ref: "src/burn/drv/pst90s/d_ngp.cpp:963" + + # ------------------------------------------------------- + # DECO Cassette System (decocass.zip) + # ------------------------------------------------------- + + # BIOS "A" Japan + - name: "v0a-.7e" + archive: decocass.zip + system: deco-cassette + required: true + size: 4096 # 0x1000 + crc32: "3d33ac34" + note: "BIOS A Japan, Main M6502" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3596" + + - name: "v1-.5a" + archive: decocass.zip + system: deco-cassette + required: true + size: 2048 # 0x800 + crc32: "b66b2c2a" + note: "BIOS A Japan, Sound M6502 (shared across regions)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3599" + + - name: "v2.3m" + archive: decocass.zip + system: deco-cassette + required: false + size: 32 # 0x20 + crc32: "238fdb40" + note: "BIOS PROM (shared across regions)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3601" + + - name: "v4.10d" + archive: decocass.zip + system: deco-cassette + required: false + size: 32 + crc32: "3b5836b4" + note: "BIOS PROM (shared across regions)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3602" + + - name: "v3.3j" + archive: decocass.zip + system: deco-cassette + required: false + size: 32 + crc32: "51eef657" + note: "BIOS PROM (shared across regions)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3603" + + # BIOS "A" Japan, Older + - name: "dsp-3_p0-a.m9" + archive: decocass.zip + system: deco-cassette + required: false + size: 2048 + crc32: "2541e34b" + note: "BIOS A Japan Older, Main M6502 (part 1)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3608" + + - name: "dsp-3_p1-.l9" + archive: decocass.zip + system: deco-cassette + required: false + size: 2048 + crc32: "3bfff5f3" + note: "BIOS A Japan Older, Main M6502 (part 2, shared)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3609" + + - name: "rms-3_p2-.c9" + archive: decocass.zip + system: deco-cassette + required: false + size: 1024 # 0x400 + crc32: "6c4a891f" + note: "BIOS A Japan Older, Sound M6502 (shared)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3611" + + - name: "dsp-3_p3-.e5" + archive: decocass.zip + system: deco-cassette + required: false + size: 32 + crc32: "539a5a64" + note: "BIOS Older PROM (shared)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3613" + + - name: "rms-3_p4-.f6" + archive: decocass.zip + system: deco-cassette + required: false + size: 32 + crc32: "9014c0fd" + note: "BIOS Older PROM (shared)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3614" + + - name: "dsp-3_p5-.m4" + archive: decocass.zip + system: deco-cassette + required: false + size: 32 + crc32: "e52089a0" + note: "BIOS Older PROM (shared)" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3615" + + # BIOS "B" USA + - name: "v0b-.7e" + archive: decocass.zip + system: deco-cassette + required: false + size: 4096 + crc32: "23d929b7" + note: "BIOS B USA, Main M6502" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3620" + + - name: "dsp-3_p0-b.m9" + archive: decocass.zip + system: deco-cassette + required: false + size: 2048 + crc32: "b67a91d9" + note: "BIOS B USA Older, Main M6502" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3632" + + # BIOS "C" UK + - name: "v0c-.7e" + archive: decocass.zip + system: deco-cassette + required: false + size: 4096 + crc32: "9f505709" + note: "BIOS C UK, Main M6502" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3644" + + - name: "dsp-3_p0-c.m9" + archive: decocass.zip + system: deco-cassette + required: false + size: 2048 + crc32: "c76c4057" + note: "BIOS C UK Older, Main M6502" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3656" + + # BIOS "D" Europe + - name: "v0d-.7e" + archive: decocass.zip + system: deco-cassette + required: false + size: 4096 + crc32: "1e0c22b1" + note: "BIOS D Europe, Main M6502" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3668" + + - name: "dsp-3_p0-d.m9" + archive: decocass.zip + system: deco-cassette + required: false + size: 2048 + crc32: "4b7d72bc" + note: "BIOS D Europe Older, Main M6502" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3680" + + # MCU BIOS (shared) + - name: "cassmcu.1c" + archive: decocass.zip + system: deco-cassette + required: true + size: 1024 + crc32: "a6df18fd" + note: "MCU BIOS, shared across all DECO Cassette regions" + source_ref: "src/burn/drv/dataeast/d_decocass.cpp:3692" + + # ------------------------------------------------------- + # Namco NA-1 / NA-2 (namcoc69.zip, namcoc70.zip, namcoc75.zip) + # ------------------------------------------------------- + - name: "c69.bin" + archive: namcoc69.zip + system: namco-na1 + required: true + size: 16384 # 0x4000 + crc32: "349134d9" + note: "C69 MCU internal ROM for Namco NA-1" + source_ref: "src/burn/drv/pst90s/d_namcona1.cpp:1346" + + - name: "c70.bin" + archive: namcoc70.zip + system: namco-na1 + required: true + size: 16384 + crc32: "b4015f23" + note: "C70 MCU internal ROM for Namco NA-2" + source_ref: "src/burn/drv/pst90s/d_namcona1.cpp:1367" + + - name: "c75.bin" + archive: namcoc75.zip + system: namco-nb1 + required: true + size: 16384 + crc32: "42f539a5" + note: "C75 MCU internal ROM for Namco NB-1" + source_ref: "src/burn/drv/pst90s/d_namconb1.cpp:1978" + + # ------------------------------------------------------- + # Konami Bubble System (bubsys.zip) + # ------------------------------------------------------- + - name: "boot.bin" + archive: bubsys.zip + system: konami-bubsys + required: true + size: 480 # 0x1e0 + crc32: "f0774fc2" + note: "M68000 vectors" + source_ref: "src/burn/drv/konami/d_nemesis.cpp:4526" + + - name: "400b03.8g" + archive: bubsys.zip + system: konami-bubsys + required: true + size: 8192 # 0x2000 + crc32: "85c2afc5" + note: "Z80 code" + source_ref: "src/burn/drv/konami/d_nemesis.cpp:4530" + + - name: "400a1.2b" + archive: bubsys.zip + system: konami-bubsys + required: true + size: 256 # 0x100 + crc32: "5827b1e8" + note: "K005289 wavetable 1" + source_ref: "src/burn/drv/konami/d_nemesis.cpp:4532" + + - name: "400a2.1b" + archive: bubsys.zip + system: konami-bubsys + required: true + size: 256 + crc32: "2f44f970" + note: "K005289 wavetable 2" + source_ref: "src/burn/drv/konami/d_nemesis.cpp:4533" + + # ------------------------------------------------------- + # Sega ISG System (isgsm.zip) + # ------------------------------------------------------- + - name: "ism2006v00.u1" + archive: isgsm.zip + system: sega-system16b + required: true + size: 131072 # 0x20000 + crc32: "2292585c" + note: "ISG Selection Master Type 2006 BIOS" + source_ref: "src/burn/drv/sega/d_sys16b.cpp:11045" + + # ------------------------------------------------------- + # NMK16 (nmk004.zip) + # ------------------------------------------------------- + - name: "nmk004.bin" + archive: nmk004.zip + system: nmk16 + required: true + size: 8192 # 0x2000 + crc32: "8ae61a09" + note: "NMK004 TLCS90 internal ROM" + source_ref: "src/burn/drv/pst90s/d_nmk16.cpp:6123" + + # ------------------------------------------------------- + # Taito C-Chip (cchip.zip) + # ------------------------------------------------------- + - name: "cchip_upd78c11.bin" + archive: cchip.zip + system: taito-cchip + required: true + size: 4096 # 0x1000 + crc32: "43021521" + note: "Taito C-Chip UPD78C11 internal ROM" + source_ref: "src/burn/drv/taito/d_taitof2.cpp:4392" + + # ------------------------------------------------------- + # Midway MCR SSIO (ssioprom.zip) + # ------------------------------------------------------- + - name: "82s123.12d" + archive: ssioprom.zip + system: midway-mcr + required: true + size: 32 # 0x20 + crc32: "e1281ee9" + note: "Midway SSIO sound PROM" + source_ref: "src/burn/drv/pre90s/d_mcr.cpp:1629" + + # ------------------------------------------------------- + # YM2608 ADPCM ROM (ym2608.zip, shared by multiple drivers) + # ------------------------------------------------------- + - name: "ym2608_adpcm_rom.bin" + archive: ym2608.zip + system: ym2608 + required: true + size: 8192 # 0x2000 + crc32: "23c9e0d8" + note: "YM2608 internal ADPCM-A rhythm samples, used by multiple drivers" + source_ref: "src/burn/drv/pst90s/d_pipedrm.cpp:876" diff --git a/emulators/fceumm.yml b/emulators/fceumm.yml new file mode 100644 index 00000000..3d069d50 --- /dev/null +++ b/emulators/fceumm.yml @@ -0,0 +1,52 @@ +emulator: FCEUmm +type: libretro +source: "https://github.com/libretro/libretro-fceumm" +systems: [nintendo-nes, nintendo-fds] + +notes: | + FCEUmm (FCE Ultra mappers modified) is a NES/Famicom emulator. + NES cartridge games need no BIOS. Famicom Disk System games require + the FDS BIOS ROM (disksys.rom, 8 KB) loaded from the system directory. + Game Genie emulation is an optional core feature (disabled by default) + that requires gamegenie.nes in the system directory. + An optional external palette file (nes.pal, 192 bytes, 64 RGB triplets) + can override the built-in NES palette when the core option is set to Custom. + NstDatabase.xml is NOT used by FCEUmm (that is Nestopia's database). + + File path construction: src/general.c FCEU_MakeFName() joins the + system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) with each + filename directly - no subdirectories. + +files: + # --- Famicom Disk System BIOS (required for FDS games) --- + - name: "disksys.rom" + system: nintendo-fds + description: "FDS BIOS ROM" + required: true + size: 8192 + md5: "ca30b50f880eb660a320674ed365ef7a" + sha1: "57fe1bdee955bb48d357e463ccbf129496930b62" + source_ref: "src/fds.c:636-667 (FDSLoad), src/general.c:64-66 (FCEUMKF_FDSROM)" + notes: "Loaded at 0xE000, mapped as 8 KB PRG bank 0. Load fails with error if missing or short read." + + # --- Game Genie ROM (optional, core option fceumm_game_genie) --- + - name: "gamegenie.nes" + system: nintendo-nes + description: "Game Genie add-on cartridge ROM" + required: false + size: 24592 + md5: "7f98d77d7a094ad7d069b74bd553ec98" + sha1: "f430a0d752a9fa0c7032db8131f9090d18f71779" + source_ref: "src/cart.c:351-389 (OpenGenie), src/general.c:60-62 (FCEUMKF_GGROM)" + notes: "iNES format ROM (4 KB PRG + 256 bytes CHR). Core option disabled by default. Does not apply to FDS or arcade content." + + # --- Custom palette (optional, core option fceumm_palette) --- + - name: "nes.pal" + system: nintendo-nes + description: "External NES color palette" + required: false + size: 192 + md5: "aaf3666e4ed478e2964b46d6a7aa27ad" + sha1: "37027d92e1015b82a7dc5c43e9f1649a961577ab" + source_ref: "src/general.c:68-70 (FCEUMKF_PALETTE), src/drivers/libretro/libretro.c:1791" + notes: "64 RGB triplets (64 x 3 bytes). Only loaded when palette core option is set to Custom. Multiple valid palettes exist." diff --git a/emulators/genesis_plus_gx.yml b/emulators/genesis_plus_gx.yml new file mode 100644 index 00000000..8ba6ed73 --- /dev/null +++ b/emulators/genesis_plus_gx.yml @@ -0,0 +1,154 @@ +emulator: Genesis Plus GX +type: libretro +source: "https://github.com/libretro/Genesis-Plus-GX" +cores: + - genesis_plus_gx + - genesis_plus_gx_wide +systems: + - sega-megadrive + - sega-megacd + - sega-mastersystem + - sega-gamegear + - sega-sg1000 + +notes: | + Genesis Plus GX is a Sega 8/16-bit emulator covering SG-1000, Master System, + Game Gear, Mega Drive/Genesis, and Mega CD/Sega CD. + + BIOS loading is handled by load_bios() in core/loadrom.c. The libretro port + resolves filenames from the system directory in libretro/libretro.c:3516-3527. + + Mega CD BIOS is required to boot CD images (load fails without it). + Master System, Game Gear, and Mega Drive BIOS files are optional boot ROMs + gated behind the "genesis_plus_gx_bios" core option (config.bios). + Lock-on ROMs (Game Genie, Action Replay, Sonic & Knuckles) are optional + and loaded only when the corresponding lock-on feature is enabled. + +files: + # ------------------------------------------------------- + # Sega Mega CD / Sega CD - boot ROMs (required for CD) + # ------------------------------------------------------- + - name: bios_CD_U.bin + system: sega-megacd + required: true + size: 131072 # 128 KB (0x20000) + note: "Sega CD (NTSC-U) boot ROM. Loaded for REGION_USA." + source_ref: "core/loadrom.c:409" + + - name: bios_CD_E.bin + system: sega-megacd + required: true + size: 131072 + note: "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE." + source_ref: "core/loadrom.c:412" + + - name: bios_CD_J.bin + system: sega-megacd + required: true + size: 131072 + note: "Mega CD (NTSC-J) boot ROM. Loaded for default/Japan region." + source_ref: "core/loadrom.c:415" + + # ------------------------------------------------------- + # Sega Master System - boot ROMs (optional, behind config.bios) + # ------------------------------------------------------- + - name: bios_U.sms + system: sega-mastersystem + required: false + note: "Master System (NTSC-U) boot ROM. Snail maze game built in." + source_ref: "core/loadrom.c:511" + + - name: bios_E.sms + system: sega-mastersystem + required: false + note: "Master System (PAL) boot ROM. Snail maze / Sonic built in." + source_ref: "core/loadrom.c:514" + + - name: bios_J.sms + system: sega-mastersystem + required: false + note: "Master System (NTSC-J) boot ROM." + source_ref: "core/loadrom.c:517" + + # ------------------------------------------------------- + # Sega Game Gear - boot ROM (optional, behind config.bios) + # ------------------------------------------------------- + - name: bios.gg + system: sega-gamegear + required: false + note: "Game Gear boot ROM (Majesco 1KB or standard). Shows startup logo." + source_ref: "core/loadrom.c:480" + + # ------------------------------------------------------- + # Sega Mega Drive / Genesis - TMSS boot ROM (optional) + # ------------------------------------------------------- + - name: bios_MD.bin + system: sega-megadrive + required: false + size: 2048 # 2 KB (0x800) + note: "Mega Drive TMSS boot ROM. Shows 'Produced by or under license' screen." + source_ref: "libretro/libretro.c:3651" + + # ------------------------------------------------------- + # Lock-on ROMs (optional, feature-gated) + # ------------------------------------------------------- + - name: ggenie.bin + system: sega-megadrive + required: false + size: 32768 # 32 KB (0x8000) + note: "Game Genie ROM. Loaded when Game Genie lock-on is enabled." + source_ref: "core/cart_hw/ggenie.c:64" + + - name: areplay.bin + system: sega-megadrive + required: false + size: 65536 # max 64 KB (0x10000) + note: "Action Replay (Pro) ROM. Loaded when Action Replay lock-on is enabled." + source_ref: "core/cart_hw/areplay.c:64" + + - name: sk.bin + system: sega-megadrive + required: false + size: 2097152 # 2 MB (0x200000) + note: "Sonic & Knuckles ROM. Required for S&K lock-on feature." + source_ref: "core/cart_hw/md_cart.c:867" + + - name: sk2chip.bin + system: sega-megadrive + required: false + size: 262144 # 256 KB (0x40000) + note: "Sonic & Knuckles UPMEM ROM. Used by Sonic 2 & Knuckles lock-on." + source_ref: "core/cart_hw/md_cart.c:873" + +platform_details: + megacd: + bootrom_size: 131072 # 128 KB + source_ref: "core/cd_hw/scd.h:73" + notes: | + CD boot ROM region is auto-detected from disc image header. + Hardware model detected from boot ROM string at offset 0x120: + WONDER-MEGA BOOT -> Wondermega + WONDERMEGA2 BOOT -> Wondermega M2 / X'Eye + CDX BOOT ROM -> CDX / Multi-Mega + + megadrive: + tmss_rom_size: 2048 # 2 KB + source_ref: "libretro/libretro.c:3648-3666" + notes: | + TMSS boot ROM validated by checking "GENESIS OS" at offset 0x120. + Only loaded when genesis_plus_gx_bios core option is enabled. + + mastersystem: + bios_max_size: 4194304 # 4 MB (stored above cart ROM) + source_ref: "core/loadrom.c:504-527" + notes: | + BIOS ROM loaded into cart.rom + 0x400000. SEGA mapper assumed + for ROMs larger than 48KB, otherwise no mapper. + Region selected based on current region_code setting. + + gamegear: + bios_max_size: 4194304 # 4 MB (stored above cart ROM) + source_ref: "core/loadrom.c:467-489" + notes: | + Handles 1KB Majesco GG BIOS (mapped to $0000-$03FF) and + standard larger BIOS ROMs. diff --git a/emulators/hatari.yml b/emulators/hatari.yml new file mode 100644 index 00000000..a7a6aa8c --- /dev/null +++ b/emulators/hatari.yml @@ -0,0 +1,84 @@ +emulator: Hatari +type: libretro +source: "https://github.com/libretro/hatari" +systems: [atari-st, atari-ste, atari-tt, atari-falcon] + +# Hatari requires a TOS ROM image to boot. The default filename is tos.img, +# loaded from either system/ or system/hatari/tos/ (libretro core scans both). +# EmuTOS (open source replacement) is detected via 'ETOS' magic at offset 0x2c. +# Cartridge ROM is optional and loaded from szCartridgeImageFileName config. + +# TOS version/machine compatibility (enforced in tos.c TOS_CheckSysConfig): +# TOS 1.00-1.04 -> ST only, 68000 +# TOS 1.06/1.62 -> STE only +# TOS 2.0x -> ST/STE (patched for ST compatibility) +# TOS 3.0x -> TT only, 68030+ +# TOS 4.0x -> Falcon only, 68020+ +# EmuTOS -> all machine types (no version constraint) + +# Libretro core search paths (libretro.c): +# 1. /tos.img (legacy default) +# 2. /hatari/tos/ directory (all .img/.rom/.tos files listed as options) +# Core option "hatari_tosimage" selects which TOS image to use. + +files: + # -- Primary TOS ROM (required) -- + # At minimum one TOS image must be present. The most commonly used + # version is TOS 1.02, which is the default for Atari ST emulation. + + - name: "tos.img" + path: "tos.img" + required: true + note: > + TOS ROM image. Any valid version (1.00 through 4.04) or EmuTOS works. + The core auto-detects version from the ROM header and adjusts machine type. + Default location is system/tos.img, additional images go in system/hatari/tos/. + source_ref: "src/tos.c:576-696, libretro/libretro.c:387-410" + + # -- Cartridge ROM (optional) -- + # External cartridge image, max 128 KB. Formats: .img, .rom, .stc + # Cannot be used together with GEMDOS HD emulation or extended VDI resolution. + + - name: "cartridge ROM" + path: null # user-configured via szCartridgeImageFileName + required: false + max_size: 131076 # 0x20004 (.stc with 4-byte header) or 0x20000 (raw) + note: > + External cartridge image. Loaded to address 0xFA0000. + STC format images (0x20004 bytes) have a 4-byte header that is stripped. + Mutually exclusive with GEMDOS hard disk emulation and extended VDI. + source_ref: "src/cart.c:53-88" + +# Supported TOS versions (from patch table in tos.c): +# 0x100 - TOS 1.00 (ST, 68000 only, no VDI extensions) +# 0x102 - TOS 1.02 (ST, most common for gaming) +# 0x104 - TOS 1.04 (ST, adds autostart support) +# 0x106 - TOS 1.06 (STE only) +# 0x162 - TOS 1.62 (STE only) +# 0x205 - TOS 2.05 (STE native, patched for ST) +# 0x206 - TOS 2.06 (STE/ST) +# 0x306 - TOS 3.06 (TT, 68030+) +# 0x400 - TOS 4.00 (Falcon, 68020+) +# 0x401 - TOS 4.01 (Falcon) +# 0x402 - TOS 4.02 (Falcon) +# 0x404 - TOS 4.04 (Falcon) +# 0x492 - TOS 4.92 (RAM TOS variant) + +# TOS ROM sizes (typical): +# 192 KB (0x30000) - TOS 1.0x (loaded at 0xFC0000) +# 256 KB (0x40000) - TOS 2.0x+ (loaded at 0xE00000) +# Up to 1 MB - maximum accepted by the loader + +# File extensions scanned: .img, .rom, .tos + +notes: + emutos_note: > + EmuTOS is a free open-source TOS replacement that works with all machine types. + Hatari detects it via the 'ETOS' signature at ROM offset 0x2c and skips + machine-type enforcement and ROM patches. + gemdos_boot_note: > + When using GEMDOS hard disk mode with .gem files, the core also loads + system/hatari/BOOT.ST as a floppy image for bootstrapping. + libretro_path_note: > + The libretro core checks system/tos.img first for backward compatibility, + then scans system/hatari/tos/ for additional TOS images exposed as core options. diff --git a/emulators/picodrive.yml b/emulators/picodrive.yml new file mode 100644 index 00000000..4fda2146 --- /dev/null +++ b/emulators/picodrive.yml @@ -0,0 +1,175 @@ +emulator: PicoDrive +type: libretro +source: "https://github.com/libretro/picodrive" +systems: + - sega-megadrive + - sega-genesis + - sega-megacd + - sega-segacd + - sega-32x + - sega-mastersystem + - sega-gamegear + - sega-sg1000 + - sega-pico + +notes: | + PicoDrive is a fast Mega Drive / Genesis emulator with Mega CD, 32X, Master + System, Game Gear, SG-1000 and Sega Pico support. + + Mega CD / Sega CD games require a region-matching BIOS file. The core searches + the system directory for each name in order, trying .bin then .zip extension, + and uses the first file found. If no BIOS is found, CD games fail to load with + PM_BAD_CD_NO_BIOS. MSU-MD games can run without BIOS. + + BIOS filename search order (platform/libretro/libretro.c:1265-1329): + US: us_scd2_9306, SegaCDBIOS9303, us_scd1_9210, bios_CD_U + EU: eu_mcd2_9306, eu_mcd2_9303, eu_mcd1_9210, bios_CD_E + JP: jp_mcd2_921222, jp_mcd1_9112, jp_mcd1_9111, bios_CD_J + + 32X BIOS files (m68k, master SH2, slave SH2) are fully optional. The core + has built-in HLE that generates replacement code at startup when the external + BIOS pointers are NULL (pico/32x/memory.c:2200 get_bios(), pico/32x/32x.c:172). + The libretro frontend does not expose any 32X BIOS loading path. Only the + standalone platform code references 32X_M_BIOS.BIN / 32X_S_BIOS.BIN, and + that code is currently disabled (#if 0 in platform/common/emu.c:1529). + + Master System, Game Gear, SG-1000: no BIOS file loaded. The core initializes + VDP registers and RAM to simulate post-BIOS state (pico/sms.c:1080-1096). + +files: + # ------------------------------------------------------- + # Mega CD / Sega CD - US region + # ------------------------------------------------------- + - name: "us_scd2_9306.bin" + system: sega-segacd + required: true + size: 131072 # 128 KB (0x20000) + note: "US Sega CD Model 2 BIOS (September 1993). First in US search order." + source_ref: "platform/libretro/libretro.c:1266" + + - name: "SegaCDBIOS9303.bin" + system: sega-segacd + required: false + size: 131072 + note: "US Sega CD BIOS (March 1993). Second in US search order." + source_ref: "platform/libretro/libretro.c:1266" + + - name: "us_scd1_9210.bin" + system: sega-segacd + required: false + size: 131072 + note: "US Sega CD Model 1 BIOS (October 1992). Third in US search order." + source_ref: "platform/libretro/libretro.c:1266" + + - name: "bios_CD_U.bin" + system: sega-segacd + required: false + size: 131072 + note: "US Sega CD BIOS (generic name). Last in US search order." + source_ref: "platform/libretro/libretro.c:1266" + + # ------------------------------------------------------- + # Mega CD / Sega CD - EU region + # ------------------------------------------------------- + - name: "eu_mcd2_9306.bin" + system: sega-megacd + required: true + size: 131072 + note: "EU Mega CD Model 2 BIOS (June 1993). First in EU search order." + source_ref: "platform/libretro/libretro.c:1269" + + - name: "eu_mcd2_9303.bin" + system: sega-megacd + required: false + size: 131072 + note: "EU Mega CD Model 2 BIOS (March 1993). Second in EU search order." + source_ref: "platform/libretro/libretro.c:1269" + + - name: "eu_mcd1_9210.bin" + system: sega-megacd + required: false + size: 131072 + note: "EU Mega CD Model 1 BIOS (October 1992). Third in EU search order." + source_ref: "platform/libretro/libretro.c:1269" + + - name: "bios_CD_E.bin" + system: sega-megacd + required: false + size: 131072 + note: "EU Mega CD BIOS (generic name). Last in EU search order." + source_ref: "platform/libretro/libretro.c:1269" + + # ------------------------------------------------------- + # Mega CD / Sega CD - JP region + # ------------------------------------------------------- + - name: "jp_mcd2_921222.bin" + system: sega-megacd + required: true + size: 131072 + note: "JP Mega CD Model 2 BIOS (December 1992). First in JP search order." + source_ref: "platform/libretro/libretro.c:1272" + + - name: "jp_mcd1_9112.bin" + system: sega-megacd + required: false + size: 131072 + note: "JP Mega CD Model 1 BIOS (December 1991). Second in JP search order." + source_ref: "platform/libretro/libretro.c:1272" + + - name: "jp_mcd1_9111.bin" + system: sega-megacd + required: false + size: 131072 + note: "JP Mega CD Model 1 BIOS (November 1991). Third in JP search order." + source_ref: "platform/libretro/libretro.c:1272" + + - name: "bios_CD_J.bin" + system: sega-megacd + required: false + size: 131072 + note: "JP Mega CD BIOS (generic name). Last in JP search order." + source_ref: "platform/libretro/libretro.c:1272" + + # ------------------------------------------------------- + # Sega 32X - HLE available, not loaded by libretro frontend + # ------------------------------------------------------- + - name: "32X_G_BIOS.BIN" + system: sega-32x + required: false + size: 256 # 0x100 + note: "32X 68K (Genesis-side) BIOS. HLE replacement generated when NULL." + source_ref: "pico/32x/memory.c:2207-2243" + + - name: "32X_M_BIOS.BIN" + system: sega-32x + required: false + size: 2048 # 0x800 + note: "32X Master SH2 BIOS. HLE replacement generated when NULL." + source_ref: "pico/32x/memory.c:2250-2277" + + - name: "32X_S_BIOS.BIN" + system: sega-32x + required: false + size: 1024 # 0x400 + note: "32X Slave SH2 BIOS. HLE replacement generated when NULL." + source_ref: "pico/32x/memory.c:2280-2298" + +platform_details: + megacd: + bios_size: 131072 # 128 KB + hle_available: false + region_specific: true + extensions_tried: [".bin", ".zip"] + source_ref: "pico/pico_int.h:559, platform/libretro/libretro.c:1310-1318" + + 32x: + m68k_bios_size: 256 # 0x100 + master_sh2_bios_size: 2048 # 0x800 + slave_sh2_bios_size: 1024 # 0x400 + hle_available: true + source_ref: "pico/pico.h:53-55, pico/pico_int.h:679-693" + + sms: + hle_available: true + note: "No BIOS file loaded. VDP/RAM initialized to post-BIOS state." + source_ref: "pico/sms.c:1080-1096" diff --git a/emulators/puae.yml b/emulators/puae.yml new file mode 100644 index 00000000..8dabba04 --- /dev/null +++ b/emulators/puae.yml @@ -0,0 +1,255 @@ +emulator: PUAE (P-UAE) +type: libretro +cores: [puae, puae2021] +source: "https://github.com/libretro/libretro-uae" +systems: + - commodore-amiga + - commodore-amiga-cd32 + - commodore-cdtv + +notes: | + PUAE is a port of UAE (Unix Amiga Emulator) to libretro. It emulates the + Amiga 500, 500+, 600, 1200, 2000, 4000, CD32, and CDTV. Kickstart ROMs + are loaded from the RetroArch system directory. + + AROS (open-source Kickstart replacement) is available as a built-in fallback + when no Kickstart ROM is found. Compatibility is limited compared to real ROMs. + + The core scans the system directory for files starting with "kick", "amiga-os", + or "KS ROM". Each filename is matched against a table of known naming + conventions: standard (kick*.A*), Amiga Forever (amiga-os-*.rom), and + TOSEC (Kickstart v*.rom). The first valid match is used. + + Default kickstart per model (automatic selection): + A500, A500OG, A2000OG, CDTV -> kick34005.A500 (KS 1.3) + A500+ -> kick37175.A500 (KS 2.04) + A600 -> kick40063.A600 (KS 3.1) + A1200, A1200OG -> kick40068.A1200 (KS 3.1) + A2000 -> kick40063.A600 (KS 3.1) + A4030, A4040 -> kick40068.A4000 (KS 3.1) + CD32, CD32FR -> kick40060.CD32 (KS 3.1) + CDTV (ext) -> kick34005.CDTV + CD32 (ext) -> kick40060.CD32.ext + + Extended ROM handling: CD32 and CDTV require an extended ROM in addition + to the main kickstart. If the main ROM filesize is <= 512 KB, the extended + ROM is loaded separately. Combined ROMs (main + ext in one file) skip the + extended ROM search. + + WHDLoad support copies kick33180.A500, kick34005.A500, kick40063.A600, + kick40068.A1200 into saves/WHDLoad/Devs/Kickstarts/ for use by WHDLoad + slave files. + + ROM search order (libretro-core.c retro_config_kickstart): + 1. Exact filename in system directory + 2. Amiga Forever naming (amiga-os-*.rom) + 3. TOSEC modified naming (with [!] suffix) + 4. TOSEC naming (without [!] suffix) + + capsimg.so/capsimg.dll is an optional shared library for IPF floppy image + support (SPS/CAPS format). Not a BIOS file, loaded dynamically at runtime. + + Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5610-5750, + libretro/libretro-core.c:6044-6093 + +files: + # ------------------------------------------------------- + # Amiga 1000 + # ------------------------------------------------------- + - name: "kick31034.A1000" + system: commodore-amiga + required: false + size: 262144 # 256 KB + note: "Kickstart 1.1 rev 31.34 (1985) NTSC. A1000 only." + aliases: + - "amiga-os-110-ntsc.rom" + - "Kickstart v1.1 rev 31.34 (1985)(Commodore)(A1000)(NTSC).rom" + source_ref: "libretro/libretro-core.h:170-174" + + - name: "kick32034.A1000" + system: commodore-amiga + required: false + size: 262144 # 256 KB + note: "Kickstart 1.1 rev 32.34 (1986) PAL. A1000 only." + aliases: + - "amiga-os-110-pal.rom" + - "Kickstart v1.1 rev 32.34 (1986)(Commodore)(A1000)(PAL).rom" + source_ref: "libretro/libretro-core.h:176-179" + + # ------------------------------------------------------- + # Amiga 500 / 2000 + # ------------------------------------------------------- + - name: "kick33180.A500" + system: commodore-amiga + required: false + size: 262144 # 256 KB + note: "Kickstart 1.2 rev 33.180 (1986). A500/A2000. Also used by WHDLoad." + aliases: + - "amiga-os-120.rom" + - "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom" + - "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom" + source_ref: "libretro/libretro-core.h:182-185" + + - name: "kick34005.A500" + system: commodore-amiga + required: true + size: 262144 # 256 KB + note: "Kickstart 1.3 rev 34.5 (1987). Default for A500/A2000OG/CDTV models. Also used by WHDLoad." + aliases: + - "amiga-os-130.rom" + - "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom" + - "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom" + source_ref: "libretro/libretro-core.h:187-190" + + - name: "kick37175.A500" + system: commodore-amiga + required: false + size: 262144 # 256 KB + note: "Kickstart 2.04 rev 37.175 (1991). Default for A500+ model." + aliases: + - "amiga-os-204.rom" + - "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom" + - "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom" + source_ref: "libretro/libretro-core.h:192-195" + + # ------------------------------------------------------- + # Amiga 600 + # ------------------------------------------------------- + - name: "kick37350.A600" + system: commodore-amiga + required: false + size: 262144 # 256 KB + note: "Kickstart 2.05 rev 37.350 (1992). A600HD." + aliases: + - "amiga-os-205-a600.rom" + - "Kickstart v2.05 rev 37.350 (1992)(Commodore)(A600HD)[!].rom" + source_ref: "libretro/libretro-core.h:198-201" + + - name: "kick40063.A600" + system: commodore-amiga + required: false + size: 524288 # 512 KB + note: "Kickstart 3.1 rev 40.63 (1993). Default for A600/A2000 models. Also used by WHDLoad." + aliases: + - "amiga-os-310-a600.rom" + - "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom" + - "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom" + source_ref: "libretro/libretro-core.h:203-206" + + # ------------------------------------------------------- + # Amiga 1200 + # ------------------------------------------------------- + - name: "kick39106.A1200" + system: commodore-amiga + required: false + size: 524288 # 512 KB + note: "Kickstart 3.0 rev 39.106 (1992). A1200." + aliases: + - "amiga-os-300-a1200.rom" + - "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom" + source_ref: "libretro/libretro-core.h:209-212" + + - name: "kick40068.A1200" + system: commodore-amiga + required: true + size: 524288 # 512 KB + note: "Kickstart 3.1 rev 40.68 (1993). Default for A1200/A1200OG models. Also used by WHDLoad." + aliases: + - "amiga-os-310-a1200.rom" + - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom" + - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom" + source_ref: "libretro/libretro-core.h:214-217" + + # ------------------------------------------------------- + # Amiga 4000 + # ------------------------------------------------------- + - name: "kick39106.A4000" + system: commodore-amiga + required: false + size: 524288 # 512 KB + note: "Kickstart 3.0 rev 39.106 (1992). A4000." + aliases: + - "amiga-os-300-a4000.rom" + - "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom" + source_ref: "libretro/libretro-core.h:220-223" + + - name: "kick40068.A4000" + system: commodore-amiga + required: false + size: 524288 # 512 KB + note: "Kickstart 3.1 rev 40.68 (1993). Default for A4030/A4040 models." + aliases: + - "amiga-os-310-a4000.rom" + - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom" + source_ref: "libretro/libretro-core.h:225-228" + + # ------------------------------------------------------- + # Commodore CDTV + # ------------------------------------------------------- + - name: "kick34005.CDTV" + system: commodore-cdtv + required: true + size: 262144 # 256 KB + note: "CDTV Extended ROM v1.0 (1991). Required as extended ROM for CDTV model. Main kickstart is kick34005.A500." + aliases: + - "amiga-os-130-cdtv-ext.rom" + - "CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom" + - "CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom" + source_ref: "libretro/libretro-core.h:231-234" + + # ------------------------------------------------------- + # Amiga CD32 + # ------------------------------------------------------- + - name: "kick40060.CD32" + system: commodore-amiga-cd32 + required: true + size: 524288 # 512 KB + note: "CD32 Kickstart 3.1 rev 40.60 (1993). Main ROM for CD32 and CD32FR models." + aliases: + - "amiga-os-310-cd32.rom" + - "Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom" + source_ref: "libretro/libretro-core.h:236-239" + + - name: "kick40060.CD32.ext" + system: commodore-amiga-cd32 + required: true + size: 524288 # 512 KB + note: "CD32 Extended ROM rev 40.60 (1993). Required when main ROM is <= 512 KB (not combined)." + aliases: + - "amiga-os-310-cd32-ext.rom" + - "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom" + source_ref: "libretro/libretro-core.h:241-244" + +model_kickstart_map: + A500: {kickstart: "kick34005.A500", ext: null} + A500OG: {kickstart: "kick34005.A500", ext: null} + A500PLUS: {kickstart: "kick37175.A500", ext: null} + A600: {kickstart: "kick40063.A600", ext: null} + A1200: {kickstart: "kick40068.A1200", ext: null} + A1200OG: {kickstart: "kick40068.A1200", ext: null} + A2000: {kickstart: "kick40063.A600", ext: null} + A2000OG: {kickstart: "kick34005.A500", ext: null} + A4030: {kickstart: "kick40068.A4000", ext: null} + A4040: {kickstart: "kick40068.A4000", ext: null} + CDTV: {kickstart: "kick34005.A500", ext: "kick34005.CDTV"} + CD32: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"} + CD32FR: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"} + +whdload_kickstarts: + - "kick33180.A500" # KS 1.2, 256 KB + - "kick34005.A500" # KS 1.3, 256 KB + - "kick40063.A600" # KS 3.1, 512 KB + - "kick40068.A1200" # KS 3.1, 512 KB + +platform_details: + rom_sizes: + ROM_SIZE_128: 131072 # 128 KB + ROM_SIZE_256: 262144 # 256 KB + ROM_SIZE_512: 524288 # 512 KB + aros_fallback: true + naming_conventions: + standard: "kick{rev}.{model}" + amiga_forever: "amiga-os-{version}.rom" + tosec: "Kickstart v{version} rev {rev} ({year})(Commodore)({model}).rom" + scan_prefixes: ["kick", "amiga-os", "KS ROM"] + source_ref: "libretro/libretro-core.c:2649-2676"