Post

NDS Programming (Part 1)

NDS Programming (Part 1)

NDS Programming

Introduction

For programmers, this is both a scary and enticing topic. But this article will mainly be小品-style — writing wherever thoughts take me, without planning. Basically, self-entertainment.

If someone wants to learn NDS programming through this article, it’s best to have some coding experience — at minimum, know C, understand compiling, linking, loops, and selection statements. If you have zero coding experience, give up on NDS programming. For advanced requirements: ARM architecture, C/C++, experience with GNU tools.

I’ve had this idea for a long time: after finishing my book, I’d buy a handheld console to play with. That book tormented me for a year, weighing on my chest like a stone. Now it’s basically finished, and I can fulfill my promise to myself.

There are two popular handhelds now: Nintendo’s NDS (and later NDS Lite) and Sony’s PSP. I won’t go into technical details — basically, the NDS has weaker performance but more fun games (CPU is ARM). The PSP is powerful (CPU is MIPS) but doesn’t have many fun games. After much deliberation, I chose the NDSL. Last week, I got the full kit for 2300 yuan — NDSL console, Super Card flash cart, 1GB SD card… and I flashed the firmware (later reading foreign articles, I realized this is wrong — it encourages piracy and should be condemned — the legal way is to use PassMe).

I spent the whole weekend immersed in NDSL games. With the touch pen and microphone, many games have different ways to play. Nintendogs is simply captivating — no wonder it’s the fifth game in history to get a perfect Famitsu score.

Yesterday, while browsing the NDS forum www.ndsbbs.com, I saw a post by a high school senior (original link: http://www.ndsbbs.com/read.php?tid=9724) about running Hello World on his NDS. He said his English was poor, reading foreign materials was a headache, and using “terrifying” C++ programming meant running Hello World on the NDS was his “limit.” After reading this, the coding itch got me. I Googled NDS development resources — plenty abroad, few domestically. Soon, my own Hello World was running on the console.

Thus began the journey of transforming a game console into an ARM development board… NDS = Nintendo Dual Screen NDS = Nintendo Development System

Here we go!

This post is licensed under CC BY 4.0 by the author.