No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Gotcha Force | ← Gotcha Force]] | [[Gotcha Force | ← Gotcha Force]] | ||
''This article is about Gotcha Force MDT file format and ongoing researchs on it.'' | |||
<div style="text-align: center;"> | <div style="text-align: center;"> |
Revision as of 09:48, 7 September 2022
This article is about Gotcha Force MDT file format and ongoing researchs on it.
This section is currently being written.
More research is needed and some paragraphs may be wrong.
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 - text_offsets_block_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
text_offsets_block_list:
- 4 bytes - uint32 absolute offsets - array of the text_offsets_block terminated by -1 (FF FF FF FF)
paragraph_offset_block 0: # first text_offsets_block describing all texts offsets in the data block 0
- 4 bytes - int32 array of absolute offsets - texts 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 <- text_offsets_block 0 describe where each text begin
text_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
- 1001: end of the phrase
Virtual World RE has developed the python script pzztool.py to manipulate MDT files and their internal files allowing to unpack / pack mdt files.