Enter The Matrix DCX: Difference between revisions
imported>Brat |
imported>Ikskoks |
||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
== DCX == | == DCX == | ||
* ''' Game ''': [[Enter the Matrix]] <br> | |||
* ''' Format Type ''': Archive <br> | * ''' Format Type ''': Archive <br> | ||
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br> | * ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br> | ||
| Line 10: | Line 10: | ||
uint32 {4} - null <br> | uint32 {4} - null <br> | ||
char {16} - Filename <font color="purple">(null)</font> <br> | char {16} - Filename <font color="purple">(null)</font> <br> | ||
byte { | float {4} - =1.0<br> | ||
byte {4} - <font color="red"> '' Unknown '' </font> <br> | |||
uint32 {4} - <font color="red"> '' Unknown Count1 '' </font> <br> | |||
byte {4} - <font color="red"> '' Unknown '' </font> <br> | |||
uint32 {4} - Number Of Bones <br> | uint32 {4} - Number Of Bones <br> | ||
byte {4} - <font color="red"> '' Unknown '' </font> <br> | byte {4} - <font color="red"> '' Unknown '' </font> <br> | ||
uint32 {4} - Number Of Textrure Files <br> | uint32 {4} - Number Of Textrure Files <br> | ||
byte { | byte {4} - <font color="red"> '' Unknown '' </font> <br> | ||
uint32 {4} - <font color="red"> '' Unknown Count2 '' </font> <br> | |||
byte {4} - <font color="red"> '' Unknown '' </font> <br> | |||
uint32 {4} - null<br> | |||
uint32 {4} - Number Of Mesh<br> | |||
uint32 {4} - =256<br> | |||
byte {8} - <font color="red"> '' Unknown '' </font><br> | |||
uint32 {4} - Number Of SubMeshes In Each Mesh. Often: 1 - LowPoly<br> | |||
2 - MiddlePoly 3 - HighPoly Models<br> | |||
uint32 {4} - null<br> | |||
float {4} - Always = 0 except one file SorenTestAgentSmith.dcx = 90.0<br> | |||
uint32 {4} - null<br> | |||
<br> | |||
<br> | <br> | ||
<font color="blue"> ''' // for each textrure file ''' </font> <br> | <font color="blue"> ''' // for each textrure file ''' </font> <br> | ||
: char {32} - Filename <font color="purple">(null)</font> <br> | : char {32} - Filename <font color="purple">(null)</font> <br> | ||
: uint32 {4} - Texture Width <br> | : uint32 {4} - Texture Width <br> | ||
: uint32 {4} - Texture Height <br> | : uint32 {4} - Texture Height <br> | ||
: uint32 {4} - Compression type ( = | : uint32 {4} - Compression type ( =5h or =105h - DXT5 else DXT1 )<br> | ||
: uint32 {4} - File Size <br> | : uint32 {4} - File Size <br> | ||
: uint32 {4} - <font color="red"> '' File ID or Timestamp? '' </font> <br> | : uint32 {4} - <font color="red"> '' File ID or Timestamp? '' </font> <br> | ||
| Line 28: | Line 44: | ||
byte {X} - Texture File Data. One by one for each file.<br> | byte {X} - Texture File Data. One by one for each file.<br> | ||
<br> | <br> | ||
<font color="blue"> ''' // for each bone ''' </font> <br> | <font color="blue"> ''' // for each bone ''' </font> <br> | ||
: char {32} - Bonename <font color="purple">(null)</font> <br> | : char {32} - Bonename <font color="purple">(null)</font> <br> | ||
: uint32 {4} - <font color="red"> '' Child bones count? ''</font><br> | : uint32 {4} - <font color="red"> '' Child bones count? ''</font><br> | ||
: byte { | : 3 uint32 {4} - <font color="red"> '' Unknown ''</font><br> | ||
: 6 float {4} - <font color="red"> '' Unknown ''</font><br> | |||
<br> | |||
byte {X} - <font color="red"> '' Unknown data 1. Size of that block depends on Count1, Count2, Number of Mesh and Number Of Bones. What is it?''</font><br> | |||
<br> | |||
<font color="blue"> ''' // for each mesh ''' </font> <br> | |||
: char {32} - Meshname <font color="purple">(null)</font> <br> | |||
:byte {12} - <font color="red"> '' Unknown ''</font><br> | |||
: uint32 {4} - Mesh Data Size <br> | |||
byte {X} - Mesh data<br> | |||
</b></tt> | </b></tt> | ||
| Line 46: | Line 74: | ||
* [[Game Extractor|Game Extractor]]<br> | * [[Game Extractor|Game Extractor]]<br> | ||
[[Category:Complete WIP|Enter The Matrix DCX]] | |||
[[Category:Platform PC|Enter The Matrix DCX]] | |||
[[Category:CE None|Enter The Matrix DCX]] | |||
[[Category:Format_Archive | Type: Archive]] | |||
[[Category:Extension_dcx | Extension: dcx]] | |||
[[Category:BMS_None | BMS: None]] | |||
[[Category:File Format]] | |||
Latest revision as of 13:20, 22 November 2020
DCX
- Game : Enter the Matrix
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
uint32 {4} - null
char {16} - Filename (null)
float {4} - =1.0
byte {4} - Unknown
uint32 {4} - Unknown Count1
byte {4} - Unknown
uint32 {4} - Number Of Bones
byte {4} - Unknown
uint32 {4} - Number Of Textrure Files
byte {4} - Unknown
uint32 {4} - Unknown Count2
byte {4} - Unknown
uint32 {4} - null
uint32 {4} - Number Of Mesh
uint32 {4} - =256
byte {8} - Unknown
uint32 {4} - Number Of SubMeshes In Each Mesh. Often: 1 - LowPoly
2 - MiddlePoly 3 - HighPoly Models
uint32 {4} - null
float {4} - Always = 0 except one file SorenTestAgentSmith.dcx = 90.0
uint32 {4} - null
// for each textrure file
- char {32} - Filename (null)
- uint32 {4} - Texture Width
- uint32 {4} - Texture Height
- uint32 {4} - Compression type ( =5h or =105h - DXT5 else DXT1 )
- uint32 {4} - File Size
- uint32 {4} - File ID or Timestamp?
- byte {8} - null
- uint32 {4} - Unknown. Often 0 or CDCDCDCDh. Transparency ?
byte {X} - Texture File Data. One by one for each file.
// for each bone
- char {32} - Bonename (null)
- uint32 {4} - Child bones count?
- 3 uint32 {4} - Unknown
- 6 float {4} - Unknown
byte {X} - Unknown data 1. Size of that block depends on Count1, Count2, Number of Mesh and Number Of Bones. What is it?
// for each mesh
- char {32} - Meshname (null)
- byte {12} - Unknown
- uint32 {4} - Mesh Data Size
byte {X} - Mesh data
MultiEx BMS Script
Not written yet
Notes and Comments
If a filename is too long to fit in the 32-bytes allocated for it, it is cut off at 32 bytes