Title: The Nintendo DS
1The Nintendo DS
- More than just fun and games.
2The Nintendo DS
- Programming and controlling a
- dedicated-purpose computer system.
3Why Should I Care?
65 million units
8.5 billion sales
4Why Should I Care?
5Why Should I Care?
6"Homebrew" Computing
- The Importance of Fiddling with Things
7Spacewar (1962)
Pong (1966/1972)
8Space Travel game (1969)
9Apple I (1976)
10Who is Into Homebrew Computing?
Computer Enthusiasts
Tinkerers
Geeks
Innovators!
11Inside the Nintendo DS
12Two TFT back-lighted screens
Including a resistive touchpad integrated in the
bottom screen
13Integrated wireless networking via Wi-Fi
12 buttons for game-play inputs
1416-channel sound output
Integrated microphone with limited speech
recognition
15Inside the Nintendo DS
- System Architecture and Design
16First CPU ARM9 67 MHz, 200-300 MIPS, 16/32 bit
17Second CPU ARM7 33 MHz, 20 MIPS, 16/32 bit
18Main memory 4MB of built-in RAM
19Dedicated video RAM 656 KB in 9 memory banks
20Other memory banks ARM9 caches, ARM7 Fast RAM,
shared Fast RAM, DTCM and ITCM
21Two slots for external Flash memory DS
software port and legacy GBA software port
22(No Transcript)
23Developing for the DS
The Nintendo DS Software Development Environment
24It is a shame that homebrew development can't be
officially sanctioned and supported, because it
would be a wonderful platform for a modern
generation of programmers to be able to get a
real feel for low level design work, to be
contrasted with the high level web and
application work that so many entry level people
start with.
John Carmack
25Today's Homebrew Devices
26 Nintendo DS Apple iPhone
Open SDK 399 - 499 (New) 500 - 800
(Used/Unlocked)
No Homebrew Support 115 - 130 (New) 40 -
75 (Used)
27The DS is not meant to be a homebrew device
because Nintendo is concerned that people will
use homebrew innovations to access and play
pirated games.
28No floating point unit
Encryption Dynamic libraries NOT
supported Need to synchronize two CPUs
DS Homebrew Challenges
29Libraries are available for Homebrew coding
- devkitARM ARM preprocessor, compiler linker
- libnds a low-level NDS library
- palib an optional higher level library
- dswifi an add-on to libnds for wi-fi support
- libfat filesystem manager for r/w to media
- DeSmuME and NOGBA emulators for testing
30Just You and the Bits Chips
- Even with the available libraries, you must
understand - what is happening at a very low level, in order
to - write code that will work.
- Programming Options
- ARM assembly
- C/C
DS TV tuner
31Two CPUs Two (main) functions
ARM7
ARM9
32Check out what you can program on a Nintendo DS!
33GPS on the DS (using Google Maps)
34Any questions?
35(No Transcript)