Difference between revisions of "FF8/Menu sp2"
my_wiki>MaKi (→ENTRY) |
my_wiki>Sebanisu (I spent time working with face.sp2 today I'll let Maki know I added this and see if she wants to change it.) |
||
| Line 70: | Line 70: | ||
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 | 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 '''face.sp2''': == | ||
| + | |||
| + | === Header === | ||
| + | {| class="wikitable" | ||
| + | ! Offset | ||
| + | ! SizeOf | ||
| + | ! Name | ||
| + | ! Description | ||
| + | |- | ||
| + | | 0 | ||
| + | | UInt32 | ||
| + | | Count | ||
| + | | Number of entries | ||
| + | Count can be more than the actual images in the texture.<br/> | ||
| + | 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 === | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! 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'''.<br /> | ||
| + | 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 | ||
| + | |- | ||
| + | | 10 | ||
| + | | UInt16 | ||
| + | | Height | ||
| + | | Height of entry in pixels | ||
| + | |- | ||
| + | | 12 | ||
| + | | byte[4] | ||
| + | | UNK | ||
| + | | Unknown | ||
| + | '''{0x00,0x00,0x8E,0x00}''' on most. Last one has all '''{0x00}''' | ||
| + | |} | ||
| + | |||
| + | File ends with byte[16] of '''{0x00}''' | ||
Revision as of 21:01, 8 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 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 |
| 10 | UInt16 | Height | Height of entry in pixels |
| 12 | byte[4] | UNK | Unknown
{0x00,0x00,0x8E,0x00} on most. Last one has all {0x00} |
File ends with byte[16] of {0x00}