Skip to content

# melonDS - RetroBIOS

Type | standalone + libretro
Classification | community_fork
Source | https://github.com/libretro/melonDS
Upstream | https://github.com/melonDS-emu/melonDS
Version | Git
Profiled | 2026-03-24
Cores | melonds
Systems | nintendo-ds, nintendo-dsi

Technical notes

FreeBIOS fallback for DS mode (NTR); DSi mode requires all native files. Libretro fork based on melonDS ~0.9.x era, validates size only. Upstream adds CRC32 validation on BIOS files (MemConstants.h). DSi SD card emulation controlled by melonds_dsi_sdcard core option.

8 files | 4 required, 4 optional | 8 in repo, 0 missing | 3 with HLE fallback

`bios9.bin` -optional, HLE available : ARM9 BIOS

- System: nintendo-ds
- Size: 4.0 KB
- CRC32: `0x2ab23573`
- Validation (core): size
- Validation (upstream): size, crc32
- Source: `src/NDS.h:196, src/NDS.cpp:467-477, src/frontend/Util_ROM.cpp:99-111`
- Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 cartridge crypto

`bios7.bin` -optional, HLE available : ARM7 BIOS

- System: nintendo-ds
- Size: 16.0 KB
- CRC32: `0x1280f0d5`
- Validation (core): size
- Validation (upstream): size, crc32
- Source: `src/NDS.h:197, src/NDS.cpp:482-492, src/frontend/Util_ROM.cpp:117-131`
- Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 init at offset 0x0030

`firmware.bin` -optional, HLE available : NDS firmware image

- System: nintendo-ds
- Validation: size
- Source: `src/SPI.cpp:192-211, src/frontend/Util_ROM.cpp:174-195`
- Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- Generated 128KB firmware as fallback; native must be 256KB or 512KB for boot

`dsi_bios9.bin` -required : DSi ARM9 BIOS

- System: nintendo-dsi
- Size: 64.0 KB
- CRC32: `0xBAE84F6C`
- Validation (core): size
- Validation (upstream): size, crc32
- Source: `src/DSi.h:33, src/DSi.cpp:587-599, src/frontend/Util_ROM.cpp:145-156`
- Platforms: batocera, lakka, retroarch, retrobat, retropie

`dsi_bios7.bin` -required : DSi ARM7 BIOS

- System: nintendo-dsi
- Size: 64.0 KB
- CRC32: `0x4316CC42`
- Validation (core): size
- Validation (upstream): size, crc32
- Source: `src/DSi.h:34, src/DSi.cpp:604-620, src/frontend/Util_ROM.cpp:158-170`
- Platforms: batocera, lakka, retroarch, retrobat, retropie
- Contains eMMC key-Y at offset 0x8308 for NAND init

`dsi_firmware.bin` -required : DSi firmware image

- System: nintendo-dsi
- Size: 128.0 KB
- Validation: size
- Source: `src/SPI.cpp:197-211, src/frontend/Util_ROM.cpp:201-217`
- Platforms: batocera, lakka, retroarch, retrobat, retropie

`dsi_nand.bin` -required : DSi NAND dump

- System: nintendo-dsi
- Source: `src/frontend/Util_ROM.cpp:224-235, src/DSi_NAND.cpp`
- Platforms: batocera, lakka, retroarch, retropie
- Uses AES keys from ARM7i BIOS offset 0x8308

`dsi_sd_card.bin` -optional : DSi SD card image

- System: nintendo-dsi
- Source: `src/frontend/Util_ROM.cpp:237-243, src/libretro/libretro.cpp:837,553`
- Created if missing; requires melonds_dsi_sdcard core option enabled

Generated on 2026-03-25T14:56:43Z