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 /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 .program.rom + .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 /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 /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-.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"