Difference between revisions of "TXTR (Metroid Prime)"
m (→Image Formats) |
|||
Line 53: | Line 53: | ||
| 0x4 | | 0x4 | ||
| 2 | | 2 | ||
− | + | | '''Width'''. always 1 in C4, 256 in C8 | |
|- | |- | ||
| 0x6 | | 0x6 | ||
| 2 | | 2 | ||
− | + | | '''Height'''. always 16 in C4, 1 in C8 | |
|- | |- | ||
| 0x8 | | 0x8 |
Revision as of 11:03, 21 July 2016
See TXTR (File Format) for the other revisions of this format.
TXTR is, as the name suggests, the Retro Studios texture format. The format remains completely unchanged from Metroid Prime all the way up to Donkey Kong Country Returns.
To do: Could possibly use some more information on how the formats work and how to decode them, but then again the Custom Mario Kart Wiiki has this covered pretty nicely already. |
Format
TXTR files contain a very short 12-byte header, followed by the image data.
Header
Offset | Size | Description |
---|---|---|
0x0 | 4 | Image format. Possible values range from 0x0 to 0xA; see below for more details. |
0x4 | 2 | Width |
0x6 | 2 | Height |
0x8 | 4 | Mipmap count |
0xC | End of header |
Palettes
The C4 and C8 image formats contain a palette table after the header, before the image data begins.
Offset | Size | Description |
---|---|---|
0x0 | 4 | Palette format. Possible values range from 0 to 2. |
0x4 | 2 | Width. always 1 in C4, 256 in C8 |
0x6 | 2 | Height. always 16 in C4, 1 in C8 |
0x8 | Varies | Palette colors. 16-bit color values; 16 colors in C4, 256 in C8. |
End of palette table; image data begins immediately after |
Image Formats
There are 11 different image formats; these are built directly into GX, so they remain the same across all GameCube and Wii games. Rather than storing pixels in a linear left-to-right order, GX textures encode pixels in large blocks. The size of the block varies depending on the image format.
For example, suppose you have a format that stores 4x4 blocks. Pixels 1-4 of the image will make up the first row of the first block; pixels 5-8 will make up the second row; 9-12 will make up the third row; 13-16 will make up the fourth row, completing the block; and then 17-20 will begin the first row of the second block, appearing directly to the right of the first row of the first block.
ID | Name | Bits per pixel | Block size | Description |
---|---|---|---|---|
0x0 | I4 | 4 | 8x8 | 4-bit greyscale intensity values. Two pixels per byte. |
0x1 | I8 | 8 | 8x4 | 8-bit greyscale intensity values. |
0x2 | IA4 | 8 | 8x4 | 4-bit greyscale intensity values with an additional 4-bit alpha channel. |
0x3 | IA8 | 16 | 4x4 | 8-bit greyscale intensity values with an additional 8-bit alpha channel. |
0x4 | C4 | 4 | 8x8 | 4-bit palette indices. |
0x5 | C8 | 8 | 8x4 | 8-bit palette indices. |
0x6 | C14x2 | 16 | 4x4 | Another palette format. Not used by any official textures. |
0x7 | RGB565 | 16 | 4x4 | 16-bit colors without alpha. |
0x8 | RGB5A3 | 16 | 4x4 | 16-bit colors with alpha. |
0x9 | RGBA8 | 32 | 4x4 | Uncompressed 32-bit colors with alpha. |
0xA | CMPR | 4 | 8x8 | DXT1-compressed textures. |
External links
- Custom Mario Kart Wiki: More detailed information on each format, and how to decode them.