Difference between revisions of "GTX\GSH (File Format)"
Jump to navigation
Jump to search
Aboood40091 (talk | contribs) |
Aboood40091 (talk | contribs) |
||
Line 47: | Line 47: | ||
== Blocks == | == Blocks == | ||
− | After the header comes some blocks, blocks contain a 0x20 byte ''' | + | After the header comes some blocks, blocks contain a 0x20 byte '''BLK{''' header followed by data specified by the block type. |
+ | |||
+ | === Block Header === | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
! Offset | ! Offset | ||
Line 86: | Line 89: | ||
|} | |} | ||
− | == Image info == | + | === Block types === |
+ | |||
+ | {| class="wikitable" | ||
+ | ! Type | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x01 | ||
+ | | Follows this block header the End of the file. | ||
+ | |- | ||
+ | | 0x02 | ||
+ | | Follows this block header empty data. (Padding?) | ||
+ | |- | ||
+ | | 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: | The image info directly follows the block header that has a block type 0x0B: |
Revision as of 19:01, 2 September 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 empty data. (Padding?) |
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 |
Image data
The image data directly follows the block header that has a block type 0x0C.
Mipmaps data
The mipmaps data directly follows the block header that has a block type 0x0D.
Formats
TODO.
Tools
The following tool can extract and generate GTX files:
- GTX Extractor, by AboodXD