DKRDS Model (File Format): Difference between revisions
From Wexos's Wiki
Jump to navigationJump to search
mNo edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
== Header == | == Header == | ||
The file starts with a header that is 48 bytes long. | The file starts with a header that is 48 bytes long. Unused models that might use an older version of the format have been seen with a 44-byte long header. | ||
{|class=wikitable | {|class=wikitable | ||
! Offset !! Type !! Description | ! Offset !! Type !! Description | ||
|- | |- | ||
| 0x00 || | | 0x00 || UInt16 || '''Size flag'''. This flag indicates how much the vertex data is divided by in the short-to-float conversion: | ||
* 0 = Divided by 16 (?) | |||
* 1 = Divided by 4096 (?) | |||
|- | |- | ||
| | | 0x02 || UInt16 || {{unknown-left|'''Unknown various flags'''. Each bit seems to correspond to a different flag:}} | ||
* 0 = If 1, bone IDs are attached to each vertex | |||
|- | |- | ||
| | | 0x04 || UInt16 || '''Number of models'''. | ||
|- | |- | ||
| | | 0x06 || UInt16 || {{unknown-left|'''Unknown'''.}} | ||
|- | |- | ||
| 0x20 || Int32 || '''[[#Texture | | 0x08 || UInt16 || '''Number of textures'''. | ||
|- | |||
| 0x0A || UInt16 || {{unknown-left|'''Unknown'''.}} | |||
|- | |||
| 0x0C || Int32 || {{unknown-left|'''Unknown'''.}} | |||
|- | |||
| 0x10 || Byte[12] || {{unknown-left|'''Unknown'''. Padding? In earlier versions this would be an 8-byte padding instead}} | |||
|- | |||
| 0x1C || Int32 || '''[[#Model Group|Model Group]]''' offset. | |||
|- | |||
| 0x20 || Int32 || '''[[#Texture Group|Texture Group]]''' offset. | |||
|- | |- | ||
| 0x24 || Int32 || '''[[#Texture Reference Table|Texture Reference Table]]''' offset. | | 0x24 || Int32 || '''[[#Texture Reference Table|Texture Reference Table]]''' offset. | ||
|- | |- | ||
| 0x28 || Int32 || {{unknown-left|'''Unknown'''. | | 0x28 || Int32 || {{unknown-left|'''Unknown'''.}} | ||
|- | |- | ||
| 0x2C || Int32 || {{unknown-left|'''Unknown'''. | | 0x2C || Int32 || {{unknown-left|'''Unknown'''.}} | ||
|- | |- | ||
| 0x30 || colspan=2 {{unknown|End of header}} | | 0x30 || colspan=2 {{unknown|End of header}} | ||
|} | |} | ||
== Model | == Model Group == | ||
''TBD'' | ''TBD'' | ||
== Texture Group == | == Texture Group == | ||
See '''[[DKRDS Texture Group]]'''. | |||
== Texture Reference Table == | |||
This section lists each 4-byte texture UID directly, in order. The index of each reference is used in the model data to know which texture corresponds to which triangle. | |||
{|class=wikitable | {|class=wikitable | ||
! Offset !! Type !! Description | ! Offset !! Type !! Description | ||
|- | |- | ||
| 0x00 | | 0x00 || Byte[4]['''Number of Textures in [[#Texture Group|Texture Group]]'''] || '''Texture UID'''. | ||
|} | |} | ||
= Tools = | = Tools = |
Revision as of 13:17, 22 June 2024
Under Construction
This article is not finished. Help improve it by adding accurate information or correcting grammar and spelling.
DKRDS Model is the nameless file format used in Diddy Kong Racing DS that stores models and textures.
File Format
The file byte order is always little endian.
Header
The file starts with a header that is 48 bytes long. Unused models that might use an older version of the format have been seen with a 44-byte long header.
Offset | Type | Description |
---|---|---|
0x00 | UInt16 | Size flag. This flag indicates how much the vertex data is divided by in the short-to-float conversion:
|
0x02 | UInt16 | Unknown various flags. Each bit seems to correspond to a different flag:
|
0x04 | UInt16 | Number of models. |
0x06 | UInt16 | Unknown. |
0x08 | UInt16 | Number of textures. |
0x0A | UInt16 | Unknown. |
0x0C | Int32 | Unknown. |
0x10 | Byte[12] | Unknown. Padding? In earlier versions this would be an 8-byte padding instead |
0x1C | Int32 | Model Group offset. |
0x20 | Int32 | Texture Group offset. |
0x24 | Int32 | Texture Reference Table offset. |
0x28 | Int32 | Unknown. |
0x2C | Int32 | Unknown. |
0x30 | End of header |
Model Group
TBD
Texture Group
See DKRDS Texture Group.
Texture Reference Table
This section lists each 4-byte texture UID directly, in order. The index of each reference is used in the model data to know which texture corresponds to which triangle.
Offset | Type | Description |
---|---|---|
0x00 | Byte[4][Number of Textures in Texture Group] | Texture UID. |
Tools
The following tools can handle DKRDS Model:
- (none)