Difference between revisions of "DSi cartridge header"

From DSiBrew
Jump to navigation Jump to search
Line 39: Line 39:
 
|  0x01F
 
|  0x01F
 
|  1
 
|  1
|  Autostart
+
Internal flags, (Bit2: Autostart)
 
|-
 
|-
 
|  0x020
 
|  0x020
Line 73: Line 73:
 
|  ARM7 size
 
|  ARM7 size
 
|-
 
|-
...
+
0x040
...
+
4
Fill me in
+
File Name Table (FNT) offset
 +
|-
 +
|  0x044
 +
|  4
 +
|  File Name Table (FNT) length
 +
|-
 +
|  0x048
 +
|  4
 +
|  File Allocation Table (FAT) offset
 +
|-
 +
|  0x04C
 +
|  4
 +
|  File Allocation Table (FAT) length
 +
|-
 +
|  0x050
 +
|  4
 +
|  ARM9 overlay offset
 +
|-
 +
|  0x054
 +
|  4
 +
|  ARM9 overlay length
 +
|-
 +
|  0x058
 +
|  4
 +
|  ARM9 overlay offset
 +
|-
 +
|  0x05C
 +
|  4
 +
|  ARM9 overlay length
 +
|-
 +
|  0x060
 +
|  4
 +
|  Normal card control register settings
 +
|-
 +
|  0x064
 +
|  4
 +
|  Secure card control register settings
 +
|-
 +
|  0x068
 +
|  4
 +
|  Banner offset
 +
|-
 +
|  0x06C
 +
|  2
 +
|  Secure area (2K) CRC
 +
|-
 +
|  0x06E
 +
|  2
 +
|  Secure transfer timeout
 +
|-
 +
|  0x070
 +
|  4
 +
|  ARM9 autoload
 +
|-
 +
|  0x074
 +
|  4
 +
|  ARM7 autoload
 +
|-
 +
|  0x078
 +
|  8
 +
|  Secure disable
 +
|-
 +
|  0x080
 +
|  4
 +
|  DS region ROM size
 +
|-
 +
|  0x084
 +
|  4
 +
|  Header size
 +
|-
 +
|  0x088
 +
|  56
 +
|  Reserved
 +
|-
 +
|  0x0C0
 +
|  156
 +
|  Nintendo Logo
 +
|-
 +
|  0x15C
 +
|  2
 +
|  Nintendo Logo CRC
 +
|-
 +
|  0x15E
 +
|  2
 +
|  Header CRC
 +
|-
 +
|  0x160
 +
|  32
 +
|  Debugger reserved
 +
|-
 +
|  0x180
 +
|  52
 +
|  Config settings
 +
|-
 +
|  0x1B4
 +
|  4
 +
|  Access control
 
|-
 
|-
 
|  0x1B8
 
|  0x1B8
Line 83: Line 179:
 
|  0x1BC
 
|  0x1BC
 
|  4
 
|  4
...
+
Reserved
 
|-
 
|-
 
|  0x1C0
 
|  0x1C0
Line 91: Line 187:
 
|  0x1C4
 
|  0x1C4
 
|  4
 
|  4
?
+
Reserved
 
|-
 
|-
 
|  0x1C8
 
|  0x1C8
Line 107: Line 203:
 
|  0x1D4
 
|  0x1D4
 
|  4
 
|  4
?
+
Reserved
 
|-
 
|-
 
|  0x1D8
 
|  0x1D8
Line 117: Line 213:
 
|  ARM7i size
 
|  ARM7i size
 
|-
 
|-
...
+
0x1E0
...
+
4
...
+
Digest Nitro area offset
 +
|-
 +
|  0x1E4
 +
|  4
 +
|  Digest Nitro area length
 +
|-
 +
|  0x1E8
 +
|  4
 +
|  Digest Limited area offset
 +
|-
 +
|  0x1EC
 +
|  4
 +
|  Digest Limited area length
 +
|-
 +
|  0x1F0
 +
|  4
 +
|  Digest Table 1 offset
 +
|-
 +
|  0x1F4
 +
|  4
 +
|  Digest Table 1 length
 +
|-
 +
|  0x1F8
 +
|  4
 +
|  Digest Table 2 offset
 +
|-
 +
|  0x1FC
 +
|  4
 +
|  Digest Table 2 length
 +
|-
 +
|  0x200
 +
|  4
 +
|  Digest Table 1 size (?)
 +
|-
 +
|  0x204
 +
|  4
 +
|  Digest Table 2 sectors
 +
|-
 +
|  0x208
 +
|  40
 +
|  Reserved
 
|-
 
|-
 
|  0x230
 
|  0x230
Line 125: Line 261:
 
|  Title ID
 
|  Title ID
 
|-
 
|-
...
+
0x238
...
+
200
...
+
Reserved
 
|-
 
|-
 
|  0x300
 
|  0x300
Line 137: Line 273:
 
|  ARM7 SHA1 HMAC hash
 
|  ARM7 SHA1 HMAC hash
 
|-
 
|-
...
+
0x328
...
+
20
...
+
Digest table 2 SHA1 HMAC hash
 +
|-
 +
|  0x33C
 +
|  20
 +
|  Banner SHA1 HMAC hash
 
|-
 
|-
 
|  0x350
 
|  0x350
Line 149: Line 289:
 
|  ARM7i (decrypted) SHA1 HMAC hash
 
|  ARM7i (decrypted) SHA1 HMAC hash
 
|-
 
|-
...
+
0x378
...
+
2696
...
+
Reserved
 
|-
 
|-
 
|  0xE00
 
|  0xE00

Revision as of 05:27, 8 December 2009

OFFSET SIZE DESCRIPTION
0x000 12 Game Title
0x00C 4 Gamecode
0x010 2 Makercode
0x012 1 Unitcode
0x013 1 Encryption seed select
0x014 1 Devicecapacity
0x015 9 Reserved
0x01E 1 ROM Version
0x01F 1 Internal flags, (Bit2: Autostart)
0x020 4 ARM9 rom offset
0x024 4 ARM9 entry address
0x028 4 ARM9 load address
0x02C 4 ARM9 size
0x030 4 ARM7 rom offset
0x034 4 ARM7 entry address
0x038 4 ARM7 load address
0x03C 4 ARM7 size
0x040 4 File Name Table (FNT) offset
0x044 4 File Name Table (FNT) length
0x048 4 File Allocation Table (FAT) offset
0x04C 4 File Allocation Table (FAT) length
0x050 4 ARM9 overlay offset
0x054 4 ARM9 overlay length
0x058 4 ARM9 overlay offset
0x05C 4 ARM9 overlay length
0x060 4 Normal card control register settings
0x064 4 Secure card control register settings
0x068 4 Banner offset
0x06C 2 Secure area (2K) CRC
0x06E 2 Secure transfer timeout
0x070 4 ARM9 autoload
0x074 4 ARM7 autoload
0x078 8 Secure disable
0x080 4 DS region ROM size
0x084 4 Header size
0x088 56 Reserved
0x0C0 156 Nintendo Logo
0x15C 2 Nintendo Logo CRC
0x15E 2 Header CRC
0x160 32 Debugger reserved
0x180 52 Config settings
0x1B4 4 Access control
0x1B8 4 ARM7 SCFG EXT mask (controls which devices to enable)
0x1BC 4 Reserved
0x1C0 4 ARM9i rom offset
0x1C4 4 Reserved
0x1C8 4 ARM9i load address
0x1CC 4 ARM9i size
0x1D0 4 ARM7i rom offset
0x1D4 4 Reserved
0x1D8 4 ARM7i load address
0x1DC 4 ARM7i size
0x1E0 4 Digest Nitro area offset
0x1E4 4 Digest Nitro area length
0x1E8 4 Digest Limited area offset
0x1EC 4 Digest Limited area length
0x1F0 4 Digest Table 1 offset
0x1F4 4 Digest Table 1 length
0x1F8 4 Digest Table 2 offset
0x1FC 4 Digest Table 2 length
0x200 4 Digest Table 1 size (?)
0x204 4 Digest Table 2 sectors
0x208 40 Reserved
0x230 8 Title ID
0x238 200 Reserved
0x300 20 ARM9 (with encrypted secure area) SHA1 HMAC hash
0x314 20 ARM7 SHA1 HMAC hash
0x328 20 Digest table 2 SHA1 HMAC hash
0x33C 20 Banner SHA1 HMAC hash
0x350 20 ARM9i (decrypted) SHA1 HMAC hash
0x364 20 ARM7i (decrypted) SHA1 HMAC hash
0x378 2696 Reserved
0xE00 0x180 Reserved and unchecked region, always zero. Used for passing arguments in debug environment.
0xF80 0x80 RSA signature

The first 0xE00 bytes of the SRL header is signed with an 1024-bit RSA signature.