Skip to content
A (hopefully!) speedy NDS emulator
C++ C Makefile
Branch: master
Clone or download
Hydr8gon Try to fix edge cases where clipped polygons don't fully render
The original cases are fixed, but now some new ones are showing up.
They're a lot less prominent though, and I can't find a test case
that I can reliably reproduce for debugging.
Latest commit 9db6229 Feb 9, 2020


A (hopefully!) speedy NDS emulator.


The goal of NooDS is to be a fast and portable Nintendo DS emulator. My hope is that it will eventually be able to run well on the Nintendo Switch. And desktop too, of course! I'm doing this for fun and as a learning experience, and also because I'm a huge fan of the DS. To be honest, I've gotten further than I had originally expected; with most major features implemented, including a fairly competent 3D renderer and audio output, it's starting to feel like I have a proper emulator on my hands. It may not be a worthy competitor for the other DS emulators just yet, but I believe that I can get it there someday. And hopefully some of the plans I have for the future will make it worthwhile. Let's have some fun with this!


NooDS is available for Linux, macOS, Windows, and the Nintendo Switch. Automatic builds are provided via GitHub Actions; to use them, you'll need to install wxWidgets and PortAudio on Linux or macOS (see: Compiling for Linux or macOS). On Windows and Switch, you shouldn't need anything additional.

Compiling for Linux or macOS

To compile on Linux or macOS, you'll need to install wxWidgets and PortAudio using your favourite package manager. You can use Homebrew on macOS, since there is no package manager provided by default. The command will look something like apt install libwxgtk3.0-dev portaudio19-dev (Ubuntu) or brew install wxmac portaudio (macOS). After that, you can simply run make in the project root directory to compile.

Compiling for Windows

To compile on Windows, you'll need to install MSYS2. Once you have that set up and running, you can install all of the packages you'll need by running pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-wxWidgets mingw-w64-x86_64-portaudio make. After that, you can simply run make in the project root directory to compile.

Compiling for Switch

To compile for the Switch, you'll need to install devkitPro and the switch-dev package. You can then run make -f Makefile.switch in the project root directory to compile.


NooDS doesn't provide high-level emulation of the BIOS yet. To actually run games, you'll need to provide BIOS and firmware files, dumped from your physical DS. On the Switch, you'll also need a ROM file named "rom.nds" in the same directory as the executable, because there's no file browser yet.

Other Links

The NooDS Discord server, where we can chat and do other fun stuff!
My Patreon, where you can support the project or read about my progress!

You can’t perform that action at this time.