{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "melonds",
      "profile": {
        "core_classification": "community_fork",
        "core_version": "0.9.3",
        "cores": [
          "melonds",
          "melonds-sa"
        ],
        "data_root": {
          "linux": {
            "note": "portable beside the executable when that folder exists",
            "path": "$XDG_CONFIG_HOME/melonDS, else ~/.config/melonDS",
            "source_ref": "upstream src/frontend/qt_sdl/main.cpp:182-184, 196-200, 206-211"
          },
          "macos": {
            "note": "portable beside melonDS.app when that folder exists",
            "path": "~/Library/Preferences/melonDS",
            "source_ref": "upstream src/frontend/qt_sdl/main.cpp:182-200, 206-211"
          },
          "windows": {
            "note": "portable beside melonDS.exe when that folder exists. A build with the PORTABLE option off uses the Qt config location",
            "path": "<folder of melonDS.exe>",
            "source_ref": "upstream src/frontend/qt_sdl/main.cpp:182-184, 196-205, upstream src/frontend/qt_sdl/CMakeLists.txt:197-202"
          }
        },
        "display_name": "Nintendo - DS (melonDS)",
        "emulator": "melonDS",
        "files": [
          {
            "crc32": "2ab23573",
            "description": "ARM9 BIOS",
            "hle_fallback": true,
            "name": "bios9.bin",
            "note": "FreeBIOS fallback (src/FreeBIOS.h), native needed for Key1 cartridge crypto",
            "required": false,
            "size": 4096,
            "source_ref": "source src/NDS.h:196, source src/NDS.cpp:467-477, source src/frontend/Util_ROM.cpp:99-111",
            "system": "nintendo-ds",
            "validation": {
              "core": [
                "size"
              ],
              "upstream": [
                "size",
                "crc32"
              ]
            }
          },
          {
            "crc32": "1280f0d5",
            "description": "ARM7 BIOS",
            "hle_fallback": true,
            "name": "bios7.bin",
            "note": "FreeBIOS fallback (src/FreeBIOS.h), native needed for Key1 init at offset 0x0030",
            "required": false,
            "size": 16384,
            "source_ref": "source src/NDS.h:197, source src/NDS.cpp:482-492, source src/frontend/Util_ROM.cpp:117-131",
            "system": "nintendo-ds",
            "validation": {
              "core": [
                "size"
              ],
              "upstream": [
                "size",
                "crc32"
              ]
            }
          },
          {
            "description": "NDS firmware image",
            "hle_fallback": true,
            "max_size": 524288,
            "min_size": 262144,
            "name": "firmware.bin",
            "note": "Generated 128KB firmware as fallback, native must be 256KB or 512KB for boot",
            "required": false,
            "source_ref": "source src/SPI.cpp:192-211, source src/frontend/Util_ROM.cpp:174-195",
            "system": "nintendo-ds",
            "validation": [
              "size"
            ]
          },
          {
            "crc32": "bae84f6c",
            "description": "DSi ARM9 BIOS",
            "name": "dsi_bios9.bin",
            "required": true,
            "size": 65536,
            "source_ref": "source src/DSi.h:33, source src/DSi.cpp:587-599, source src/frontend/Util_ROM.cpp:145-156",
            "system": "nintendo-dsi",
            "validation": {
              "core": [
                "size"
              ],
              "upstream": [
                "size",
                "crc32"
              ]
            }
          },
          {
            "crc32": "4316cc42",
            "description": "DSi ARM7 BIOS",
            "name": "dsi_bios7.bin",
            "note": "Contains eMMC key-Y at offset 0x8308 for NAND init",
            "required": true,
            "size": 65536,
            "source_ref": "source src/DSi.h:34, source src/DSi.cpp:604-620, source src/frontend/Util_ROM.cpp:158-170",
            "system": "nintendo-dsi",
            "validation": {
              "core": [
                "size"
              ],
              "upstream": [
                "size",
                "crc32"
              ]
            }
          },
          {
            "description": "DSi firmware image",
            "name": "dsi_firmware.bin",
            "required": true,
            "size": 131072,
            "source_ref": "source src/SPI.cpp:197-211, source src/frontend/Util_ROM.cpp:201-217",
            "system": "nintendo-dsi",
            "validation": [
              "size"
            ]
          },
          {
            "agnostic": true,
            "description": "DSi NAND dump",
            "name": "dsi_nand.bin",
            "note": "Any regional dump works. Nocash footer required (DSi eMMC CID/CPU at EOF-0x40 or 0xFF800). AES keys derived from ARM7i BIOS offset 0x8308.",
            "required": true,
            "size": 251658304,
            "source_ref": "source src/frontend/Util_ROM.cpp:224-235, source src/DSi_NAND.cpp:58-97",
            "storage": "large_file",
            "system": "nintendo-dsi"
          },
          {
            "description": "DSi SD card image",
            "name": "dsi_sd_card.bin",
            "note": "Created if missing, requires melonds_dsi_sdcard core option enabled",
            "required": false,
            "source_ref": "source src/frontend/Util_ROM.cpp:237-243, source src/libretro/libretro.cpp:837, 553, upstream src/frontend/qt_sdl/Config.cpp:120, upstream src/FATStorage.cpp:1024-1025",
            "standalone_path": "dsisd.bin",
            "system": "nintendo-dsi"
          }
        ],
        "notes": "FreeBIOS fallback for DS mode (NTR), while DSi mode requires all native files.\nLibretro fork based on melonDS ~0.9.x era, validates size only.\nUpstream adds CRC32 validation on BIOS files (MemConstants.h).\nDSi SD card emulation controlled by melonds_dsi_sdcard core option.\n",
        "profiled_date": "2026-03-24",
        "source": "https://github.com/libretro/melonDS",
        "source_commit": "66b5d2634cd0a79030562811e6e05f5532f800ba",
        "systems": [
          "nintendo-ds",
          "nintendo-dsi"
        ],
        "type": "standalone + libretro",
        "upstream": "https://github.com/melonDS-emu/melonDS",
        "upstream_commit": "7d8dea42e221b13521270c423b61add41a741b97",
        "version_basis": {
          "kind": "file",
          "path": "Makefile.common",
          "pattern": "^MELONDS_VERSION\\s*=\\s*\"([^\"]+)\""
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
