Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/web/joat/webshare/ds/index.php:1101) in /usr/share/web/joat/webshare/ds/index.php on line 885
NDSTech Wiki : NDS Format browse
NDS Format

Menu

Getting Started

System Information

Misc

Header format

FieldStartEndSizeExample data (Metroid demo)
Game title0x0000x00B12"FIRST HUNT "
Game code0x00C0x00F4"AMFE"
Maker code0x0100x0112"01" (Nintendo)
Unit code0x0120x01210x00
Device code0x0130x01310x00
Card size0x0140x01410x07 (2^(20 + 7) = 128Mb = 16 MB)
Card info0x0150x01E100x00's
Flags0x01F0x01F10x00
ARM9 source (ROM)0x0200x02340x00004000 (must be 4 KB aligned)
ARM9 execute addr0x0240x02740x02004800
ARM9 copy to addr0x0280x02B40x02004000
ARM9 binary size0x02C0x02F40x00081D58
ARM7 source (ROM)0x0300x03340x000B3000
ARM7 execute addr0x0340x03740x02380000
ARM7 copy to addr0x0380x03B40x02380000
ARM7 binary size0x03C0x03F40x00026494
Filename table offset (ROM)0x0400x04340x000D9600
Filename table size0x0440x04740x11B6
FAT offset (ROM)0x0480x04B40x000DA800
FAT size0x04C0x04F40x678
ARM9 overlay src (ROM)0x0500x05340x00085E00
ARM9 overlay size0x0540x05740x60
ARM7 overlay src (ROM)0x0580x05B40
ARM7 overlay size0x05C0x05F40
Control register flags for read0x0600x06340x00586000
Control register flags for init0x0640x06740x001808F8
Icon+titles (ROM)0x0680x06B40x000DB000
Secure CRC160x06C0x06D20xC44D
ROM timeout0x06E0x06F20x051E
ARM9 unk addr0x0700x07340x020049EC
ARM7 unk addr0x0740x07740x02380110
Magic number for unencrypted mode0x0780x07F80x00's
ROM size0x0800x08340x00EE3E44
Header size0x0840x08740x4000
Unknown 50x0880x0BF560x00's
GBA logo0x0C00x15B156data
Logo CRC160x15C0x15D20xCF56
Header CRC160x15E0x15F20x00F8
Reserved0x1600x1FF1600x00's

The control register flags contain latency settings and depends on the ROM manufacturer (Macronix, Matrix Memory).

Unknown2a and 'Header Size' contain flags that are (somewhat) used during boot as part of card CR writes. Unknown2b contains the size of a certain type of transfer done during boot, but it's range checked and cannot be reduced. Unknown3c is seemingly unused, and some code paths get data from 0x160 onward (only 0x170 bytes of a header fetch are actually retained by the BIOS)

Secure CRC16 calculation is performed on the ROM from 0x4000 to 0x7FFF, with an initial value of 0xFFFF.

Logo CRC16 calculation is performed on the header from 0x0C0 to 0x15B, with an initial value of 0xFFFF.

Header CRC16 calculation is performed on the header (after the previous two CRCs are filled) from 0x000 to 0x15D with an initial value of 0xFFFF.

Device code needs lower 3 bits to be 0. This is a similar behavior as GBA header.

Icon + logo format (the banner)

This is a structure of size 32+512+32+256*6 = 2112 bytes with the following format:

Banner structure

OffsetSizeDescription
02Version (always 1)
22CRC-16 of structure, not including first 32 bytes
428Reserved
32512Tile Data
54432Palette
576256Japanese Title
832256English Title
1088256French Title
1344256German Title
1600256Italian Title
1856256Spanish Title

The icon is a 32x32 picture formed out of 4x4 16 color tiles and a single 16 color palette.

Following the icon data (icon offset + 576 bytes), are 6 unicode game titles, displayed in the DS menu depending on the selected language mode. Each title is padded to 128 characters (256 bytes).

The strings are in the same order as the language choice in Firmware.

<< | FileFormats | >>

Recent Changes (All) | Edit SideBar

Page last modified on January 07, 2006, at 04:01 PM
Edit Page | Page History
Everything done on this project is for the sole purpose of writing interoperable software under Sect. 1201 (f) Reverse Engineering exception of the DMCA.
This site is not affiliated with Nintendo in any manner. Nintendo DS © 2004 Nintendo. TM and ® are trademarks of Nintendo.
Powered by PmWiki