{
  "version": 3,
  "id": "melonds",
  "name": "melonDS",
  "revision": "2026-09-30.4",
  "origin": {
    "kind": "url",
    "url": "https://kouch.dev/emulators/melonds.kod"
  },
  "args": [
    "--fullscreen",
    "{rom}"
  ],
  "working_dir": null,
  "env": {},
  "window_mode": "fullscreen",
  "quit": {
    "method": "close",
    "force_kill_after_ms": 8000
  },
  "on_disconnect": "hold_neutral",
  "dsu": null,
  "native_gamepads": "disable_in_emulator_config",
  "update_check": true,
  "auto_update": false,
  "systems": [
    {
      "id": "nds",
      "folder": "nds",
      "name": "Nintendo DS",
      "art": {
        "thumbnails": "Nintendo - Nintendo DS"
      }
    }
  ],
  "extensions": [
    "nds",
    "dsi",
    "ids",
    "srl"
  ],
  "max_players": 1,
  "players": [
    {
      "dsu": null,
      "vpad": null,
      "motion": false
    }
  ],
  "hotkeys": {
    "pause": {
      "keys": [
        "ctrl",
        "p"
      ]
    },
    "save_state": {
      "keys": [
        "shift",
        "f1"
      ]
    },
    "load_state": {
      "keys": [
        "f1"
      ]
    },
    "reset": null,
    "screenshot": null,
    "quit": null,
    "fullscreen": {
      "keys": [
        "f11"
      ]
    },
    "extra": [
      {
        "id": "swap_screens",
        "label": "Swap screens",
        "chord": {
          "keys": [
            "f10"
          ]
        }
      },
      {
        "id": "switch_large_screen",
        "label": "Switch the large screen",
        "chord": {
          "keys": [
            "ctrl",
            "l"
          ]
        }
      }
    ]
  },
  "pause": {
    "method": "hotkey",
    "chord": {
      "keys": [
        "ctrl",
        "p"
      ]
    }
  },
  "user_data": {
    "folders": {
      "saves": "saves",
      "states": "states",
      "screenshots": "screenshots",
      "config": "config",
      "system": "system"
    },
    "cloud": [
      "saves"
    ],
    "links": [
      {
        "link": "{emulator_dir}/portable",
        "target": "{config}"
      }
    ],
    "config_edits": [
      {
        "file": "{config}/melonDS.toml",
        "format": "toml",
        "set": {
          "Instance0.JoystickID": "{seat_pad_1}",
          "Instance0.SaveFilePath": "{saves}",
          "Instance0.SavestatePath": "{states}",
          "Instance0.CheatFilePath": "{config}/cheats",
          "Instance0.Keyboard.HK_Pause": 67108944,
          "Instance0.Keyboard.HK_FullscreenToggle": 16777274,
          "Instance0.Keyboard.HK_SwapScreens": 16777273,
          "Instance0.Keyboard.HK_SwapScreenEmphasis": 67108940,
          "Mouse.Hide": true,
          "PauseLostFocus": false,
          "Emu.DirectBoot": true,
          "Instance0.Joystick.A": 1,
          "Instance0.Joystick.B": 0,
          "Instance0.Joystick.X": 3,
          "Instance0.Joystick.Y": 2,
          "Instance0.Joystick.L": 4,
          "Instance0.Joystick.R": 5,
          "Instance0.Joystick.Select": 6,
          "Instance0.Joystick.Start": 7,
          "Instance0.Joystick.Up": 17891585,
          "Instance0.Joystick.Right": 65794,
          "Instance0.Joystick.Down": 16843012,
          "Instance0.Joystick.Left": 1114376
        }
      }
    ],
    "system_files": [
      {
        "names": [
          "bios9.bin"
        ],
        "sizes": [
          4096
        ],
        "kind": "file",
        "what": "Start-up ROM (main processor)",
        "required": false,
        "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
        "read_at": "config"
      },
      {
        "names": [
          "bios7.bin"
        ],
        "sizes": [
          16384
        ],
        "kind": "file",
        "what": "Start-up ROM (second processor)",
        "required": false,
        "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
        "read_at": "config"
      },
      {
        "names": [
          "firmware.bin"
        ],
        "sizes": [
          131072,
          262144,
          524288
        ],
        "kind": "file",
        "what": "Console settings file",
        "required": false,
        "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
        "read_at": "config"
      }
    ]
  },
  "options": [
    {
      "id": "layout",
      "label": "Screen layout",
      "tab": "graphics",
      "type": "choice",
      "role": "screen_layout",
      "section": "Screens",
      "default": "large_beside",
      "values": [
        {
          "value": "large_beside",
          "label": "Large main, small beside it",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "Instance0.Window0.ScreenLayout": 2,
                "Instance0.Window0.ScreenSizing": 1
              }
            }
          ]
        },
        {
          "value": "side_by_side",
          "label": "Side by side",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "Instance0.Window0.ScreenLayout": 2,
                "Instance0.Window0.ScreenSizing": 0
              }
            }
          ]
        },
        {
          "value": "stacked",
          "label": "Stacked",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "Instance0.Window0.ScreenLayout": 0,
                "Instance0.Window0.ScreenSizing": 0
              }
            }
          ]
        },
        {
          "value": "hybrid",
          "label": "Large main with both small",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "Instance0.Window0.ScreenLayout": 3,
                "Instance0.Window0.ScreenSizing": 0
              }
            }
          ]
        },
        {
          "value": "main_only",
          "label": "Main screen only",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "Instance0.Window0.ScreenLayout": 0,
                "Instance0.Window0.ScreenSizing": 4
              }
            }
          ]
        }
      ],
      "apply": {
        "kind": "arg",
        "args": []
      }
    },
    {
      "id": "swap_screens",
      "label": "Swap screens",
      "tab": "graphics",
      "type": "toggle",
      "role": "screen_layout",
      "section": "Screens",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/melonDS.toml",
        "format": "toml",
        "key": "Instance0.Window0.ScreenSwap",
        "on": true,
        "off": false
      }
    },
    {
      "id": "renderer",
      "label": "Renderer",
      "tab": "graphics",
      "type": "choice",
      "role": "renderer",
      "section": "Renderer",
      "restart": true,
      "default": "opengl",
      "values": [
        {
          "value": "opengl",
          "label": "OpenGL",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "3D.Renderer": 1,
                "Screen.UseGL": true
              }
            }
          ]
        },
        {
          "value": "opengl_compute",
          "label": "OpenGL (compute shaders)",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "3D.Renderer": 2,
                "Screen.UseGL": true
              }
            }
          ]
        },
        {
          "value": "software",
          "label": "Software (most accurate)",
          "edits": [
            {
              "file": "{config}/melonDS.toml",
              "format": "toml",
              "set": {
                "3D.Renderer": 0,
                "Screen.UseGL": false
              }
            }
          ]
        }
      ],
      "apply": {
        "kind": "arg",
        "args": []
      }
    },
    {
      "id": "resolution",
      "label": "Internal resolution",
      "tab": "graphics",
      "type": "choice",
      "role": "internal_resolution",
      "section": "Resolution",
      "description": "With an OpenGL renderer only.",
      "default": 1,
      "values": [
        {
          "value": 1,
          "label": "Native (256×192)"
        },
        {
          "value": 2,
          "label": "2× (512×384)"
        },
        {
          "value": 3,
          "label": "3× (768×576)"
        },
        {
          "value": 4,
          "label": "4× (1024×768)"
        },
        {
          "value": 5,
          "label": "5× (1280×960)"
        },
        {
          "value": 6,
          "label": "6× (1536×1152)"
        },
        {
          "value": 8,
          "label": "8× (2048×1536)"
        }
      ],
      "apply": {
        "kind": "config_edit",
        "file": "{config}/melonDS.toml",
        "format": "toml",
        "key": "3D.GL.ScaleFactor"
      }
    },
    {
      "id": "filter",
      "label": "Smooth the picture",
      "tab": "graphics",
      "type": "toggle",
      "role": "output_filter",
      "section": "Display",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/melonDS.toml",
        "format": "toml",
        "key": "Screen.Filter",
        "on": true,
        "off": false
      }
    },
    {
      "id": "volume",
      "label": "Volume",
      "tab": "audio",
      "type": "choice",
      "default": 256,
      "values": [
        {
          "value": 0,
          "label": "Muted"
        },
        {
          "value": 64,
          "label": "25%"
        },
        {
          "value": 128,
          "label": "50%"
        },
        {
          "value": 192,
          "label": "75%"
        },
        {
          "value": 256,
          "label": "100%"
        }
      ],
      "apply": {
        "kind": "config_edit",
        "file": "{config}/melonDS.toml",
        "format": "toml",
        "key": "Instance0.Audio.Volume"
      }
    }
  ],
  "presets": [
    {
      "id": "performance",
      "label": "Performance",
      "description": "Native resolution.",
      "values": {
        "resolution": 1,
        "renderer": "opengl"
      }
    },
    {
      "id": "balanced",
      "label": "Balanced",
      "description": "Sharper 3D for a 720p screen.",
      "values": {
        "resolution": 3,
        "renderer": "opengl"
      }
    },
    {
      "id": "quality",
      "label": "Quality",
      "description": "Sharp 3D for a 1080p screen.",
      "values": {
        "resolution": 5,
        "renderer": "opengl"
      }
    }
  ],
  "auto": {
    "renderer": "opengl",
    "internal_resolution": {
      "native_height": 192
    }
  },
  "unsupported": {
    "netplay": "Local wireless play is set up in the emulator’s own LAN window.",
    "screenshots": "The emulator has no screenshot key.",
    "mods": "The emulator has no mod or texture-pack folders.",
    "motion": "The console had no motion sensors."
  },
  "platforms": {
    "windows": {
      "launch": {
        "kind": "exe",
        "path": "melonDS.exe"
      },
      "source": {
        "kind": "github_release",
        "repo": "melonDS-emu/melonDS",
        "asset": "melonDS-*-windows-x86_64.zip",
        "url": null,
        "sha256": null,
        "install_subdir": null,
        "executable": "melonDS.exe",
        "auto_update": false,
        "feed": null
      },
      "user_data": {
        "folders": {
          "saves": "saves",
          "states": "states",
          "screenshots": "screenshots",
          "config": "config",
          "system": "system"
        },
        "cloud": [
          "saves"
        ],
        "links": [
          {
            "link": "{emulator_dir}/portable",
            "target": "{config}"
          }
        ],
        "config_edits": [
          {
            "file": "{config}/melonDS.toml",
            "format": "toml",
            "set": {
              "Instance0.JoystickID": "{seat_pad_1}",
              "Instance0.SaveFilePath": "{saves}",
              "Instance0.SavestatePath": "{states}",
              "Instance0.CheatFilePath": "{config}/cheats",
              "Instance0.Keyboard.HK_Pause": 67108944,
              "Instance0.Keyboard.HK_FullscreenToggle": 16777274,
              "Instance0.Keyboard.HK_SwapScreens": 16777273,
              "Instance0.Keyboard.HK_SwapScreenEmphasis": 67108940,
              "Mouse.Hide": true,
              "PauseLostFocus": false,
              "Emu.DirectBoot": true,
              "Instance0.Joystick.A": 1,
              "Instance0.Joystick.B": 0,
              "Instance0.Joystick.X": 3,
              "Instance0.Joystick.Y": 2,
              "Instance0.Joystick.L": 4,
              "Instance0.Joystick.R": 5,
              "Instance0.Joystick.Select": 6,
              "Instance0.Joystick.Start": 7,
              "Instance0.Joystick.Up": 17891585,
              "Instance0.Joystick.Right": 65794,
              "Instance0.Joystick.Down": 16843012,
              "Instance0.Joystick.Left": 1114376
            }
          }
        ],
        "system_files": [
          {
            "names": [
              "bios9.bin"
            ],
            "sizes": [
              4096
            ],
            "kind": "file",
            "what": "Start-up ROM (main processor)",
            "required": false,
            "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
            "read_at": "config"
          },
          {
            "names": [
              "bios7.bin"
            ],
            "sizes": [
              16384
            ],
            "kind": "file",
            "what": "Start-up ROM (second processor)",
            "required": false,
            "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
            "read_at": "config"
          },
          {
            "names": [
              "firmware.bin"
            ],
            "sizes": [
              131072,
              262144,
              524288
            ],
            "kind": "file",
            "what": "Console settings file",
            "required": false,
            "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
            "read_at": "config"
          }
        ]
      }
    },
    "linux": {
      "launch": {
        "kind": "exe",
        "path": "melonDS-x86_64.AppImage"
      },
      "source": {
        "kind": "github_release",
        "repo": "melonDS-emu/melonDS",
        "asset": "melonDS-*-appimage-x86_64.zip",
        "url": null,
        "sha256": null,
        "install_subdir": null,
        "executable": "melonDS-x86_64.AppImage",
        "auto_update": false,
        "feed": null
      },
      "env": {
        "XDG_CONFIG_HOME": "{user_data}",
        "XDG_DATA_HOME": "{user_data}/xdg-data",
        "XDG_CACHE_HOME": "{user_data}/xdg-cache"
      },
      "user_data": {
        "folders": {
          "saves": "saves",
          "states": "states",
          "screenshots": "screenshots",
          "config": "config",
          "system": "system"
        },
        "cloud": [
          "saves"
        ],
        "links": [
          {
            "link": "{user_data}/melonDS",
            "target": "{config}"
          }
        ],
        "config_edits": [
          {
            "file": "{config}/melonDS.toml",
            "format": "toml",
            "set": {
              "Instance0.JoystickID": "{seat_pad_1}",
              "Instance0.SaveFilePath": "{saves}",
              "Instance0.SavestatePath": "{states}",
              "Instance0.CheatFilePath": "{config}/cheats",
              "Instance0.Keyboard.HK_Pause": 67108944,
              "Instance0.Keyboard.HK_FullscreenToggle": 16777274,
              "Instance0.Keyboard.HK_SwapScreens": 16777273,
              "Instance0.Keyboard.HK_SwapScreenEmphasis": 67108940,
              "Mouse.Hide": true,
              "PauseLostFocus": false,
              "Emu.DirectBoot": true,
              "Instance0.Joystick.A": 1,
              "Instance0.Joystick.B": 0,
              "Instance0.Joystick.X": 3,
              "Instance0.Joystick.Y": 2,
              "Instance0.Joystick.L": 4,
              "Instance0.Joystick.R": 5,
              "Instance0.Joystick.Select": 6,
              "Instance0.Joystick.Start": 7,
              "Instance0.Joystick.Up": 17891585,
              "Instance0.Joystick.Right": 65794,
              "Instance0.Joystick.Down": 16843012,
              "Instance0.Joystick.Left": 1114376
            }
          }
        ],
        "system_files": [
          {
            "names": [
              "bios9.bin"
            ],
            "sizes": [
              4096
            ],
            "kind": "file",
            "what": "Start-up ROM (main processor)",
            "required": false,
            "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
            "read_at": "config"
          },
          {
            "names": [
              "bios7.bin"
            ],
            "sizes": [
              16384
            ],
            "kind": "file",
            "what": "Start-up ROM (second processor)",
            "required": false,
            "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
            "read_at": "config"
          },
          {
            "names": [
              "firmware.bin"
            ],
            "sizes": [
              131072,
              262144,
              524288
            ],
            "kind": "file",
            "what": "Console settings file",
            "required": false,
            "features": "the console’s real start-up menu, with the other two files, once switched on in the emulator’s settings",
            "read_at": "config"
          }
        ]
      }
    }
  }
}
