6,384 bytes added
, 00:02, 25 December 2016
CLYT (.bclyt) is the layout format used on the 3DS. It stands for ('''B'''inary) '''C'''TR '''L'''a'''y'''ou'''t''', and is similar to the RLYT format used on the Wii.
== Header ==
{| class="wikitable" border="1"
|-
! 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) ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x4||String||Signature (lyt1)
|-
|0x04||0x4||UInt32||Section Size
|-
|0x08||0x4||UInt32||Origin type
{| class="wikitable" border="1"
|-
! Value
! Meaning
|-
|0||Classic
|-
|1||Normal
|}
|-
|0x0C||0x8||Vector2||Canvas Size
|}
== txl1 (Texture List 1) ==
{| class="wikitable" border="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) ==
{| class="wikitable" border="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) ==
{| class="wikitable" border="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.
{| class="wikitable" border="1"
|-
! 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
{| class="wikitable" border="1"
|-
! Bit
! Flag / data
|-
|0-1||Nr texMap
|-
|2-3||Nr texMatrix
|-
|4-5||Nr texCoordGen
|-
|6-8||Nr tevStage
|-
|9||Has alphaCompare
|-
|10||Has blendMode
|-
|11||Use Texture Only
|-
|12||Separate Blend Mode
|-
|14||Has Indirect Parameter
|-
|15-16||Nr projectionTexGenParameter
|-
|17||Has Font Shadow Parameter
|}
|}
=== Texture Map Entry ===
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x2||UInt16||Texture Index
|-
|0x02||0x1||Byte||Bitfield
{| class="wikitable" border="1"
|-
! Bit
! Data
|-
|0-1||Wrap S (Clamp = 0, Repeat = 1, Mirror = 2)
|-
|2-3||Min Filter (0 = Near, 1 = Linear)
|}
|-
|0x02||0x1||Byte||Bitfield
{| class="wikitable" border="1"
|-
! Bit
! Data
|-
|0-1||Wrap T (Clamp = 0, Repeat = 1, Mirror = 2)
|-
|2-3||Mag Filter (0 = Near, 1 = Linear)
|}
|}
=== Texture Matrix Entry ===
{| class="wikitable" border="1"
|-
! 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) ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x4||String||Signature (pan1)
|-
|0x04||0x4||UInt32||Section Size
|-
|0x08||0x1||UInt8||Flags
{| class="wikitable" border="1"
|-
! Bit
! Flag
|-
|0||Visible
|-
|1||InfluencedAlpha
|-
|2||LocationAdjust
|}
|-
|0x09||0x1||UInt8||Origin
|-
|0x0A||0x1||UInt8||Alpha
|-
|0x0B||0x1||UInt8||Pane magnification flags
{| class="wikitable" border="1"
|-
! Bit
! Flag
|-
|0||IgnorePartsMagnify
|-
|1||AdjustToPartsBounds
|}
|-
|0x0C||0x18||String||Pane name
|-
|0x24||0xC||Vector3||Translation
|-
|0x30||0xC||Vector3||Rotation
|-
|0x3C||0x8||Vector2||Scale
|-
|0x48||0x8||Vector2||Size
|}
== pic1 (Picture 1) ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x4||String||Signature (pic1)
|-
|0x04||0x4||UInt32||Section Size
|-
|0x08||0x4||RGBA8||Top left vertex color
|-
|0x0C||0x4||RGBA8||Top right vertex color
|-
|0x10||0x4||RGBA8||Bottom left vertex color
|-
|0x14||0x4||RGBA8||Bottom right vertex color
|-
|0x18||0x2||UInt16||Material ID
|-
|0x1A||0x2||UInt16||Nr texture coordinates = N
|-
! colspan="4"|Texture coordinates entry
|-
|0x1C + N*0x20||0x8||Vector2||Top left vertex texture coordinate
|-
|0x24 + N*0x20||0x8||Vector2||Top right vertex texture coordinate
|-
|0x2C + N*0x20||0x8||Vector2||Bottom left vertex texture coordinate
|-
|0x34 + N*0x20||0x8||Vector2||Bottom right vertex texture coordinate
|}
== txt1 (Text 1) ==
== wnd1 (Window 1) ==
== bnd1 (Bounding 1) ==
{| class="wikitable" border="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.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x4||String||Signature (pas1)
|-
|0x04||0x4||UInt32||Section Size
|}
== pae1 (Pane End 1) ==
Ends a pane.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x4||String||Signature (pae1)
|-
|0x04||0x4||UInt32||Section Size
|}
== grp1 (Group 1) ==
{| class="wikitable" border="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.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x4||String||Signature (grs1)
|-
|0x04||0x4||UInt32||Section Size
|}
== gre1 (Group End 1) ==
Ends a group.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
|0x00||0x4||String||Signature (gre1)
|-
|0x04||0x4||UInt32||Section Size
|}
= See also =
http://florian.nouwt.com/wiki/index.php/CLYT_%28File_Format%29
https://github.com/Gericom/EveryFileExplorer/tree/master/3DS/NintendoWare/LYT1
[[Category:File Format]]