The Nintendo DS - Computer

Post on 17-Jun-2015

561 views 6 download

Tags:

transcript

The Nintendo DS

More than just fun and games.

The Nintendo DS

Programming and controlling adedicated-purpose computer system.

Why Should I Care?

   

65 million units65 million units

$8.5 billion sales$8.5 billion sales

Why Should I Care?

   

Why Should I Care?

   

"Homebrew" ComputingThe Importance of Fiddling with Things

Spacewar (1962)

Pong (1966/1972)

Space Travel game (1969)

Apple I (1976)

Who is Into Homebrew Computing?

EngineersComputer

Enthusiasts

Tinkerers

Geeks

Innovators!

Inside the Nintendo DS:

Hardware

Two TFT back-lighted screens

Including a resistive touchpad integrated in the bottom screen

Integrated wireless networking via Wi-Fi

12 buttons for game-play inputs

16-channel sound output

Integrated microphone with limited speech recognition

Inside the Nintendo DS:

System Architecture and Design

First CPU:

ARM9 67 MHz, 200-300 MIPS, 16/32 bit

Second CPU:

ARM7 33 MHz, 20 MIPS, 16/32 bit

Main memory:

4MB of built-in RAM

Dedicated video RAM

656 KB in 9 memory banks

Other memory banks:

ARM9 caches, ARM7 Fast RAM, shared Fast RAM, DTCM and ITCM

Two slots for external Flash memory:

DS software port and legacy GBA software port

Developing for the DSDeveloping for the DSThe Nintendo DS Software The Nintendo DS Software Development EnvironmentDevelopment Environment

“It 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

Today's Homebrew Devices

Open SDK

$399 - $499 (New)

$500 - $800 (Used/Unlocked)

No Homebrew Support

$115 - $130 (New)

$40 - $75 (Used)

Nintendo DS Apple iPhone

The DS is not meant to be a homebrew device…

because Nintendo is concerned thatpeople will use homebrew innovations to access

and play pirated games.

No floating point unit

Encryption

Dynamic libraries NOT supported

Need to synchronize two CPUs

DS Homebrew Challenges

Libraries 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 NO$GBA: emulators for testing

Just 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

Two CPUs = Two (main) functions

ARM7

ARM9

Check out what you

can program on a

Nintendo DS!

GPS on the DS (using Google Maps)

Any questions?