/title/00000001/00000002/data/tmds.sys

From WiiBrew
< /title‎ | 00000001‎ | 00000002‎ | data
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Each channel/save/vc-game you have on your Wii has its own entry in this file. For more information about the TMD-format, and documentation on some offsets found here (I kept the same names), see TMD File Structure. Each entry has the following syntax: (in C-structs, because they're easy to handle)

 typedef struct {
      u64 title_id;
      u32 unknown2; // Unknown, seen values: 0x0208 (index?)
      u32 padding [32];
      u32 sig_type; // Unknown, seen values: 0x010001 (sig_type maybe)
      u8 sig [256]; // Signature
      u32 padding2 [15];
      u8 issuer[26]; // Syntax: Root-CA%08x-CP%08x
      u32 padding3 [10];
      u32 unknown3; // Always 0x04000100
      u32 title_id2; // Content ID, again
      u32 title_type; // 0x01 when cid2[0] == 'R' or when cid[0] == '.\0'. It's 0x00 if cid[0] == '1'.
      u16 group_id; // 0x200 or 0x300 if cid2[0] == '.\0', 0x400 when cid2[0] == '1'.
          //If cid[0] == 'R', this is usally a number (in ASCII), but it can contain letters, I have seen one 'D'.
      u32 unknown [6]; // Really wierd, includes "Egg" quite often.
      u32 final_padding [6];
 } tmds-entry;

The issuer is always Root-CA1-CP4 here.

Please feel free to improve the contents of this page. I could use your thoughts.