Files
libretro/emulators/melonds_ds.yml
T

108 lines
5.1 KiB
YAML

emulator: melonDS DS
type: libretro
core_classification: community_fork
cores: [melonds_ds, melondsds]
source: "https://github.com/JesseTG/melonds-ds"
upstream: "https://github.com/melonDS-emu/melonDS"
profiled_date: "2026-10-04"
source_commit: "f394adbacb5722ee97c1b37c8064da9a25818310"
core_version: "1.4.0"
display_name: "Nintendo - DS (melonDS DS)"
systems:
- nintendo-ds
- nintendo-dsi
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; 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).
files:
# --- Nintendo DS (NTR) ---
- name: bios7.bin
system: nintendo-ds
description: "ARM7 BIOS"
required: false
hle_fallback: true
size: 16384
validation: [size]
crc32: 1280f0d5
source_ref: "src/libretro/config/config.hpp:326, src/libretro/config/console.cpp:379, src/libretro/config/console.cpp:526-529, src/libretro/config/console.cpp:1098-1103, src/MemConstants.h:31, src/MemConstants.h:36"
note: "Required in DSi mode."
- name: bios9.bin
system: nintendo-ds
description: "ARM9 BIOS"
required: false
hle_fallback: true
size: 4096
validation: [size]
crc32: 2ab23573
source_ref: "src/libretro/config/config.hpp:325, src/libretro/config/console.cpp:380, src/libretro/config/console.cpp:531-534, src/libretro/config/console.cpp:1098-1103, src/MemConstants.h:30, src/MemConstants.h:37"
note: "Required in DSi mode."
- name: firmware.bin
system: nintendo-ds
description: "NDS firmware image"
required: false
hle_fallback: true
source_ref: "src/libretro/config/console.cpp:337-364, src/libretro/config/console.cpp:1136-1182, src/libretro/config/constants.cpp:102-176, src/libretro/config/constants.hpp:288"
note: "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."
# --- Nintendo DSi (TWL) ---
- name: dsi_bios7.bin
system: nintendo-dsi
description: "DSi ARM7 BIOS"
required: true
size: 65536
validation: [size]
crc32: 4316cc42
source_ref: "src/libretro/config/config.hpp:328, src/libretro/config/console.cpp:516-519, src/libretro/config/console.cpp:1098-1103, src/MemConstants.h:32, src/MemConstants.h:44"
note: "The eMMC key-Y at offset 0x8308 is used to open the NAND image (src/libretro/config/console.cpp:586)."
- name: dsi_bios9.bin
system: nintendo-dsi
description: "DSi ARM9 BIOS"
required: true
size: 65536
validation: [size]
crc32: bae84f6c
source_ref: "src/libretro/config/config.hpp:327, src/libretro/config/console.cpp:521-524, src/libretro/config/console.cpp:1098-1103, src/MemConstants.h:32, src/MemConstants.h:45"
- name: dsi_firmware.bin
system: nintendo-dsi
description: "DSi firmware image"
required: true
source_ref: "src/libretro/config/console.cpp:497-499, src/libretro/config/console.cpp:536-551, src/libretro/config/constants.cpp:102-176"
note: "Any file name, selected through a core option; the firmware header must declare the DSi console type."
- name: dsi_nand.bin
system: nintendo-dsi
description: "DSi NAND dump"
required: true
source_ref: "src/libretro/config/console.cpp:490-495, src/libretro/config/console.cpp:564-592, src/libretro/config/console.cpp:1401-1416, src/libretro/config/constants.cpp:44-100, src/libretro/config/constants.hpp:283-287"
note: "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."