NDS Homebrew SDK

The Nintendo DS is the newest handheld console from Nintendo, released in the U.S. in November, 2004. In general, console manufacturers do not support independant development (homebrew), and the DS is no exception. Everything must be reverse engineered and documented, and free headers, libraries, and tools created

I have been involved in the community since before launch and have made significant contributions to making homebrew on the DS possible.  I co-authored the first homebrew development library ndslib with Jason Rogers (dovoto), which provides startup files, link scripts, and a library of functions to utilize the DS hardware.  The library was renamed to libnds when it merged repositories with devkitpro, and I continue to maintain and contribute to it there.  I also maintain the NDSTech Wiki (posting as Joat), a central repository for all homebrew knowledge about the Nintendo DS.

Below are a few pictures of my early development environment.


Writing out the touch screen
First homebrew use of the touch screen


My passthrough unit, which enables me to bypass the normal boot sequence and execute code in DS mode from a GBA cartridge.


First visual test. Everything before this was non-visual code dumping registers and probing memory. The count shows the number of command transactions observed on the DS bus (in hex).