CLYT format: Difference between revisions
Shibboleet (talk | contribs) 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|| | |0x10||0x2||UInt16||Nr Sections | ||
|- | |||
|0x12||0x2||UInt16||Padding | |||
|} | |} | ||
Line 132: | Line 134: | ||
|- | |- | ||
|11||Use Texture Only | |11||Use Texture Only | ||
|} | |} | ||
|} | |} | ||
Line 190: | Line 184: | ||
|} | |} | ||
TODO: | === 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|| | |0x0B||0x1||UInt8||Padding | ||
|- | |- | ||
|0x0C||0x10||String||Pane name | |||
| | |||
| | |||
|- | |- | ||
| | |0x1C||0x8||String||Data | ||
|- | |- | ||
|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 | '''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) == | ||
A textbox used in layouts. | |||
The first 0x4C bytes are defined the same as [[CLYT_format#pan1_(Pane_1)|pan1]] with minor differences. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 287: | Line 295: | ||
! Description | ! Description | ||
|- | |- | ||
|0x00||0x4||String||Signature ( | |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?) | |||
|- | |- | ||
| | |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 | |||
|- | |- | ||
| | |0x5C||0x4||RGBA8||Font top color | ||
|- | |- | ||
| | |0x60||0x4||RGBA8||Font bottom color | ||
|- | |- | ||
| | |0x64||0x8||Vector2||Font scale | ||
|- | |- | ||
| | |0x6C||0x4||Float||Horizontal font spacing | ||
|- | |- | ||
| | |0x70||0x4||Float||Vertical font spacing | ||
|- | |- | ||
| | |0x74||User defined||String||Textbox text (must be multiple of 4), can be usd1 | ||
|} | |} | ||
== | == 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 = |