(Add minor note for resource flags) |
mNo edit summary |
||
| Line 76: | Line 76: | ||
|4 | |4 | ||
|Flags | |Flags | ||
|Determines if the file is a data file or file table. <ref>The exact usage of them is not fully understood currently by the author of this article. To find more about these flags please refer to: | |Determines if the file is a data file or file table. <ref>The exact usage of them is not fully understood currently by the author of this article. To find more about these flags please refer to: {{cite journal|url=https://github.com/KillzXGaming/NextLevelLibrary/blob/master/Games/LM2/DICT_Parser.cs}</ref> | ||
|} | |} | ||
Revision as of 16:17, 6 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.
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. [1] |
- ↑ The exact usage of them is not fully understood currently by the author of this article. To find more about these flags please refer to: {{cite journal|url=https://github.com/KillzXGaming/NextLevelLibrary/blob/master/Games/LM2/DICT_Parser.cs}