« Nintendo DS Architecture (index)

Nintendo DS Architecture

Chapter 6: I/O


Table of Contents

  1. Accessing cartridges and memory
    1. Inside Slot-1 cards
    2. Inside Slot-2 cartridges
  2. Peripherals
  3. Wireless network

To be honest, the I/O capabilities of the Nintendo DS are worthy of separate study. Once unaffordable equipment such as wireless connectivity, a touchscreen, a Real-Time Clock (RTC), and a microphone, combined with flagship software, made this console stand out every single year of its lifecycle. I would say Nintendo delivered the right innovation, at the right price, at the right time; a philosophy reaffirmed with the arrival of the Wii, two years later.

Under the hood, however, I/O components are strictly handled by the ARM7. In fact, you won't see much activity on that CPU beyond passing data around... which ultimately leaves the ARM7 a bit underused.

Accessing cartridges and memory

Starting with the internals, there's a Memory Interface block connecting three endpoints:

The interface can be accessed by both CPUs, but it contains registers that are modified to prioritise one CPU over the other, if two requests are issued on the same bus at the same time.

Image
External memory model with labelled data bus width.

Inside Slot-1 cards

Now, here's the challenging bit: unlike the old GamePak, DS cards are not memory-mapped, they use multiple serial interfaces to communicate. So, for either CPU to read the card's content, this must be copied to RAM first.

In the case of the card's ROM chip, the CPU must send blocks of 64-bit commands, referencing 32-bit addresses, to the DS card. Afterwards, the data can be retrieved either by pulling from a 32-bit register or through DMA. The data bus is 4 bits wide and, depending on the type of ROM fitted, it can reach speeds of up to 6.7 MB/s .

Alongside the DS card ROM, there is typically a 'backup' chip used for storing save data. These chips are instead accessed using a Serial Peripheral Interface (SPI) bus . In there, we may find:

Curiously enough, some games repurposed the SPI bus to include special hardware, such as:

Inside Slot-2 cartridges

At the bottom of the console, the Slot-2 is memory-mapped using the original pinout, but the addresses are slightly shifted in DS mode. However, just like the GBA, the ROM data bus is 16-bit wide and the RAM data bus is 8-bit wide.

Peripherals

The ARM7 is also connected to another SPI node that interfaces with the touchscreen controller, which drives the bottom screen. It is made of a resistive panel, requiring the use of a stylus. The bus also connects to flash memory, where the firmware is stored (more details are explained in the 'Operating System' section).

Image
A switchboard puzzle. To rescue the lassie, the player had to swipe the screen using two fingers at the same time to switch on the lights.

Image
But if you do it wrong...

Hotel Dusk: Room 215 (2007).

A curious aspect of this touchscreen is that, in addition to detecting the X/Y positions, it can also return the diagonal position (used to calculate the 'pressure value', which represents the area over which pressure is being applied). Unfortunately, this was never officially exposed. So, as far as I know, no commercial game made use of this undocumented feature, except homebrew.

As soon as this article was shared across different forums, many readers pointed out that Hotel Dusk: Room 215 relied on this feature for one of its puzzles, where the player is instructed to use two fingers at the same time. This is not the case, however. After running a series of experiments with the no$gba debugger, I noticed the puzzle does not make use of pressure data. Instead, it checks whether the X/Y values alternate sharply. The game interprets this behaviour as though the player were pressing the screen with two fingers.

The touchscreen controller is also connected to the console's microphone. Games operate it by simply switching an amplifier on, and then issuing SPI commands to get its input, bit by bit . The captured audio has a resolution of 8 bits, but its sampling rate depends on how many cycles the ARM7 plans to dedicate to pulling samples. In general, while the microphone is very primitive in terms of capability, games either used it as a basic speech detector, or to identify actions such as blowing into it. WarioWare: Touched! and the Nintendogs series are examples of games that leveraged microphone use.

Finally, in the same stack, we find the Real-Time Clock (RTC). Some titles relied on it to evolve their scenery as time progressed. Games like Animal Crossing: Wild World, The Sims 2, and the Pokémon series are notable examples. The operating system in this console also kept an internal calendar for one of its services.

Wireless network

Last but not least, the console houses a dedicated Wireless Controller that implements the IEEE 802.11b specification, also known as 'Wi-Fi'. The controller operates in the 2.4 GHz band, where Nintendo implemented many innovative services to enable multiplayer gaming :

You may remember that these were also marketed under the memorable 'Nintendo Wi-Fi Connection' logo.


Previous: 5. Audio

Next: 7. Operating System


Rodrigo Copetti © 2026 RSS Feed

Switch to modern edition

Home · Writings · Support · About author · About website