Changes

6,384 bytes added ,  01:02, 25 December 2016
Created page with "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. == Head..."
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]]
20

edits