Difference between revisions of "Title metadata"
Jump to navigation
Jump to search
m |
Hallowizer (talk | contribs) (→Header: system version is probably always 0) |
||
Line 51: | Line 51: | ||
| 0x184 | | 0x184 | ||
| 8 | | 8 | ||
− | | System Version | + | | System Version; probably always 0 |
|- | |- | ||
| 0x18C | | 0x18C |
Revision as of 04:35, 10 November 2021
Title metadata, or TMD for short, is a format used to store information about a title (DSiWare, etc.) and all its installed contents, including which contents they consist of and their SHA1 hashes. The format between Wii and DSi Title metadata appears to be identical.
Many operations are done in terms of 64-byte blocks, which means you will often see padding out to the nearest 64-byte boundary at the end of a field.
Example of a Nintendo DSi TMD : http://nus.cdn.t.shop.nintendowifi.net/ccs/download/0003000f484e4c4a/tmd ("HNLJ", or Japanese Version Data.)
The certificate chain at the end of the file seems to always/usually have a size in bytes of 1792 and a SHA256 of 03CE2468F00D1AAEA52D7193A2312B0FE87ECE72D43381C3B6BD4C57E700CDD7.
Structure
Header
Start | Length | Description |
---|---|---|
0x000 | 4 | Signature type |
0x004 | 256 | Signature |
0x104 | 60 | Padding modulo 64 |
0x140 | 64 | Issuer |
0x180 | 1 | Version |
0x181 | 1 | ca_crl_version |
0x182 | 1 | signer_crl_version |
0x183 | 1 | Padding modulo 64 |
0x184 | 8 | System Version; probably always 0 |
0x18C | 8 | Title ID |
0x194 | 4 | Title type |
0x198 | 2 | Group ID |
0x19A | 62 | reserved |
0x1D8 | 4 | Access rights |
0x1DC | 2 | Title version |
0x1DE | 2 | Number of contents (nbr_cont) |
0x1E0 | 2 | boot index |
0x1E2 | 2 | Padding modulo 64 |
0x1E4 | 36*nbr_cont | Contents |
Content
Start | Length | Description |
---|---|---|
0x00 | 4 | Content ID |
0x04 | 2 | Index |
0x06 | 2 | Type |
0x08 | 8 | Size |
0x10 | 20 | SHA1 hash |
Certificates
Start | Length | Description |
---|---|---|
0x000 | 4 | Signature type |
0x004 | 256 | Signature |
0x104 | 32 | Issuer |
0x124 | 4 | Tag |
0x128 | 64 | Name |
0x168 | Key |