TMD FILE FORMAT HEADER - One per TMD { u_long id; - version of TMD. Always 0x00000041 u_long flags; - Indicates when addresses are relative or explicit u_long nobj; - number of objects in the TMD } HEADER; OBJECT LIST - One per object in the TMD { u_long *vert_top; - start address of vertex list u_long n_vert; - number of vertices in the object u_long *normal_top; - start address of normal list u_long n_normal; - number of normals in the object u_long *primitive_top; - start address of primitive list u_long n_primitive; - number of primitives in the object long scale; - ignored } OBJECT; PRIMITIVE LIST - One per primitive per object in the TMD { u_char olen; - word length of the drawing primitive created by GPU u_char ilen; - word length of the packet data section u_char flag; - options when rendering u_char mode; - indicates type of primitive } PRIMITIVE_HEADER; ?? PACKET; - variable in length and content (see later for list) VERTEX LIST - One per vertex per object in the TMD { short vx; - X value of vertex short vy; - Y value of vertex short vz; - Z value of vertex short pad; - ignored } VERTEX; NORMAL LIST - One per normal per object in the TMD { short nx; - X value of normal short ny; - Y value of normal short nz; - Z value of normal short pad; - ignored } NORMAL;