Files
libretro/emulators/melonds_ds.yml
T
Abdessamad Derraz b3b3880c19 chore: say which repository each source_ref cites
Profiles that read two repositories, a libretro port and its upstream,
now prefix each citation with source or upstream, decided by which tree
carries the cited value at its pin. The emulator pages use the word to
tell libretro glue, emulator code as the port carries it, and the
upstream emulator apart.
2026-10-20 09:23:41 +02:00

108 lines
5.3 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, 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).
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: "source src/libretro/config/config.hpp:326, source src/libretro/config/console.cpp:379, source src/libretro/config/console.cpp:526-529, source src/libretro/config/console.cpp:1098-1103, source src/MemConstants.h:31, upstream 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: "source src/libretro/config/config.hpp:325, source src/libretro/config/console.cpp:380, source src/libretro/config/console.cpp:531-534, source src/libretro/config/console.cpp:1098-1103, source src/MemConstants.h:30, upstream 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: "source src/libretro/config/console.cpp:337-364, source src/libretro/config/console.cpp:1136-1182, source src/libretro/config/constants.cpp:102-176, source 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: "source src/libretro/config/config.hpp:328, source src/libretro/config/console.cpp:516-519, source src/libretro/config/console.cpp:1098-1103, source src/MemConstants.h:32, upstream 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: "source src/libretro/config/config.hpp:327, source src/libretro/config/console.cpp:521-524, source src/libretro/config/console.cpp:1098-1103, source src/MemConstants.h:32, upstream src/MemConstants.h:45"
- name: dsi_firmware.bin
system: nintendo-dsi
description: "DSi firmware image"
required: true
source_ref: "source src/libretro/config/console.cpp:497-499, source src/libretro/config/console.cpp:536-551, source src/libretro/config/constants.cpp:102-176"
note: "Any file name, selected through a core option, and the firmware header must declare the DSi console type."
- name: dsi_nand.bin
system: nintendo-dsi
description: "DSi NAND dump"
required: true
source_ref: "source src/libretro/config/console.cpp:490-495, source src/libretro/config/console.cpp:564-592, source src/libretro/config/console.cpp:1401-1416, source src/libretro/config/constants.cpp:44-100, source 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."