Difference between revisions of "FF8/Menu sp2"
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 | + | | 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
Contents
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. |
| 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. |
| 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.