July 20, 2007

Open source software on the Nintendo DS (Lite)

Author: Dmitri Popov

The Nintendo DS is an excellent gaming device, but that's not all you can do with it. The machine's "hackability" makes the Nintendo DS a great platform for running open source software and even Linux, if you want to run a slimmed down version of Linux. In fact, several nifty open source applications can turn your Nintendo DS into a rather useful all-around computing device.

Before you can start loading open source software on your Nintendo DS, you have to buy an expansion card that adds storage capabilities to your game console and makes it possible to run homebrew games and applications. You have several options here, and the most popular are:

  • R4 Revolution for DS which allows you to use MicroSD cards up to 4GB. It supports DS sleep mode, the FAT16/32 file system and DS's touch sensitive screen. More importantly, it supports Dynamically Linked Device Interface (DLDI) auto-patching, which allows the applications to write data onto the storage card.
  • M3 CS Simply which uses MicroSD cards and features upgradeable firmware and support for all Nintendo DS's features.
  • Cyclo DS Evolution also uses MicroSD cards, it supports both the FAT16 and FAT32 file systems, and includes an DLDI auto-patcher as well as the Moonshell media player.
  • DS-Xtreme comes with on-board storage (the card is available in 512MB and 2GB versions). DS-Extreme features a built-in MP3 player and an application launcher. DS-Xtreme has a built-in USB port, so you can connect it to your computer using a standard mini USB cable.

Which one to choose largely depends on your needs, taste, and disposable income. So check online reviews and prices to choose the one that suits you best. I've been using a DS-Xtreme card with my Nintendo DS Lite, and I'm quite pleased with it. No matter which card you choose, the basic operation is the same.

Simply copy .nds files to the card, and you are ready to go. However, before you actually do that, you might need to apply a DLDI patch to the .nds files. This will allow the application to write data to the card, which is essential if you want to save application settings and such.

The GBAtemp Web site provides an excellent introduction to the topic, and will help you to determine whether you need to use the DLDI patching and which applications to patch. There is also a nice graphical patcher for Linux called DLDI Linux GUI, which makes the patching process rather simple.

Staying organized with DSOrganize

DSOrganize is described by its author as "a homebrew organizer application for the Nintendo DS that should have come built in in the first place." And that is no exaggeration. Despite its name, DSOrganize is not just an organizer, it's an application suite including nine useful tools: Calendar, Day Planner, Address Book, Todo List, Scribble Pad, File Browser, Calculator, IRC Client, and Web Browser. In other words, DSOrganize has practically everything you need to turn your game console into a pocket computer.


Instead of one calendar application, DSOrganize provides three tools: Calendar, Daily Planner, and Todo List. The interesting part is how these utilities are tied together. The Calendar is not just a calendar, but an entry point, which allows you to view a monthly calendar and quickly create reminders.

When you press on the View Day button, it launches the Daily Planner module, where you can add events and appointments. And using the Todo List tool, you can keep track of your tasks. DSOrganize then uses Nintendo DS's upper screen to aggregate the data from these three modules into a single Start window, which provides an overview of all your reminders, appointments, and tasks for the current date. This is a simple, yet elegant solution.

DSOrganize uses a virtual keyboard for most data entering, but it also makes extensive use of Nintendo DS's buttons for easy and quick navigation between windows and applications. In fact, most of the buttons have their hardware equivalents: for example, you can use the B button to switch to the Daily Planner, or A to edit reminders, and you can always get back to the Start screen by pressing the Home button. DSOrganize also makes extensive use of color coding to make it easier to keep tabs on the data. In the Calendar, for example, the dates with reminders are colored orange, while the dates with events are underlined purple.

Although you can't sync calendar and contact data, it is rather easy to extract it from DSOrganize, if necessary: the application stores appointments, todos, and reminders as plain text files, which you can open in any text editor. Things look even better for contacts in the Address Book. DSOrganize stores them as standard vCard files, which can be easily imported into a vCard-compatible application. The only fly in the ointment is the lack of support for cut and paste, which makes text editing a tad more difficult.

The File Browser module is another gem in DSOrganize's collection. Obviously, you can use it to manage files and browse directories on the storage card. But since the File Browser supports a wide range of file formats, it can also act as a media player, picture viewer, text editor, and much more. The list of supported music formats includes WAV, MP3, Ogg, FLAC, and ACC as well as PLS and M3U playlists.

The browser can even manage MP3 and Ogg streams, so, in theory, you should be able to play Internet radio on your Nintendo DS. In practice, however, buffering the stream takes too long to be of any practical use. The File Browser also supports common graphics formats such as GIF, Bitmap, JPEG, and PNG, so you can use it as a no-frills image viewer. While the browser can't create text files, it can edit them (select the text file and press the Y button), so you can use it as a bare-bones text editor.

Other DSOrganize modules are equally useful and sport a multitude of nifty features. The Scribble Pad, for example, is a pretty capable drawing application, which you can use to jot quick notes or doodle while commuting or attending a boring meeting. The IRC module, is a surprisingly useful IRC client, and the Web Browser allows you to check Web pages. Keep in mind, though, that this is a text-based browser, so it's better suited for emergency situations rather than regular web surfing. Both applications only work if you've already configured wireless settings on your Nintendo DS using a Wi-Fi-enabled game or Opera browser.

Run Linux and play open source games

Since Linux can run on pretty much anything, it comes as no surprise that there is a Linux version for Nintendo DS aptly named DSLinux. The DSLinux Wiki provides detailed info on how to install, configure, and use DSLinux. Obviously, DSLinux won't allow you to run a graphical desktop, but it has a couple of neat tricks up its sleeve. For example, it supports Nintendo DS's Wi-Fi, and there is the handy vi editor you can use to edit the Wi-Fi settings file. DSLinux also features the retawq text-only web browser as well as the tinyirc IRC client. There are even a couple of games like tetris and sudoku (a full list of the software bundled with DSLinux is available here.

If DSLinux doesn't tickle your fancy, how about some gaming fun? There are quite a few quality open source games for Nintendo DS, including WordUp, Lemmings DS, and Explosion of an Aeroplane.

Several other excellent open source applications for Nintendo DS deserve to be mentioned. Moonshell media player is one of the most widely used homebrew open source application for Nintendo DS. It supports all common audio and video formats, and even comes with a handy video encoder (albeit Windows only). DSVNC is a VNC client that allows you to control remote machines with your Nintendo DS.

Final word

All in all, a few open source applications can turn your humble Nintendo DS into a truly versatile computing device. No matter whether you want to use your Nintendo DS to manage your calendar, listen to music, view photos, or take notes, open source software gets you covered.


  • Handheld Devices
Click Here!