Skip to content

melonDS DS emulates Nintendo DS and Nintendo DSi. It reads 7 files, 4 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.

About this profile
Detail Value
Type libretro
Classification Community fork
Source https://github.com/JesseTG/melonds-ds
Upstream https://github.com/melonDS-emu/melonDS
Version v1.4.0, the tag at this revision
Revision JesseTG/melonds-ds@f394adbacb57, melonDS-emu/melonDS@7d8dea42e221
Profiled 2026-10-04
Profile YAML, JSON
Cores melonds_ds, melondsds
Systems Nintendo DS, Nintendo DSi
Install this emulator's files

The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.

Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.

PowerShell
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator melonds_ds
Technical notes

Libretro-specific remake using melonDS as a statically-linked library. LoadBios() looks for each BIOS in "{system}/melonDS DS/" first, then in the system directory itself, and rejects a file whose size is not exactly the expected one (src/libretro/config/console.cpp:1087-1133).

DS mode: the firmware named by the core option is loaded when BIOS/Firmware Mode is Native, otherwise (or when it fails to load) a generated firmware is used (src/libretro/config/console.cpp:337-364). bios7.bin and bios9.bin are only read with a native firmware. If either fails the core falls back to FreeBIOS (src/libretro/config/console.cpp:379-410). With FreeBIOS an encrypted retail ROM is refused (src/libretro/config/console.cpp:420-424), and booting without content needs native BIOS and a bootable firmware (src/libretro/config/console.cpp:398-401).

DSi mode requires dsi_bios7.bin, dsi_bios9.bin, bios7.bin, bios9.bin, a DSi firmware and a NAND image, and each missing file throws (src/libretro/config/console.cpp:490-551).

Firmware and NAND images have no fixed name. RegisterCoreOptions() scans the system directory and its "melonDS DS" subdirectory and offers every file that passes IsFirmwareImage() or IsDsiNandImage() as a core option value (src/libretro/config/config.cpp:1005-1020). The default firmware is the newest file whose header matches the console type. The NAND option defaults to Auto: for a title installed onto the NAND the core picks the discovered image whose console region matches the ROM, otherwise the first one found (src/libretro/config/console.cpp:564-579).

7 files: 4 required, 3 optional. 3 have an HLE fallback.

In this collection: 7 in repo and 0 missing.

FileStatusHash

dsi_bios7.bin

DSi ARM7 BIOS

  • System: Nintendo DSi
  • The eMMC key-Y at offset 0x8308 is used to open the NAND image (src/libretro/config/console.cpp:586).
Hashes, validation and source
required for Nintendo DSi in repoCRC32 4316cc42

dsi_bios9.bin

DSi ARM9 BIOS

Hashes, validation and source
required for Nintendo DSi in repoCRC32 bae84f6c

dsi_firmware.bin

DSi firmware image

  • System: Nintendo DSi
  • Any file name, selected through a core option, and the firmware header must declare the DSi console type.
Source
required for Nintendo DSi in repo-

dsi_nand.bin

DSi NAND dump

  • System: Nintendo DSi
  • Any file name, selected through a core option or picked automatically by region. 251658240 or 257425408 bytes, plus 64 when the no$gba footer is appended. The footer magic must be present at the end or at offset 0xFF800.
Source
required for Nintendo DSi in repo-
FileStatusHash

bios7.bin

ARM7 BIOS

Hashes, validation and source
in repo HLE fallbackCRC32 1280f0d5

bios9.bin

ARM9 BIOS

Hashes, validation and source
in repo HLE fallbackCRC32 2ab23573

firmware.bin

NDS firmware image

  • System: Nintendo DS
  • Any file name: the core lists every file of 131072, 262144 or 524288 bytes with a valid firmware header and the user picks one. A generated firmware is used as fallback.
Source
in repo HLE fallback-
.