DICT: Difference between revisions

From Luigi's Mansion 2 Modding Wiki
m (Fixing a small error in text and adding italics to "Next Level Games".)
(Finished layout section)
Line 2: Line 2:


== Layout ==
== Layout ==
A .dict file consists of a header section 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!
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 ===
=== Header ===
{| class="wikitable"
{| class="wikitable"
|+
!Offset
!Offset
!Byte Size
!Byte Size
Line 46: Line 45:
|Unknown
|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.
{| class="wikitable"
!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 more about these flags please refer to: https://github.com/KillzXGaming/NextLevelLibrary/blob/master/Games/LM2/DICT_Parser.cs -->
|}
|}

Revision as of 16:14, 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.