CLYT format: Difference between revisions
Jump to navigation
Jump to search
Shibboleet (talk | contribs) m Fix small math error in Vector2 size. |
Shibboleet (talk | contribs) Edit the picture documentation to properly show inheritance from PAN1. |
||
| Line 244: | Line 244: | ||
== pic1 (Picture 1) == | == pic1 (Picture 1) == | ||
'''pic1''' represents a picture that can be displayed in a layout. The previous 0x4C bytes are all defined by '''pan1'''. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 251: | Line 253: | ||
! Description | ! Description | ||
|- | |- | ||
| | |0x4C||0x4||RGBA8||Top left vertex color | ||
|- | |- | ||
| | |0x50||0x4||RGBA8||Top right vertex color | ||
|- | |- | ||
| | |0x54||0x4||RGBA8||Bottom left vertex color | ||
|- | |- | ||
| | |0x58||0x4||RGBA8||Bottom right vertex color | ||
|- | |- | ||
| | |0x5C||0x2||UInt16||Material ID | ||
|- | |- | ||
| | |0x5E||0x2||UInt16||Nr texture coordinates = N | ||
|- | |- | ||
! colspan="4"|Texture coordinates entry | ! colspan="4"|Texture coordinates entry | ||
|- | |- | ||
| | |0x60 + N*0x20||0x8||Vector2||Top left vertex texture coordinate | ||
|- | |- | ||
| | |0x60 + N*0x20||0x8||Vector2||Top right vertex texture coordinate | ||
|- | |- | ||
| | |0x60 + N*0x20||0x8||Vector2||Bottom left vertex texture coordinate | ||
|- | |- | ||
| | |0x60 + N*0x20||0x8||Vector2||Bottom right vertex texture coordinate | ||
|} | |} | ||
Revision as of 21:34, 11 April 2019
CLYT (.bclyt) is the layout format used on the 3DS. It stands for (Binary) CTR Layout, and is similar to the RLYT format used on the Wii.
Header
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (CLYT) |
| 0x04 | 0x2 | UInt16 | Byte Order Mark |
| 0x06 | 0x2 | UInt16 | Header Length |
| 0x08 | 0x4 | UInt32 | Revision |
| 0x0C | 0x4 | UInt32 | File Size |
| 0x10 | 0x4 | UInt32 | Nr Sections |
lyt1 (Layout 1)
| Offset | Size | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 0x00 | 0x4 | String | Signature (lyt1) | ||||||
| 0x04 | 0x4 | UInt32 | Section Size | ||||||
| 0x08 | 0x4 | UInt32 | Origin type
| ||||||
| 0x0C | 0x8 | Vector2 | Canvas Size |
txl1 (Texture List 1)
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (txl1) |
| 0x04 | 0x4 | UInt32 | Section Size |
| 0x08 | 0x4 | UInt32 | Nr Textures = N |
| 0x0C | N * 4 | UInt32[] | Texture Name Offsets (relative to the start of this array) |
After this, the null terminated names follow.
fnl1 (Font List 1)
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (fnl1) |
| 0x04 | 0x4 | UInt32 | Section Size |
| 0x08 | 0x4 | UInt32 | Nr Fonts = N |
| 0x0C | N * 4 | UInt32[] | Font Name Offsets (relative to the start of this array) |
After this, the null terminated names follow.
mat1 (Materials 1)
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (mat1) |
| 0x04 | 0x4 | UInt32 | Section Size |
| 0x08 | 0x4 | UInt32 | Nr Materials = N |
| 0x0C | N * 4 | UInt32[] | Material Entry Offsets (relative to the start of this section) |
After this, the material entries follow.
| Offset | Size | Type | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | 0x14 | String | Material Name | ||||||||||||||||||||||||
| 0x14 | 0x4 | RGBA8 | Tev Color (Buffer Color?) | ||||||||||||||||||||||||
| 0x18 | 0x18 | RGBA8[6] | Tev Constant Colors | ||||||||||||||||||||||||
| 0x30 | 0x4 | UInt32 | Flags / bitfield
|
Texture Map Entry
| Offset | Size | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 0x00 | 0x2 | UInt16 | Texture Index | ||||||
| 0x02 | 0x1 | Byte | Bitfield
| ||||||
| 0x02 | 0x1 | Byte | Bitfield
|
Texture Matrix Entry
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x8 | Vector2 | Translation |
| 0x08 | 0x4 | Single | Rotation |
| 0x0C | 0x8 | Vector2 | Scale |
TODO: texCoordGen, tevStage, alphaCompare, blendMode, etc...
pan1 (Pane 1)
| Offset | Size | Type | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | 0x4 | String | Signature (pan1) | ||||||||
| 0x04 | 0x4 | UInt32 | Section Size | ||||||||
| 0x08 | 0x1 | UInt8 | Flags
| ||||||||
| 0x09 | 0x1 | UInt8 | Origin | ||||||||
| 0x0A | 0x1 | UInt8 | Alpha | ||||||||
| 0x0B | 0x1 | UInt8 | Pane magnification flags
| ||||||||
| 0x0C | 0x18 | String | Pane name | ||||||||
| 0x24 | 0xC | Vector3 | Translation | ||||||||
| 0x30 | 0xC | Vector3 | Rotation | ||||||||
| 0x3C | 0x8 | Vector2 | Scale | ||||||||
| 0x44 | 0x8 | Vector2 | Size |
pic1 (Picture 1)
pic1 represents a picture that can be displayed in a layout. The previous 0x4C bytes are all defined by pan1.
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x4C | 0x4 | RGBA8 | Top left vertex color |
| 0x50 | 0x4 | RGBA8 | Top right vertex color |
| 0x54 | 0x4 | RGBA8 | Bottom left vertex color |
| 0x58 | 0x4 | RGBA8 | Bottom right vertex color |
| 0x5C | 0x2 | UInt16 | Material ID |
| 0x5E | 0x2 | UInt16 | Nr texture coordinates = N |
| Texture coordinates entry | |||
| 0x60 + N*0x20 | 0x8 | Vector2 | Top left vertex texture coordinate |
| 0x60 + N*0x20 | 0x8 | Vector2 | Top right vertex texture coordinate |
| 0x60 + N*0x20 | 0x8 | Vector2 | Bottom left vertex texture coordinate |
| 0x60 + N*0x20 | 0x8 | Vector2 | Bottom right vertex texture coordinate |
txt1 (Text 1)
wnd1 (Window 1)
bnd1 (Bounding 1)
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (bnd1) |
| 0x04 | 0x4 | UInt32 | Section Size |
| 0x08 | 0x2 | UInt16? | ? |
| 0x0A | 0x2 | UInt16? | ? |
| 0x0C | ? (0x10 up to 0x30) | String | Bounding name |
| 0x3C | 0x8 | Vector2 | ? |
| 0x44 | 0x4 | Vector2 | ? |
| ⋮ | ⋮ | ⋮ | ⋮ |
pts1 (Parts 1)
pas1 (Pane Start 1)
Starts a pane.
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (pas1) |
| 0x04 | 0x4 | UInt32 | Section Size |
pae1 (Pane End 1)
Ends a pane.
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (pae1) |
| 0x04 | 0x4 | UInt32 | Section Size |
grp1 (Group 1)
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (grp1) |
| 0x04 | 0x4 | UInt32 | Section Size |
| 0x08 | 0x10 | String | Group Name |
| 0x18 | 0x4 | UInt32 | Nr Pane References (=N) |
| 0x1C | 0x10 * N | String[N] | Pane References |
grs1 (Group Start 1)
Starts a group.
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (grs1) |
| 0x04 | 0x4 | UInt32 | Section Size |
gre1 (Group End 1)
Ends a group.
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x00 | 0x4 | String | Signature (gre1) |
| 0x04 | 0x4 | UInt32 | Section Size |
Tools
- Every File Explorer has limited support for viewing these
See also
http://florian.nouwt.com/wiki/index.php/CLYT_%28File_Format%29 https://github.com/Gericom/EveryFileExplorer/tree/master/3DS/NintendoWare/LYT1