mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 05:53:23 -05:00
710 lines
34 KiB
YAML
710 lines
34 KiB
YAML
emulator: MesenCE
|
|
type: standalone + libretro
|
|
core_classification: enhanced_fork
|
|
source:
|
|
standalone: "https://github.com/nesdev-org/MesenCE"
|
|
libretro: "https://github.com/libretro/MesenCE"
|
|
upstream: "https://github.com/SourMesen/Mesen2"
|
|
profiled_date: "2026-09-17"
|
|
source_commit:
|
|
standalone: "20f497c9620a7f4e55b7752e1d22734f9d7492fa"
|
|
libretro: "4c4e069f16a8ad6ed79e046046c56d51558c7daf"
|
|
core_version:
|
|
standalone: "2.2.1"
|
|
libretro: "2.0.0"
|
|
display_name: "Multi-System (MesenCE)"
|
|
cores: [mesence, mesen2]
|
|
systems:
|
|
- nintendo-nes
|
|
- nintendo-fds
|
|
- nintendo-snes
|
|
- nintendo-satellaview
|
|
- nintendo-sufami-turbo
|
|
- nintendo-super-game-boy
|
|
- nintendo-gb
|
|
- nintendo-gbc
|
|
- nintendo-gba
|
|
- nec-pc-engine
|
|
- nec-pc-engine-cd
|
|
- nec-supergrafx
|
|
- sega-mastersystem
|
|
- sega-gamegear
|
|
- sega-sg1000
|
|
- coleco-colecovision
|
|
- bandai-wswan
|
|
- bandai-wswanc
|
|
- pocket-challenge-v2
|
|
|
|
notes: |
|
|
MesenCE is the community edition of Mesen2, a multi-system emulator
|
|
covering NES/FDS, SNES (with Satellaview, Sufami Turbo, Super Game Boy),
|
|
GB/GBC/GBA, PC Engine (including CD-ROM and SuperGrafx), SMS/Game Gear/
|
|
SG-1000/ColecoVision and WonderSwan (including Pocket Challenge V2).
|
|
|
|
The libretro port lives in the libretro fork of the same tree: Libretro/
|
|
wraps the core and Makefile.libretro compiles every file under Core/ with
|
|
LIBRETRO defined (Makefile.libretro:165-166,183-184). The fork branched from
|
|
af2342818ca81a93b346146802047760400fc7b1 and does not touch
|
|
Core/Shared/FirmwareHelper.h, so both builds read the same names with the
|
|
same size checks. The buildbot publishes it as mesen2_libretro; the port
|
|
announces library_version 2.0.0 (Libretro/libretro.cpp:2803) while the
|
|
compiled core reports 2.2.1 (Core/Shared/EmuSettings.cpp:165-168).
|
|
|
|
Firmware folder. Standalone reads <home>/Firmware/ (Utilities/FolderUtilities.cpp:81-91).
|
|
The libretro port sets the home folder to the frontend system directory
|
|
and overrides the firmware folder with that same directory
|
|
(Libretro/libretro.cpp:2253-2256), so every firmware sits at the system
|
|
directory root. Satellaview streams and MesenNesDB.txt are read relative
|
|
to the home folder in both builds, which puts them under system/Satellaview/
|
|
and system/MesenNesDB.txt for libretro.
|
|
|
|
Size checks are exact at load time (FirmwareHelper.h AttemptLoadFirmware).
|
|
The standalone UI additionally knows SHA256 values per file
|
|
(UI/Interop/FirmwareTypeExtensions.cs) and warns on mismatch when
|
|
importing through the firmware prompt; a mismatched file can still be
|
|
used. The sha256 values below come from that table. The libretro port
|
|
has no prompt: a MissingFirmware notification reaches no listener, the
|
|
retry in FirmwareHelper fails the same way and the error goes to the OSD
|
|
(Libretro/LibretroMessageManager.h:26-39).
|
|
|
|
SNES DSP-1/1B/2/3/4 and ST010/ST011 firmware is read as the combined
|
|
file first, then as the split pair <name>.program.rom + <name>.data.rom
|
|
(FirmwareHelper.h AttemptLoadDspFirmware). ROM dumps with the firmware
|
|
appended to the game ROM need no external file (LoadDspFirmware embedded
|
|
path, Core/Shared/FirmwareHelper.h:132-135).
|
|
|
|
GB/GBC/SGB boot ROM images are compiled into the core
|
|
(Core/Gameboy/GbBootRom.h:8,49,99); the external files override them.
|
|
Super Game Boy mode falls back to the plain GB core when the SNES-side
|
|
ROM is missing (Core/SNES/BaseCartridge.cpp:698-716). GameboyConfig
|
|
keeps UseSgb2 at true and no core option changes it
|
|
(Core/Shared/SettingTypes.h:433), so the libretro build only ever asks
|
|
for SGB2.sfc and sgb2_boot.bin; SGB1.sfc and sgb_boot.bin are standalone
|
|
reads. The libretro port also offers a "Super Game Boy" subsystem taking
|
|
a GB ROM plus an SNES-side ROM (Libretro/libretro.cpp:1041-1052): the
|
|
second entry is copied into the system directory as SGB1.sfc or SGB2.sfc
|
|
by size for the duration of the load, then removed or restored
|
|
(Libretro/libretro.cpp:2627-2677,2692-2761).
|
|
|
|
WonderSwan boot ROMs are read only when WsConfig.UseBootRom is on
|
|
(Core/WS/WsConsole.cpp:145-150). The libretro port never sets it, so
|
|
those three files are standalone reads.
|
|
|
|
PC Engine CD. For .cue content the libretro port first materialises
|
|
"[BIOS] Super CD-ROM System (Japan) (v3.0).pce" in the system directory
|
|
from syscard3.pce, syscard3.bin, syscard.pce or syscard.bin when the
|
|
canonical file is absent or not 256 KB: a 0x40200 or 0x60200 source is
|
|
read past its 512-byte header, only the first 256 KB are written, and the
|
|
stub is removed after the load (Libretro/libretro.cpp:108-196,2347-2358,2380-2384).
|
|
Then FirmwareHelper reads the canonical name or syscard3.pce at exactly
|
|
256 KB, in both builds.
|
|
|
|
NES game database. The libretro port embeds a 6213-line MesenDB.txt
|
|
(Libretro/libretro.cpp:85-86,592-594) and then reads MesenNesDB.txt from
|
|
the home folder on the first lookup (Core/NES/GameDatabase.cpp:92-103),
|
|
merging its 10668 entries over the embedded ones. Standalone deploys the
|
|
file from the application's Dependencies.zip. Five Satellaview stream
|
|
files ship the same way and are extracted to the home folder at startup;
|
|
user replacements are preserved (UI/Utilities/DependencyHelper.cs:14-67).
|
|
Nothing deploys them for libretro. NES and SNES cheat databases
|
|
(CheatDb.Nes.json, CheatDb.Snes.json) are read directly from the
|
|
embedded archive and never touch the filesystem
|
|
(DependencyHelper.cs GetFileContent, UI/ViewModels/CheatDatabaseViewModel.cs:33).
|
|
|
|
MesenPalette.pal is a libretro read: the mesen_palette core option value
|
|
Custom loads it from the home folder, 192 or 1536 bytes
|
|
(Libretro/libretro.cpp:1178-1204,1304-1306).
|
|
|
|
HdPacks are per-game texture/audio replacements under <home>/HdPacks/
|
|
(system/HdPacks/ for libretro), game content rather than system files.
|
|
|
|
The libretro port lists nes|fds|unf|unif|sfc|smc|gb|gbc|gba|pce|sgx|cue|
|
|
sms|gg|ws|wsc as valid extensions (Libretro/libretro.cpp:2838-2840). The
|
|
load path itself dispatches on the console extension tables, so .bs, .st,
|
|
.col, .sg, .pc2 and .studybox content loads when the frontend passes it.
|
|
|
|
exclusion_note: >-
|
|
The .info declares syscard1.pce, syscard2.pce and gexpress.pce. No code
|
|
path opens those names: the CD firmware loader reads
|
|
"[BIOS] Super CD-ROM System (Japan) (v3.0).pce" or syscard3.pce and the
|
|
Games Express loader reads "[BIOS] Games Express CD Card (Japan).pce" or
|
|
gecard.pce (Core/Shared/FirmwareHelper.h:330-368); the libretro stub
|
|
adds syscard3.bin, syscard.pce and syscard.bin as sources for the Super
|
|
CD-ROM image only (Libretro/libretro.cpp:114).
|
|
|
|
files:
|
|
# -------------------------------------------------------
|
|
# SNES coprocessor firmware
|
|
# -------------------------------------------------------
|
|
- name: "dsp1.rom"
|
|
path: "dsp1.rom"
|
|
standalone_path: "Firmware/dsp1.rom"
|
|
aliases: ["SNES_dsp1.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "91e87d11e1c30d172556bed2211cce2efa94ba595f58c5d264809ef4d363a97b"
|
|
note: "DSP-1 program+data (0x1800+0x800). Tried before the split pair dsp1.program.rom + dsp1.data.rom. Not needed when the game dump embeds the firmware."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:102, Core/Shared/FirmwareHelper.h:59-79,130-152, UI/Interop/FirmwareTypeExtensions.cs:11"
|
|
|
|
- name: "dsp1.program.rom"
|
|
path: "dsp1.program.rom"
|
|
standalone_path: "Firmware/dsp1.program.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 6144
|
|
validation: [size]
|
|
note: "DSP-1 program ROM, read with dsp1.data.rom when dsp1.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:102, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp1.data.rom"
|
|
path: "dsp1.data.rom"
|
|
standalone_path: "Firmware/dsp1.data.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 2048
|
|
validation: [size]
|
|
note: "DSP-1 data ROM, read with dsp1.program.rom when dsp1.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:102, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp1b.rom"
|
|
path: "dsp1b.rom"
|
|
standalone_path: "Firmware/dsp1b.rom"
|
|
aliases: ["SNES_dsp1b.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "d789cb3c36b05c0b23b6c6f23be7aa37c6e78b6ee9ceac8d2d2aa9d8c4d35fa9"
|
|
note: "DSP-1B revision. Tried before the split pair dsp1b.program.rom + dsp1b.data.rom."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:103, Core/Shared/FirmwareHelper.h:59-79, UI/Interop/FirmwareTypeExtensions.cs:12"
|
|
|
|
- name: "dsp1b.program.rom"
|
|
path: "dsp1b.program.rom"
|
|
standalone_path: "Firmware/dsp1b.program.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 6144
|
|
validation: [size]
|
|
note: "DSP-1B program ROM, read with dsp1b.data.rom when dsp1b.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:103, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp1b.data.rom"
|
|
path: "dsp1b.data.rom"
|
|
standalone_path: "Firmware/dsp1b.data.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 2048
|
|
validation: [size]
|
|
note: "DSP-1B data ROM, read with dsp1b.program.rom when dsp1b.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:103, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp2.rom"
|
|
path: "dsp2.rom"
|
|
standalone_path: "Firmware/dsp2.rom"
|
|
aliases: ["SNES_dsp2.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "03ef4ef26c9f701346708cb5d07847b5203cf1b0818bf2930acd34510ffdd717"
|
|
note: "DSP-2 (Dungeon Master). Tried before the split pair dsp2.program.rom + dsp2.data.rom."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:104, Core/Shared/FirmwareHelper.h:59-79, UI/Interop/FirmwareTypeExtensions.cs:13"
|
|
|
|
- name: "dsp2.program.rom"
|
|
path: "dsp2.program.rom"
|
|
standalone_path: "Firmware/dsp2.program.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 6144
|
|
validation: [size]
|
|
note: "DSP-2 program ROM, read with dsp2.data.rom when dsp2.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:104, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp2.data.rom"
|
|
path: "dsp2.data.rom"
|
|
standalone_path: "Firmware/dsp2.data.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 2048
|
|
validation: [size]
|
|
note: "DSP-2 data ROM, read with dsp2.program.rom when dsp2.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:104, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp3.rom"
|
|
path: "dsp3.rom"
|
|
standalone_path: "Firmware/dsp3.rom"
|
|
aliases: ["SNES_dsp3.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "0971b08f396c32e61989d1067dddf8e4b14649d548b2188f7c541b03d7c69e4e"
|
|
note: "DSP-3 (SD Gundam GX). Tried before the split pair dsp3.program.rom + dsp3.data.rom."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:105, Core/Shared/FirmwareHelper.h:59-79, UI/Interop/FirmwareTypeExtensions.cs:14"
|
|
|
|
- name: "dsp3.program.rom"
|
|
path: "dsp3.program.rom"
|
|
standalone_path: "Firmware/dsp3.program.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 6144
|
|
validation: [size]
|
|
note: "DSP-3 program ROM, read with dsp3.data.rom when dsp3.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:105, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp3.data.rom"
|
|
path: "dsp3.data.rom"
|
|
standalone_path: "Firmware/dsp3.data.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 2048
|
|
validation: [size]
|
|
note: "DSP-3 data ROM, read with dsp3.program.rom when dsp3.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:105, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp4.rom"
|
|
path: "dsp4.rom"
|
|
standalone_path: "Firmware/dsp4.rom"
|
|
aliases: ["SNES_dsp4.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "752d03b2d74441e430b7f713001fa241f8bbcfc1a0d890ed4143f174dbe031da"
|
|
note: "DSP-4 (Top Gear 3000). Tried before the split pair dsp4.program.rom + dsp4.data.rom."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:106, Core/Shared/FirmwareHelper.h:59-79, UI/Interop/FirmwareTypeExtensions.cs:15"
|
|
|
|
- name: "dsp4.program.rom"
|
|
path: "dsp4.program.rom"
|
|
standalone_path: "Firmware/dsp4.program.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 6144
|
|
validation: [size]
|
|
note: "DSP-4 program ROM, read with dsp4.data.rom when dsp4.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:106, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "dsp4.data.rom"
|
|
path: "dsp4.data.rom"
|
|
standalone_path: "Firmware/dsp4.data.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 2048
|
|
validation: [size]
|
|
note: "DSP-4 data ROM, read with dsp4.program.rom when dsp4.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:106, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "st010.rom"
|
|
path: "st010.rom"
|
|
standalone_path: "Firmware/st010.rom"
|
|
aliases: ["SNES_st010.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 53248
|
|
validation: [size]
|
|
sha256: "fa9bced838fedea11c6f6ace33d1878024bdd0d02cc9485899d0bdd4015ec24c"
|
|
note: "ST010 (F1 ROC II) program+data (0xC000+0x1000). Tried before the split pair st010.program.rom + st010.data.rom."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:107, Core/Shared/FirmwareHelper.h:59-79, UI/Interop/FirmwareTypeExtensions.cs:17"
|
|
|
|
- name: "st010.program.rom"
|
|
path: "st010.program.rom"
|
|
standalone_path: "Firmware/st010.program.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 49152
|
|
validation: [size]
|
|
note: "ST010 program ROM, read with st010.data.rom when st010.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:107, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "st010.data.rom"
|
|
path: "st010.data.rom"
|
|
standalone_path: "Firmware/st010.data.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 4096
|
|
validation: [size]
|
|
note: "ST010 data ROM, read with st010.program.rom when st010.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:107, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "st011.rom"
|
|
path: "st011.rom"
|
|
standalone_path: "Firmware/st011.rom"
|
|
aliases: ["SNES_st011.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 53248
|
|
validation: [size]
|
|
sha256: "8b2b3f3f3e6e29f4d21d8bc736b400bc988b7d2214ebee15643f01c1fee2f364"
|
|
note: "ST011 (Hayazashi Nidan Morita Shogi) program+data. Tried before the split pair st011.program.rom + st011.data.rom."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:108, Core/Shared/FirmwareHelper.h:59-79, UI/Interop/FirmwareTypeExtensions.cs:18"
|
|
|
|
- name: "st011.program.rom"
|
|
path: "st011.program.rom"
|
|
standalone_path: "Firmware/st011.program.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 49152
|
|
validation: [size]
|
|
note: "ST011 program ROM, read with st011.data.rom when st011.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:108, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "st011.data.rom"
|
|
path: "st011.data.rom"
|
|
standalone_path: "Firmware/st011.data.rom"
|
|
system: nintendo-snes
|
|
required: false
|
|
size: 4096
|
|
validation: [size]
|
|
note: "ST011 data ROM, read with st011.program.rom when st011.rom is absent."
|
|
source_ref: "Core/SNES/Coprocessors/DSP/NecDsp.cpp:108, Core/Shared/FirmwareHelper.h:69-76"
|
|
|
|
- name: "st018.rom"
|
|
path: "st018.rom"
|
|
standalone_path: "Firmware/st018.rom"
|
|
aliases: ["SNES_st018.rom"]
|
|
system: nintendo-snes
|
|
required: true
|
|
size: 163840
|
|
validation: [size]
|
|
sha256: "6df209ab5d2524d1839c038be400ae5eb20dafc14a3771a3239cd9e8acd53806"
|
|
note: "ST018 ARM coprocessor (Hayazashi Nidan Morita Shogi 2). Missing file leaves the coprocessor ROMs uninitialised."
|
|
source_ref: "Core/SNES/Coprocessors/ST018/St018.cpp:31-36, Core/Shared/FirmwareHelper.h:153-171, UI/Interop/FirmwareTypeExtensions.cs:19"
|
|
|
|
- name: "BS-X.bin"
|
|
path: "BS-X.bin"
|
|
standalone_path: "Firmware/BS-X.bin"
|
|
system: nintendo-satellaview
|
|
required: true
|
|
size: 1048576
|
|
min_size: 32768
|
|
validation: [size]
|
|
sha256: "27cfdb99f7e4252bf3740d420147b63c4c88616883bc5e7fe43f2f30bf8c8cbb,a49827b45ff9ac9cf5b4658190e1428e59251bc82d8a63d8e9e0f71e439f008f,3ce321496edc5d77038de2034eb3fb354d7724afd0bc7fd0319f3eb5d57b984d,77d94d64d745014bf8b51280a4204056cdeb9d41ea30eae80dbc006675bebef8"
|
|
note: "BS-X application cartridge ROM, mandatory for .bs Satellaview files. Core accepts any file of 32 KB or more; the known dumps are 1 MB (Japan/English, with and without DRM)."
|
|
source_ref: "Core/SNES/BaseCartridge.cpp:60-64, Core/Shared/FirmwareHelper.h:81-92,172-188, UI/Interop/FirmwareTypeExtensions.cs:23-31"
|
|
|
|
- name: "SufamiTurbo.sfc"
|
|
path: "SufamiTurbo.sfc"
|
|
standalone_path: "Firmware/SufamiTurbo.sfc"
|
|
aliases: ["STBIOS.bin"]
|
|
system: nintendo-sufami-turbo
|
|
required: true
|
|
size: 262144
|
|
validation: [size]
|
|
sha256: "edacb453da14f825f05d1134d6035f4bf034e55f7cfb97c70c4ee107eabc7342"
|
|
note: "Sufami Turbo base cartridge BIOS, mandatory for .st files."
|
|
source_ref: "Core/SNES/Coprocessors/SufamiTurbo/SufamiTurbo.h:39-44, Core/Shared/FirmwareHelper.h:189-207, UI/Interop/FirmwareTypeExtensions.cs:21"
|
|
|
|
- name: "SGB1.sfc"
|
|
standalone_path: "Firmware/SGB1.sfc"
|
|
mode: standalone
|
|
system: nintendo-super-game-boy
|
|
required: false
|
|
size: 262144
|
|
validation: [size]
|
|
sha256: "bba9c269273bedb9b38bd5eb23bfaa6e509b8decc7cb80bb5513905af04f4ceb,c6c4daab5c899b69900c460787de6089edabe94b760f96d9f583d30cc0a5bb30,a75160f7b89b1f0e20fd2f6441bb86285c7378db5035ef6885485eaff6059376"
|
|
note: "Super Game Boy SNES-side ROM (Rev 0/1/2), read when the UseSgb2 setting is off. Without it, GB games run on the plain GB core instead of SGB mode. The libretro build keeps UseSgb2 on and never opens this name."
|
|
source_ref: "Core/SNES/BaseCartridge.cpp:698-716, Core/Shared/FirmwareHelper.h:208-228, Core/Shared/SettingTypes.h:433, UI/Interop/FirmwareTypeExtensions.cs:40-47"
|
|
|
|
- name: "SGB2.sfc"
|
|
path: "SGB2.sfc"
|
|
standalone_path: "Firmware/SGB2.sfc"
|
|
system: nintendo-super-game-boy
|
|
required: false
|
|
size: 524288
|
|
validation: [size]
|
|
sha256: "c172498a23d1176672931bab33b629c7d28f914a43dca9e540b8af1b37ccf2c6"
|
|
note: "Super Game Boy 2 SNES-side ROM, read when the UseSgb2 setting is on (the default, and the only state of the libretro build). Without it, GB games run on the plain GB core instead of SGB mode."
|
|
source_ref: "Core/SNES/BaseCartridge.cpp:698-716, Core/Shared/FirmwareHelper.h:208-228, Core/Shared/SettingTypes.h:433, UI/Interop/FirmwareTypeExtensions.cs:49"
|
|
|
|
# -------------------------------------------------------
|
|
# Game Boy boot ROMs (embedded copies used when absent)
|
|
# -------------------------------------------------------
|
|
- name: "dmg_boot.bin"
|
|
path: "dmg_boot.bin"
|
|
standalone_path: "Firmware/dmg_boot.bin"
|
|
aliases: ["gb_bios.bin"]
|
|
system: nintendo-gb
|
|
required: false
|
|
size: 256
|
|
validation: [size]
|
|
sha256: "cf053eccb4ccafff9e67339d4e78e98dce7d1ed59be819d2a1ba2232c6fce1c7,26e71cf01e301e5dc40e987cd2ecbf6d0276245890ac829db2a25323da86818e"
|
|
note: "DMG boot ROM override. An embedded copy is used when the file is absent."
|
|
source_ref: "Core/Shared/FirmwareHelper.h:229-271, Core/Gameboy/Gameboy.cpp:102-110, Core/Gameboy/GbBootRom.h:8, UI/Interop/FirmwareTypeExtensions.cs:33"
|
|
|
|
- name: "cgb_boot.bin"
|
|
path: "cgb_boot.bin"
|
|
standalone_path: "Firmware/cgb_boot.bin"
|
|
aliases: ["gbc_bios.bin"]
|
|
system: nintendo-gbc
|
|
required: false
|
|
size: 2304
|
|
validation: [size]
|
|
sha256: "b4f2e416a35eef52cba161b159c7c8523a92594facb924b3ede0d722867c50c7,3a307a41689bee99a9a32ea021bf45136906c86b2e4f06c806738398e4f92e45"
|
|
note: "GBC boot ROM override. An embedded copy is used when the file is absent."
|
|
source_ref: "Core/Shared/FirmwareHelper.h:229-271, Core/Gameboy/GbBootRom.h:99, UI/Interop/FirmwareTypeExtensions.cs:34"
|
|
|
|
- name: "sgb_boot.bin"
|
|
standalone_path: "Firmware/sgb_boot.bin"
|
|
mode: standalone
|
|
aliases: ["sgb_bios.bin"]
|
|
system: nintendo-super-game-boy
|
|
required: false
|
|
size: 256
|
|
validation: [size]
|
|
sha256: "0e4ddff32fc9d1eeaae812a157dd246459b00c9e14f2f61751f661f32361e360"
|
|
note: "SGB1 GB-side boot ROM override, read when the UseSgb2 setting is off. An embedded copy is used when the file is absent. The libretro build keeps UseSgb2 on and never opens this name."
|
|
source_ref: "Core/Shared/FirmwareHelper.h:229-271, Core/Gameboy/Gameboy.cpp:94-97, Core/Gameboy/GbBootRom.h:49, UI/Interop/FirmwareTypeExtensions.cs:37"
|
|
|
|
- name: "sgb2_boot.bin"
|
|
path: "sgb2_boot.bin"
|
|
standalone_path: "Firmware/sgb2_boot.bin"
|
|
aliases: ["sgb_bios.bin"]
|
|
system: nintendo-super-game-boy
|
|
required: false
|
|
size: 256
|
|
validation: [size]
|
|
sha256: "fd243c4fb27008986316ce3df29e9cfbcdc0cd52704970555a8bb76edbec3988"
|
|
note: "SGB2 GB-side boot ROM override, read when the UseSgb2 setting is on. An embedded copy is used when the file is absent."
|
|
source_ref: "Core/Shared/FirmwareHelper.h:229-271, Core/Gameboy/Gameboy.cpp:94-97, Core/Gameboy/GbBootRom.h:49, UI/Interop/FirmwareTypeExtensions.cs:38"
|
|
|
|
# -------------------------------------------------------
|
|
# Game Boy Advance
|
|
# -------------------------------------------------------
|
|
- name: "gba_bios.bin"
|
|
path: "gba_bios.bin"
|
|
standalone_path: "Firmware/gba_bios.bin"
|
|
system: nintendo-gba
|
|
required: true
|
|
size: 16384
|
|
validation: [size]
|
|
sha256: "fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570"
|
|
note: "GBA BIOS. When missing, the boot ROM region is zero-filled and games calling BIOS routines fail; there is no HLE replacement."
|
|
source_ref: "Core/GBA/GbaConsole.cpp:76-79, Core/Shared/FirmwareHelper.h:272-291, UI/Interop/FirmwareTypeExtensions.cs:35"
|
|
|
|
# -------------------------------------------------------
|
|
# NES / Famicom
|
|
# -------------------------------------------------------
|
|
- name: "disksys.rom"
|
|
path: "disksys.rom"
|
|
standalone_path: "Firmware/disksys.rom"
|
|
aliases: ["FdsBios.bin"]
|
|
system: nintendo-fds
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "99c18490ed9002d9c6d999b9d8d15be5c051bdfa7cc7e73318053c9a994b0178,a0a9d57cbace21bf9c85c2b85e86656317f0768d7772acc90c7411ab1dbff2bf"
|
|
note: "FDS BIOS. When missing, the BIOS region is zero-filled and disk games cannot boot."
|
|
source_ref: "Core/NES/Mappers/FDS/Fds.cpp:21-28, Core/Shared/FirmwareHelper.h:292-310, UI/Interop/FirmwareTypeExtensions.cs:51-57"
|
|
|
|
- name: "StudyBox.bin"
|
|
path: "StudyBox.bin"
|
|
standalone_path: "Firmware/StudyBox.bin"
|
|
system: nintendo-nes
|
|
required: false
|
|
size: 262144
|
|
validation: [size]
|
|
sha256: "365f84c86f7f7c3aaa2042d78494d41448e998ec5a89ac1b5fecb452951d514c"
|
|
note: "Famicom Study Box BIOS, mandatory for .studybox tape dumps only. When missing, the BIOS region is zero-filled."
|
|
source_ref: "Core/NES/Mappers/StudyBox.h:64-70, Core/Shared/FirmwareHelper.h:311-329, UI/Interop/FirmwareTypeExtensions.cs:59"
|
|
|
|
- name: "ymf288_adpcm_rom.bin"
|
|
path: "ymf288_adpcm_rom.bin"
|
|
standalone_path: "Firmware/ymf288_adpcm_rom.bin"
|
|
system: nintendo-nes
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "53afd0fa9c62eda3e2be939e23f3adf48a2af8ad37bb1640261726c5d5adeba8"
|
|
note: "YMF288 ADPCM rhythm ROM for EPSM expansion audio (NES 2.0 header flag). Without it, EPSM sound is incorrect."
|
|
source_ref: "Core/NES/BaseMapper.cpp:764-768, Core/Shared/FirmwareHelper.h:439-456, UI/Interop/FirmwareTypeExtensions.cs:83"
|
|
|
|
- name: "lh5323m1.bin"
|
|
path: "lh5323m1.bin"
|
|
standalone_path: "Firmware/lh5323m1.bin"
|
|
system: nintendo-nes
|
|
required: false
|
|
size: 262144
|
|
note: "Famicom Network System kanji ROM. Read without size validation; a zero-filled 256 KB buffer is used when absent."
|
|
source_ref: "Core/NES/Mappers/Nintendo/FnsMmc1.h:31-36"
|
|
|
|
- name: "MesenNesDB.txt"
|
|
path: "MesenNesDB.txt"
|
|
category: game_data
|
|
system: nintendo-nes
|
|
required: false
|
|
size: 548608
|
|
sha256: "7eee6516f351ccc7db286587917bec415a1d8042ff5ef87c279f38200a3418dd"
|
|
note: "NES game database for mapper and input detection, read from the home folder root on the first lookup. Standalone deploys it from the application's embedded Dependencies.zip; the libretro build starts from a 6213-line embedded copy and merges this file over it when present."
|
|
source_ref: "Core/NES/GameDatabase.cpp:92-103, UI/Utilities/DependencyHelper.cs:14-67, Libretro/libretro.cpp:85-86,592-594"
|
|
|
|
- name: "MesenPalette.pal"
|
|
path: "MesenPalette.pal"
|
|
mode: libretro
|
|
system: nintendo-nes
|
|
required: false
|
|
size: [192, 1536]
|
|
validation: [size]
|
|
note: "NES colour palette read from the home folder when the mesen_palette core option is Custom: 64 RGB triplets, or 512 covering the emphasis combinations. Any other size leaves the default palette in place."
|
|
source_ref: "Libretro/libretro.cpp:1178-1204, Libretro/libretro.cpp:1304-1306"
|
|
|
|
# -------------------------------------------------------
|
|
# PC Engine
|
|
# -------------------------------------------------------
|
|
- name: "[BIOS] Super CD-ROM System (Japan) (v3.0).pce"
|
|
path: "[BIOS] Super CD-ROM System (Japan) (v3.0).pce"
|
|
standalone_path: "Firmware/[BIOS] Super CD-ROM System (Japan) (v3.0).pce"
|
|
aliases: ["syscard3.pce", "syscard3.bin", "syscard.pce", "syscard.bin"]
|
|
system: nec-pc-engine-cd
|
|
required: true
|
|
size: 262144
|
|
validation: [size]
|
|
sha256: "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce"
|
|
note: "Super CD-ROM System card, mandatory for CD games. Load fails without it. Both builds read this name or syscard3.pce at exactly 256 KB; the libretro build first builds the canonical file from syscard3.pce, syscard3.bin, syscard.pce or syscard.bin, skipping a 512-byte header, for the duration of a .cue load."
|
|
source_ref: "Core/PCE/PceConsole.cpp:61-63,151-164, Core/Shared/FirmwareHelper.h:330-349, Libretro/libretro.cpp:108-183,2347-2358, UI/Interop/FirmwareTypeExtensions.cs:61-62"
|
|
|
|
- name: "[BIOS] Games Express CD Card (Japan).pce"
|
|
path: "[BIOS] Games Express CD Card (Japan).pce"
|
|
standalone_path: "Firmware/[BIOS] Games Express CD Card (Japan).pce"
|
|
aliases: ["gecard.pce"]
|
|
system: nec-pc-engine-cd
|
|
required: false
|
|
size: [32768, 16384]
|
|
validation: [size]
|
|
sha256: "4b86bb96a48a4ca8375fc0109631d0b1d64f255a03b01de70594d40788ba6c3d,da173b20694c2b52087b099b8c44e471d3ee08a666c90d4afd997f8e1382add8"
|
|
note: "Games Express CD card, mandatory for Games Express discs (auto-detected by sector signature). Exactly 0x8000 bytes (Blue Version card) or 0x4000 bytes (Green Version card) accepted."
|
|
source_ref: "Core/PCE/PceConsole.cpp:153-160, Core/Shared/FirmwareHelper.h:350-368, UI/Interop/FirmwareTypeExtensions.cs:64-68"
|
|
|
|
# -------------------------------------------------------
|
|
# SMS / Game Gear / ColecoVision
|
|
# -------------------------------------------------------
|
|
- name: "bios.sms"
|
|
path: "bios.sms"
|
|
standalone_path: "Firmware/bios.sms"
|
|
system: sega-mastersystem
|
|
required: false
|
|
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50,1eb16fc06ceaf05651d7cfd69d1713e6ddccc4349a511f6fd17e037d71f9d85b,67846e26764bd862f19179294347f7353a4166b62ac4198a5ec32933b7da486e,cb01de3464797a77b52e82f5f9b05398540df8c1151d31128d49584028589062,6f4e6de10f1d07bda695c629c67457bb0248eeb8ffa0c61a2742b8529274de30,0c08e17b0ecc3967e1094f12841fdc97fdcbbf986e3bf9a06b35b69e7d95e4cd,1a73bc6e1a9973b98432774a1480b3ac1259027a97590d5e67d52745159abbbc,e9eb04ec80ded8658f765c4eca75cdbe23cbc7d8fed73f9c3db7a868dbf649ff,13c0639cc037167f53e6151dbdea013758c3d09a76b064a894bf15c39c0a3897,aaf39841be10f9cd6908a95a7451c3a0c8ac77125eb412b7a41cad260c888ab5,57abf3c00c82a8e042ebeb2bfe412adac9ba005e9009845236390de3ee645248,c51ec80b7a609c5ee3d203ceee2b602ae4dfb4479caf15dc1d030c40c0364e93"
|
|
note: "Master System boot ROM, also read for SG-1000 content, mapped when present. Loaded without any size check; known dumps are 8/16/128/256 KB."
|
|
source_ref: "Core/SMS/SmsConsole.cpp:71-76, Core/Shared/FirmwareHelper.h:369-379, UI/Interop/FirmwareTypeExtensions.cs:71-77"
|
|
|
|
- name: "bios.gg"
|
|
path: "bios.gg"
|
|
standalone_path: "Firmware/bios.gg"
|
|
system: sega-gamegear
|
|
required: false
|
|
size: 1024
|
|
sha256: "8c8a21335038285cfa03dc076100c1f0bfadf3e4ff70796f11f3dfaaab60eee2"
|
|
note: "Game Gear boot ROM, mapped when present. Loaded without any size check."
|
|
source_ref: "Core/SMS/SmsConsole.cpp:71-76, Core/Shared/FirmwareHelper.h:369-379, UI/Interop/FirmwareTypeExtensions.cs:79"
|
|
|
|
- name: "bios.col"
|
|
path: "bios.col"
|
|
standalone_path: "Firmware/bios.col"
|
|
system: coleco-colecovision
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "990bf1956f10207d8781b619eb74f89b00d921c8d45c95c334c16c8cceca09ad,fb4a898eb93b19b36773d87a6c70eb28f981b2686bebdd2d431b05dcdf9cffd4"
|
|
note: "ColecoVision BIOS, NTSC or PAL console dump. The system boots through it; games cannot start without it."
|
|
source_ref: "Core/SMS/SmsConsole.cpp:71-74, Core/Shared/FirmwareHelper.h:381-398, UI/Interop/FirmwareTypeExtensions.cs:70"
|
|
|
|
# -------------------------------------------------------
|
|
# WonderSwan (standalone only: UseBootRom is never set by the libretro port)
|
|
# -------------------------------------------------------
|
|
- name: "bootrom.ws"
|
|
standalone_path: "Firmware/bootrom.ws"
|
|
mode: standalone
|
|
system: bandai-wswan
|
|
required: false
|
|
size: 4096
|
|
validation: [size]
|
|
sha256: "bf4480dbea1c47c8b54ce7be9382bc1006148f431fbe4277e136351fa74f635e"
|
|
note: "WonderSwan boot ROM, also used for Pocket Challenge V2. Loaded only when the UseBootRom setting is enabled (default off); without it the boot screen is skipped."
|
|
source_ref: "Core/WS/WsConsole.cpp:145-150, Core/Shared/SettingTypes.h:806, Core/Shared/FirmwareHelper.h:400-437, UI/Interop/FirmwareTypeExtensions.cs:80"
|
|
|
|
- name: "bootrom.wsc"
|
|
standalone_path: "Firmware/bootrom.wsc"
|
|
mode: standalone
|
|
system: bandai-wswanc
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "f5a5c044d84ce1681f94e9ef74287cb989784497be5bd5108df17908dfa55db2"
|
|
note: "WonderSwan Color boot ROM. Loaded only when the UseBootRom setting is enabled."
|
|
source_ref: "Core/WS/WsConsole.cpp:145-150, Core/Shared/SettingTypes.h:806, Core/Shared/FirmwareHelper.h:400-437, UI/Interop/FirmwareTypeExtensions.cs:81"
|
|
|
|
- name: "bootrom_sc.wsc"
|
|
standalone_path: "Firmware/bootrom_sc.wsc"
|
|
mode: standalone
|
|
system: bandai-wswanc
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
sha256: "82e96addf5ab1ce09a84b6eedaa904e4ca432756851f7e0cc0649006c183834d"
|
|
note: "SwanCrystal boot ROM. Loaded only when the UseBootRom setting is enabled and the SwanCrystal model is selected."
|
|
source_ref: "Core/WS/WsConsole.cpp:145-150, Core/Shared/SettingTypes.h:806, Core/Shared/FirmwareHelper.h:400-437, UI/Interop/FirmwareTypeExtensions.cs:82"
|
|
|
|
# -------------------------------------------------------
|
|
# Satellaview broadcast data (auto-deployed by the standalone UI)
|
|
# -------------------------------------------------------
|
|
- name: "BSX0120-0.bin"
|
|
path: "Satellaview/BSX0120-0.bin"
|
|
category: game_data
|
|
system: nintendo-satellaview
|
|
required: false
|
|
size: 34
|
|
sha256: "ba0c17b5786724959bc206714fc18f708c16fdcd77f8fb19aaf9768338e3ce01"
|
|
note: "Satellaview data stream for channel 0120 (time channel), read from <home>/Satellaview/. Standalone deploys it from the application's embedded Dependencies.zip and preserves user replacements; the libretro build reads it from system/Satellaview/ and deploys nothing."
|
|
source_ref: "Core/SNES/Coprocessors/BSX/BsxStream.cpp:68-74, UI/Utilities/DependencyHelper.cs:44-48"
|
|
|
|
- name: "BSX0121-0.bin"
|
|
path: "Satellaview/BSX0121-0.bin"
|
|
category: game_data
|
|
system: nintendo-satellaview
|
|
required: false
|
|
size: 34
|
|
sha256: "fbe51a53638dd366b50ea53adf92f54447667d7767c502e508d89b008e31c53f"
|
|
note: "Satellaview data stream for channel 0121. Deployed by the standalone UI; user replacements are preserved."
|
|
source_ref: "Core/SNES/Coprocessors/BSX/BsxStream.cpp:68-74, UI/Utilities/DependencyHelper.cs:44-48"
|
|
|
|
- name: "BSX0122-0.bin"
|
|
path: "Satellaview/BSX0122-0.bin"
|
|
category: game_data
|
|
system: nintendo-satellaview
|
|
required: false
|
|
size: 1031
|
|
sha256: "a0329450e1d42cd18d30070a86e0e481a876cb5c9cfbaab4a0d8895150976ee7"
|
|
note: "Satellaview data stream for channel 0122. Deployed by the standalone UI; user replacements are preserved."
|
|
source_ref: "Core/SNES/Coprocessors/BSX/BsxStream.cpp:68-74, UI/Utilities/DependencyHelper.cs:44-48"
|
|
|
|
- name: "BSX0123-0.bin"
|
|
path: "Satellaview/BSX0123-0.bin"
|
|
category: game_data
|
|
system: nintendo-satellaview
|
|
required: false
|
|
size: 16
|
|
sha256: "dbf5ef12ce586712ee666fc5805e6dfcaa1e253fdd36644f773909514868a590"
|
|
note: "Satellaview data stream for channel 0123. Deployed by the standalone UI; user replacements are preserved."
|
|
source_ref: "Core/SNES/Coprocessors/BSX/BsxStream.cpp:68-74, UI/Utilities/DependencyHelper.cs:44-48"
|
|
|
|
- name: "BSX0124-0.bin"
|
|
path: "Satellaview/BSX0124-0.bin"
|
|
category: game_data
|
|
system: nintendo-satellaview
|
|
required: false
|
|
size: 97
|
|
sha256: "4d7d7bf5afe5c4f71b96965e58003816c70c13e8af9b581431504d5e52a0cec1"
|
|
note: "Satellaview data stream for channel 0124. Deployed by the standalone UI; user replacements are preserved."
|
|
source_ref: "Core/SNES/Coprocessors/BSX/BsxStream.cpp:68-74, UI/Utilities/DependencyHelper.cs:44-48"
|
|
|
|
platform_details:
|
|
firmware_folder:
|
|
standalone: "Firmware/"
|
|
libretro: "system directory root"
|
|
firmware_size_check: exact
|
|
ui_hash_check: "sha256, advisory, standalone UI only (UI/Interop/FirmwareTypeExtensions.cs)"
|
|
satellaview_streams: "Satellaview/BSX<channel>-<index>.bin"
|
|
libretro_subsystem: "Super Game Boy: gb|gbc|gbx + sfc|smc"
|
|
source_ref: "Utilities/FolderUtilities.cpp:81-91, Libretro/libretro.cpp:2253-2256, Core/Shared/FirmwareHelper.h"
|