{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "melonds_ds",
      "profile": {
        "core_classification": "community_fork",
        "core_version": "v1.4.0",
        "cores": [
          "melonds_ds",
          "melondsds"
        ],
        "display_name": "Nintendo - DS (melonDS DS)",
        "emulator": "melonDS DS",
        "files": [
          {
            "crc32": "1280f0d5",
            "description": "ARM7 BIOS",
            "hle_fallback": true,
            "name": "bios7.bin",
            "note": "Required in DSi mode.",
            "required": false,
            "size": 16384,
            "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",
            "system": "nintendo-ds",
            "validation": [
              "size"
            ]
          },
          {
            "crc32": "2ab23573",
            "description": "ARM9 BIOS",
            "hle_fallback": true,
            "name": "bios9.bin",
            "note": "Required in DSi mode.",
            "required": false,
            "size": 4096,
            "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",
            "system": "nintendo-ds",
            "validation": [
              "size"
            ]
          },
          {
            "description": "NDS firmware image",
            "hle_fallback": true,
            "name": "firmware.bin",
            "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.",
            "required": false,
            "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",
            "system": "nintendo-ds"
          },
          {
            "crc32": "4316cc42",
            "description": "DSi ARM7 BIOS",
            "name": "dsi_bios7.bin",
            "note": "The eMMC key-Y at offset 0x8308 is used to open the NAND image (src/libretro/config/console.cpp:586).",
            "required": true,
            "size": 65536,
            "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",
            "system": "nintendo-dsi",
            "validation": [
              "size"
            ]
          },
          {
            "crc32": "bae84f6c",
            "description": "DSi ARM9 BIOS",
            "name": "dsi_bios9.bin",
            "required": true,
            "size": 65536,
            "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",
            "system": "nintendo-dsi",
            "validation": [
              "size"
            ]
          },
          {
            "description": "DSi firmware image",
            "name": "dsi_firmware.bin",
            "note": "Any file name, selected through a core option, and the firmware header must declare the DSi console type.",
            "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",
            "system": "nintendo-dsi"
          },
          {
            "description": "DSi NAND dump",
            "name": "dsi_nand.bin",
            "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.",
            "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",
            "system": "nintendo-dsi"
          }
        ],
        "notes": "Libretro-specific remake using melonDS as a statically-linked library.\nLoadBios() looks for each BIOS in \"{system}/melonDS DS/\" first, then in the\nsystem directory itself, and rejects a file whose size is not exactly the\nexpected one (src/libretro/config/console.cpp:1087-1133).\n\nDS mode: the firmware named by the core option is loaded when BIOS/Firmware\nMode is Native, otherwise (or when it fails to load) a generated firmware\nis used (src/libretro/config/console.cpp:337-364). bios7.bin and bios9.bin\nare only read with a native firmware. If either fails the core falls back\nto FreeBIOS (src/libretro/config/console.cpp:379-410). With FreeBIOS an\nencrypted retail ROM is refused (src/libretro/config/console.cpp:420-424),\nand booting without content needs native BIOS and a bootable firmware\n(src/libretro/config/console.cpp:398-401).\n\nDSi mode requires dsi_bios7.bin, dsi_bios9.bin, bios7.bin, bios9.bin, a DSi\nfirmware and a NAND image, and each missing file throws\n(src/libretro/config/console.cpp:490-551).\n\nFirmware and NAND images have no fixed name. RegisterCoreOptions() scans\nthe system directory and its \"melonDS DS\" subdirectory and offers every\nfile that passes IsFirmwareImage() or IsDsiNandImage() as a core option\nvalue (src/libretro/config/config.cpp:1005-1020). The default firmware is\nthe newest file whose header matches the console type. The NAND option\ndefaults to Auto: for a title installed onto the NAND the core picks the\ndiscovered image whose console region matches the ROM, otherwise the first\none found (src/libretro/config/console.cpp:564-579).\n",
        "profiled_date": "2026-10-04",
        "source": "https://github.com/JesseTG/melonds-ds",
        "source_commit": "f394adbacb5722ee97c1b37c8064da9a25818310",
        "systems": [
          "nintendo-ds",
          "nintendo-dsi"
        ],
        "type": "libretro",
        "upstream": "https://github.com/melonDS-emu/melonDS",
        "upstream_commit": "7d8dea42e221b13521270c423b61add41a741b97",
        "version_basis": {
          "distance": 0,
          "kind": "tag",
          "tag": "v1.4.0"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
