mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: 4-source verified emulator profiles (A-E cores)
33 emulator profiles created or updated with systematic verification against libretro docs, .info, core source, and original emulator source code. New profiles: bsnes-jg, bsnes2014, bsnes_cplusplus98, bsnes_hd_beta, bsnes_mercury, citra2018, citra_canary. Key fixes: - dosbox_svn/svn_ce: not aliases of dosbox_core (no MUNT) - beetle_psx: alt_names renamed to aliases (field bug) - dolphin: added 15 Realtek BT firmware for Wiimote passthrough - dosbox_core: added CM-32LN, 13 split ROM pairs for standalone - duckstation: type standalone+libretro, 106 BIOS verified - snes9x/np2kai: formal aliases for alternate filenames
This commit is contained in:
@@ -1,28 +1,90 @@
|
||||
emulator: Azahar
|
||||
type: alias
|
||||
alias_of: citra
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/azahar-emu/azahar"
|
||||
upstream: "https://github.com/azahar-emu/azahar"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - 3DS (Azahar)"
|
||||
cores: [azahar]
|
||||
systems:
|
||||
- nintendo-3ds
|
||||
|
||||
notes: |
|
||||
Azahar is the successor to Citra (via Lime3DS). Same codebase, same
|
||||
BIOS/firmware requirements. See emulators/citra.yml for the full file list.
|
||||
Azahar is the successor to Citra (via Lime3DS). Different codebase
|
||||
from libretro/citra — has additional files not in the old Citra.
|
||||
Data dir: azahar-emu (legacy: citra-emu, lime3ds-emu).
|
||||
ref: src/common/common_paths.h:41-47
|
||||
|
||||
Key difference: data directory changed from citra-emu/lime3ds-emu to
|
||||
azahar-emu. Legacy dirs are still scanned as fallback.
|
||||
ref: azahar/src/common/common_paths.h:41-47
|
||||
Key file: keys.txt (NOT aes_keys.txt like libretro/citra).
|
||||
ref: src/common/common_paths.h:83
|
||||
|
||||
Files needed (all optional, HLE fallback for most):
|
||||
sysdata/keys.txt, sysdata/boot9.bin, sysdata/sector0x96.bin,
|
||||
sysdata/shared_font.bin, sysdata/seeddb.bin, sysdata/otp.bin,
|
||||
nand/private/movable.sed, nand/rw/sys/SecureInfo_A,
|
||||
nand/rw/sys/LocalFriendCodeSeed_B
|
||||
Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
|
||||
ref: src/citra_libretro/environment.cpp:194
|
||||
|
||||
.info has firmware_count=0 but core uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
|
||||
(src/citra_libretro/environment.cpp:194) to locate system files.
|
||||
.info has firmware_count=0 but core uses system_dir for files.
|
||||
|
||||
files: []
|
||||
# all files documented in emulators/citra.yml — same codebase
|
||||
files:
|
||||
# --- sysdata/ ---
|
||||
- name: keys.txt
|
||||
path: sysdata/keys.txt
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "AES keys (named keys.txt in Azahar, aes_keys.txt in old Citra)"
|
||||
source_ref: "src/common/common_paths.h:83, src/core/hw/aes/key.cpp:291"
|
||||
|
||||
- name: boot9.bin
|
||||
path: sysdata/boot9.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:84"
|
||||
|
||||
- name: sector0x96.bin
|
||||
path: sysdata/sector0x96.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:85"
|
||||
|
||||
- name: shared_font.bin
|
||||
path: sysdata/shared_font.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "HLE fallback if missing"
|
||||
source_ref: "src/common/common_paths.h:82"
|
||||
|
||||
- name: seeddb.bin
|
||||
path: sysdata/seeddb.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "game seed database for 9.6+ titles"
|
||||
source_ref: "src/core/file_sys/seed_db.cpp:15"
|
||||
|
||||
# --- Azahar-only (not in libretro/citra) ---
|
||||
# These require src/core/hw/unique_data.cpp which only exists in Azahar
|
||||
|
||||
- name: otp.bin
|
||||
path: sysdata/otp.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "OTP data for key derivation. Azahar-only."
|
||||
source_ref: "src/core/hw/unique_data.cpp:214"
|
||||
|
||||
- name: movable.sed
|
||||
path: nand/private/movable.sed
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "console-unique key seed. Azahar-only."
|
||||
source_ref: "src/core/hw/unique_data.cpp:218"
|
||||
|
||||
- name: SecureInfo_A
|
||||
path: nand/rw/sys/SecureInfo_A
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "console serial/region. Azahar-only."
|
||||
source_ref: "src/core/hw/unique_data.cpp:206"
|
||||
|
||||
- name: LocalFriendCodeSeed_B
|
||||
path: nand/rw/sys/LocalFriendCodeSeed_B
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "friend code generation. Azahar-only."
|
||||
source_ref: "src/core/hw/unique_data.cpp:210"
|
||||
|
||||
@@ -26,7 +26,7 @@ files:
|
||||
sha1: "b05def971d8ec59f346f2d9ac21fb742e3eb6917"
|
||||
md5: "8dd7d5296a650fac7319bce665a6a53c"
|
||||
source_ref: "libretro.cpp:252-256"
|
||||
alt_names: ["SCPH5500.bin", "SCPH-5500.bin"]
|
||||
aliases: ["SCPH5500.bin", "SCPH-5500.bin"]
|
||||
|
||||
# -- Region: North America (REGION_NA) --
|
||||
|
||||
@@ -37,7 +37,7 @@ files:
|
||||
sha1: "0555c6fae8906f3f09baf5988f00e55f88e9f30b"
|
||||
md5: "490f666e1afb15b7362b406ed1cea246"
|
||||
source_ref: "libretro.cpp:258-270"
|
||||
alt_names:
|
||||
aliases:
|
||||
- "SCPH5501.bin"
|
||||
- "SCPH-5501.bin"
|
||||
- "scph5503.bin"
|
||||
@@ -56,7 +56,7 @@ files:
|
||||
sha1: "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0"
|
||||
md5: "32736f17079d0b2b7024407c39bd3050"
|
||||
source_ref: "libretro.cpp:272-282"
|
||||
alt_names:
|
||||
aliases:
|
||||
- "SCPH5502.bin"
|
||||
- "SCPH-5502.bin"
|
||||
- "scph5552.bin"
|
||||
@@ -72,7 +72,7 @@ files:
|
||||
sha1: "96880d1ca92a016ff054be5159bb06fe03cb4e14"
|
||||
md5: "c53ca5908936d412331790f4426c6c33"
|
||||
source_ref: "libretro.cpp:190-196"
|
||||
alt_names: ["PSXONPSP660.bin"]
|
||||
aliases: ["PSXONPSP660.bin"]
|
||||
notes: "override_bios=1 (psxonpsp option). Falls back to region BIOS if not found."
|
||||
|
||||
- name: "ps1_rom.bin"
|
||||
@@ -82,5 +82,5 @@ files:
|
||||
sha1: "c40146361eb8cf670b19fdc9759190257803cab7"
|
||||
md5: "81bbe60ba7a3d1cea1d48c14cbcc647b"
|
||||
source_ref: "libretro.cpp:198-204"
|
||||
alt_names: ["PS1_ROM.bin"]
|
||||
aliases: ["PS1_ROM.bin"]
|
||||
notes: "override_bios=2 (ps1_rom option). Falls back to region BIOS if not found."
|
||||
|
||||
@@ -14,16 +14,17 @@ notes: |
|
||||
to libretro by Ryphecha. It is a lightweight, accuracy-focused NES core.
|
||||
|
||||
The core loads cartridge data entirely through retro_load_game with
|
||||
need_fullpath=false (libretro.cpp:129). ROM data is passed as a memory
|
||||
buffer and parsed by Cartridge::load (cartridge.cpp:18-31), which detects
|
||||
iNES headers (16-byte offset) and delegates to Board::load for mapper setup.
|
||||
need_fullpath=false (libretro/libretro.cpp:129). ROM data is passed as a
|
||||
memory buffer and parsed by Cartridge::load (nes/cartridge/cartridge.cpp:18-31),
|
||||
which detects iNES headers (16-byte offset) and delegates to Board::load.
|
||||
|
||||
The PPU generates its palette from a hardcoded color table in libretro.cpp
|
||||
(lines 20-37) with emphasis factor tables. No external palette file is loaded.
|
||||
The PPU generates its palette from a hardcoded color table in
|
||||
libretro/libretro.cpp:20-37 with emphasis factor tables. No external
|
||||
palette file is loaded.
|
||||
|
||||
System::init (system.cpp:62-66) only sets up the interface pointer and
|
||||
default input devices. No system ROM, BIOS, or firmware is loaded at any
|
||||
stage of initialization or cartridge loading.
|
||||
System::init (nes/system/system.cpp:62-66) only sets up the interface
|
||||
pointer and default input devices. No system ROM, BIOS, or firmware is
|
||||
loaded at any stage of initialization or cartridge loading.
|
||||
|
||||
The core does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and has no
|
||||
file I/O for BIOS or firmware. FDS (Famicom Disk System) is not supported,
|
||||
@@ -35,11 +36,11 @@ files: []
|
||||
|
||||
analysis:
|
||||
bios_search:
|
||||
retro_load_game: "libretro.cpp:181-211 - loads cartridge data only, no BIOS"
|
||||
cartridge_load: "cartridge.cpp:18-31 - parses iNES header + ROM data"
|
||||
system_init: "system.cpp:62-66 - sets interface pointer, no ROM loading"
|
||||
system_power: "system.cpp:43-50 - powers subsystems, no file I/O"
|
||||
interface_init: "interface.cpp:17-20 - stores derived pointer, calls system.init"
|
||||
retro_load_game: "libretro/libretro.cpp:181-211 - loads cartridge data only, no BIOS"
|
||||
cartridge_load: "nes/cartridge/cartridge.cpp:18-31 - parses iNES header + ROM data"
|
||||
system_init: "nes/system/system.cpp:62-66 - sets interface pointer, no ROM loading"
|
||||
system_power: "nes/system/system.cpp:43-50 - powers subsystems, no file I/O"
|
||||
interface_init: "nes/interface/interface.cpp - stores derived pointer, calls system.init"
|
||||
supported_mappers:
|
||||
- NROM
|
||||
- SxROM (MMC1)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
emulator: Boytacean
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/joamag/boytacean"
|
||||
upstream: "https://github.com/joamag/boytacean"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.10.13"
|
||||
display_name: "Nintendo - Game Boy / Color (Boytacean)"
|
||||
@@ -11,65 +12,81 @@ systems:
|
||||
- nintendo-gbc
|
||||
|
||||
notes: |
|
||||
Boytacean is a Game Boy / Game Boy Color emulator written in Rust by Joao Magalhaes.
|
||||
No external BIOS or boot ROM files are needed.
|
||||
Boytacean is a Game Boy / Game Boy Color emulator written in Rust.
|
||||
|
||||
The core ships with multiple boot ROMs compiled directly into the binary as static
|
||||
byte arrays in src/data.rs. For DMG mode the default is "DMG Bootix" (an open-source
|
||||
boot ROM forked from SameBoy's Bootix project, 256 bytes). For CGB mode the default
|
||||
is "CGB Boytacean" (a custom open-source CGB boot ROM, 2304 bytes). The original
|
||||
Nintendo DMG, SGB, and CGB boot ROMs are also embedded as static arrays (DMG_BOOT,
|
||||
SGB_BOOT, CGB_BOOT) but the defaults use the open-source replacements.
|
||||
Libretro: boot ROMs compiled into binary as static byte arrays in
|
||||
src/data.rs. load_boot_static() copies from arrays. No filesystem
|
||||
access, no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No external files.
|
||||
ref: frontends/libretro/src/core.rs:402 instance.load(true)
|
||||
|
||||
The libretro frontend (frontends/libretro/src/core.rs) calls instance.load(true) in
|
||||
retro_load_game(), which routes through load_dmg() or load_cgb() depending on the
|
||||
cartridge header. These call load_boot_static() which copies one of the embedded byte
|
||||
arrays into MMU memory. There is no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY call, no
|
||||
filesystem access for boot ROMs, and no core option to load external boot ROM files.
|
||||
Standalone (SDL): loads boot ROMs from ./res/boot/*.bin via
|
||||
load_boot_path() at gb.rs:1363-1368. 8 boot ROM files shipped in repo.
|
||||
ref: frontends/sdl/src/main.rs, src/gb.rs:1341
|
||||
|
||||
The .info file (boytacean_libretro.info) lists no firmware entries.
|
||||
Boot ROM defaults:
|
||||
- DMG: BootRom::DmgBootix (gb.rs:1352) - open-source, 256 bytes
|
||||
- CGB: BootRom::CgbBoytacean (gb.rs:1355) - open-source, 2304 bytes
|
||||
|
||||
Boot ROM selection defaults:
|
||||
- DMG: BootRom::DmgBootix (gb.rs:1389) - open-source, 256 bytes
|
||||
- CGB: BootRom::CgbBoytacean (gb.rs:1398) - open-source, 2304 bytes
|
||||
files:
|
||||
# Standalone mode loads from res/boot/ — libretro embeds all as arrays
|
||||
- name: dmg_boot.bin
|
||||
system: nintendo-gb
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 256
|
||||
note: "Original Nintendo DMG boot ROM"
|
||||
source_ref: "gb.rs:1363, data.rs:14 (embedded as DMG_BOOT)"
|
||||
|
||||
All boot ROM source code lives in src/boot/, forked from SameBoy and assembled
|
||||
with rgbds. The compiled binaries are then converted to Rust const arrays in data.rs.
|
||||
- name: sgb_boot.bin
|
||||
system: nintendo-gb
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 256
|
||||
note: "Super Game Boy boot ROM"
|
||||
source_ref: "gb.rs:1364, data.rs:29 (embedded as SGB_BOOT)"
|
||||
|
||||
files: []
|
||||
- name: dmg_bootix.bin
|
||||
system: nintendo-gb
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 256
|
||||
note: "Open-source DMG boot ROM from Bootix (default)"
|
||||
source_ref: "gb.rs:1365, data.rs:44 (embedded as DMG_BOOTIX)"
|
||||
|
||||
analysis:
|
||||
embedded_boot_roms:
|
||||
dmg_boot:
|
||||
constant: DMG_BOOT
|
||||
size: 256
|
||||
description: "Original Nintendo DMG boot ROM (embedded, not default)"
|
||||
source_ref: "data.rs:14-27"
|
||||
sgb_boot:
|
||||
constant: SGB_BOOT
|
||||
size: 256
|
||||
description: "Super Game Boy boot ROM (embedded, not default)"
|
||||
source_ref: "data.rs:29-42"
|
||||
dmg_bootix:
|
||||
constant: DMG_BOOTIX
|
||||
size: 256
|
||||
description: "Open-source DMG boot ROM from Bootix project (default for DMG)"
|
||||
source_ref: "data.rs:44-57"
|
||||
mgb_bootix:
|
||||
constant: MGB_BOOTIX
|
||||
size: 256
|
||||
description: "Open-source MGB (Game Boy Pocket) boot ROM from Bootix project"
|
||||
source_ref: "data.rs:59-72"
|
||||
cgb_boot:
|
||||
constant: CGB_BOOT
|
||||
size: 2304
|
||||
description: "Original Nintendo CGB boot ROM (embedded, not default)"
|
||||
source_ref: "data.rs:74-175"
|
||||
cgb_boytacean:
|
||||
constant: CGB_BOYTACEAN
|
||||
size: 2304
|
||||
description: "Custom open-source CGB boot ROM (default for CGB)"
|
||||
source_ref: "data.rs:177-275"
|
||||
filesystem_access: false
|
||||
system_directory_used: false
|
||||
boot_rom_source: "src/boot/ (assembly, forked from SameBoy)"
|
||||
- name: mgb_bootix.bin
|
||||
system: nintendo-gb
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 256
|
||||
note: "Open-source MGB (Pocket) boot ROM from Bootix"
|
||||
source_ref: "gb.rs:1366, data.rs:59 (embedded as MGB_BOOTIX)"
|
||||
|
||||
- name: cgb_boot.bin
|
||||
system: nintendo-gbc
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 2304
|
||||
note: "Original Nintendo CGB boot ROM"
|
||||
source_ref: "gb.rs:1367, data.rs:74 (embedded as CGB_BOOT)"
|
||||
|
||||
- name: cgb_boytacean.bin
|
||||
system: nintendo-gbc
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 2304
|
||||
note: "Custom open-source CGB boot ROM (default)"
|
||||
source_ref: "gb.rs:1368, data.rs:177 (embedded as CGB_BOYTACEAN)"
|
||||
|
||||
- name: dmg_pyboy.bin
|
||||
system: nintendo-gb
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "PyBoy DMG boot ROM variant (in res/boot/, not embedded in data.rs)"
|
||||
source_ref: "res/boot/dmg_pyboy.bin"
|
||||
|
||||
- name: cgb_pyboy.bin
|
||||
system: nintendo-gbc
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "PyBoy CGB boot ROM variant (in res/boot/, not embedded in data.rs)"
|
||||
source_ref: "res/boot/cgb_pyboy.bin"
|
||||
|
||||
120
emulators/bsnes-jg.yml
Normal file
120
emulators/bsnes-jg.yml
Normal file
@@ -0,0 +1,120 @@
|
||||
emulator: bsnes-jg
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bsnes-jg"
|
||||
upstream: "https://github.com/libretro/bsnes-jg"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2.0.0"
|
||||
display_name: "Nintendo - SNES / SFC (bsnes-jg)"
|
||||
cores: [bsnes-jg]
|
||||
systems:
|
||||
- nintendo-snes
|
||||
- nintendo-sgb
|
||||
- nintendo-satellaview
|
||||
- nintendo-sufami-turbo
|
||||
|
||||
notes: |
|
||||
bsnes-jg is a fork of bsnes v115 by Rupert Carmichael, rewritten for
|
||||
C++ standard library. Coprocessor firmware loaded from system_dir via
|
||||
openFileCallback. SGB boot ROMs and CX4/HitachiDSP data ROM embedded.
|
||||
BML game databases embedded as C++ string literals.
|
||||
|
||||
ref: libretro/libretro.cpp:722 RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
|
||||
ref: libretro/libretro.cpp:428-470 firmware path construction (sysdir + filename)
|
||||
ref: src/cartridge.cpp:774-786 openFileCallback for DSP/ST .program.rom/.data.rom
|
||||
ref: src/coprocessor/icd.cpp:249,260 SGB1/SGB2 boot ROMs embedded
|
||||
ref: src/cartridge.cpp:62 HitachiDSP static data ROM embedded (3072 bytes)
|
||||
ref: libretro/libretro.cpp:30-33,410-416 BML databases embedded
|
||||
|
||||
files:
|
||||
# SNES coprocessor firmware — loaded from system_dir, all optional
|
||||
# Games using these coprocessors won't work without the firmware
|
||||
# but most SNES games don't use coprocessors
|
||||
|
||||
- name: dsp1.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:428-429"
|
||||
|
||||
- name: dsp1.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:431-432"
|
||||
|
||||
- name: dsp1b.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:434-435"
|
||||
|
||||
- name: dsp1b.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:437-438"
|
||||
|
||||
- name: dsp2.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:440-441"
|
||||
|
||||
- name: dsp2.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:443-444"
|
||||
|
||||
- name: dsp3.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:446-447"
|
||||
|
||||
- name: dsp3.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:450-451"
|
||||
|
||||
- name: dsp4.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp:455"
|
||||
|
||||
- name: dsp4.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp"
|
||||
|
||||
- name: st010.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp"
|
||||
|
||||
- name: st010.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp"
|
||||
|
||||
- name: st011.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp"
|
||||
|
||||
- name: st011.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp"
|
||||
|
||||
- name: st018.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp"
|
||||
|
||||
- name: st018.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "libretro/libretro.cpp"
|
||||
|
||||
# Embedded (no external file needed):
|
||||
# SGB1BootROM[256] — src/coprocessor/icd.cpp:249
|
||||
# SGB2BootROM[256] — src/coprocessor/icd.cpp:260
|
||||
# hitachidspStaticDataROM[3072] — src/cartridge.cpp:62
|
||||
# boards_bml — libretro/boards_bml.hpp
|
||||
# SuperFamicom_bml — libretro/SuperFamicom_bml.hpp
|
||||
# BSMemory_bml — libretro/BSMemory_bml.hpp
|
||||
# SufamiTurbo_bml — libretro/SufamiTurbo_bml.hpp
|
||||
@@ -161,8 +161,9 @@ files:
|
||||
|
||||
- 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"
|
||||
md5: fed4d8242cfbed61343d53d48432aced
|
||||
note: "BS-X Satellaview BIOS ROM. Required for .bs games. .info md5=fed4d824, repo has 96cf17bf (Rev 1 vs original)"
|
||||
source_ref: "target-libretro/libretro.cpp:948"
|
||||
|
||||
notes:
|
||||
hle_available: true
|
||||
|
||||
122
emulators/bsnes2014.yml
Normal file
122
emulators/bsnes2014.yml
Normal file
@@ -0,0 +1,122 @@
|
||||
emulator: bsnes 2014
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bsnes2014"
|
||||
upstream: "https://github.com/bsnes-emu/bsnes"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v094"
|
||||
display_name: "Nintendo - SNES / SFC (bsnes 2014)"
|
||||
cores: [bsnes2014_accuracy, bsnes2014_balanced, bsnes2014_performance]
|
||||
systems:
|
||||
- nintendo-snes
|
||||
- nintendo-sgb
|
||||
- nintendo-satellaview
|
||||
- nintendo-sufami-turbo
|
||||
|
||||
notes: |
|
||||
bsnes 2014 is based on bsnes v094. Three build profiles:
|
||||
accuracy (dot-based PPU), balanced, performance (scanline PPU).
|
||||
All 3 profiles use the same 18 firmware files. Profiles differ only
|
||||
in PPU implementation (sfc/profile-*.hpp: CPU/SMP/DSP/PPU alternates),
|
||||
not in coprocessor support. CX4/Hitachi compiled in all profiles.
|
||||
.info says performance has 17 (no cx4) — this is wrong, verified in
|
||||
sfc/profile-performance.hpp which only changes CPU/SMP/DSP/PPU.
|
||||
|
||||
Unlike modern bsnes (v115+), v094 does NOT have HLE fallback for
|
||||
coprocessors. CX4 is NOT embedded — cx4.data.rom is required
|
||||
externally. SGB boot ROM is NOT embedded — sgb.boot.rom required.
|
||||
|
||||
Firmware loaded from system_dir via file::exists() + mmapstream.
|
||||
ref: target-libretro/libretro.cpp — penviron(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY)
|
||||
ref: ananke/heuristics/super-famicom.hpp — firmware name definitions
|
||||
ref: ananke/super-famicom.cpp:120 — sgb.boot.rom copy
|
||||
|
||||
files:
|
||||
# DSP coprocessor split ROMs (program + data)
|
||||
- name: dsp1.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:381"
|
||||
|
||||
- name: dsp1.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:382"
|
||||
|
||||
- name: dsp1b.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:381"
|
||||
|
||||
- name: dsp1b.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:382"
|
||||
|
||||
- name: dsp2.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
- name: dsp2.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
- name: dsp3.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "no HLE fallback in v094 — required for SD Gundam GX"
|
||||
|
||||
- name: dsp3.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
- name: dsp4.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
- name: dsp4.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
# CX4 (Hitachi) — NOT embedded in v094 unlike bsnes v115+
|
||||
- name: cx4.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
size: 3072
|
||||
note: "Capcom CX4 coprocessor data. Required for Mega Man X2/X3. Used in all 3 profiles (.info performance is wrong). NOT embedded in v094."
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:146"
|
||||
|
||||
# Seta coprocessors
|
||||
- name: st010.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
- name: st010.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
- name: st011.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "no HLE fallback — required for Hayazashi Nidan Morita Shougi"
|
||||
|
||||
- name: st011.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
- name: st018.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "ARM coprocessor. Required for Hayazashi Nidan Morita Shougi 2"
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:475-476"
|
||||
|
||||
- name: st018.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
# SGB boot ROM — NOT embedded in v094 unlike bsnes-jg/v115+
|
||||
- name: sgb.boot.rom
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
size: 256
|
||||
note: "SGB boot ROM (256 bytes). NOT embedded in v094. Present in all 3 profiles."
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:133, ananke/super-famicom.cpp:120"
|
||||
36
emulators/bsnes_cplusplus98.yml
Normal file
36
emulators/bsnes_cplusplus98.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
emulator: bsnes C++98
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bsnes-libretro-cplusplus98"
|
||||
upstream: "https://github.com/bsnes-emu/bsnes"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v085 (Performance)"
|
||||
display_name: "Nintendo - SNES / SFC (bsnes C++98 (v085))"
|
||||
cores: [bsnes_cplusplus98]
|
||||
systems:
|
||||
- nintendo-snes
|
||||
|
||||
notes: |
|
||||
bsnes C++98 is bsnes v085 downgraded to C++98 for old compilers.
|
||||
Performance profile only. is_experimental=true.
|
||||
|
||||
Firmware loading differs from newer bsnes versions:
|
||||
- NEC DSP (dsp1/2/3/4) and Hitachi DSP (cx4) firmware loaded from
|
||||
the SAME DIRECTORY as the ROM, not from system_dir.
|
||||
- Path: dir(interface->path(Slot::Base, ".dsp")) + firmware_name
|
||||
ref: snes/cartridge/markup.cpp:231
|
||||
- interface->path() returns basename + hint
|
||||
ref: snes/libretro/libretro.cpp path() method
|
||||
- Firmware name comes from the game's XML/BML markup (root["firmware"])
|
||||
NOT fixed names like dsp1.program.rom
|
||||
- Files are COMBINED (program+data in one file), not split
|
||||
ref: snes/cartridge/markup.cpp:243-244 reads promsize*3 + dromsize*2
|
||||
|
||||
.info has firmware_count=0 because firmware is loaded from ROM dir,
|
||||
not from system_dir — RetroArch can't pre-populate them.
|
||||
|
||||
The core warns "NEC DSP firmware X is missing" if not found but
|
||||
continues without the coprocessor (games using it won't work).
|
||||
|
||||
files: []
|
||||
# firmware loaded from ROM directory, not system directory
|
||||
# no files to declare for system_dir placement
|
||||
114
emulators/bsnes_hd_beta.yml
Normal file
114
emulators/bsnes_hd_beta.yml
Normal file
@@ -0,0 +1,114 @@
|
||||
emulator: bsnes-hd beta
|
||||
type: libretro
|
||||
source: "https://github.com/DerKoun/bsnes-hd"
|
||||
upstream: "https://github.com/bsnes-emu/bsnes"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v10.6"
|
||||
# .info says v112.v12 but repo shows Version = "10.6", SerializerVersion = "114.2"
|
||||
display_name: "Nintendo - SNES / SFC (bsnes-hd beta)"
|
||||
cores: [bsnes_hd_beta]
|
||||
systems:
|
||||
- nintendo-snes
|
||||
- nintendo-sgb
|
||||
- nintendo-satellaview
|
||||
- nintendo-sufami-turbo
|
||||
|
||||
notes: |
|
||||
bsnes-hd beta is bsnes ~v114 by DerKoun with widescreen and
|
||||
increased color depth. Same firmware as bsnes v115.
|
||||
repo Version="10.6", SerializerVersion="114.2"
|
||||
ref: bsnes/emulator/emulator.hpp:34,40
|
||||
|
||||
SGB boot ROMs embedded in binary (icd/boot-roms.cpp:1,12).
|
||||
SGB1.sfc/SGB2.sfc are SGB cartridge ROMs (not boot ROMs).
|
||||
HLE available for DSP1/2/4, ST010, CX4 — LLE firmware optional.
|
||||
DSP3, ST011, ST018 have no HLE — LLE firmware required for those.
|
||||
|
||||
ref: bsnes/sfc/coprocessor/icd/boot-roms.cpp:1,12
|
||||
ref: bsnes/sfc/coprocessor/icd/icd.cpp:87,90
|
||||
ref: bsnes/heuristics/super-famicom.cpp:115
|
||||
|
||||
files:
|
||||
# Split DSP coprocessor firmware
|
||||
- name: dsp1.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp1.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp1b.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp1b.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp2.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp2.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp3.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "no HLE — required for SD Gundam GX"
|
||||
- name: dsp3.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp4.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp4.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
# CX4 (Hitachi)
|
||||
- name: cx4.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
size: 3072
|
||||
note: "HLE available — LLE optional for Mega Man X2/X3"
|
||||
|
||||
# Seta coprocessors
|
||||
- name: st010.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: st010.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: st011.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "no HLE — required for Hayazashi Nidan Morita Shougi"
|
||||
- name: st011.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: st018.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "no HLE — required for Hayazashi Nidan Morita Shougi 2"
|
||||
- name: st018.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
|
||||
# SGB cartridge ROMs (NOT boot ROMs — boot ROMs are embedded)
|
||||
# sgb_bios variable set by core option bsnes_sgb_bios (libretro.cpp:280-285)
|
||||
- name: SGB1.sfc
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
md5: b15ddb15721c657d82c5bab6db982ee9
|
||||
note: "SGB1 cartridge ROM. Boot ROM embedded in icd/boot-roms.cpp:1"
|
||||
source_ref: "libretro.cpp:1022,1040"
|
||||
- name: SGB2.sfc
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
md5: 8ecd73eb4edf7ed7e81aef1be80031d5
|
||||
note: "SGB2 cartridge ROM. Boot ROM embedded in icd/boot-roms.cpp:12"
|
||||
source_ref: "libretro.cpp:1022,1040"
|
||||
|
||||
# Satellaview BIOS — required for .bs files
|
||||
- name: BS-X.bin
|
||||
system: nintendo-satellaview
|
||||
required: false
|
||||
note: "Satellaview BIOS. Required when loading .bs files. Core returns false if missing."
|
||||
source_ref: "libretro.cpp:1054-1060"
|
||||
101
emulators/bsnes_mercury.yml
Normal file
101
emulators/bsnes_mercury.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
emulator: bsnes-mercury
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bsnes-mercury"
|
||||
upstream: "https://github.com/bsnes-emu/bsnes"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v094 (Mercury)"
|
||||
display_name: "Nintendo - SNES / SFC (bsnes-mercury)"
|
||||
cores: [bsnes_mercury_accuracy, bsnes_mercury_balanced, bsnes_mercury_performance]
|
||||
systems:
|
||||
- nintendo-snes
|
||||
- nintendo-sgb
|
||||
- nintendo-satellaview
|
||||
- nintendo-sufami-turbo
|
||||
|
||||
notes: |
|
||||
bsnes-mercury is bsnes v094 with Mercury optimizations: HLE for DSP
|
||||
and Hitachi coprocessors, firmware_appended support, overclocking.
|
||||
Three profiles: accuracy, balanced, performance (PPU differs, not firmware).
|
||||
.info says performance has 17 fw (no cx4) but the code compiles CX4 LLE
|
||||
in all profiles — cx4.data.rom works in performance too. The .info is wrong.
|
||||
Core option bsnes_chip_hle (default LLE) controls HLE/LLE at runtime.
|
||||
ref: target-libretro/libretro.cpp altImplementation(), "bsnes_chip_hle"
|
||||
|
||||
Same firmware loading as bsnes2014: system_dir via file::exists +
|
||||
mmapstream. No BS-X auto-load from system_dir (subsystem only).
|
||||
ref: target-libretro/libretro.cpp:245-254
|
||||
|
||||
HLE fallback for DSP1/1B/2/4, Hitachi/CX4, ST010.
|
||||
ref: sfc/cartridge/markup.cpp:351,404,618
|
||||
|
||||
firmware_appended: firmware can be appended to end of ROM file.
|
||||
ref: ananke/heuristics/super-famicom.hpp:83
|
||||
|
||||
SGB boot ROM NOT embedded (sgb.boot.rom from system_dir).
|
||||
CX4 NOT embedded (cx4.data.rom from system_dir).
|
||||
|
||||
files:
|
||||
# Same 18 files as bsnes2014 accuracy — see bsnes2014.yml for details
|
||||
# DSP1-4 split (program+data), CX4, ST010-018, sgb.boot.rom
|
||||
- name: dsp1.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp1.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp1b.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp1b.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp2.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp2.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp3.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "no HLE — required for SD Gundam GX"
|
||||
- name: dsp3.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp4.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: dsp4.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: cx4.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
size: 3072
|
||||
note: "HLE available via Mercury — LLE optional"
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:146"
|
||||
- name: st010.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: st010.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: st011.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
note: "no HLE — required for Hayazashi Nidan Morita Shougi"
|
||||
- name: st011.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: st018.program.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: st018.data.rom
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
- name: sgb.boot.rom
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
size: 256
|
||||
note: "SGB boot ROM. NOT embedded in v094."
|
||||
source_ref: "ananke/heuristics/super-famicom.hpp:133"
|
||||
@@ -1,6 +1,7 @@
|
||||
emulator: Cannonball
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/libretro/cannonball"
|
||||
upstream: "https://github.com/djyt/cannonball"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0"
|
||||
display_name: "Cannonball"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
emulator: Caprice32
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/libretro/libretro-cap32"
|
||||
upstream: "https://github.com/ColinPitrat/caprice32"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v4.2.0"
|
||||
display_name: "Amstrad - CPC/GX4000 (Caprice32)"
|
||||
@@ -42,7 +43,49 @@ notes: |
|
||||
CP/M support loads a pre-built snapshot (cpm.h) into memory via
|
||||
snapshot_load_mem() in slots.c:87.
|
||||
|
||||
files: []
|
||||
files:
|
||||
# Standalone loads from rom_path/ — libretro embeds all as C arrays
|
||||
# ref: ColinPitrat/caprice32/src/cap32.cpp:1006-1007,1159-1171
|
||||
- name: cpc464.rom
|
||||
system: amstrad-cpc
|
||||
required: true
|
||||
mode: standalone
|
||||
size: 32768
|
||||
note: "CPC 464 OS + BASIC 1.0"
|
||||
source_ref: "caprice32/src/cap32.cpp:1006, rom/cpc464.rom"
|
||||
- name: cpc664.rom
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 32768
|
||||
note: "CPC 664 OS + BASIC 1.0"
|
||||
source_ref: "caprice32/rom/cpc664.rom"
|
||||
- name: cpc6128.rom
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 32768
|
||||
note: "CPC 6128 OS + BASIC 1.1"
|
||||
source_ref: "caprice32/rom/cpc6128.rom"
|
||||
- name: amsdos.rom
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
mode: standalone
|
||||
size: 16384
|
||||
note: "AMSDOS disc ROM (sideways slot 7)"
|
||||
source_ref: "caprice32/src/cap32.cpp:1166"
|
||||
- name: system.cpr
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "CPC+ system cartridge"
|
||||
source_ref: "caprice32/rom/system.cpr"
|
||||
- name: MF2.rom
|
||||
system: amstrad-cpc
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Multiface 2 ROM"
|
||||
source_ref: "caprice32/rom/MF2.rom"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
|
||||
@@ -1,8 +1,35 @@
|
||||
emulator: "cdi2015"
|
||||
type: alias
|
||||
alias_of: "same_cdi"
|
||||
emulator: CDi 2015
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/mame2015-libretro"
|
||||
upstream: "https://github.com/mamedev/mame"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.160"
|
||||
display_name: "Philips CDi (CDi 2015)"
|
||||
note: "This core uses the same BIOS/firmware as same_cdi. See emulators/same_cdi.yml for details."
|
||||
files: []
|
||||
cores: [cdi2015]
|
||||
systems:
|
||||
- philips-cdi
|
||||
|
||||
notes: |
|
||||
MAME 0.160 compiled with SUBTARGET=cdi (CDi driver only).
|
||||
ref: libretro-super/rules.d/core-rules.sh — SUBTARGET=cdi
|
||||
source: libretro/mame2015-libretro
|
||||
|
||||
Loads cdimono1.zip from system_dir.
|
||||
ref: src/osd/retro/retromain.c:1989 —
|
||||
sprintf(tmp_dir, "%s%ccdimono1.zip", retro_system_directory, slash)
|
||||
If not found as ZIP, falls back to system_dir as rompath.
|
||||
ref: src/osd/retro/retromain.c:1991
|
||||
|
||||
ROM_START(cdimono1) in src/mame/drivers/cdi.c:421 defines:
|
||||
cdi200.rom (0x80000, CRC 279683ca, SHA1 53360a1f21ddac952e95306ced64186a3fc0b93e)
|
||||
cdic.bin (MCU, undumped)
|
||||
slave.bin (MCU, undumped)
|
||||
|
||||
The ZIP contains the MAME romset for cdimono1 — user provides it.
|
||||
|
||||
files:
|
||||
- name: cdimono1.zip
|
||||
system: philips-cdi
|
||||
required: true
|
||||
note: "MAME cdimono1 romset ZIP. Contains cdi200.rom + MCU dumps."
|
||||
source_ref: "src/osd/retro/retromain.c:1989, src/mame/drivers/cdi.c:421"
|
||||
|
||||
@@ -1,9 +1,29 @@
|
||||
emulator: "chimerasnes"
|
||||
type: alias
|
||||
alias_of: "snes9x"
|
||||
emulator: ChimeraSNES
|
||||
type: libretro
|
||||
source: "https://github.com/jamsilva/chimerasnes"
|
||||
upstream: "https://github.com/snes9xgit/snes9x"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: ""
|
||||
display_name: "Nintendo - SNES / SFC (ChimeraSNES)"
|
||||
profiled_date: "2026-03-18"
|
||||
display_name: "Nintendo - SNES / SFC (ChimeraSNES)"
|
||||
note: "This core uses the same BIOS/firmware as snes9x. See emulators/snes9x.yml for details."
|
||||
cores: [chimerasnes]
|
||||
systems:
|
||||
- nintendo-snes
|
||||
|
||||
notes: |
|
||||
Fork of Snes9x ~2005, optimized for slow hardware.
|
||||
NOT identical to snes9x — different firmware behavior.
|
||||
|
||||
All coprocessor data is HLE with static ROM tables embedded:
|
||||
DSP1: DSP1ROM[1024] in source/dsp1.c:6
|
||||
DSP3: DSP3_DataROM[1024] in source/dsp3.c:7
|
||||
No external DSP/ST/CX4 firmware files needed.
|
||||
|
||||
BS-X: path constructed in source/bsx.c:873 as romdir/BS-X.bios
|
||||
(relative to ROM directory, NOT system_dir). No
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY for firmware loading.
|
||||
|
||||
firmware_count absent in .info (= 0). Confirmed in source.
|
||||
|
||||
files: []
|
||||
# all coprocessors HLE with embedded data
|
||||
# BS-X.bios loaded from ROM directory, not system_dir
|
||||
|
||||
@@ -1,49 +1,53 @@
|
||||
emulator: Citra / Lime3DS / Azahar
|
||||
emulator: Citra
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/azahar-emu/azahar"
|
||||
logo: "https://raw.githubusercontent.com/wheremyfoodat/citra/master/dist/citra.svg"
|
||||
source: "https://github.com/libretro/citra"
|
||||
upstream: "https://github.com/citra-emu/citra"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - 3DS (Citra)"
|
||||
cores: [citra]
|
||||
systems: [nintendo-3ds]
|
||||
|
||||
notes: |
|
||||
Citra (now Azahar, formerly Lime3DS) uses HLE for most system services,
|
||||
so many files are optional. AES keys are the most important for decrypting
|
||||
games and system data. Shared font has a built-in fallback.
|
||||
File locations relative to user dir: sysdata/ for keys/boot/font/otp/seeddb,
|
||||
Citra 3DS emulator (pre-Azahar). Data dir: citra-emu.
|
||||
HLE for most services — files optional. AES keys most important.
|
||||
File locations: sysdata/ for keys/boot/font/seeddb,
|
||||
nand/ for NAND filesystem, nand/private/ for movable.sed.
|
||||
Legacy data dirs: citra-emu, lime3ds-emu -> azahar-emu.
|
||||
ref: src/common/common_paths.h:67-70
|
||||
|
||||
Key file: aes_keys.txt (NOT keys.txt — that's Azahar).
|
||||
ref: src/common/common_paths.h:68
|
||||
|
||||
Azahar fork: see emulators/azahar.yml (uses keys.txt, data dir azahar-emu).
|
||||
citra_canary: same repo, see emulators/citra_canary.yml.
|
||||
|
||||
files:
|
||||
# --- sysdata/ directory ---
|
||||
- name: "keys.txt"
|
||||
path: "sysdata/keys.txt"
|
||||
- name: "aes_keys.txt"
|
||||
path: "sysdata/aes_keys.txt"
|
||||
description: "AES encryption keys"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:83, src/core/hw/aes/key.cpp:291"
|
||||
notes: "Contains AES key slots (X/Y/N types) for game decryption; has built-in encrypted fallback keys (key.cpp:300-306)"
|
||||
source_ref: "src/common/common_paths.h:68, src/core/hw/aes/key.cpp LoadPresetKeys()"
|
||||
notes: "Named aes_keys.txt in libretro/citra (keys.txt in Azahar)"
|
||||
|
||||
- name: "boot9.bin"
|
||||
path: "sysdata/boot9.bin"
|
||||
description: "ARM9 bootrom"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:84"
|
||||
notes: "3DS ARM9 boot ROM; used for hardware key derivation"
|
||||
source_ref: "src/common/common_paths.h:69"
|
||||
|
||||
- name: "sector0x96.bin"
|
||||
path: "sysdata/sector0x96.bin"
|
||||
description: "Secret sector from NAND"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:85"
|
||||
notes: "OTP-encrypted sector 0x96 from 3DS NAND; used for key derivation"
|
||||
source_ref: "src/common/common_paths.h:70"
|
||||
|
||||
- name: "shared_font.bin"
|
||||
path: "sysdata/shared_font.bin"
|
||||
description: "System shared font"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:82, src/core/hle/service/apt/apt.cpp:284"
|
||||
notes: "Fallback if NAND system archive not available; built-in font data also exists (archive_ncch.cpp:28,189)"
|
||||
source_ref: "src/common/common_paths.h:67"
|
||||
notes: "HLE fallback if missing"
|
||||
|
||||
- name: "seeddb.bin"
|
||||
path: "sysdata/seeddb.bin"
|
||||
@@ -52,34 +56,10 @@ files:
|
||||
source_ref: "src/core/file_sys/seed_db.cpp:15"
|
||||
notes: "Required for some seed-encrypted games (9.6+ titles)"
|
||||
|
||||
- name: "otp.bin"
|
||||
path: "sysdata/otp.bin"
|
||||
description: "One-time programmable memory dump"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:214"
|
||||
notes: "Console-unique OTP data; used for hardware key derivation"
|
||||
|
||||
# --- nand/ directory ---
|
||||
- name: "movable.sed"
|
||||
path: "nand/private/movable.sed"
|
||||
description: "Movable unique key"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:218"
|
||||
notes: "Console-unique key seed for SD/NAND encryption; signature verified at load (unique_data.cpp:197)"
|
||||
|
||||
- name: "SecureInfo_A"
|
||||
path: "nand/rw/sys/SecureInfo_A"
|
||||
description: "Console serial and region info"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:206"
|
||||
notes: "Contains console serial number and region data"
|
||||
|
||||
- name: "LocalFriendCodeSeed_B"
|
||||
path: "nand/rw/sys/LocalFriendCodeSeed_B"
|
||||
description: "Friend code seed"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:210"
|
||||
notes: "Used for friend code generation"
|
||||
# otp.bin, movable.sed, SecureInfo_A, LocalFriendCodeSeed_B
|
||||
# do NOT exist in libretro/citra — they are Azahar-only features
|
||||
# (src/core/hw/unique_data.cpp exists in azahar, not in libretro/citra)
|
||||
# See emulators/azahar.yml for those files.
|
||||
|
||||
# --- NAND system archives (installed titles) ---
|
||||
- name: "shared font (system archive)"
|
||||
|
||||
43
emulators/citra2018.yml
Normal file
43
emulators/citra2018.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
emulator: Citra 2018
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/citra2018"
|
||||
upstream: "https://github.com/citra-emu/citra"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - 3DS (Citra 2018)"
|
||||
cores: [citra2018]
|
||||
systems:
|
||||
- nintendo-3ds
|
||||
|
||||
notes: |
|
||||
Citra 2018 is a 2018 snapshot of the Citra 3DS emulator.
|
||||
Older than current Azahar/Citra — fewer firmware files.
|
||||
Data dir: citra-emu (not azahar-emu).
|
||||
ref: src/common/common_paths.h:24
|
||||
|
||||
Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
|
||||
ref: src/citra_libretro/environment.cpp:107
|
||||
|
||||
Loads from sysdata/:
|
||||
aes_keys.txt (not keys.txt like current Citra)
|
||||
shared_font.bin
|
||||
ref: src/core/hw/aes/key.cpp:72-73, src/core/hle/service/apt/apt.cpp:174
|
||||
|
||||
Does NOT load (added in later versions):
|
||||
boot9.bin, sector0x96.bin, seeddb.bin, otp.bin,
|
||||
movable.sed, SecureInfo_A, LocalFriendCodeSeed_B
|
||||
|
||||
firmware_count absent in .info (= 0). Files are optional (HLE).
|
||||
|
||||
files:
|
||||
- name: aes_keys.txt
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "AES encryption keys (named aes_keys.txt, not keys.txt like current Citra)"
|
||||
source_ref: "src/core/hw/aes/key.cpp:72-73"
|
||||
|
||||
- name: shared_font.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "system shared font, HLE fallback if missing"
|
||||
source_ref: "src/core/hle/service/apt/apt.cpp:174"
|
||||
62
emulators/citra_canary.yml
Normal file
62
emulators/citra_canary.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
emulator: Citra Canary
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/citra"
|
||||
upstream: "https://github.com/citra-emu/citra"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - 3DS (Citra Canary/Experimental)"
|
||||
cores: [citra_canary]
|
||||
systems:
|
||||
- nintendo-3ds
|
||||
|
||||
notes: |
|
||||
Same repo as citra (libretro/citra master branch). Canary = experimental.
|
||||
Data dir: citra-emu (not azahar-emu — this is pre-Azahar Citra).
|
||||
ref: src/common/common_paths.h
|
||||
|
||||
Key file: aes_keys.txt (NOT keys.txt like Azahar).
|
||||
ref: src/common/common_paths.h:68
|
||||
|
||||
Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
|
||||
ref: src/citra_libretro/environment.cpp:149
|
||||
|
||||
Files in sysdata/:
|
||||
aes_keys.txt — AES encryption keys (common_paths.h:68)
|
||||
boot9.bin — ARM9 bootrom (common_paths.h:69)
|
||||
sector0x96.bin — secret NAND sector (common_paths.h:70)
|
||||
shared_font.bin — system shared font, HLE fallback (common_paths.h:67)
|
||||
seeddb.bin — game seed database (file_sys/seed_db.cpp:15)
|
||||
|
||||
NOTE: citra.yml profiles Azahar which uses keys.txt (not aes_keys.txt).
|
||||
This core uses the pre-Azahar naming convention.
|
||||
|
||||
files:
|
||||
- name: aes_keys.txt
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "AES keys (named aes_keys.txt in pre-Azahar Citra)"
|
||||
source_ref: "src/common/common_paths.h:68, src/core/hw/aes/key.cpp"
|
||||
|
||||
- name: boot9.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "ARM9 bootrom for key derivation"
|
||||
source_ref: "src/common/common_paths.h:69"
|
||||
|
||||
- name: sector0x96.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "OTP-encrypted NAND sector for key derivation"
|
||||
source_ref: "src/common/common_paths.h:70"
|
||||
|
||||
- name: shared_font.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "system shared font, HLE fallback if missing"
|
||||
source_ref: "src/common/common_paths.h:67"
|
||||
|
||||
- name: seeddb.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
note: "game seed database for seed-encrypted games (9.6+ titles)"
|
||||
source_ref: "src/core/file_sys/seed_db.cpp:15"
|
||||
@@ -1,6 +1,7 @@
|
||||
emulator: ClownMDEmu
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/clownmdemu-libretro"
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/Clownacy/clownmdemu-libretro"
|
||||
upstream: "https://github.com/Clownacy/clownmdemu"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Sega - MD/CD (ClownMDEmu)"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
emulator: Daphne
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/libretro/daphne"
|
||||
upstream: "https://github.com/DirtBagXon/hypseus-singe"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Arcade (Daphne)"
|
||||
|
||||
@@ -6,9 +6,24 @@ core_version: "v1.0"
|
||||
display_name: "Dinothawr"
|
||||
cores: [dinothawr]
|
||||
systems: []
|
||||
|
||||
notes: |
|
||||
Puzzle game by the libretro team. Push blocks on ice.
|
||||
Game data (TMX levels, sprites, music) needed for the core to work.
|
||||
|
||||
Two loading modes:
|
||||
1. Load dinothawr.game as content (data in content directory)
|
||||
2. supports_no_game=true: loads from system_dir/dinothawr/
|
||||
ref: libretro.cpp:267-271 —
|
||||
game_path_dir = join(system_dir, "/", "dinothawr")
|
||||
game_path = join(game_path_dir, "/", "dinothawr.game")
|
||||
|
||||
Buildbot provides Dinothawr.zip via Core System Files Downloader.
|
||||
ref: buildbot.libretro.com/assets/system/Dinothawr.zip
|
||||
|
||||
data_directories:
|
||||
- ref: dinothawr
|
||||
source_ref: "libretro.cpp:270-271"
|
||||
|
||||
files: []
|
||||
notes: >
|
||||
Puzzle game developed by the libretro team as a reference libretro core.
|
||||
Push blocks on ice to solve puzzles. Game data (maps, sprites, music)
|
||||
ships in the libretro repo and is loaded as content.
|
||||
No BIOS, firmware, or system directory files required.
|
||||
# no BIOS/firmware — game data loaded via data_directories or content
|
||||
|
||||
@@ -1,8 +1,41 @@
|
||||
emulator: "dirksimple"
|
||||
type: alias
|
||||
alias_of: "daphne"
|
||||
profiled_date: "2026-03-18"
|
||||
emulator: DirkSimple
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/icculus/DirkSimple"
|
||||
upstream: "https://github.com/icculus/DirkSimple"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "0.2"
|
||||
display_name: "Laserdisc arcade game (DirkSimple)"
|
||||
note: "This core uses the same BIOS/firmware as daphne. See emulators/daphne.yml for details."
|
||||
cores: [dirksimple]
|
||||
systems:
|
||||
- laserdisc-arcade
|
||||
|
||||
notes: |
|
||||
DirkSimple by Ryan C. Gordon (icculus). Plays laserdisc arcade games
|
||||
via Lua scripts + Ogg Theora video. NOT related to Daphne — completely
|
||||
different architecture.
|
||||
|
||||
Libretro port loads from system_dir/DirkSimple/.
|
||||
ref: dirksimple_libretro.c:782,795 —
|
||||
sysdir from RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
|
||||
basedir = sysdir + "/DirkSimple/"
|
||||
DirkSimple_startup(basedir, info->path, ...) at line 798
|
||||
|
||||
Standalone loads from data/ in the binary's directory.
|
||||
ref: README.md — "data directory must be included in same directory as binary"
|
||||
|
||||
Game data in data/games/<gamename>/game.lua + assets (PNG, WAV).
|
||||
User provides the OGV laserdisc video as content.
|
||||
|
||||
Supported games: Dragon's Lair (lair), Cliff Hanger (cliff).
|
||||
10 data files in the repo (game.lua scripts, sprites, sounds).
|
||||
|
||||
Buildbot provides DirkSimple.zip via Core System Files Downloader.
|
||||
ref: buildbot.libretro.com/assets/system/DirkSimple.zip
|
||||
|
||||
data_directories:
|
||||
- ref: dirksimple
|
||||
source_ref: "dirksimple_libretro.c:795"
|
||||
|
||||
files: []
|
||||
# no BIOS/firmware — game data via data_directories
|
||||
# user provides OGV video as content
|
||||
|
||||
@@ -156,6 +156,118 @@ files:
|
||||
note: "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:238"
|
||||
|
||||
# -- Realtek Bluetooth firmware (Wiimote passthrough) --
|
||||
# Required for real Wiimote connectivity via USB Bluetooth adapters with Realtek chipsets.
|
||||
# Dolphin can auto-download these from gitlab.com/kernel-firmware/linux-firmware.
|
||||
# Placed in Load/Firmware/rtl_bt/ (standalone) or User/Load/Firmware/rtl_bt/ (libretro save dir).
|
||||
# Each device needs _fw.bin (required) and _config.bin (optional, some devices).
|
||||
# ref: Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:382-425,427-481
|
||||
|
||||
- name: "rtl8723a_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8723a_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8723A BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:387"
|
||||
|
||||
- name: "rtl8723b_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8723b_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8723B BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:389"
|
||||
|
||||
- name: "rtl8723d_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8723d_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8723D BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:391"
|
||||
|
||||
- name: "rtl8761a_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8761a_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8761A BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:393"
|
||||
|
||||
- name: "rtl8761bu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8761bu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8761BU BT firmware for Wiimote passthrough (most common USB dongle)"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:395"
|
||||
|
||||
- name: "rtl8821a_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8821a_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8821A BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:397"
|
||||
|
||||
- name: "rtl8821c_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8821c_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8821C BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:399"
|
||||
|
||||
- name: "rtl8822b_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8822b_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8822B BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:403"
|
||||
|
||||
- name: "rtl8822cu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8822cu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8822CU BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:401"
|
||||
|
||||
- name: "rtl8851bu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8851bu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8851BU BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:405"
|
||||
|
||||
- name: "rtl8852au_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852au_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852AU BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:407"
|
||||
|
||||
- name: "rtl8852bu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852bu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852BU BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:409"
|
||||
|
||||
- name: "rtl8852cu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852cu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852CU BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:411"
|
||||
|
||||
- name: "rtl8852btu_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8852btu_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8852BT/8852BE-VT BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:413"
|
||||
|
||||
- name: "rtl8922au_fw.bin"
|
||||
path: "Load/Firmware/rtl_bt/rtl8922au_fw.bin"
|
||||
required: false
|
||||
mode: standalone
|
||||
note: "Realtek 8922AU BT firmware for Wiimote passthrough"
|
||||
source_ref: "RealtekFirmwareLoader.cpp:415"
|
||||
|
||||
notes:
|
||||
hle_available: true
|
||||
hle_note: >
|
||||
@@ -184,3 +296,10 @@ notes:
|
||||
Wii NAND content (channels, saves, system menu) is managed by Dolphin internally.
|
||||
Users can import a BootMii NAND backup (nand.bin + optional keys.bin) to populate it.
|
||||
Most Wii games do not require a real NAND dump.
|
||||
bt_passthrough_note: >
|
||||
Bluetooth passthrough allows connecting real Wiimotes via USB Bluetooth adapters.
|
||||
Realtek chipsets (very common) require firmware files in Load/Firmware/rtl_bt/.
|
||||
Dolphin can auto-download these from kernel-firmware/linux-firmware on GitLab.
|
||||
15 device families supported (8723A/B/D, 8761A/BU, 8821A/C, 8822B/CU, 8851BU,
|
||||
8852AU/BU/CU/BTU, 8922AU). Each needs _fw.bin (required) + _config.bin (optional).
|
||||
ref: RealtekFirmwareLoader.cpp:75-179 (device IDs), 382-420 (firmware names)
|
||||
|
||||
@@ -1,25 +1,37 @@
|
||||
emulator: DOSBox-core
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/libretro/dosbox-core"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://github.com/dosbox-staging/dosbox-staging"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "SVN"
|
||||
display_name: "DOS (DOSBox-core)"
|
||||
cores: [dosbox_core]
|
||||
systems: [dos]
|
||||
verification: sha1
|
||||
notes: >
|
||||
notes: |
|
||||
No BIOS required. MT-32 and SoundFont support is optional for MIDI music.
|
||||
Unlike DOSBox Pure, this core expects MT-32 ROMs with exact filenames
|
||||
directly in the system directory (no recursive scan, no ZIP support).
|
||||
The mt32.romdir config option is set to the system directory by the
|
||||
libretro frontend. CM-32L is the default emulated hardware type.
|
||||
FluidSynth support reads .sf2/.sf3/.dls/.gig from system/soundfonts/.
|
||||
BASSMIDI support reads .sf2/.sfz from system/soundfonts/ but also
|
||||
requires the BASS and BASSMIDI shared libraries (downloaded separately
|
||||
from https://www.un4seen.com) placed in the system directory.
|
||||
Uses bundled MUNT (mt32emu) for MT-32 emulation, bundled FluidSynth
|
||||
for SF2 playback. BASSMIDI is optional and loaded at runtime via dlopen.
|
||||
The .info file declares firmware_count=10 (4 ROMs + 6 BASS libs).
|
||||
|
||||
Libretro mode:
|
||||
MT-32 ROMs loaded by exact filename from system directory.
|
||||
mt32.romdir = system_dir (libretro.cpp:652). CM-32L is default type.
|
||||
ref: src/gui/midi_mt32.cpp:35,51-66
|
||||
FluidSynth reads .sf2/.sf3/.dls/.gig from system/soundfonts/.
|
||||
ref: libretro/src/libretro.cpp:1086-1097
|
||||
BASSMIDI reads .sf2/.sfz from system/soundfonts/, requires BASS +
|
||||
BASSMIDI shared libs in system dir (dlopen'd at runtime).
|
||||
ref: libretro/src/midi_bassmidi.cpp:232-254
|
||||
.info declares firmware_count=10 (4 ROMs + 6 BASS libs).
|
||||
|
||||
Standalone mode (DOSBox Staging):
|
||||
MT-32 ROMs identified by SHA1 hash (MUNT), not filename. Any file in
|
||||
mt32-roms/ dir scanned and matched. Split ROM pairs supported (_a+_b).
|
||||
ref: dosbox-staging src/midi/mt32.cpp:109-148 (ROM defs), 470-484 (dir scan)
|
||||
Default dir: config_dir/mt32-roms/ (dosbox.h:173)
|
||||
Models: MT-32 v1.04-1.07, BlueRidge, v2.03-2.07, CM-32L v1.00-1.02, CM-32LN v1.00
|
||||
Sound Canvas (SC-55/SC-155/SC-88) emulation with soundcanvas-roms/ dir.
|
||||
ref: src/midi/soundcanvas.cpp, dosbox.h:174
|
||||
SoundFonts in config_dir/soundfonts/ (dosbox.h:175)
|
||||
ref: src/midi/fluidsynth.cpp:68-69,211
|
||||
|
||||
files:
|
||||
# -- MT-32 Control ROM --
|
||||
@@ -128,6 +140,130 @@ files:
|
||||
source_ref: "midi_mt32.cpp:64, dosbox_core_libretro.info:firmware3"
|
||||
notes: "pairs with MT-32 v2.x or CM-32L control ROMs (md5: 08cdcfa0ed93e9cb16afa76e6ac5f0a4)"
|
||||
|
||||
# -- CM-32LN / CM-500 / LAPC-N Control ROM (standalone) --
|
||||
# Supported by MUNT (ROMInfo.cpp:77) but dosbox-core libretro only loads
|
||||
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM by exact name. Standalone DOSBox
|
||||
# Staging identifies this ROM by SHA1 hash scan.
|
||||
|
||||
- name: "CM32LN_CONTROL.ROM"
|
||||
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:77, dosbox-staging src/midi/mt32.cpp:145,242"
|
||||
|
||||
# -- Split ROM pairs (standalone mode) --
|
||||
# MUNT supports split Control ROMs (_a + _b, 32KB each, interleaved) and
|
||||
# split PCM ROMs (_l + _h, half-size each, appended).
|
||||
# Only useful in standalone mode with SHA1 scan. Libretro mode needs full ROMs.
|
||||
# ref: ROMInfo.cpp:56-70 (control splits), 79-84 (PCM splits)
|
||||
|
||||
- name: "MT-32 Control v1.04 half A"
|
||||
description: "MT-32 Control v1.04 split (Mux0)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "9cd4858014c4e8a9dff96053f784bfaac1092a2e"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:56"
|
||||
|
||||
- name: "MT-32 Control v1.04 half B"
|
||||
description: "MT-32 Control v1.04 split (Mux1)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "fe8db469b5bfeb37edb269fd47e3ce6d91014652"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:57"
|
||||
|
||||
- name: "MT-32 Control v1.05 half A"
|
||||
description: "MT-32 Control v1.05 split (Mux0)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "57a09d80d2f7ca5b9734edbe9645e6e700f83701"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:59"
|
||||
|
||||
- name: "MT-32 Control v1.05 half B"
|
||||
description: "MT-32 Control v1.05 split (Mux1)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "52e3c6666db9ef962591a8ee99be0cde17f3a6b6"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:60"
|
||||
|
||||
- name: "MT-32 Control v1.06 half A"
|
||||
description: "MT-32 Control v1.06 split (Mux0)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "cc83bf23cee533097fb4c7e2c116e43b50ebacc8"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:62"
|
||||
|
||||
- name: "MT-32 Control v1.06 half B"
|
||||
description: "MT-32 Control v1.06 split (Mux1)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "bf4f15666bc46679579498386704893b630c1171"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:63"
|
||||
|
||||
- name: "MT-32 Control v1.07 half A"
|
||||
description: "MT-32 Control v1.07 split (Mux0)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "13f06b38f0d9e0fc050b6503ab777bb938603260"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:65"
|
||||
|
||||
- name: "MT-32 Control v1.07 half B"
|
||||
description: "MT-32 Control v1.07 split (Mux1)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "c55e165487d71fa88bd8c5e9c083bc456c1a89aa"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:66"
|
||||
|
||||
- name: "MT-32 Control BlueRidge half A"
|
||||
description: "MT-32 Control BlueRidge split (Mux0)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "11a6ae5d8b6ee328b371af7f1e40b82125aa6b4d"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:68"
|
||||
|
||||
- name: "MT-32 Control BlueRidge half B"
|
||||
description: "MT-32 Control BlueRidge split (Mux1)"
|
||||
required: false
|
||||
size: 32768
|
||||
sha1: "e0934320d7cbb5edfaa29e0d01ae835ef620085b"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:69"
|
||||
|
||||
- name: "MT-32 PCM ROM low half"
|
||||
description: "MT-32 PCM ROM first half (262144 bytes)"
|
||||
required: false
|
||||
size: 262144
|
||||
sha1: "3a1e19b0cd4036623fd1d1d11f5f25995585962b"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:79"
|
||||
|
||||
- name: "MT-32 PCM ROM high half"
|
||||
description: "MT-32 PCM ROM second half (262144 bytes)"
|
||||
required: false
|
||||
size: 262144
|
||||
sha1: "2cadb99d21a6a4a6f5b61b6218d16e9b43f61d01"
|
||||
mode: standalone
|
||||
source_ref: "ROMInfo.cpp:80"
|
||||
|
||||
- name: "CM-32L PCM ROM high half"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM upper half (524288 bytes)"
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "3ad889fde5db5b6437cbc2eb6e305312fec3df93"
|
||||
mode: standalone
|
||||
note: "lower half is identical to full MT-32 PCM ROM"
|
||||
source_ref: "ROMInfo.cpp:84"
|
||||
|
||||
# -- BASS shared libraries (BASSMIDI driver) --
|
||||
# Downloaded from https://www.un4seen.com, placed in system directory.
|
||||
# Loaded at runtime via dlopen. Not redistributable ROMs.
|
||||
|
||||
@@ -1,24 +1,40 @@
|
||||
emulator: DOSBox Pure
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/libretro/dosbox-pure"
|
||||
upstream: "https://github.com/schellingb/dosbox-pure"
|
||||
logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure/main/images/logo.png"
|
||||
profiled_date: "2026-03-18"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "0.9.9"
|
||||
display_name: "DOS (DOSBox-Pure)"
|
||||
cores: [dosbox_pure]
|
||||
systems: [dos]
|
||||
verification: sha1
|
||||
notes: >
|
||||
notes: |
|
||||
No BIOS required. MT-32 and SoundFont support is optional for MIDI music.
|
||||
The core scans the RetroArch system directory (and subdirectories) for files
|
||||
ending in _CONTROL.ROM (MT-32/CM-32L) and .SF2/.SF3 (General MIDI SoundFont).
|
||||
MT-32 requires a matched pair: *_CONTROL.ROM + *_PCM.ROM in the same directory.
|
||||
Files can also be placed inside the game content as DOSBOX.SF2 or MT32_CONTROL.ROM
|
||||
+ MT32_PCM.ROM on the mounted C: drive. ZIP archives containing both ROMs are
|
||||
also supported (identified by file size, not name). A cache file
|
||||
DOSBoxPureMidiCache.txt is written to system dir when scan takes >2s.
|
||||
Uses bundled MUNT (mt32emu) for MT-32 emulation, TinySoundFont for SF2 playback.
|
||||
No firmware entries in the .info file - all MIDI files are optional enhancements.
|
||||
|
||||
ROM scanning (both modes):
|
||||
Recursive scan of system directory for *_CONTROL.ROM and *.SF2/*.SF3.
|
||||
ref: dosbox_pure_libretro.cpp:1367-1378
|
||||
MT-32 requires matched pair: *_CONTROL.ROM + *_PCM.ROM (PCM name derived
|
||||
from CONTROL name by replacing CONTROL with PCM, preserving case).
|
||||
ref: dosbox_pure_libretro.cpp:182-199
|
||||
ZIP archives also supported — scanned for files by size (65536/131072 =
|
||||
control, 524288/1048576 = PCM), not by name.
|
||||
ref: midi_mt32.h:160-166
|
||||
Files can also be on mounted C: drive (DOSBOX.SF2, MT32_CONTROL.ROM).
|
||||
ref: dosbox_pure_libretro.cpp:2760-2762
|
||||
Cache file DOSBoxPureMidiCache.txt written when scan >2s.
|
||||
ref: dosbox_pure_libretro.cpp:1393-1413
|
||||
|
||||
Bundled MUNT (header-only mt32emu.h) for MT-32 emulation.
|
||||
SHA1-based ROM identification (mt32emu.h:5112-5127,5185).
|
||||
13 full control ROMs + 2 PCM ROMs supported (no split ROMs in this MUNT).
|
||||
Includes MT-32 v2.03 (not in dosbox-core's MUNT).
|
||||
TinySoundFont (tsf.h) for SF2/SF3 playback.
|
||||
No firmware entries in .info file — all MIDI files optional.
|
||||
|
||||
DBP_STANDALONE build mode exists (same MIDI logic, different I/O layer).
|
||||
ref: dosbox_pure_libretro.cpp:81,1558,2270
|
||||
|
||||
files:
|
||||
# -- MT-32 Control ROMs (64 KB) --
|
||||
@@ -28,35 +44,35 @@ files:
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_04"
|
||||
source_ref: "mt32emu.h:5112,5129"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.05"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_05"
|
||||
source_ref: "mt32emu.h:5113,5130"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.06"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_06"
|
||||
source_ref: "mt32emu.h:5114,5131"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.07"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_07"
|
||||
source_ref: "mt32emu.h:5115,5132"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control BlueRidge"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_BLUER"
|
||||
source_ref: "mt32emu.h:5116,5133"
|
||||
|
||||
# -- MT-32 v2.x Control ROMs (128 KB) --
|
||||
|
||||
@@ -65,28 +81,28 @@ files:
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_03"
|
||||
source_ref: "mt32emu.h:5118,5135"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.04"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_04"
|
||||
source_ref: "mt32emu.h:5119,5136"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.06"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_06"
|
||||
source_ref: "mt32emu.h:5120,5137"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.07"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_07"
|
||||
source_ref: "mt32emu.h:5121,5138"
|
||||
|
||||
# -- CM-32L / LAPC-I Control ROMs (64 KB) --
|
||||
|
||||
@@ -95,14 +111,14 @@ files:
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||
source_ref: "mt32emu.h:CTRL_CM32L_V1_00"
|
||||
source_ref: "mt32emu.h:5122,5139"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.02"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||
source_ref: "mt32emu.h:CTRL_CM32L_V1_02"
|
||||
source_ref: "mt32emu.h:5123,5140"
|
||||
|
||||
# -- CM-32LN / CM-500 / LAPC-N Control ROM (64 KB) --
|
||||
|
||||
@@ -111,7 +127,7 @@ files:
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
||||
source_ref: "mt32emu.h:CTRL_CM32LN_V1_00"
|
||||
source_ref: "mt32emu.h:5124,5141"
|
||||
|
||||
# -- PCM ROMs --
|
||||
|
||||
@@ -120,7 +136,7 @@ files:
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
source_ref: "mt32emu.h:PCM_MT32"
|
||||
source_ref: "mt32emu.h:5126,5143"
|
||||
notes: "pairs with any MT-32 v1.x control ROM"
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
@@ -128,7 +144,7 @@ files:
|
||||
required: false
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
source_ref: "mt32emu.h:PCM_CM32L"
|
||||
source_ref: "mt32emu.h:5127,5144"
|
||||
notes: "pairs with MT-32 v2.x or CM-32L control ROMs. Lower half aliases MT-32 PCM."
|
||||
|
||||
# -- General MIDI SoundFont --
|
||||
|
||||
@@ -1,8 +1,27 @@
|
||||
emulator: "dosbox_svn"
|
||||
type: alias
|
||||
alias_of: "dosbox_core"
|
||||
profiled_date: "2026-03-18"
|
||||
emulator: DOSBox-SVN
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-svn"
|
||||
upstream: "https://sourceforge.net/projects/dosbox/"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "SVN"
|
||||
display_name: "DOS (DOSBox-SVN)"
|
||||
note: "This core uses the same BIOS/firmware as dosbox_core. See emulators/dosbox_core.yml for details."
|
||||
cores: [dosbox_svn]
|
||||
systems: [dos]
|
||||
notes: |
|
||||
DOSBox-SVN is the same codebase as dosbox_svn_ce but builds with a fake
|
||||
SDL shim (WITH_FAKE_SDL=1) instead of real SDL, for broader platform compat.
|
||||
ref: libretro/Makefile.libretro, libretro/fakesdl/
|
||||
|
||||
No MT-32 emulation — no MUNT bundled, no mt32emu, no FluidSynth, no BASS.
|
||||
The src/midi/munt directory referenced in Makefile.common does not exist.
|
||||
MIDI output is hardware-only via fake SDL stubs.
|
||||
ref: src/gui/midi.cpp
|
||||
|
||||
system_directory is read (libretro.cpp:1399) but only logged, never used
|
||||
to load any files.
|
||||
|
||||
NOT an alias of dosbox_core — completely different MIDI capabilities.
|
||||
dosbox_core has MUNT + FluidSynth + BASSMIDI. This core has none.
|
||||
|
||||
files: []
|
||||
# No BIOS, firmware, ROMs, or system files of any kind.
|
||||
|
||||
@@ -1,8 +1,29 @@
|
||||
emulator: "dosbox_svn_ce"
|
||||
type: alias
|
||||
alias_of: "dosbox_core"
|
||||
profiled_date: "2026-03-18"
|
||||
emulator: DOSBox-SVN CE
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-svn"
|
||||
upstream: "https://sourceforge.net/projects/dosbox/"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "SVN CE"
|
||||
display_name: "DOS (DOSBox-SVN CE)"
|
||||
note: "This core uses the same BIOS/firmware as dosbox_core. See emulators/dosbox_core.yml for details."
|
||||
cores: [dosbox_svn_ce]
|
||||
systems: [dos]
|
||||
notes: |
|
||||
DOSBox-SVN CE (Community Edition) is the same codebase as dosbox_svn but
|
||||
builds against real SDL 1.2 + SDL_net instead of the fake SDL shim.
|
||||
ref: libretro/Makefile.libretro (WITH_FAKE_SDL flag)
|
||||
|
||||
No MT-32 emulation — no MUNT bundled, no mt32emu, no FluidSynth, no BASS.
|
||||
The src/midi/munt directory referenced in Makefile.common does not exist.
|
||||
MIDI output is hardware-only (ALSA, CoreAudio, CoreMIDI, Win32, OSS).
|
||||
ref: src/gui/midi.cpp, src/gui/midi_alsa.h, midi_coreaudio.h, etc.
|
||||
|
||||
system_directory is read (libretro.cpp:1399) but only logged, never used
|
||||
to load any files.
|
||||
|
||||
NOT an alias of dosbox_core — completely different MIDI capabilities.
|
||||
dosbox_core has MUNT + FluidSynth + BASSMIDI. This core has none.
|
||||
|
||||
Requires libsdl1.2 and libsdl-net1.2 at runtime (.info notes).
|
||||
|
||||
files: []
|
||||
# No BIOS, firmware, ROMs, or system files of any kind.
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
emulator: "doukutsu-rs"
|
||||
type: libretro
|
||||
source: "https://github.com/DrGlaucous/doukutsu-rs-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
emulator: doukutsu-rs
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/DrGlaucous/doukutsu-rs-nm"
|
||||
upstream: "https://github.com/doukutsu-rs/doukutsu-rs"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "1.2.0 - 0.101.0"
|
||||
display_name: "Cave Story (drs)"
|
||||
cores:
|
||||
|
||||
@@ -1,20 +1,36 @@
|
||||
emulator: DuckStation
|
||||
type: standalone
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/stenzek/duckstation"
|
||||
logo: "https://raw.githubusercontent.com/stenzek/duckstation/master/data/resources/images/duck.png"
|
||||
profiled_date: "2026-03-18"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "v0.1"
|
||||
display_name: "Sony - PlayStation (DuckStation)"
|
||||
cores: [duckstation]
|
||||
systems: [sony-playstation]
|
||||
bios_size: 524288 # 0x80000 (512 KB), also accepts PS2 (4 MB) and PS3 BIOS
|
||||
bios_size: 524288 # 0x80000 (512 KB), also accepts PS2 (4 MB) and PS3 (0x3E66F0)
|
||||
verification: md5
|
||||
notes: >
|
||||
DuckStation auto-detects BIOS by MD5 hash. It accepts PS1, PS2 and PS3 BIOS images
|
||||
(only the first 512 KB are mapped). Each image has a priority score - lower is better.
|
||||
Images with region_check=true enforce region matching for disc booting.
|
||||
PS2 BIOS images are deprioritized (priority >= 100) due to requiring dynamic fast boot patches.
|
||||
Late PAL revisions are further deprioritized due to additional regional checks.
|
||||
OpenBIOS is detected by signature at offset 0x78, not by hash.
|
||||
notes: |
|
||||
DuckStation auto-detects BIOS by MD5 hash from a flat scan of the BIOS directory.
|
||||
ref: src/core/bios.cpp:459-481 (FindBIOSImagesInDirectory — scans all files by size)
|
||||
ref: src/core/bios.cpp:208 (MD5Digest::HashData identification)
|
||||
|
||||
Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images.
|
||||
ref: src/core/bios.h:24-26 (BIOS_SIZE, BIOS_SIZE_PS2, BIOS_SIZE_PS3)
|
||||
Only the first 512 KB are mapped (bios.cpp:212).
|
||||
|
||||
105 known BIOS entries (24 PS1 + 80 PS2 + 1 KDL-22PX300) identified by MD5.
|
||||
ref: src/core/bios.cpp:34-139 (s_image_info_by_hash)
|
||||
Each image has: region, region_check, fast_boot_patch type, priority score.
|
||||
Lower priority = preferred. PS2 deprioritized (>= 100) for dynamic fast boot.
|
||||
Late PAL deprioritized (>= 150) due to additional regional checks.
|
||||
OpenBIOS detected by signature at offset 0x78, not by hash.
|
||||
ref: src/core/bios.cpp:142-147
|
||||
|
||||
Standalone: BIOS dir = EmuFolders::Bios (configurable, default bios/).
|
||||
ref: src/core/bios.cpp:375,380
|
||||
Libretro: BIOS dir = RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (flat).
|
||||
The libretro core was removed by the author (license change to non-commercial).
|
||||
The .info file and buildbot builds still exist from community forks.
|
||||
|
||||
files:
|
||||
# -- PS1 BIOS images (priority <= 20, preferred) --
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
emulator: EasyRPG Player
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/libretro/easyrpg-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://github.com/EasyRPG/Player"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "0.8.1.0"
|
||||
display_name: "RPG Maker 2000/2003 (EasyRPG)"
|
||||
cores:
|
||||
|
||||
@@ -1,25 +1,34 @@
|
||||
emulator: ECWolf
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/libretro/ecwolf"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: ""
|
||||
display_name: "Wolfenstein 3D (ECWolf)"
|
||||
upstream: "https://bitbucket.org/ecwolf/ecwolf"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: "1.4.1"
|
||||
display_name: "Wolfenstein 3D (ECWolf)"
|
||||
cores: [ecwolf]
|
||||
systems: [wolfenstein3d]
|
||||
verification: md5
|
||||
notes: >
|
||||
Wolfenstein 3D source port. Plays Wolf3D (wl6/wl1), Spear of Destiny (sod/sdm),
|
||||
Super 3D Noah's Ark (n3d), and community pk3 mods. The core requires ecwolf.pk3
|
||||
in the system directory - this is the engine data package built from wadsrc/static/
|
||||
containing IWADINFO definitions, palettes, sprites, map configs, and lump remappers.
|
||||
Game data files (vswap, gamemaps, vgagraph, audiot) are loaded from the content
|
||||
directory, not the system directory. The core auto-detects the game variant by
|
||||
scanning lump contents against IWADINFO MustContain rules. Spear of Destiny
|
||||
mission packs (sd2/sd3) and Mac Wolfenstein variants are also supported.
|
||||
Blake Stone and Rise of the Triad support is flagged as Preview.
|
||||
The SelectGame path searches: content directory, system directory, BaseDataPaths
|
||||
config, then platform-specific paths (Steam, GOG installs on desktop).
|
||||
notes: |
|
||||
Wolfenstein 3D source port by Braden Obrzut. Plays Wolf3D (wl6/wl1),
|
||||
Spear of Destiny (sod/sdm), Super 3D Noah's Ark (n3d), and community pk3 mods.
|
||||
|
||||
Requires ecwolf.pk3 — engine data package built from wadsrc/static/.
|
||||
Contains IWADINFO (game detection rules), palettes, sprites, map configs,
|
||||
DECORATE actor definitions, MAPINFO, SNDINFO, fonts, and localization strings.
|
||||
Without this file: "Could not open ecwolf.pk3!" fatal error.
|
||||
ref: version.h:12 (MAIN_PK3), wl_iwad.cpp:642-657 (load + fatal)
|
||||
|
||||
Libretro: ecwolf.pk3 searched in system_dir.
|
||||
ref: libretro/libretro.cpp:831-832 (sysDir passed to SelectGame)
|
||||
|
||||
Standalone: ecwolf.pk3 searched in progdir (binary directory).
|
||||
ref: wl_main.cpp:1289 (progdir passed to SelectGame)
|
||||
Also: INSTALL_PREFIX/share/ecwolf/ on Linux (wl_iwad.cpp:648)
|
||||
|
||||
Game data files (vswap, gamemaps, vgagraph, audiot) loaded from content
|
||||
directory, not system directory. Auto-detects game variant by scanning
|
||||
lump contents against IWADINFO MustContain rules.
|
||||
Blake Stone and Rise of the Triad support flagged as Preview.
|
||||
|
||||
files:
|
||||
- name: "ecwolf.pk3"
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
emulator: EmuSCV
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/wzcwzc/emuscv"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://github.com/wzcwzc/emuscv"
|
||||
profiled_date: "2026-03-19"
|
||||
core_version: ""
|
||||
display_name: "EPOCH/YENO Super Cassette Vision"
|
||||
display_name: "EPOCH/YENO Super Cassette Vision"
|
||||
cores:
|
||||
- emuscv
|
||||
systems:
|
||||
|
||||
@@ -57,10 +57,11 @@ files:
|
||||
- name: "font.bmp"
|
||||
path: "np2kai/font.bmp"
|
||||
required: false
|
||||
aliases: ["FONT.ROM", "font.rom", "FONT.BMP"]
|
||||
note: >
|
||||
PC-98 font bitmap (288 KB). Required for correct Japanese kanji display.
|
||||
The core also accepts FONT.ROM (V98 format). Without this file,
|
||||
only basic ASCII characters render correctly using built-in data.
|
||||
Without this file, only basic ASCII characters render correctly using
|
||||
built-in data.
|
||||
source_ref: "sdl/libretro/libretro.c:1813, font/fontdata.c:11-14"
|
||||
|
||||
# -- Sound BIOS ROM --
|
||||
@@ -115,8 +116,9 @@ files:
|
||||
- name: "2608_rim.wav"
|
||||
path: "np2kai/2608_rim.wav"
|
||||
required: false
|
||||
note: "YM2608 OPNA rhythm sample: rim shot"
|
||||
source_ref: "sound/rhythmc.c:16"
|
||||
aliases: ["2608_RYM.WAV"]
|
||||
note: "YM2608 OPNA rhythm sample: rim shot. fmgen also accepts 2608_RYM.WAV"
|
||||
source_ref: "sound/rhythmc.c:16, sound/fmgen/fmgen_opna.cpp:1413-1443"
|
||||
|
||||
# -- IDE BIOS ROM --
|
||||
# Loaded by ideio.c:1913-1931. Tried in order: ide.rom, d8000.rom,
|
||||
@@ -125,11 +127,10 @@ files:
|
||||
- name: "ide.rom"
|
||||
path: "np2kai/ide.rom"
|
||||
required: false
|
||||
aliases: ["d8000.rom", "bank3.bin", "bios9821.rom"]
|
||||
note: >
|
||||
IDE controller BIOS ROM (8 KB). Required for real IDE BIOS emulation
|
||||
(HDD boot from IDE). The core also checks d8000.rom, bank3.bin,
|
||||
and bios9821.rom as fallback filenames. Without this, a simulated
|
||||
IDE BIOS is used.
|
||||
(HDD boot from IDE). Without this, a simulated IDE BIOS is used.
|
||||
source_ref: "cbus/ideio.c:1913-1931"
|
||||
|
||||
# -- SCSI BIOS ROM --
|
||||
@@ -148,10 +149,10 @@ files:
|
||||
- name: "pci.rom"
|
||||
path: "np2kai/pci.rom"
|
||||
required: false
|
||||
aliases: ["bank0.bin"]
|
||||
note: >
|
||||
PCI BIOS ROM (32 KB). For PC-9821 PCI bus emulation.
|
||||
The core also checks bank0.bin as fallback. Without this,
|
||||
the built-in PCI BIOS simulator is used.
|
||||
Without this, the built-in PCI BIOS simulator is used.
|
||||
source_ref: "io/pcidev.c:360-382"
|
||||
|
||||
# -- GPIB BIOS ROM --
|
||||
|
||||
@@ -89,7 +89,8 @@ files:
|
||||
md5: "fed4d8242cfbed61343d53d48432aced"
|
||||
sha1: "604556b2e62860af18db5a77f2956ebc75450020"
|
||||
source_ref: "libretro.cpp:1209 (LoadBIOS, 'BS-X.bin'), bsx.cpp:1209-1215 (BSX_LoadBIOS)"
|
||||
notes: "Needed for Satellaview (.bs) game support. Core also accepts BS-X.bios as filename. Without this file, BS-X games will fail to load."
|
||||
aliases: ["BS-X.bios"]
|
||||
notes: "Needed for Satellaview (.bs) game support. Without this file, BS-X games will fail to load."
|
||||
|
||||
# -- Sufami Turbo BIOS --
|
||||
# Required by: snes9x, snes9x2010
|
||||
|
||||
Reference in New Issue
Block a user