Resident Evil 3 DAT
From XentaxWiki
Back to index | Edit this page
Contents
DAT
- Format type: Archive
- Endianness: Little-endian
Format Specifications
// Header data
- uint32 {5} - Unknown1
- char {1} - Unknown2
- byte {x} - Top level directory filename (null padded)
- uint32 {1} - Absolute offset to subdirectory data (value read here must be multiplied by 8)
- uint32 {1} - Length in bytes of subdirectory data
- byte {x} - Subdirectory filename (null padded)
// Subdirectory data
- uint32 {5} - Number of files
- // For each file
- uint32 {1} - Absolute offset to file data (value read here must be multiplied by 8)
- uint32 {1} - Length in bytes of file data
- byte {x} - Filename (null padded)
// File data
- uint16 {1} - Relative offset to file content
- uint16 {1} - Number of blocks
- uint32 {1} - Length in bytes of file content (length of decompressed file if compression is set)
- char {8} - XOR encrypted string Null padded string. The latest byte is the value to use to 'decrypt' the other bytes of this string using XOR. The string is either "NotComp\0" (non compressed file) or "Hi_Comp\0" (compressed file).
- // File block data
- uint32 {number of blocks} - Start value for decryption
- uint32 {number of blocks} - Length in bytes of a file block
- byte {x} - Crypted and compressed file content To read the file content: for each block, decryption must be performed first, then optional decompression.
Notes and Comments
- Decryption is done using a simple XOR, byte per byte. The tricky part is to know which byte to use as a key.
- Decompression is a modified LZSS routine.
MultiEx BMS Script
Not written yet
Supported by Programs
None
Links
Decryption and decompression routines are available on the associated REwiki page.
Games
- Resident Evil 3 (PC)