CLYT format: Difference between revisions

Edit the picture documentation to properly show inheritance from PAN1.
m txt1 (Text 1): changed flags
(6 intermediate revisions by 3 users not shown)
Line 18: Line 18:
|0x0C||0x4||UInt32||File Size
|0x0C||0x4||UInt32||File Size
|-
|-
|0x10||0x4||UInt32||Nr Sections
|0x10||0x2||UInt16||Nr Sections
|-
|0x12||0x2||UInt16||Padding
|}
|}


Line 132: Line 134:
|-
|-
|11||Use Texture Only
|11||Use Texture Only
|-
|12||Separate Blend Mode
|-
|14||Has Indirect Parameter
|-
|15-16||Nr projectionTexGenParameter
|-
|17||Has Font Shadow Parameter
|}
|}
|}
|}
Line 190: Line 184:
|}
|}


TODO: texCoordGen, tevStage, alphaCompare, blendMode, etc...
=== Texture Coordinate Generation Entry ===
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Type
!  Description
|-
|0x00||0x1||UInt8||Type
{| class="wikitable" border="1"
|-
!  Value
!  Meaning
|-
|0||2x4 matrix
|}
|-
|0x08||0x1||UInt8||Source (N = Tex N, max 2)
|-
|0x0C||0x2||UInt8[]||Padding
|}
 
TODO: tevStage, alphaCompare, blendMode, etc...


== pan1 (Pane 1) ==
== pan1 (Pane 1) ==
Line 221: Line 237:
|0x0A||0x1||UInt8||Alpha
|0x0A||0x1||UInt8||Alpha
|-
|-
|0x0B||0x1||UInt8||Pane magnification flags
|0x0B||0x1||UInt8||Padding
{| class="wikitable" border="1"
|-
|-
!  Bit
|0x0C||0x10||String||Pane name
!  Flag
|-
|0||IgnorePartsMagnify
|-
|-
|1||AdjustToPartsBounds
|0x1C||0x8||String||Data
|}
|-
|0x0C||0x18||String||Pane name
|-
|-
|0x24||0xC||Vector3||Translation
|0x24||0xC||Vector3||Translation
Line 244: Line 253:


== 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'''.
'''pic1''' represents a picture that can be displayed in a layout. The previous 0x4C bytes are all defined the same as [[CLYT_format#pan1_.28Pane_1.29|pan1]].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 267: Line 276:
! colspan="4"|Texture coordinates entry
! colspan="4"|Texture coordinates entry
|-
|-
|0x60 + N*0x20||0x8||Vector2||Top left vertex texture coordinate
|0x60 + (N-1) * 0x20||0x8||Vector2||Top left vertex texture coordinate
|-
|-
|0x60 + N*0x20||0x8||Vector2||Top right vertex texture coordinate
|0x60 + (N-1) * 0x20||0x8||Vector2||Top right vertex texture coordinate
|-
|-
|0x60 + N*0x20||0x8||Vector2||Bottom left vertex texture coordinate
|0x60 + (N-1) * 0x20||0x8||Vector2||Bottom left vertex texture coordinate
|-
|-
|0x60 + N*0x20||0x8||Vector2||Bottom right vertex texture coordinate
|0x60 + (N-1) * 0x20||0x8||Vector2||Bottom right vertex texture coordinate
|}
|}


== txt1 (Text 1) ==
== txt1 (Text 1) ==
== wnd1 (Window 1) ==
A textbox used in layouts.
 
The first 0x4C bytes are defined the same as [[CLYT_format#pan1_(Pane_1)|pan1]] with minor differences.
== bnd1 (Bounding 1) ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 287: Line 295:
!  Description
!  Description
|-
|-
|0x00||0x4||String||Signature (bnd1)
|0x00||0x4||String||Signature (txt1)
|-
|0x04||0x4||UInt32||Section size (including the textbox string)
|-
! colspan="4"|Duplicate of pan1 from 0x8 to 0x4c
|-
|0x4C||0x2||Unknown||Flags (H Direction?)
|-
|-
|0x04||0x4||UInt32||Section Size
|0x4E||0x2||Unknown||Flags (V Direction?)
|-
|0x50||0x4||UInt32||Material ID
|-
|0x54||0x2||Unknown||Flags (Line alignment?)
|-
|0x56||0x2||Unknown||Padding
|-
|0x58||0x4||UInt32||Offset from signature to beginning of the string
|-
|-
|0x08||0x2||UInt16?||?
|0x5C||0x4||RGBA8||Font top color
|-
|-
|0x0A||0x2||UInt16?||?
|0x60||0x4||RGBA8||Font bottom color
|-
|-
|0x0C||? (0x10 up to 0x30)||String||Bounding name
|0x64||0x8||Vector2||Font scale
|-
|-
|0x3C||0x8||Vector2||?
|0x6C||0x4||Float||Horizontal font spacing
|-
|-
|0x44||0x4||Vector2||?
|0x70||0x4||Float||Vertical font spacing
|-
|-
|||||||
|0x74||User defined||String||Textbox text (must be multiple of 4), can be usd1
 
|}
|}


== pts1 (Parts 1) ==
== wnd1 (Window 1) ==
 
== bnd1 (Bounding 1) ==
Same data structure as [[#pan1 (Pane 1)|Panes]].
 
== pas1 (Pane Start 1) ==
== pas1 (Pane Start 1) ==
Starts a pane.
Starts a pane.
Line 375: Line 402:
|0x04||0x4||UInt32||Section Size
|0x04||0x4||UInt32||Section Size
|}
|}
== usd1 (User Data 1) ==
Contains a map with strings as keys and variable values
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
| 0x00 || 0x4 || String || Signature (usd1)
|-
| 0x04 || 0x4 || UInt32 || Section Size
|-
| 0x08 || 0x4 || UInt32 || Number of entries (= N)
|-
| 0x12 || 0x12 * N || Entries[] || Entries
|-
| 0x12 + 0x12 * N || ? || Variable || Values referred to by the entries
|}
Where an entry is as follows:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Type
! Description
|-
| 0x0 || 0x4 || UInt32 || Key: offset (from start of this entry) to null-terminated ascii string
|-
| 0x4 || 0x4 || UInt32 || Value: offset (from start of this entry) to a value (type decided by last field)
|-
| 0x8 || 0x2 || UInt16 || Amount or, if a string, the length of the value(s)
|-
| 0xA || 0x2 || UInt16 || Value type
{| class="wikitable" border="1"
|-
! Value
! Type
|-
| 0x0 || String
|-
| 0x1 || Int
|-
| 0x2 || Float
|}
|}


==Tools==
==Tools==
* Every File Explorer has limited support for viewing these
* [https://github.com/mariohackandglitch/EveryFileExplorer/releases/latest Every File Explorer] has limited support for viewing these.
* [https://github.com/pleonex/Clypo/releases Clypo] allows exporting these files to yml and importing back to bclyt but it only supports scale, size, translation and rotation of panes.


= See also =
= See also =