Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MDT (Gotcha Force): Difference between revisions

No edit summary
No edit summary
Line 15: Line 15:
* 001 TPL including an alphanumeric alphabet used by the dat file
* 001 TPL including an alphanumeric alphabet used by the dat file


dat file header:
dat file:
* 4 bytes - block 1 offset
'''header''':
* 4 bytes - offset_block_list offset
* 4 bytes - symbols_count # number of symbols contained in the tpl
* 4 bytes - symbols_count # number of symbols contained in the tpl
* 2 bytes - offsets for each symbol - in the file relative to after the header (array)
* 2 bytes - offsets for each symbol - in the file relative to after the header (array)
dat file block 1:
'''offset_block_list''':
* 4 bytes - uint16 absolute offset array of the offsets_blocks terminated by -1 (FF FF FF FF)
* 4 bytes - uint32 absolute offset array of the offsets_blocks terminated by -1 (FF FF FF FF)
dat file block 2: # first offsets_block
'''offset_block_1''': # first offsets block describing data block 1 partitioning
* 4 bytes - array of signed int16 offsets absolute terminated by -1 (FF FF FF FF) The first offset is the block 3 offset
* 4 bytes - int32 absolute array of offsets in the data block terminated by -1 (FF FF FF FF). The first offset is the data block offset
dat file block 3:
'''data_block_1''':
* 4 bytes - block 3 offset
* 4 bytes - uint32 - list of offsets relative to this file ?
dat file block 4:
* 2 bytes - signed int16 list <- block 2 describe where each element begin
* 2 bytes - signed int16 list <- block 2 describe where each element begin
offset_block_2: ...
data_block_2: ...


Virtual World RE has developed the python script [https://github.com/Virtual-World-RE/NeoGF/tree/main/pzztool pzztool.py] to manipulate MDT files and their internal files.
Virtual World RE has developed the python script [https://github.com/Virtual-World-RE/NeoGF/tree/main/pzztool pzztool.py] to manipulate MDT files and their internal files.

Revision as of 22:55, 6 September 2022

← Gotcha Force

This section is currently being written.
More research is needed and some paragraphs may be wrong.

MDT files are similar to PZZ files, with a header of 0x800 / 2048 bytes including :

  • the number of files (uint32 big endian)
  • the file size / 0x800 for each file

It is possible to unpack and repack .mdt files with the pzztool.py tool. Unlike pzz, the internal files of .mdt are packaged and not compressed.

  • 000 dat file contains at first sight all texts of the game (Related to all dat file, not only one).
  • 001 TPL including an alphanumeric alphabet used by the dat file

dat file: header:

  • 4 bytes - offset_block_list offset
  • 4 bytes - symbols_count # number of symbols contained in the tpl
  • 2 bytes - offsets for each symbol - in the file relative to after the header (array)

offset_block_list:

  • 4 bytes - uint32 absolute offset array of the offsets_blocks terminated by -1 (FF FF FF FF)

offset_block_1: # first offsets block describing data block 1 partitioning

  • 4 bytes - int32 absolute array of offsets in the data block terminated by -1 (FF FF FF FF). The first offset is the data block offset

data_block_1:

  • 2 bytes - signed int16 list <- block 2 describe where each element begin

offset_block_2: ... data_block_2: ...

Virtual World RE has developed the python script pzztool.py to manipulate MDT files and their internal files.


PGCD of MDT file sizes: 2048 / 0x800