# melonds-emu/melonds

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/melonds-emu-melonds).**

4,511 stars · 687 forks · C++ · gpl-3.0

## Links

- GitHub: https://github.com/melonDS-emu/melonDS
- Homepage: https://melonds.kuribo64.net
- awesome-repositories: https://awesome-repositories.com/repository/melonds-emu-melonds.md

## Topics

`dsi` `emulator` `nds`

## Description

melonDS is an open-source emulator that runs original Nintendo DS and DSi games on modern operating systems with high-accuracy hardware simulation. It emulates the DS and DSi CPUs, video, and audio systems, and supports booting from original system firmware for access to the system menu and configuration screens.

The emulator distinguishes itself through cycle-accurate component simulation for precise timing and compatibility, a JIT dynamic recompilation engine that translates game code to native x86_64 or AArch64 instructions for faster performance, and OpenGL hardware-accelerated rendering with programmable shaders and texture upscaling for improved visual quality. It also provides DSi extended hardware emulation including the DSP, audio channels, and expanded memory registers, a GBA slot passthrough interface for add-on accessories like the link cable and rumble pack, and network-transparent multiplayer bus that synchronizes multiple emulator instances over UDP packets for local network multiplayer sessions.

Additional capabilities include savestate serialization for capturing and restoring the complete emulator state, cheat code importing from standard usrcheat.dat files, real-time clock and microphone emulation, joystick input support, and adjustable dual-screen display layout and rotation configuration. The emulator also supports audio output synchronization with blip-buf resampling for low-latency playback.

## Tags

### Graphics & Multimedia

- [Nintendo DS Emulators](https://awesome-repositories.com/f/graphics-multimedia/legacy-media-emulators/console-emulators/nintendo-ds-emulators.md) — Runs original Nintendo DS games and system menus with accurate hardware emulation of CPU, video, and audio.
- [OpenGL Graphics Programming](https://awesome-repositories.com/f/graphics-multimedia/opengl-graphics-programming.md) — Renders 3D graphics using OpenGL with programmable shaders and texture upscaling for improved visual quality.
- [Emulator Graphics Renderers](https://awesome-repositories.com/f/graphics-multimedia/opengl-graphics-programming/emulator-graphics-renderers.md) — Renders 3D graphics using OpenGL with programmable shaders and texture upscaling for improved visual quality.
- [OpenGL Upscalers](https://awesome-repositories.com/f/graphics-multimedia/game-graphics-upscalers/opengl-upscalers.md) — Renders 3D scenes using OpenGL and upscales them for visual quality beyond original hardware. ([source](https://melonds.kuribo64.net/))
- [GBA Slot Add-On Emulators](https://awesome-repositories.com/f/graphics-multimedia/legacy-media-emulators/console-emulators/nintendo-ds-emulators/gba-slot-add-on-emulators.md) — Emulates GBA slot accessories such as the link cable and rumble pack for compatible DS games. ([source](http://melonds.kuribo64.net/))

### Operating Systems & Systems Programming

- [Cycle-Accurate Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/cycle-accurate-emulators.md) — Implements cycle-accurate component simulation for precise timing and compatibility with original games.
- [DSi](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/dsi.md) — Runs DSi-enhanced titles and system software by emulating the DSi's DSP, audio, and memory registers. ([source](https://melonds.kuribo64.net/))
- [Nintendo DSi](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/nintendo-dsi.md) — Emulates DSi-specific DSP, audio channels, and memory registers for running DSi-enhanced titles.
- [Nintendo DS Peripheral Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/real-time-clock-emulation/nintendo-ds-peripheral-emulators.md) — Simulates the Nintendo DS real-time clock and microphone for games that require these peripherals. ([source](http://melonds.kuribo64.net/))

### Programming Languages & Runtimes

- [JIT Compilation Engines](https://awesome-repositories.com/f/programming-languages-runtimes/jit-compilation-engines.md) — Translates ARM and Thumb game code to native x86_64 or AArch64 instructions at runtime for faster performance.
- [Emulator JIT Accelerators](https://awesome-repositories.com/f/programming-languages-runtimes/python-compilers/jit-compilation-accelerators/emulator-jit-accelerators.md) — Translates game code to native machine instructions at runtime for faster emulation performance. ([source](https://melonds.kuribo64.net/))

### Software Engineering & Architecture

- [Dynamic Recompilation Engines](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/computational-efficiency/cpu-optimization-strategies/hardware-instruction-targeting/instruction-set-targets/instruction-set-architecture-learning/dynamic-recompilation-engines.md) — Translates ARM and Thumb game code to native x86_64 or AArch64 instructions at runtime for faster performance.
- [Serialization Engines](https://awesome-repositories.com/f/software-engineering-architecture/serialization-engines.md) — Captures the complete emulator state including CPU registers, memory, and peripheral status into a portable binary snapshot.

### Web Development

- [Emulated Multiplayer Sessions](https://awesome-repositories.com/f/web-development/multiplayer-synchronization/emulated-multiplayer-sessions.md) — Emulates DS wireless hardware by serializing game state over UDP packets to synchronize multiple emulator instances.

### Part of an Awesome List

- [Nintendo DS Firmware Importers](https://awesome-repositories.com/f/awesome-lists/security/firmware-emulation-frameworks/system-firmware-importers/nintendo-ds-firmware-importers.md) — Boots original DS firmware from dumped BIOS to access the system menu and configuration screens. ([source](https://cdn.jsdelivr.net/gh/melonds-emu/melonds@master/README.md))

### DevOps & Infrastructure

- [Emulator Save State Management](https://awesome-repositories.com/f/devops-infrastructure/sandbox-lifecycle-management/snapshot-capture-and-restoration-managers/emulator-save-state-management.md) — Ships a savestate serialization engine for capturing and restoring the complete emulator state. ([source](http://melonds.kuribo64.net/))

### Game Development

- [Save State Managers](https://awesome-repositories.com/f/game-development/emulation-save-management/save-state-managers.md) — Captures the full emulator state to a file and reloads it later to save progress at any point. ([source](https://melonds.kuribo64.net/))
- [Emulation State Management](https://awesome-repositories.com/f/game-development/emulation-state-management.md) — Saves and restores the full emulator state to a file for instant progress reloading at any point.

### Hardware & IoT

- [Nintendo DS Input Mappings](https://awesome-repositories.com/f/hardware-iot/emulated-input-mappings/nintendo-ds-input-mappings.md) — Maps physical joystick or gamepad controls to emulated Nintendo DS inputs for gameplay. ([source](http://melonds.kuribo64.net/))
- [GBA Slot Passthrough Emulators](https://awesome-repositories.com/f/hardware-iot/hardware-slot-configuration/gba-slot-passthrough-emulators.md) — Emulates the GBA cartridge slot to support add-on accessories like the link cable and rumble pack.

### User Interface & Experience

- [Emulator Input Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/emulator-input-handlers.md) — Handles joystick input, real-time clock, microphone, and lid open/close events for authentic gameplay. ([source](https://melonds.kuribo64.net/))
