Mednafen - RetroBIOS¶
Technical notes
Multi-system emulator by the Mednafen Team, the upstream of the beetle_ and
mednafen_ libretro cores, which are forks of individual modules. A module is
picked automatically from the file, or forced with -force_module
Every firmware file resolves to
Modules compiled by default that load no external file: gb, snes, snes_faust, vb, wswan, ngp, sms, gg. The snes module (bsnes 0.059) has every coprocessor ROM compiled in; snes_faust synthesises the DSP-1 and CX4 data ROMs (cart/dsp1-datarom-synth.h, cart/cx4.cpp:58); ngp installs a reverse engineered HLE BIOS (ngp/bios.cpp:182-239).
The nes_new module is declared but never built: configure.ac:392-393 keeps both the AC_DEFINE and the AM_CONDITIONAL commented out.
cdplay (audio CD), ssfplay (Saturn SSF) and sasplay (Sega Model 2/3 SCSP sound) are player modules, not system emulation. sasplay reads the board's sound ROM set from the directory of the loaded file, never from the firmware directory (sasplay.cpp:869-886), so those ROMs are game content.
Two settings name an external file that is not firmware data. wswan.excomm.path
("wonderfence") is an executable forked and execlp'd for link comms
(comm.cpp:56-65). Custom palettes resolve to
ES-DE invokes the binary as %EMULATOR_MEDNAFEN% -force_module
35 files | 25 required, 10 optional | 31 in repo, 4 missing | 1 with HLE fallback
apple2-asoft-auto.rom required in repo
Apple II+ AppleSoft BASIC and Autostart system ROMs, concatenated (341-0011, 341-0012, 341-0013, 341-0014, 341-0015, 341-0020)
- System: apple-ii
- Size: min 12.0 KB
- SHA256:
fc3e9d41e942... - Validation: size
- Source:
apple2/apple2.cpp:1342-1350,apple2/apple2.cpp:1869,apple2/apple2.cpp:2282,apple2/apple2.cpp:1473-1476 - Platforms: retrobat
- System firmware for model ii+, ROM card for model ii. Read as 0x3000 bytes at $D000. The hash is in the ROMDB table and only labels the dump in the startup log; nothing rejects a mismatch.
apple2-int-auto.rom required in repo
Apple II Integer BASIC and Autostart system ROMs, concatenated (341-0001, 341-0002, 341-0003, 341-0020)
- System: apple-ii
- Size: min 8.0 KB
- SHA256:
cb52b212a62f... - Validation: size
- Source:
apple2/apple2.cpp:1352-1363,apple2/apple2.cpp:1860,apple2/apple2.cpp:2284,apple2/apple2.cpp:2392,apple2/apple2.cpp:1468-1471 - Platforms: retrobat
- System firmware for model ii, ROM card for model ii+. Read as 0x2000 bytes at $E000, the $D000-$DFFF window stays unmapped. Reached under the default model when a DOS 3.2 disk drops RAM to 48 KiB.
apple2e.rom required in repo
Apple IIe BASIC and system ROMs, concatenated (342-0135-A, 342-0134-A)
- System: apple-iie
- Size: min 16.0 KB
- SHA256:
1fb812584c66... - Validation: size
- Source:
apple2/apple2.cpp:1320-1325,apple2/apple2.cpp:2266,apple2/apple2.cpp:1478-1481 - Loaded unconditionally when apple2.model is iie. Read as 0x4000 bytes at $C000.
apple2e-video.rom required in repo
Apple IIe video (character generator) ROM, 342-0133-A
- System: apple-iie
- Size: min 4.0 KB
- SHA256:
ed5bdd4afa50... - Validation: size
- Source:
apple2/apple2.cpp:2299-2324,apple2/apple2.cpp:1488-1491 - Loading aborts on sha256 0d54ff735c060c55d54b8a22d0112af78a6465ce9c9aae4a865d207e5c8ff1e7, a known bad dump (apple2.cpp:2319-2320). No positive hash check.
apple2e-kb.rom required in repo
Apple IIe keyboard ASCII mapping ROM, 342-0132-B
- System: apple-iie
- Size: min 2.0 KB
- SHA256:
68198ae95923... - Validation: size
- Source:
apple2/apple2.cpp:2331-2351,apple2/apple2.cpp:1498-1506 - The revised IIe dump 342-0132-C, sha256 fbb9620e01f4f728e5a8ba86544900978d7803f6a7d577d384e288dfed9a4907, is equally recognised at this filename. Read as 0x800 bytes.
apple2e-enh.rom required missing
Enhanced Apple IIe BASIC and system ROMs, concatenated (342-0304-A, 342-0303-A, 342-0349-B)
- System: apple-iie
- Size: min 16.0 KB
- SHA256:
aab38a03ca8d... - Validation: size
- Source:
apple2/apple2.cpp:1327-1332,apple2/apple2.cpp:2264,apple2/apple2.cpp:1483-1486 - Loaded unconditionally when apple2.model is iie_enh. Read as 0x4000 bytes at $C000.
apple2e-enh-video.rom required missing
Enhanced Apple IIe video (character generator) ROM, 342-0265-A
- System: apple-iie
- Size: min 4.0 KB
- SHA256:
52c3b87900ac... - Validation: size
- Source:
apple2/apple2.cpp:2299-2324,apple2/apple2.cpp:1493-1496 - Same bad-dump rejection as apple2e-video.rom.
apple2e-enh-kb.rom required in repo
Enhanced Apple IIe keyboard ASCII mapping ROM, 341-0132-D
- System: apple-iie
- Size: min 2.0 KB
- SHA256:
a1989da84ea4... - Validation: size
- Source:
apple2/apple2.cpp:2331-2351,apple2/apple2.cpp:1508-1511
disk2-16boot.rom required in repo
Disk II interface 16-sector P5 boot ROM, 341-0027
- System: apple-ii
- Size: 256 B
- SHA256:
de1e3e035878... - Validation: size, sha256
- Source:
apple2/apple2.cpp:2119,apple2/apple2.cpp:2127-2137,apple2/apple2.cpp:1620 - Platforms: retrobat
- Default Disk II firmware. The sha256 is enforced: a mismatch throws "Firmware data ... is corrupt or otherwise wrong".
disk2-16seq.rom required in repo
Disk II interface 16-sector P6 sequencer ROM, 341-0028
- System: apple-ii
- Size: 256 B
- SHA256:
e5e306150405... - Validation: size, sha256
- Source:
apple2/apple2.cpp:2120,apple2/apple2.cpp:2127-2137,apple2/apple2.cpp:1620 - Platforms: retrobat
- P6 sequencer dumps taken linearly through the P5 socket must have A7 swapped with A5, D4 with D7 and D5 with D6 before Mednafen accepts them. P5 boot ROMs need no such rearranging.
disk2-13boot.rom required in repo
Disk II interface 13-sector P5 boot ROM, 341-0009
disk2-13seq.rom required in repo
Disk II interface 13-sector P6 sequencer ROM, 341-0010
- System: apple-ii
- Size: 256 B
- SHA256:
4234aed053c6... - Validation: size, sha256
- Source:
apple2/apple2.cpp:2114,apple2/apple2.cpp:2127-2137,apple2/apple2.cpp:2000-2006 - Platforms: retrobat
- Same P6 rearranging as disk2-16seq.rom. A linear P5-socket dump hashes to 383c55f5333cbfde39dd41528186631e5aca2eddfec30716344f03b6a4d44655 and is rejected.
lynxboot.img required in repo
Atari Lynx boot ROM
- System: atari-lynx
- Size: min 512 B
- Validation: size
- Source:
lynx/system.cpp:101,lynx/rom.cpp:55-74 - Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
- Loaded for every cartridge, before the cart itself. Throws if the file is under 512 bytes; the first 512 bytes are used. No hash check and no HLE fallback.
disksys.rom required in repo
Famicom Disk System BIOS
- System: nintendo-fds
- Size: min 8.0 KB
- Validation: size
- Source:
nes/fds.cpp:603-617 - Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
- 8192 bytes are read. If they begin with an iNES signature the stream is advanced another 16 bytes, plus 16384 more when byte 4 of the header reads 2, and a second 8192 bytes are read from there.
gg.rom optional in repo
Game Genie ROM image
- System: nintendo-nes
- Size: min 4.2 KB
- Source:
nes/cart.cpp:570-597,nes/nes.cpp:298-299,nes/nes.cpp:454-455 - Loaded only when nes.gg is enabled; that setting defaults to 0. Path comes from nes.ggrom. A raw image is read as 4352 contiguous bytes. An iNES image takes 4096 bytes of PRG after the 16-byte header, then 256 bytes of CHR at offset 16400, so it needs at least 16656 bytes. The image here is the raw form: the 4096 byte Game Genie PRG, crc 1a3a22a1, followed by the first 256 bytes of its CHR, both from the MAME ggenie set.
syscard3.pce required in repo
CD-ROM System Card 3.0
- System: nec-pc-engine-cd
- Size: 256.0 KB
- Source:
pce/pce.cpp:647-656,pce/pce.cpp:1103,pce_fast/pce.cpp:480-487,pce_fast/pce.cpp:647 - Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
- Default of both pce.cdbios and pce_fast.cdbios. The pce module imposes no size constraint, the file length drives the bank mapping (pce/huc.cpp:308-372). The pce_fast module reads exactly 262144 bytes and skips a 512-byte copier header when the file size has bit 9 set (pce_fast/huc.cpp:296-301). Arcade Card mode extends the same image, it does not need another file.
gecard.pce optional in repo
Games Express CD Card BIOS
- System: nec-pc-engine-cd
- Size: 256.0 KB
- Source:
pce/pce.cpp:514-550,pce/pce.cpp:647-648,pce/pce.cpp:1104 - Platforms: lakka, retroarch, retropie, romm
- Default of pce.gecdbios, used instead of pce.cdbios when DetectGECD recognises the disc. The pce_fast module has no equivalent setting.
pcfx.rom required in repo
PC-FX BIOS
FX-SCSI ROM optional missing
PC-FX FX-SCSI expansion ROM
- System: nec-pcfx
- Size: min 512.0 KB
- Source:
pcfx/pcfx.cpp:620-632,pcfx/pcfx.cpp:1116 - Path comes from pcfx.fxscsi, which defaults to "0" and is skipped for the values 0, none and the empty string. Mednafen names no default file and opens the path with a bare FileStream, so it is not resolved under the firmware directory. Marked developer-only upstream. 524288 bytes are read and mapped at 0x80780000.
scph5500.bin required in repo japan
SCPH-5500 / v3.0J BIOS
- System: sony-playstation
- Size: 512.0 KB
- SHA256:
9c0421858e21... - Validation: size, sha256
- Source:
psx/psx.cpp:1764-1769,psx/psx.cpp:1773-1781,psx/psx.cpp:2373,psx/psx.cpp:251 - Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrodeck, retropie, rocknix, romm
- Default of psx.bios_jp. Size must be exactly 524288. With psx.bios_sanity on, which is the default, a hash listed as a bad dump or as belonging to another region throws; an unknown hash only logs a warning.
scph5501.bin required in repo north-america
SCPH-5501 / v3.0A BIOS
- System: sony-playstation
- Size: 512.0 KB
- SHA256:
11052b6499e4... - Validation: size, sha256
- Source:
psx/psx.cpp:1764-1769,psx/psx.cpp:1773-1781,psx/psx.cpp:2374,psx/psx.cpp:252 - Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrodeck, retropie, rocknix, romm
- Default of psx.bios_na. The BIOS table carries 24 recognised dumps in total, two of them flagged bad (psx.cpp:228-268).
scph5502.bin required in repo europe
SCPH-5502 / v3.0E BIOS
sega_101.bin required in repo japan, asia-ntsc
Saturn BIOS v1.01 (Japan)
mpr-17933.bin required in repo north-america, europe, south-korea, asia-pal, brazil, latin-america
Saturn BIOS (North America and Europe)
sega1003.bin optional in repo japan, asia-ntsc
Saturn BIOS v1.003 (Japan)
sega_100.bin optional in repo japan, asia-ntsc
Saturn BIOS v1.00 (Japan)
sega_100a.bin optional in repo north-america, europe, south-korea, asia-pal, brazil, latin-america
Saturn BIOS v1.00a (North America and Europe)
epr-20091.ic8 required in repo japan, asia-ntsc
ST-V BIOS (Japan)
- System: sega-stv
- Size: 512.0 KB
- Validation: size
- Source:
ss/ss.cpp:1420-1428,ss/ss.cpp:1437-1445,ss/ss.cpp:2444 - Default of ss.bios_stv_jp. ST-V dumps are absent from the sanity table, so only the 524288-byte size is enforced. Loaded byte-swapped the other way round from a Saturn BIOS (ss.cpp:1495-1499).
epr-17952a.ic8 required in repo north-america
ST-V BIOS (North America)
- System: sega-stv
- Size: 512.0 KB
- Validation: size
- Source:
ss/ss.cpp:1420-1428,ss/ss.cpp:1437-1445,ss/ss.cpp:2445 - Default of ss.bios_stv_na, used for every area that is not Japan, Asia NTSC or PAL Europe.
epr-17954a.ic8 required in repo europe
ST-V BIOS (Europe)
- System: sega-stv
- Size: 512.0 KB
- Validation: size
- Source:
ss/ss.cpp:1420-1428,ss/ss.cpp:1437-1445,ss/ss.cpp:2446 - Default of ss.bios_stv_eu.
mpr-18811-mx.ic1 optional in repo
King of Fighters '95 ROM cart
- System: sega-saturn
- Size: min 2.0 MB
- Source:
ss/ss.cpp:1332,ss/ss.cpp:1389-1397,ss/ss.cpp:2477,ss/cart/rom.cpp:37-48 - Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, rocknix, romm
- Default of ss.cart.kof95_path. Loaded when the cart type resolves to KOF95, which ss.cart auto does from the internal game database. 0x200000 bytes are read and byte-swapped.
mpr-19367-mx.ic1 optional in repo
Ultraman: Hikari no Kyojin Densetsu ROM cart
satar4mp.bin optional in repo
Action Replay 4M Plus firmware
- System: sega-saturn
- Size: min 256.0 KB
- Source:
ss/ss.cpp:1334,ss/ss.cpp:1389-1397,ss/ss.cpp:2479,ss/cart/ar4mp.cpp:125-140 - Default of ss.cart.satar4mp_path. 0x40000 bytes are read into the flash array and byte-swapped. The setting is hidden from the documentation and the cart is marked unfinished upstream, pending CPU UBC emulation (ar4mp.cpp:22-24).
us_scd1_9210.bin required in repo
Sega CD BIOS
- System: sega-megacd
- Size: 128.0 KB
- Validation: size
- Source:
md/cd/cd.cpp:894-915,md/cd/cd.cpp:971-989,md/system.cpp:630-641,md/system.cpp:801,md/system.cpp:755 - Default of md.cdbios. LoadCD is wired into the module and reaches MDCD_Init, which throws unless the file is exactly 131072 bytes. The setting's own help text states that Sega CD emulation is currently nonfunctional.
GBA BIOS ROM image optional missing HLE fallback
Game Boy Advance BIOS
- System: nintendo-gba
- Size: 16.0 KB
- Validation: size
- Source:
gba/GBA.cpp:2470-2494,gba/GBA.cpp:3278,gba/GBA.cpp:772 - Path comes from gba.bios, which defaults to the empty string and is skipped for the values 0, none and the empty string, so Mednafen names no default file. When set, the file must be exactly 16384 bytes. Otherwise the built-in HLE BIOS myROM is used, and the setting is ignored outright for GSF playback.
Generated on 2026-08-23T16:12:06Z