MDT (Gotcha Force): Difference between revisions
More actions
No edit summary |
|||
| Line 7: | Line 7: | ||
<div style="color: rgb(241, 196, 15); text-align: center;">More research is needed and some paragraphs may be wrong.</div> | <div style="color: rgb(241, 196, 15); text-align: center;">More research is needed and some paragraphs may be wrong.</div> | ||
</div> | </div> | ||
== mdt files == | == mdt files: == | ||
MDT files are same than [[PZZ (Gotcha Force)|pzz]] but packing only uncompressed files. | MDT files are same than [[PZZ (Gotcha Force)|pzz]] but packing only uncompressed files. | ||
Revision as of 14:34, 12 September 2022
This article is about Gotcha Force MDT file format and ongoing researchs on it.
mdt files:
MDT files are same than pzz but packing only uncompressed files.
MDT header (0x800 bytes):
- 4 bytes - uint32 file count (big endian)
- 4 bytes - uint32 array: file size divided by 0x800 and upper rounded for each file
All .mdt contains 2 files:
- 000 dat file with texts used in the game
- 001 TPL including an alphanumeric alphabet used by the dat file
dat file:
header:
- 4 bytes - paragraph_offsets_blocks_list
- 4 bytes - symbols_count # number of symbols contained in the tpl
- 2 bytes - offsets in the file relative to after the header (array)? same count than symbols
paragraph_offsets_blocks_list:
- 4 bytes - uint32 absolute offsets - array of paragraph_offsets_block terminated by -1 (FF FF FF FF)
paragraph_offsets_block 0: # first paragraph_offsets_block describing all paragraph offsets in the data block 0
- 4 bytes - int32 array of absolute offsets which point to pragraphs in the data block terminated by -1 (FF FF FF FF). The first offset is the data block offset.
data_block 0:
- 2 bytes - signed int16 list <- paragraph_offsets_block 0 describe where each paragraph begin.
paragraph_offsets_block 1: ... data_block 1: ...
data_block contains int16 indexes relative to the tpl symbol list. First symbol in the tpl has number 0 then horizontaly symbol 1, 2 ... So data block(s) contains texts.
- FFFE: space
- 1000: new line
- 1001: end of the phrase
- 80yy: start appliying a color to following letters
- 80FF: stop appliying a color
- 8002: use the player name
Virtual World RE has developed the python script pzztool.py to manipulate MDT files and their internal files allowing to unpack / pack mdt files.