Difference between revisions of "GTX\GSH (File Format)"
Jump to navigation
Jump to search
Aboood40091 (talk | contribs) m (→Block types) |
Aboood40091 (talk | contribs) m (→Image info) |
||
Line 169: | Line 169: | ||
| 0x24 | | 0x24 | ||
| 4 | | 4 | ||
− | | '''Data Pointer'''. | + | | '''Data Pointer?'''. |
|- | |- | ||
| 0x28 | | 0x28 | ||
Line 177: | Line 177: | ||
| 0x2C | | 0x2C | ||
| 4 | | 4 | ||
− | | '''Mipmaps Pointer'''. | + | | '''Mipmaps Pointer?'''. |
|- | |- | ||
| 0x30 | | 0x30 |
Revision as of 11:31, 1 October 2016
The GTX texture format is a type of the GFD texture format which is used in various Wii U games, including MK8.
Header (GTX)
Every GTX file begins with an 0x20 byte Gfx2 header.
Offset | Size | Description |
---|---|---|
0x00 | 4 | "Gfx2" File identifier, ASCII string. |
0x04 | 4 | Size of header in bytes. Must match exactly, or header (and hence file) is unreadable. |
0x08 | 4 | Major version number. Must match exactly or header is unreadable. |
0x0C | 4 | Minor version number. Will warn if lower. |
0x10 | 4 | GPU version for which this file is designed for. |
0x14 | 4 | Align mode. |
0x18 | 4 | Padding? Always 0x00. |
0x1C | 4 | Padding? Always 0x00. |
0x20 | End of Gfx2 header. |
Blocks
After the header comes some blocks, blocks contain a 0x20 byte BLK{ header followed by data specified by the block type.
Block Header
Offset | Size | Description |
---|---|---|
0x00 | 4 | "BLK{" Header of the block, ASCII string. |
0x04 | 4 | Size of block header in bytes. |
0x08 | 4 | Major version number. Must match exactly or header is unreadable. |
0x0C | 4 | Minor version number. Will warn if lower. |
0x10 | 4 | Block type, it determines the type of the following data. |
0x14 | 4 | Size of the following data. In bytes, always 0x9C if the block type is 0x0B. |
0x18 | 4 | A unique identifier for this block, allowing it to be referenced by other blocks |
0x1C | 4 | An incrementing index for each instance of a given type. |
Block types
Type | Description |
---|---|
0x01 | Follows this block header the End of the file. |
0x02 | Follows this block header padding for texture align? |
0x03 | (Unknown) |
0x05 | (Unknown) |
0x06 | (Unknown) |
0x07 | (Unknown) |
0x0B | Follows this block header the Image info. |
0x0C | Follows this block header the Image data. |
0x0D | Follows this block header the Mipmaps data. |
Image info
The image info directly follows the block header that has a block type 0x0B:
Offset | Size | Description |
---|---|---|
0x00 | 4 | Dimension. Indicates the "shape" of a given surface or texture (see line 849 here). |
0x04 | 4 | Texture Width. Width of the texture in pixels. |
0x08 | 4 | Texture Height. Height of the texture in pixels. |
0x0C | 4 | Depth. |
0x10 | 4 | Number of Mipmaps. |
0x14 | 4 | Texture Format. Go to line 589 on this page for explanation and format values. |
0x18 | 4 | AA Mode. Indicates the AA mode (number of samples) for the surface (see line 865 here). |
0x1C | 4 | Usage. Indicates how the given surface may be used (see line 823 here). |
0x20 | 4 | Data Length. Length of texture data in bytes. |
0x24 | 4 | Data Pointer?. |
0x28 | 4 | Mipmaps Data Length. Length of mipmaps data in bytes. |
0x2C | 4 | Mipmaps Pointer?. |
0x30 | 4 | Tile Mode. Indicates the desired tiling mode for the surface (see line 795 here). |
0x34 | 4 | Swizzle Value |
0x38 | 4 | Alignment |
0x3C | 4 | Pitch |
0x44 | 0x5C | Unknown. |
Formats
TODO.
Tools
The following tool can extract and generate GTX files:
- GTX Extractor, by AboodXD