Difference between revisions of "MDP"
From mgsdevwiki
(Created page with "{{Incomplete}} This is the Model Format used for the 'Portable' line of Metal Gear games. == Format Specifications == === '''Metal Gear Solid: Peace Walker (PSP)''' === * '...") |
|||
Line 25: | Line 25: | ||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
− | | Number of | + | | Number of Mesh Groups |
| | | | ||
|- | |- | ||
Line 31: | Line 31: | ||
| Number of Mesh Objects | | Number of Mesh Objects | ||
| | | | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
Line 49: | Line 45: | ||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
− | | | + | | Mesh Group Table Offset |
| | | | ||
|- | |- | ||
Line 194: | Line 190: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! scope="row" colspan="3"| | + | ! scope="row" colspan="3"| Mesh Group Table (For Number of Mesh Groups) |
|- | |- | ||
| '''Size''' | | '''Size''' | ||
Line 201: | Line 197: | ||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
− | | Hashed | + | | Hashed Mesh Group Name |
| | | | ||
|- | |- | ||
Line 329: | Line 325: | ||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
− | | | + | | Material Table Offset |
| | | | ||
|- | |- | ||
Line 344: | Line 340: | ||
|- | |- | ||
| uint32 {4} | | uint32 {4} | ||
− | | Hashed Texture Name | + | | Diffuse Map (Hashed Texture Name) |
| | | | ||
|- | |- |
Revision as of 16:43, 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} | Objects Table Offset | |
uint32 {4} | Mesh Group 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 Material Name | This mesh object will use that material |
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 |