From GameBrew

AuthorLorenzo Mancini
Last Updated2011/01/22
TypeOther Apps

dspython is a homebrew port Python programming language for Nintendo DS.

This work introduces a concrete way to expose Nintendo DS hardware to Python; it uses the Pyrex extension language to produce valid libdns wrappers in form of Python modules. It has been built upon the original port of Stackless Python 2.5 port to Nintendo DS by Richard Tew. It has been updated by Liu Zhenhai to build with the latest version of the toolchain.

Some sections of libnds have been wrapped, including framebuffer access, touchscreen reading, console emulation, irq handling and 3D functions.


Download contains the complete environment required to run Python programs on the Nintendo DS:

Unpack dspyenv.zip, copy both NDSPython.nds and the python/ directory to the root of your homebrew storage.

Start your Nintendo DS and run NDSPython.nds: the file main.py located in the python/ directory will be automatically launched.

To run example scripts (in the nitrofiles folder), just save one of them as /python/main.py on your homebrew storage device, and exectue NDSPython.nds.

  • 3D drawing (3D, touchscreen reading) - main_3d.py
  • Paint (writing to framebuffer, touchscreen reading) - main_draw.py
  • Showpic (load binary as image, D-pad reading) - main_showpic.py
  • Stopwatch (timer handling) - main_stopwatch.py
  • Crush (simple game using 3D and touchscreen) - main_crush.py


dspython3.png dspython2.png

Known issues

Can only run one script for each setup (see issues).


Richard Tew did the original work of porting Stackless Python 2.5 on Nintendo DS; this project is a continuation of his work. Please see README.old for a list of the original credits.

Greg Ewing is the author of Pyrex, the extension language on which dspython bases its libnds wrapper.

External links