-
Notifications
You must be signed in to change notification settings - Fork 1
MT7 Files
The MT7 models are similar to the HRC Softimage|3D format with the 4 Byte identifier thingy.
| Identifier | Value | Value (Endianess Flip) | Description |
|---|---|---|---|
| MDCX | 0x4D444358 | 0x5843444D | Character Model (+sub_004CD570) |
| MDC7 | 0x4D444337 | 0x3743444D | Character Model (+sub_004CD570) |
| MDLX | 0x4D444C58 | 0x584C444D | Map "Skybox" Geometry |
| MDL7 | 0x4D444C37 | 0x374C444D | Map "Skybox" Geometry |
| MDOX | 0x4D444F58 | 0x584F444D | Map Geometry |
| MDO7 | 0x4D444F37 | 0x374F444D | Map Geometry |
| MDPX | 0x4D445058 | 0x5850444D | Static Models (Props) |
| MDP7 | 0x4D445037 | 0x3750444D | Static Models (Props) |
| MDHX | 0x4D444858 | 0x5848444D | MDCX SubNode for Hands |
| MDH7 | 0x4D444837 | 0x3748444D | MDC7 SubNode for Hands |
| TXT7 | 0x54585437 | 0x37545854 | Texture |
| XB01 | 0x58423031 | 0x31304258 | Mesh Data |
| WBTR | 0x57425452 | 0x52544257 | Skin Weight ? |
| WVTX | 0x57565458 | 0x58545657 | Skin Weight Vertex |
| WEVL | 0x5745564C | 0x4C564557 | Skin Weight ? |
| WIDX | 0x57494458 | 0x58444957 | Skin Weight ? |
| FACE | 0x46414345 | 0x45434146 | - |
| CLSG | 0x434C5347 | 0x47534C43 | - |
| FACX | 0x46414358 | 0x58434146 | - |
| CLSX | 0x434C5358 | 0x58534C43 | - |
| LIGT | 0x4C494754 | 0x5447494C | - |
| MAI | 0x4D414920 | 0x2049414D | - |
| SVMD | 0x53564D44 | 0x444D5653 | - |
| SHDS | 0x53484453 | 0x53444853 | - |
| USE | 0x55534520 | 0x20455355 | - |
| fREe | 0x66524565 | 0x65455266 | - |
| VMPL | 0x564D504C | 0x4C504D56 | - |
| SHDM | 0x5348444D | 0x4D444853 | - |
| Position | Length | Value | Description |
|---|---|---|---|
| 0x00 | 0x04 | 0x4D444358 (MDCX) | MDCX Identifier |
| 0x04 | 0x04 | - | TEX7 Offset |
| 0x08 | 0x04 | - | Offset to first MDCX Entry |
| 0x0C | 0x04 | - | Count of TXT7 entries |
This offset is used by the sub_004C84E0 routine and this routine jumps all over the place, even over other MDCX identifier.
| Position | Length | Description |
|---|---|---|
| 0x00 | 0x04 | Some Flags? |
| 0x04 | 0x0C | Translate (X,Y,Z) |
| 0x10 | 0x0C | Rotation (X,Y,Z) |
| 0x1C | 0x0C | Scale (X,Y,Z) |
| 0x28 | 0x04 | XB01 Offset |
| 0x2C | 0x04 | Child Entry? |
| 0x30 | 0x04 | Sibling Entry? |
| 0x34 | 0x04 | Previous Entry? |
| 0x38 | 0x08 | Reserved |
| 0x40 | 0x04 | MDCX Identifier |
| 0x44 | 0x40 | 4x4 Matrix |
| 0x84 | 0x04 | Count of some Entries |
| 0x88 | 0x08 * Count | Entries |
| 0x?? | 0x?? | Optional other tokens |
| Position | Length | Description |
|---|---|---|
| 0x00 | 0x04 | Unknown |
| 0x04 | 0x04 | Unknown |
| 0x08 | 0x04 | Unknown |
| 0x0C | 0x04 | Entry Index |
Each entry is 16 byte long. If entries are present than after the entries there is an 8 byte thingy for each entry. These entries correspond to the TXT7 Entry Texture Name's.
After the unknown entries (if present, else they come right after the header) there is an dictionary with all the XB01 locations which hold the faces infos. The sub_004CD570 routine modifies these location entries, which is called BEFORE the sub_004C84E0 routine.
| Position | Length | Value | Description |
|---|---|---|---|
| 0x00 | 0x04 | 0x54585437 (TXT7) | TXT7 Identifier |
| 0x04 | 0x04 | - | TXT7 Size |
| 0x04 | 0x04 | - | TXT7 Entry Count |
Each entry has 4 Bytes for the Offset and 8 Bytes for the texture name. Again the texture names come after the entries (offsets).
| Position | Length | Value | Description |
|---|---|---|---|
| 0x00 | 0x04 | 0x58423031 (XB01) | XB01 Identifier |
| 0x18 | 0x04 | - | Count + 0x6 * 4? |
| 0x1C | 0x04 | - | Unknown |
| 0x28 | 0x04 | - | Unknown * 4 + 0x20 |
