Difference between revisions of "MDP"
From mgsdevwiki
Line 95: | Line 95: | ||
| Min W | | Min W | ||
| | | | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row" colspan="3"| Bone Table (For Number of Bones) | ! scope="row" colspan="3"| Bone Table (For Number of Bones) | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
Line 185: | Line 177: | ||
| Min W | | Min W | ||
| | | | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row" colspan="3"| Mesh Group Table (For Number of Mesh Groups) | ! scope="row" colspan="3"| Mesh Group Table (For Number of Mesh Groups) | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
Line 211: | Line 195: | ||
| Unknown | | Unknown | ||
| Possibly just padding | | Possibly just padding | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row" colspan="3"| Object Table (For Number of Objects) | ! scope="row" colspan="3"| Object Table (For Number of Objects) | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
Line 301: | Line 277: | ||
| Position W | | Position W | ||
| | | | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row" colspan="3"| Face Index (For Number of Face Indexes) | ! scope="row" colspan="3"| Face Index (For Number of Face Indexes) | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| uint16 {2} | | uint16 {2} | ||
Line 327: | Line 295: | ||
| Material Table Offset | | Material Table Offset | ||
| | | | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row" colspan="3"| Texture Table | ! scope="row" colspan="3"| Texture Table | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
| uint32 {4} | | uint32 {4} | ||
| Diffuse Map (Hashed Texture Name) | | Diffuse Map (Hashed Texture Name) | ||
Line 374: | Line 333: | ||
| Specular Power | | Specular Power | ||
| | | | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! scope="row" colspan="3"| Skinning Table | ! scope="row" colspan="3"| Skinning Table | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
| uint16 {2} | | uint16 {2} | ||
| Unknown | | Unknown |
Revision as of 16:52, 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) | ||
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) | ||
uint32 {4} | Hashed Mesh Group Name | |
uint32 {4} | Unknown | |
uint32 {4} | Parent Mesh Group | |
uint32 {4} | Unknown | Possibly just padding |
Object Table (For Number of Objects) | ||
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) | ||
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 | ||
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 | ||
uint16 {2} | Unknown | |
uint8 {1} | Bone Count | |
For bone Count | ||
uint8 {1} | Bone Number |