GameCube and Wii Image Formats
There are different image formats supported on GameCube and Wii. Textures are generally large and requires a lot of memory. Choosing the correct texture format is important in order to maximize performance, save memory and recieving best quality contra size. This articles describes the different image formats supported on both GameCube and Wii.
Blocks
For optimization, all images are encoded into blocks instead of storing the image data row by row. The block width and height depends on the format.
Image Formats
ID | Name | Bits Per Pixel (BPP) | Block Width | Block Height | Block Size | Type |
---|---|---|---|---|---|---|
0x00 | I4 | 4 | 8 | 8 | 32 bytes | Luminance |
0x01 | I8 | 8 | 8 | 4 | 32 bytes | Luminance |
0x02 | IA4 | 8 | 8 | 4 | 32 bytes | Luminance + Alpha |
0x03 | IA8 | 16 | 4 | 4 | 32 bytes | Luminance + Alpha |
0x04 | RGB565 | 16 | 4 | 4 | 32 bytes | Color |
0x05 | RGB5A3 | 16 | 4 | 4 | 32 bytes | Color + Alpha |
0x06 | RGBA8 | 32 | 4 | 4 | 64 bytes | Color + Alpha |
0x08 | C4 | 4 | 8 | 8 | 32 bytes | Palette (IA8, RGB565, RGB5A3) |
0x09 | C8 | 8 | 8 | 4 | 32 bytes | Palette (IA8, RGB565, RGB5A3) |
0x0A | C14X2 | 16 | 4 | 4 | 32 bytes | Palette (IA8, RGB565, RGB5A3) |
0x0E | CMPR | 4 | 8 | 8 | 32 bytes | Compressed Color + Alpha |
I4
I4 is an intensity format which uses 4-bit luminance. Since the BPP is lower than 8, 1 byte is actually used for two pixels. The upper nibble stores the first pixel and the lower one stores the second pixel.
I8
I8 is an intensity format which uses 8-bit luminance.
IA4
IA4 is a format which uses 4-bit luminance and 4-bit alpha. The upper nibble stores the luminance value, and the lower nibble stores the alpha.
IA8
IA8 is a format which uses 8-bit luminance and 8-bit alpha. The luminance byte is stored before the alpha byte.
RGB565
RGB565 is a format which uses 5-bit red, 6-bit green and 5-bit blue. A pixel is stored in the following layout:
RRRR RGGG GGGB BBBB
RGB5A3
RGB565 is a format which can either store 4-bit red, 4-bit green, 4-bit blue and 3 bit alpha, or 5-bit red, 5 bit green and 5-bit blue. The top bit decides this. A pixel is stored in the following layout:
RGB5: 1RRR RRGG GGGB BBBB
RGB4A3: 0AAA RRRR GGGG BBBB
RGBA8
RGBA8 is a format which uses 8-bit red, 8-bit green, 8-bit blue and 8-bit alpha. It is not recommended to use as it uses lots of memory. The components are stored in a special way. First all alpha and red components in a block is stored, and then comes the green and blue components of the same block after.
C4
C4 is a palette format used to specify 4-bit indices into a color array. The colors are stored in a palette, and the colors are encoded into a palette format. The maximum amount of colors that can be stored is 16.
C8
C8 is a palette format used to specify 8-bit indices into a color array. The colors are stored in a palette, and the colors are encoded into a palette format. The maximum amount of colors that can be stored is 256.
C14X2
C8 is a palette format used to specify 14-bit indices into a color array. The two top-most bits are ignored. The colors are stored in a palette, and the colors are encoded into a palette format. The maximum amount of colors that can be stored is 16384.
CMPR
The CMPR format is a compressed image format. It uses the DXT1 algorithm (also known as BC1). It's a lossy compression to achieve a 4-bit BPP. It has also the possibility for a 1 bit alpha channel.
Palette Formats
ID | Name | Bits Per Palette Color | Type |
---|---|---|---|
0x00 | IA8 | 16 | Luminance + Alpha |
0x01 | RGB565 | 16 | Color |
0x02 | RGB5A3 | 16 | Color + Alpha |
File Formats
The following file formats support all image formats: