Nintendo's Nitro Project
/Nintendo DS

Notes about this document: I write numbers this way 1'234,567'9 ≈ 100k/81 and use units like 1k=1000 or 1ki=1024 because 1K=-272,15°C

The Nintendo DS is (or was) very popular and quite well documented, thus, I'll compare the main features and focus on oddities.

Specs

Handheld GBA DS Phat&Lite DSi&Grandpa DS 3DS&Doorstop 2DS New3DS&Budget 3DS
Sprite Count128 128 128
Triangles/Frame0 2048 2048 1,71Mi 1,71Mi
Colour Depth15-bit18-bit 18-bit 24-bit 24-bit
Resolution 240×160256×192×2 256×192×2 400×240 + 320×240 400×240 + 320×240
Frame rate 59,728FPS 59,826FPS 59,826FPS ~60FPS ~60FPS
Audio DAC 32kiHz 9-bit32kiHz 10-bit?OK I give up
Camera WormCam: 182×142
GB Camera: 2b×128×128
FaceningScan640×480×2640×480×3 640×480×3
Main RAM 256kiB 4MiB 16MiB 96MiB 192MiB
Flash 0 256kiB 256MiB
Cartridge ROM: 4-64MiB; 1clk+2clk/tx typ.
SRAM: 256-512kiB; 9clk/B typ.
EEPROM: 512B-8kiB; 9clk/B typ.
Flash: 64-128kiB 1+clk+3clk/B typ.
Theory: 2clk+2clk/tx
ROM: 8-64MiB 5,99MiB/s
PROM: 16-256MiB 1,52MiB/s
EEPROM: 512B-64kiB 25kiB/s
Flash: 256kiB-8MiB 10kiB/s
FRAM: 8kiB-32kiB typ.
NAND: "128MiB" typ.
Timing is yolo!
ROM: 8-512MiB typ.
Uncommon
ROM: 128MiB-4GiB typ. ROM: 128MiB-4GiB typ.
CPU ARM7TDMI @16MiHz
Sharp SP83 @8MiHz
ARM946E-S @~64MiHz
ARM7TDMI @~32MiHz
ARM9 @~128MiHz
ARM7 @~32MiHz
XpertTeak @~128MiHz
ARM11 2@~256MiHz
ARM9 @~128MiHz
ARM11 4@~768MiHz
ARM9 @~128MiHz
Wi-Fi None Wi-Fi 1
WEP
Wi-Fi 1&3
WEP&WPA2
Wi-Fi 1&3
WEP&WPA2
Wi-Fi 1&3
WEP&WPA2

It happens that the way the DS connects to Wi-Fi is so well done that it can connect to hidden networks as though it wasn't!

Some information are based off the incredible GBATEK manual!

Wi-Fi

Some stats for reference (probably contains numerous errors!!!)

Wi-Fi Since IEEE Rate/(Mb/s)RF
Wi-Fi 01997 802.11 1-2 2,4GHz
Wi-Fi 11999 802.11b 1-11 2,4GHz
Wi-Fi 21999 802.11a 6-54 5GHz
Wi-Fi 32003 802.11g 6-54 2,4GHz
Wi-Fi 42009 802.11n 6,5-600 2,4GHz;5GHz
Wi-Fi 52013 802.11ac 6,5-6933 5GHz
Wi-Fi 62021 802.11ax 0,4-9608 2,4GHz;5GHz;6GHz
Wi-Fi 72024 802.11be 0,4-23059 2,4GHz;5GHz;6GHz
Encryption Since Until Typical Cypher Data Integrity Password handling
WEP 1997 2001 RC4 CRC-32 IV
WPA 2003 2013 TKIP-128 (RC4) TKIP PSK
WPA2 2004 2017 AES-128 TKIP PSK
WPA3 2018 2019 AES-256 SHA-384 SAE

May contain errors.

Standards took some delay, unlike attacks. As always.

Internet

Tool Description Some pros Some cons
DIY-Fi Restores fonctionnalities of WW-DIY Connected to the DoujinSoft Store.
Only DNS server IP required!
Only WW-DIY.
Kaeru WFC Restores fonctionnalities of 500+ gamesConnected to Wiimmfi
Only DNS server IP required!
No Sudomemo nor eShop.
Wiimfi Restores fonctionnalities of 500+ games500+ Games are supported Needs to patch each game

Video codec

AFAIK, the DS has no hardware to decode video, it has to be rendered on the fly, or decoded by the CPUs.

Codec (Software) License Max Recommended Pixel Rate Bit Rate Compression ratio ClrSpace Audio DSi?
Raw DIY 5,881Mpx/s≈2×256×192px×59,826FPS 101,0Mib/s 1px/18b (≈57px/kib) RGB18 PCM Stereo 32kiHz 16-bit Same perfs
FastVideoDS None 1,5Mpx/s≈256×192px×30FPS RGB15? ADPCM 4b → 16b Frame Rate ×2
Rocket Video Player MIT 1,2Mpx/s≈256×192px×23,930FPS 17,95Mib/s? 1px/16b? (=64px/kib) RGB15 PCM Mono 16kHz 16-bit 60FPS&16MiB
MPEG-1 (Moonshell) GPLv2 1,2Mpx/s≈256×192px×24FPS? 256kib/s 4,5px/b×24b/px=108 YUV24? MP2 32kHz 128kb/s ?
MPEG-1 (DSVideo) ? 0,6Mpx/s256×192px12,5FPS YUV? MP2 32kHz 112kb/s No
MPEG-4 (MPEG4Player) Homebrew 0,6Mpx/s≈176×144px×23,976FPS 350kb/s 1,7px/b YCoCg BT709 AAC Mono 22050Hz 64kb/s Many things ×2
XVid (Tuna-ViDS) GPLv2 + RPSL 0,6Mpx/s≈256×192px×12FPS (192±64)kb/s 3,1px/b YUV MP3 Stereo 32kHz 96kb/s Byte Rate ×2
COMET (METEO Avi2GBA) ? 0,9Mpx/s≈240×160px×24FPS 50kb/s 18,4px/b 15-bit (Dithered) No lol it's GBA
MobiClip Illegal © 1,5Mpx/s≈256×192px×30FPS? No
Caimans Video Codec Illegal © 0-320kb/s 24-bit (Dithered) 16-bit Probably No
Flipnote Studio © 1,470Mpx/s≈256×192px×29,913FPS 2,80Mib/s >1px/2b (Lossless) 2b palette PCM Stereo 32kiHz 16-bit DSi Only!

Color stuff

It should have a page on it's own but IDK how to name the file and the folder… So it'll be faster to write in this page.

ClrModel Notes
RGB The simplest to understand. Just primaries.
YCoCg-R Separate components in a way that helps compression, but still fast to convert losslessly with RGB.
YUV The Y component aims to indicate perceived brightness but it's plagued with the old CIE 1931 color space error which understimated the role of blue.

These are signals for CRTs...

Signal Audio Luma Chroma
RGB Lossless Lossless Lossless
YPbPr Lossless Lossless Lossless
Luma-Chroma Lossless Lossless Lossy
Composite Lossless Lossy Lossy
RF Lossy Lossy Lossy