rafaelvcaetano/melonDS-android

Android port of melonDS

Kotlin

1,694

910 commits

updated Sep 12, 2026

See the code

README

melonDS Android port

Android port of melonDS, a DS and DSi emulator.

Get it on Google PlayGet it on GitHub

Rom ListDark ThemePocket PhysicsLayout Editor
Screenshot 1Screenshot 2Screenshot 3Screenshot 4

Missing Features

  • Local Multiplayer
  • DSi SD card support
  • Customizable button skins
  • More display filters

Performance

Performance is solid on 64 bit devices with thread rendering and JIT enabled, and should run at full speed on flagship devices. Performance on older devices, specially 32 bit devices, is very poor due to the lack of JIT support.

Integration with third-party frontends

It's possible to launch melonDS from third part frontends. For that, you will need to have the ROMs you want to launch already scanned by melonDS. Then, you can configure your third-party frontend with the following configuration:

  • Package name: me.magnum.melonds
  • Activity name: me.magnum.melonds.ui.emulator.EmulatorActivity
  • Parameters (choose one):
    • Intent data (preferred) - a URI of the NDS ROM (ZIP and 7z files are supported). Ensure read permission is granted
    • uri (deprecated) - a string with the SAF URI of the NDS ROM (ZIP and 7z files are supported)
    • PATH (deprecated) - a string with the absolute path to the NDS ROM (ZIP and 7z files are supported)

Pegasus metadata files

Info regarding save files

When launching ROMs from third-party frontends, if melonDS hasn't scanned that particular ROM previously, it won't be able to create the save file next to the ROM file if the option "Save next to ROM file" is enabled in the settings or the save file directory is not set. Instead, melonDS will create a save file in Android/data/me.magnum.melonds/files/saves

Nightly Builds

To have access to the latest changes, you can install nightly builds that you can find here.

Be aware that these builds can contain more bugs than usual and you may need to clear your app data to get it to work properly after updates.

Building

To build the project you will need Android SDK, NDK and CMake.

Build steps:

  1. Clone the project, including submodules with:

    git clone --recurse-submodules https://github.com/rafaelvcaetano/melonDS-android.git

  2. Install the Android SDK, NDK and CMake

  3. Build with:

    1. Unix: ./gradlew :app:assembleGitHubProdDebug
    2. Windows: gradlew.bat :app:assembleGitHubProdDebug
  4. The generated APK can be found at app/gitHubProd/debug

If you want to create a release build, you will need to modify your local.properties file to include the following fields:

  • MELONDS_KEYSTORE=<path_to_your_keystore>
  • MELONDS_KEYSTORE_PASSWORD=<keystore_password>
  • MELONDS_KEY_ALIAS=<name_of_your_key_alias>
  • MELONDS_KEY_PASSWORD=<key_alias_password>
android
emulator
nintendo-ds

rafaelvcaetano/melonDS-android

Android port of melonDS

Kotlin

1,694

910 commits

updated Sep 12, 2026

See the code

README

melonDS Android port

Android port of melonDS, a DS and DSi emulator.

Get it on Google PlayGet it on GitHub

Rom ListDark ThemePocket PhysicsLayout Editor
Screenshot 1Screenshot 2Screenshot 3Screenshot 4

Missing Features

  • Local Multiplayer
  • DSi SD card support
  • Customizable button skins
  • More display filters

Performance

Performance is solid on 64 bit devices with thread rendering and JIT enabled, and should run at full speed on flagship devices. Performance on older devices, specially 32 bit devices, is very poor due to the lack of JIT support.

Integration with third-party frontends

It's possible to launch melonDS from third part frontends. For that, you will need to have the ROMs you want to launch already scanned by melonDS. Then, you can configure your third-party frontend with the following configuration:

  • Package name: me.magnum.melonds
  • Activity name: me.magnum.melonds.ui.emulator.EmulatorActivity
  • Parameters (choose one):
    • Intent data (preferred) - a URI of the NDS ROM (ZIP and 7z files are supported). Ensure read permission is granted
    • uri (deprecated) - a string with the SAF URI of the NDS ROM (ZIP and 7z files are supported)
    • PATH (deprecated) - a string with the absolute path to the NDS ROM (ZIP and 7z files are supported)

Pegasus metadata files

Info regarding save files

When launching ROMs from third-party frontends, if melonDS hasn't scanned that particular ROM previously, it won't be able to create the save file next to the ROM file if the option "Save next to ROM file" is enabled in the settings or the save file directory is not set. Instead, melonDS will create a save file in Android/data/me.magnum.melonds/files/saves

Nightly Builds

To have access to the latest changes, you can install nightly builds that you can find here.

Be aware that these builds can contain more bugs than usual and you may need to clear your app data to get it to work properly after updates.

Building

To build the project you will need Android SDK, NDK and CMake.

Build steps:

  1. Clone the project, including submodules with:

    git clone --recurse-submodules https://github.com/rafaelvcaetano/melonDS-android.git

  2. Install the Android SDK, NDK and CMake

  3. Build with:

    1. Unix: ./gradlew :app:assembleGitHubProdDebug
    2. Windows: gradlew.bat :app:assembleGitHubProdDebug
  4. The generated APK can be found at app/gitHubProd/debug

If you want to create a release build, you will need to modify your local.properties file to include the following fields:

  • MELONDS_KEYSTORE=<path_to_your_keystore>
  • MELONDS_KEYSTORE_PASSWORD=<keystore_password>
  • MELONDS_KEY_ALIAS=<name_of_your_key_alias>
  • MELONDS_KEY_PASSWORD=<key_alias_password>
android
emulator
nintendo-ds

Significant stargazers

Miguel Piedrafita

3,500 followers · starred Nov 2025

John Sundell

7,493 followers · starred Nov 2025

Zhang Ziang

18 followers · starred Apr 2026

Nathan Friedly

339 followers · starred Aug 2021