TXTR (Metroid Prime): Difference between revisions

From Retro Modding Wiki
Jump to navigation Jump to search
>Aruki
m (Parax0 moved page TXTR to TXTR (File Format) without leaving a redirect: Maybe this looks better? :P)
>Aruki
 
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''TXTR''' is, as the name suggests, the Retro Studios texture format. It's identical from Metroid Prime all the way up to Donkey Kong Country Returns.
''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.
 
{{todo|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.}}


__TOC__
__TOC__


== Structure ==
== Format ==


TXTR files contain a very short 12-byte header, followed by the image data.
TXTR files contain a very short 12-byte header, followed by the image data.
Line 29: Line 33:
| 4
| 4
| '''Mipmap count'''
| '''Mipmap count'''
|-
| 0xC
| colspan=2 {{unknown|End of header}}
|}
=== Palettes ===
The C4 and C8 image formats contain a palette table after the header, before the image data begins.
{| class="wikitable"
! 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.
|-
| colspan=3 {{unknown|End of palette table; image data begins immediately after}}
|}
|}


== Image Formats ==
== 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.
There are 11 different image formats supported by the hardware. Rather than storing pixels in a linear left-to-right order, GameCube textures are swizzled in blocks. Blocks are 32 bytes large (except for RGBA8), with their dimensions varying depending on the BPP of 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 the 17-20 will begin the first row of the second block, appearing directly to the right of the first row of the first block.
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.


{| class="wikitable"
{| class="wikitable"
Line 108: Line 143:
| 4
| 4
| 8x8
| 8x8
| DXT1-compressed textures.
| Compressed textures (almost the same as DXT1, but with a couple small differences)
|}
|}


== External links ==
== External links ==


* [http://wiki.tockdom.com/wiki/Image_Formats Custom Mario Kart Wiiki]: More detailed information on each format, and how to decode them.
* [http://wiki.tockdom.com/wiki/Image_Formats Custom Mario Kart Wiki]: More detailed information on each format, and how to decode them.
 
 
[[Category:File Formats]]
[[Category:Metroid Prime]]
[[Category:Metroid Prime 2: Echoes]]
[[Category:Metroid Prime 3: Corruption]]
[[Category:Donkey Kong Country Returns]]

Latest revision as of 09:16, 18 April 2019

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 supported by the hardware. Rather than storing pixels in a linear left-to-right order, GameCube textures are swizzled in blocks. Blocks are 32 bytes large (except for RGBA8), with their dimensions varying depending on the BPP of 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 Compressed textures (almost the same as DXT1, but with a couple small differences)

External links