mNo edit summary |
(Remove Tools section in favour of section in Tools article) |
||
| Line 83: | Line 83: | ||
== Tools == | == Tools == | ||
''→ Main article: [[Tools#Tools_for_DATA-DICT_extraction|Tools]]'' | |||
Revision as of 10:20, 7 May 2024
The DICT (.dict or presumably dictionary) file format is a file format used by Next Level Games to store information and lookup data for files that can be extracted from a corresponding .data file. These files contain data for textures, models and scripts, among others.
.dict files use the little endian format.
Layout
A .dict file consists of a header section, a currently unknown section corresponding with the amount of files located in the .data file and multiple file sections. Typically .dict files contain information on 8 files that can be extracted from a .data file. This is not a fixed number and could differ in certain files!
Header
| Offset | Byte Size | Name | Description |
|---|---|---|---|
| 0x0-0x3 | 4 | Identifier | Magic adress that identifies a .dict file. It's hex value is 0xA9F32458. |
| 0x4-0x5 | 2 | Header Flags | Use is currently unknown. The hex always seems to be 0x0104. |
| 0x6 | 1 | Compression Flag | If the .data file is compressed the byte is set to 0x1, else to 0x0. |
| 0x7 | 1 | Padding | |
| 0x8-0xb | 4 | File Count | Number of files that are stored in the .data file. |
| 0xc-0xf | 4 | Largest Compressed File | The byte size of the largest compressed file stored in the .data file. |
| 0x10-0x2b | 27 | Unknown |
Unknown Section for Extractable Files
Next is a section where one byte is allocated for every file that can be extracted from the .data file. As there are normally 8 files that can be extracted, this section typically ranges from offset 0x2c to 0x33.
File Section
For each file that can be extracted, a section with a total of 16 bytes can be found. The first section can be found at offset 0x34, assuming there are 8 files to extract.
| Offset | Byte Size | Name | Description |
|---|---|---|---|
| 0x0-0x3 | 4 | Offset | Gives the offset in bytes where the file data is located in the .data file. |
| 0x4-0x7 | 4 | Decompressed File Size | File size in bytes when decompressed. |
| 0x8-0xb | 4 | Compressed File Size | File size in bytes when compressed. |
| 0xc-0xf | 4 | Flags | Determines if the file is a data file or file table
The exact usage of them is not fully understood currently by the author of this article. To find out more about these flags please refer to https://github.com/KillzXGaming/NextLevelLibrary/blob/master/Games/LM2/DICT_Parser.cs |
Tools
→ Main article: Tools