Getting started with melonDS
First of all, melonDS requires BIOS and firmware dumps from a DS. We haven't gotten around to making alternate BIOS/firmware yet. So, you will need to obtain those:

bios9.bin - 4KB - ARM9 BIOS
bios7.bin - 16KB - ARM7 BIOS
firmware.bin - 128/256/512KB - firmware dump

The files should be placed in the same directory as melonDS, under these exact names (watch out for the extensions, and case if you're running Linux).

You can dump these files from a DS with this dumper.

The firmware can come in three flavors:
• DSi/3DS DS-mode firmware: 128KB
• regular DS firmware: 256KB
• iQue DS firmware: 512KB

DSi/3DS firmwares are not bootable. They only contain configuration data.

Once that is done, you can launch melonDS and set it up.

Emu settings

• Boot game directly: when loading a ROM, this will run the ROM directly instead of running the 'Nintendo DS' boot screen. Note that if your firmware comes from a DSi or 3DS, you should keep this enabled.
• Threaded 3D renderer: runs the 3D renderer on a separate thread for better performance on multicore CPUs.

Input config

This is where you map keyboard and joystick input. To map a button, click it, then press the desired key or joystick button. You can press Escape to cancel the mapping process, leaving the previous mapping unchanged. Joystick mappings can also be cleared by pressing Backspace.

Hotkey config

This functions the same as input config, but pertains to hotkeys, which are like special buttons controlling the emulator's features (for example, closing the lid, playing a microphone sample, ...).

Audio settings

Audio output
• Volume: sets the general volume for the emulated audio output.

Microphone input
• None: no microphone input.
• Microphone: uses input from the microphone connected to your PC, if any.
• White noise: feeds random noise as microphone input, which is enough for a lot of games. Controlled by the microphone hotkey.
• WAV file: feeds a small WAV file as microphone input. Controlled by the microphone hotkey.

Wifi settings

• Bind socket to any address: enables local multiplayer over LAN. Toggling this may also help getting local multiplayer to work even on the same machine.

• Direct mode: directly forwards network traffic to the host network by using libpcap.
• Network adapter: under direct mode, chooses which adapter to forward to.

Savestate settings

• Separate savefiles: when enabled, loading/saving states will redirect regular saves to a separate file, as to keep your original save file intact.

Display settings

• Screen size: sets the window size to an integer size (1x, 2x, 3x, 4x).
• Screen rotation: rotates the screens, to simulate holding your DS sideways.
• Mid-screen gap: the space between the screens.
• Screen layout: how the screens are laid out; Natural keeps them stacked like an actual DS, the other options keep them aligned horizontally or vertically regardless of rotation.
• Screen sizing: how the window space is distributed; you can choose to keep the screens at the same size or to emphasize one, keeping the other at native resolution. Auto tries to determine the ideal mode based on how the game configures the display.
• Screen filtering: when enlarging the screens, applies a bilinear filter.
• Limit framerate: limits the emulator's framerate, typically at 60FPS.

Once melonDS is set up to your liking, well, load a game and enjoy!
How to?
Running the system menu/Pictochat/download play

Use System -> Run with no ROM loaded. If you already had a ROM loaded, you can use System -> Stop to unload it.

Importing a savefile from another emulator

melonDS uses raw save files, which should be compatible with most other emulators. Note that melonDS determines the save memory type (and thus protocol) from the size of the save file, so it is important that the file be exactly the correct size.

To use a savefile from DeSmuME or DraStic, you can either use the Export backup memory feature (for DeSmuME), or open the .dsv save file in a hex editor, remove excess bytes at the end until the size is a power of two, and save with a .sav extension.

To use a savefile from NO$GBA, you will need to feed it to a converter.

The following games may be problematic:
• WarioWare DIY, Jam with the Band: special save memory type, not yet supported in melonDS
• Pok√©mon Mystery Dungeon - Explorers of Sky: the correct save file size is 128KB. DeSmuME creates a 256KB file; you will need to open it in a hex editor and delete the upper half.


You can save a state at any time by using the keyboard shortcuts: Shift+F1..F8 for slots 1..8, or Shift+F9 to specify your own filename.

Similarly, you can load a saved state with F1..F8 for slots 1..8, or F9 to load any savestate file.

You can use F12 to undo a spurious state load.

Savestates for slots 1..8 are placed alongside the ROM file.

Local multiplayer/download play

You can open two melonDS instances on your computer and have them connect together. Or atleast try, wifi support is still WIP and not guaranteed to work. Disabling the framerate limiter has been found to help getting a stable connection.

By enabling the Bind socket to any address setting, you can try playing over LAN, but don't hold your breath. Nintendo's local multiplayer protocol requires tight timing for a good connection.

You can try connecting more than two melonDS instances together, but it will likely not function correctly.

Online connectivity

Online connectivity is achieved by emulating an access point (melonAP) the game can connect to. Past this, there are two methods for forwarding network traffic to the outer world:

• Direct mode. This is the best mode, it is straightforward and less likely to break. However, it requires libpcap/winpcap, that your computer be connected to the network via an ethernet connection, and that you run melonDS with administrator/superuser privileges. But if you satisfy all the requirements, you can throw anything at it and it'll work.

• Indirect mode. This tries to use BSD sockets to forward network traffic. It doesn't require anything fancy, but it is more likely to break and is still in alpha stages.
Where do I get ROMs?

We can't help you with this, sorry.

I can't get multiplayer to work

Keep in mind that wifi support is still WIP. Not all games work with it.

Why name it melonDS?

Why not? :D