Anonymous

Changes

From Final Fantasy Inside

FF7/Playstation battle stage format

439 bytes removed, 13:46, 12 December 2025
Sections 1 to N-2: 3D Geometry
|-
| style="vertical-align: top; text-align: center" | ...<br />
| style="vertical-align: top" | 8 N * 20 bytes<br />| style="vertical-align: top" | First quad vertex indices (4 × uint16) Textured Quads <nowiki>if quad count N = 0 these occupy no space</nowiki><br />
|-
| style="vertical-align: top; text-align: center" | ...<br />
| style="vertical-align: top" | N * 20 8 bytes<br />| style="vertical-align: top" | Textured Quad records <nowiki>if N = Unknown/padding (always 0 these occupy no space</nowiki>)<br />
|}
typedef struct
{
PolyIndices Vertices;
uint8 U0, V0;
uint16 CLUT;
uint8 U3, V3;
uint16 Flags;
PolyIndices NextQuadVertices; } TexQuadRecordTexQuad;
'''Vertex Structure'''
|}
'''Textured Quad Record Structure (20 bytes)''' Quad data uses an interleaved layout where UV data and vertex indices are offset by one record.
{| style="text-align: left; width: 500px" border="1" cellpadding="2"
|-
| style="width: 76px; vertical-align: middle; text-align: center" | 000000<br />
| style="vertical-align: top" | 8 bytes<br />
| style="vertical-align: top" | 4× vertex byte offsets (uint16, divide by 8 for vertex index)<br />
|-
| style="width: 76px; vertical-align: middle; text-align: center" | 000008<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | U0 coordinate (for previous quad)<br />
|-
| style="width: 76px; vertical-align: middletop; text-align: center" | 000001000009<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | V0 coordinate (for previous quad)<br />
|-
| style="vertical-align: top; text-align: center" | 00000200000A<br />
| style="vertical-align: top" | 2 bytes (word)<br />
| style="vertical-align: top" | CLUT attribute (palette selector)<br />
|-
| style="vertical-align: top; text-align: center" | 00000400000C<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | U1 coordinate<br />
|-
| style="vertical-align: top; text-align: center" | 00000500000D<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | V1 coordinate<br />
|-
| style="vertical-align: top; text-align: center" | 00000600000E<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | U2 coordinate<br />
|-
| style="vertical-align: top; text-align: center" | 00000700000F<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | V2 coordinate<br />
|-
| style="vertical-align: top; text-align: center" | 000008000010<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | U3 coordinate<br />
|-
| style="vertical-align: top; text-align: center" | 000009000011<br />
| style="vertical-align: top" | 1 byte<br />
| style="vertical-align: top" | V3 coordinate<br />
|-
| style="vertical-align: top; text-align: center" | 00000A000012<br />
| style="vertical-align: top" | 2 bytes (word)<br />
| style="vertical-align: top" | Flags (typically 0x007F)<br />
|-
| style="vertical-align: top; text-align: center" | 00000C<br />
| style="vertical-align: top" | 8 bytes<br />
| style="vertical-align: top" | Next quad vertex indices (4× uint16 byte offsets)<br />
|}
'''Data Layout:''' First Each quad verticesvertex has its own UV coordinates: from 8-byte header before records Record 0: [UV for Quad 0 (header quadU0,V0), (U1,V1)][Vertices for Quad 1] Record 1: [UV for Quad 1][Vertices for Quad 2] Record 2: [UV for Quad 2][Vertices for Quad 3] ... Record N-1: [UV for Quad N-1][Padding vertices , (0U2,0V2),0(U3,0V3)].
==== Common section contents ====
109
edits