Difference between revisions of "/title/00000001/00000002/data/tmds.sys"

From WiiBrew
< /title‎ | 00000001‎ | 00000002‎ | data
Jump to: navigation, search
 
Line 1: Line 1:
 
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|TMD File Structure]]. Each entry has the following syntax: (in C-structs, because they're easy to handle)
 
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|TMD File Structure]]. Each entry has the following syntax: (in C-structs, because they're easy to handle)
 
   typedef struct {
 
   typedef struct {
       u32 unknown; // Always 0x0100
+
       u64 title_id;
      u32 title_id; // Content ID, output as: char [4]
 
 
       u32 unknown2; // Unknown, seen values: 0x0208 (index?)
 
       u32 unknown2; // Unknown, seen values: 0x0208 (index?)
 
       u32 padding [32];
 
       u32 padding [32];

Latest revision as of 20:59, 17 June 2017

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.