Difference between revisions of "FF8/Menu sp2"

From Final Fantasy Inside
< FF8
Jump to navigation Jump to search
my_wiki>Sebanisu
(Content: Added note about blank space)
my_wiki>Sebanisu
Line 72: Line 72:
  
  
 +
== Layout of '''icon.sp1''': ==
 +
=== Header ===
 +
{| class="wikitable"
 +
! Offset
 +
! SizeOf
 +
! Name
 +
! Description
 +
|-
 +
| 0
 +
| UInt32
 +
| PointerCount
 +
| Number of entries
 +
|-
 +
| 4
 +
| Struct Pointer[PointerCount]
 +
| Pointers
 +
| Seek locations for entry groups
 +
|}
 +
=== Pointer ===
 +
{| class="wikitable"
 +
! Offset
 +
! SizeOf
 +
! Name
 +
! Description
 +
|-
 +
| 0
 +
| UInt16
 +
| Pointer
 +
| Seek location for entry group
 +
|-
 +
| 2
 +
| UInt16
 +
| Count
 +
| Number of entries in group
 +
|}
 +
=== EntryGroup ===
 +
At pointer's location there will be '''Struct Entry[Count]'''
 +
=== Entry ===
 +
{| class="wikitable"
 +
! Offset
 +
! SizeOf
 +
! Name
 +
! Description
 +
|-
 +
|0
 +
|Byte
 +
|xPos
 +
|Pixel X coordinate in image atlas
 +
|-
 +
|1
 +
|Byte
 +
|yPos
 +
|Pixel Y coordinate in image atlas
 +
|-
 +
|2
 +
|Byte[2]
 +
|UNK
 +
|Unknown data
 +
|-
 +
|4
 +
|Byte
 +
|Width
 +
|Width of entry in pixels
 +
|-
 +
|5
 +
|Byte
 +
|Offset X
 +
|Offset of X coordinate for when drawing
 +
|-
 +
|6
 +
|Byte
 +
|Height
 +
|Height of entry in pixels
 +
|-
 +
|7
 +
|Byte
 +
|Offset Y
 +
|Offset of Y coordinate for when drawing
 +
|}
 
== Layout of '''face.sp2''': ==
 
== Layout of '''face.sp2''': ==
  
Line 92: Line 171:
 
| UInt32[Count]
 
| UInt32[Count]
 
| Locations
 
| Locations
| Seek location for each Entry
+
| Seek location for each entry
 
|}
 
|}
 
=== Entry ===
 
=== Entry ===
Line 130: Line 209:
 
| Width
 
| Width
 
| Width of entry in pixels
 
| Width of entry in pixels
 +
Possible this is really a byte with a zero x offset.
 
|-
 
|-
 
| 10
 
| 10
Line 135: Line 215:
 
| Height
 
| Height
 
| Height of entry in pixels
 
| Height of entry in pixels
 +
Possible this is really a byte with a zero y offset.
 
|-
 
|-
 
| 12
 
| 12

Revision as of 02:36, 10 April 2019

by MaKi

This file is a mapping file for atlas textures like icons.tex

STRUCTURE

Offset SizeOf Name Description
0 uint pointerCount count of entry pointers
4 uint entryPointer absolute pointer to entry
8 + pointerCount 16 bytes Entry Entry Data

ENTRY

Offset SizeOf Name Description
0 uint UNK3 UNKNOWN
4 byte xPos Pixel X coordinate in image atlas
5 byte yPos Pixel Y coordinate in image atlas
6 ushort (??) UNK Unknown- is that a bottom right pixel?
8 uint (??) UNK Unknown- maybe a width/height?
12 uint UNK Unknown- no idea. Maybe CLUT indexer somewhere?


WIP- there's a lot of trash here... 80 20 a0 c0 28 (f8) (10) 00 00 00 a0 c0 (08) 00 (08) 00

look- f8 and 10 are x and y and 08 and 08 are width x height- this one is fine with what is represented in the image, but it's totally different for face.sp2


Layout of icon.sp1:

Header

Offset SizeOf Name Description
0 UInt32 PointerCount Number of entries
4 Struct Pointer[PointerCount] Pointers Seek locations for entry groups

Pointer

Offset SizeOf Name Description
0 UInt16 Pointer Seek location for entry group
2 UInt16 Count Number of entries in group

EntryGroup

At pointer's location there will be Struct Entry[Count]

Entry

Offset SizeOf Name Description
0 Byte xPos Pixel X coordinate in image atlas
1 Byte yPos Pixel Y coordinate in image atlas
2 Byte[2] UNK Unknown data
4 Byte Width Width of entry in pixels
5 Byte Offset X Offset of X coordinate for when drawing
6 Byte Height Height of entry in pixels
7 Byte Offset Y Offset of Y coordinate for when drawing

Layout of face.sp2:

Header

Offset SizeOf Name Description
0 UInt32 Count Number of entries

Count can be more than the actual images in the texture.
There are 16 images in each of the 2 textures, and there are 64 entries.

4 UInt32[Count] Locations Seek location for each entry

Entry

Offset SizeOf Name Description
0 byte[4] UNK Unknown

{0x01,0x00,0x00,0x00}

4 byte xPos Pixel X coordinate in image atlas
5 byte yPos Pixel Y coordinate in image atlas

Invalid entries seem to have yPos>=Texture.Height.
Detected switch from face1.tex to face2.tex when yPos<previous.yPos.

6 byte[2] UNK Unknown

{0x20,0x36} on the valid entries. {0x60,0x36} on invalid entries.

8 UInt16 Width Width of entry in pixels

Possible this is really a byte with a zero x offset.

10 UInt16 Height Height of entry in pixels

Possible this is really a byte with a zero y offset.

12 byte[4] UNK Unknown

{0x00,0x00,0x8E,0x00} on most. Last one has all {0x00}

File ends with byte[16] of {0x00}

Content

Name File X Y Width Height
Squall Leonhart face1.tex 0 0 32 48
Zell Dincht face1.tex 32 0 32 48
Irvine Kinneas face1.tex 64 0 32 48
Quistis Trepe face1.tex 96 0 32 48
Rinoa Heartilly face1.tex 128 0 32 48
Selphie Tilmitt face1.tex 160 0 32 48
Seifer Almasy face1.tex 192 0 32 48
Edea Kramer face1.tex 224 0 32 48
Laguna Loire face1.tex 0 48 32 48
Kiros Seagill face1.tex 32 48 32 48
Ward Zabac face1.tex 64 48 32 48
Lion face1.tex 128 48 32 48
MiniMog face1.tex 160 48 32 48
Boko face1.tex 192 48 32 48
Angelo face1.tex 224 48 32 48
Quezacotl face2.tex 0 0 32 48
Shiva face2.tex 32 0 32 48
Ifrit face2.tex 64 0 32 48
Siren face2.tex 96 0 32 48
Brothers face2.tex 128 0 32 48
Diablos face2.tex 160 0 32 48
Carbuncle face2.tex 192 0 32 48
Leviathan face2.tex 224 0 32 48
Pandemona face2.tex 0 48 32 48
Cerberus face2.tex 32 48 32 48
Alexander face2.tex 64 48 32 48
Doomtrain face2.tex 96 48 32 48
Bahamut face2.tex 128 48 32 48
Cactuar face2.tex 160 48 32 48
Tonberry face2.tex 192 48 32 48
Eden face2.tex 224 48 32 48

There is one blank space in face1.tex, I skipped that entry.