Changes

2,534 bytes removed ,  08:51, 24 December 2006
no edit summary
Line 1: Line 1: −
/**************************************************************/
+
The wii is awesome!
//
  −
// Nintendo Wii Virtual Console tmd-file structure
  −
//
  −
//                  v.0.1
  −
//
  −
//      by Lockhool for #wiidev at efnet
  −
//                                                  14.12.2007
  −
/**************************************************************/
  −
  −
// Common labels used in this file:
  −
// magicnum - control ints or shorts found in all tmds
  −
// zeros    - bytes all filled with zeros
  −
// undef    - non-zero data of unknown purpose
  −
// sign    - zero-terminated string padded to 64 bytes
  −
//            probably used in the signing process
  −
// hash    - probably 20, 512 or 1024 byte hashes
  −
//
  −
// # in front of a comment signifies entires that are
  −
// the same in each tmd-files the author checked
  −
//
  −
// ! Remember the Wii has a LITTLE-ENDIAN processor. When !
  −
// ! working with ints or shorts on none-LE machines      !
  −
// ! (e.g. PPC Mac) you need to swap the byteorder.      !
  −
  −
typedef unsigned char  u8;
  −
typedef unsigned short u16;
  −
typedef unsigned int  u32; 
  −
 
  −
typedef struct{
  −
  u32 file [0x1]; // name of the file to download
  −
  u16 num [0x1]; // # number of the file
  −
  u8  undef0 [0x1]; // might be 0x00 or 0x80
  −
  u8  undef1 [0x1]; // # 0x01
  −
  u8  zeros0 [0x4]; // # 0
  −
  u32 length [0x1]; // non-padded filelength
  −
  u8  hash [0x14]; // ? maybe SHA1-hash
  −
}VC_TMD_FILE; // size: 0x30 bytes
  −
 
  −
typedef struct{
  −
  u32 magicnum0 [0x1]; // # 0x00010001
  −
  u8  hash0 [0x100]; // ?
  −
  u8  zeros0 [0x3C]; // # 0
  −
  u8  sign0 [0x40]; // # Root-CA-CP
  −
  u8  undef0 [0x10]; // # ?
  −
  u8  code [0x4]; // game code in ascii
  −
  u32 magicnum1 [0x1]; // # 0x00000001
  −
  u8  publ [0x2]; // publisher id
  −
  u8  zeros1 [0x2]; // # 0
  −
  u8  undef1 [0x4]; // ?
  −
  u8  undef2 [0xE]; // ? 0x80
  −
  u8  zeros2 [0x2E]; // # 0
  −
  u8  undef3 [0x8]; // ?
  −
  VC_TMD_FILE files[7]; // 7 file entries
  −
  u32 magicnum2 [0x1]; // # 0x00010001
  −
  u8  hash1 [0x100]; // # ?
  −
  u8  zeros3 [0x3C]; // # 0
  −
  u8  sign1 [0x40]; // # Root-CA
  −
  u32 magicnum3 [0x1]; // # 0x00000001
  −
  u8  sign2 [0x40]; // # CP
  −
  u8  hash2 [0x104]; // # ?
  −
  u32 magicnum4 [0x1]; // # 0x00010001
  −
  u8  zeros4 [0x34]; // # 0
  −
  u32 magicnum5 [0x1]; // # 0x00100000
  −
  u8  hash3 [0x200]; // # ?
  −
  u8  zeros5 [0x3C]; // # 0
  −
  u8  sign3 [0x40]; // # Root
  −
  u32 magicnum6 [0x1]; // # 0x00000001
  −
  u8  sign4 [0x40]; // # CA
  −
  u8  hash4 [0x104]; // # ?
  −
  u32 magicnum7 [0x1]; // # 0x00010001
  −
  u8 zeros6 [0x34]; // # 0
  −
}VC_TMD; // size: 09E0 bytes
 
0

edits