Difference between revisions of "MDP"
From mgsdevwiki
Line 223: | Line 223: | ||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
− | | Hashed | + | | Hashed Mesh Group Name |
| This mesh object will sit in this mesh group | | This mesh object will sit in this mesh group | ||
|- | |- |
Revision as of 16:45, 30 August 2017
This is the Model Format used for the 'Portable' line of Metal Gear games.
Format Specifications
Metal Gear Solid: Peace Walker (PSP)
- Endian Order : Little Endian
Header | ||
---|---|---|
Size | Value | Extra Info |
uint32 {4} | Magic | |
uint32 {4} | Number of Bones | |
uint32 {4} | Number of Mesh Groups | |
uint32 {4} | Number of Mesh Objects | |
uint32 {4} | Hashed filename | |
uint32 {4} | Bone Table Offset | |
uint32 {4} | Mesh Group Table Offset | |
uint32 {4} | Object Table Offset | |
uint32 {4} | Unknown | May be two shorts rather than a long |
uint32 {4} | Unknown | |
uint32 {4} | Unknown | |
uint32 {4} | Unknown | |
float {4} | Max X | |
float {4} | Max Y | |
float {4} | Max Z | |
float {4} | Max W | |
float {4} | Min X | |
float {4} | Min Y | |
float {4} | Min Z | |
float {4} | Min W |
Bone Table (For Number of Bones) | ||
---|---|---|
Size | Value | Extra Info |
uint32 {4} | Hashed Bone Name | |
float {4} | y0 | Usually 0x0 so I'm not sure |
uint32 {4} | Parent | |
float {4} | w0 | Usually 0x0 so I'm not sure |
float {4} | Rotation X | |
float {4} | Rotation Y | |
float {4} | Rotation Z | |
float {4} | Rotation W | |
float {4} | Position X | |
float {4} | Position Y | |
float {4} | Position Z | |
float {4} | Position W | |
float {4} | Max X | |
float {4} | Max Y | |
float {4} | Max Z | |
float {4} | Max W | |
float {4} | Min X | |
float {4} | Min Y | |
float {4} | Min Z | |
float {4} | Min W |
Mesh Group Table (For Number of Mesh Groups) | ||
---|---|---|
Size | Value | Extra Info |
uint32 {4} | Hashed Mesh Group Name | |
uint32 {4} | Unknown | |
uint32 {4} | Parent Material | |
uint32 {4} | Unknown | Possibly just padding |
Object Table (For Number of Objects) | ||
---|---|---|
Size | Value | Extra Info |
uint32 {4} | Hashed Mesh Group Name | This mesh object will sit in this mesh group |
uint32 {4} | Flags | Determines Vert Definition and how Faces are read |
uint32 {4} | Number of Face Indexes | |
uint32 {4} | Face Index Offset | |
uint32 {4} | Vertex Buffer Offset | |
uint32 {4} | Skinning Table Offset | |
uint32 {4} | Vertex Buffer Size | |
uint32 {4} | Unknown | Most likely padding |
float {4} | Max X | |
float {4} | Max Y | |
float {4} | Max Z | |
float {4} | Max W | |
float {4} | Min X | |
float {4} | Min Y | |
float {4} | Min Z | |
float {4} | Min W | |
float {4} | Position X | |
float {4} | Position Y | |
float {4} | Position Z | |
float {4} | Position W |
Face Index (For Number of Face Indexes) | ||
---|---|---|
Size | Value | Extra Info |
uint16 {2} | Unknown | Always 0x0 |
uint16 {2} | Number of Face Indices | |
uint32 {4} | Face Index Offset | if Object flag && 0xF000 = 0x1000 this is the vertex buffer offset and face index is built from vertex index if this is 0x0 and vertex buffer offset is 0x0 vertex buffer is compressed in some way at the end of file |
uint32 {4} | Material Table Offset |
Texture Table | ||
---|---|---|
Size | Value | Extra Info |
uint32 {4} | Diffuse Map (Hashed Texture Name) | |
uint8 {1} | Unknown | |
uint8 {1} | Unknown | |
uint8 {1} | Unknown | |
uint8 {1} | Unknown | |
uint32 {4} | Colour R | |
uint32 {4} | Colour G | |
uint32 {4} | Colour B | |
float {4} | Specular Power |
Skinning Table | ||
---|---|---|
Size | Value | Extra Info |
uint16 {2} | Unknown | |
uint8 {1} | Bone Count | |
For bone Count | ||
uint8 {1} | Bone Number |