This page describes the GPU commands used for textures.
Texture unit setup: Register 0x80
Register 0x80 is used to enable individual texture units.
| Bit
 | 
Description
 | 
| 0
 | 
Enable texture unit 0.
 | 
| 1
 | 
Enable texture unit 1.
 | 
| 2
 | 
Enable texture unit 2.
 | 
Configuration of texture unit 0
| Register ID
 | 
Description
 | 
| 0x0081
 | 
Border color (unverified)
 | 
| 0x0082
 | 
Bits 16-31 are the texture width. Bits 0-15 are the texture height. The maximum texture size in either direction is 1024.
 | 
| 0x0083
 | 
Texture parameters (filtering, wrapping), see below.
 | 
| 0x0084
 | 
LOD setup?
 | 
| 0x0085
 | 
Physical address of texture data (divided by 8).
 | 
| 0x0086
 | 
Physical address of texture data for cube mapping?
 | 
| 0x0087
 | 
Physical address of texture data for cube mapping?
 | 
| 0x0088
 | 
Physical address of texture data for cube mapping?
 | 
| 0x0089
 | 
Physical address of texture data for cube mapping?
 | 
| 0x008A
 | 
Physical address of texture data for cube mapping?
 | 
| 0x008B
 | 
Shadow related?
 | 
| 0x008E
 | 
Texture format (see below)
 | 
Configuration of texture units 1 and 2
Texture units 1 and 2 use a configuration block similar to the one of texture unit 0. They are based at registers 0x0091 and 0x0099.
| Index word
 | 
Description
 | 
| 0-4
 | 
Same as for texture unit 0
 | 
| 5
 | 
Texture format (see below)
 | 
Configuration of texture unit 3
The configuration block for texture unit 3 seems to be vastly different from the other texture units. Instead, registers 0x00A8 through 0x00B7 are used to configure procedural texturing features.
Texture parameters
| Bit
 | 
Description
 | 
GL parameter name
 | 
| 0
 | 
Normally this is value 0.
 | 
 | 
| 1
 | 
0 = GL_NEAREST, 1 = GL_LINEAR.
 | 
GL_TEXTURE_MAG_FILTER
 | 
| 2
 | 
1 = GL_LINEAR, GL_LINEAR_MIPMAP_NEAREST, or GL_LINEAR_MIPMAP_LINEAR. Value zero otherwise.
 | 
GL_TEXTURE_MIN_FILTER
 | 
| 3
 | 
Unused?
 | 
?
 | 
| 5-4
 | 
2 = texture color type 0xC, 0 otherwise.(Enable/disable texture data compression?) 0 = unknown, 1 = unknown, 3 = same effect as value 2.
 | 
 | 
| 7-6
 | 
Unused
 | 
| 11-8
 | 
0 = GL_CLAMP_TO_EDGE, 1=unknown, 2=GL_REPEAT, 3=unknown.
 | 
GL_TEXTURE_WRAP_S
 | 
| 15-12
 | 
Same values as GL_TEXTURE_WRAP_S.
 | 
GL_TEXTURE_WRAP_T
 | 
| 24
 | 
1 = GL_NEAREST_MIPMAP_LINEAR, or GL_LINEAR_MIPMAP_LINEAR. Value zero otherwise.
 | 
GL_TEXTURE_MIN_FILTER
 | 
| 27-25
 | 
Unused?
 | 
| 30-28
 | 
When some flag=1: value1=GL_TEXTURE_2D, value0 when the input parameter is not GL_TEXTURE_2D. When some flag=0: 0=GL_TEXTURE_2D, 1-4=unknown.
 | 
?
 | 
| 31
 | 
Unused?
 | 
?
 | 
Texture color types
| Value
 | 
Description
 | 
GL Format
 | 
GL Data Type
 | 
| 0x0
 | 
RGBA8888
 | 
GL_RGBA / DMP-extension constant 0x6752
 | 
GL_UNSIGNED_BYTE
 | 
| 0x1
 | 
BGR888
 | 
GL_RGB / DMP-extension constant 0x6754
 | 
GL_UNSIGNED_BYTE
 | 
| 0x2
 | 
RGBA5551
 | 
GL_RGBA / DMP-extension constant 0x6752
 | 
GL_UNSIGNED_SHORT_5_5_5_1
 | 
| 0x3
 | 
BGR565
 | 
GL_RGB / DMP-extension constant 0x6754
 | 
GL_UNSIGNED_SHORT_5_6_5
 | 
| 0x4
 | 
RGBA4444
 | 
GL_RGBA / DMP-extension constant 0x6752
 | 
GL_UNSIGNED_SHORT_4_4_4_4
 | 
| 0x5
 | 
Tiled RGB565
 | 
GL_LUMINANCE_ALPHA(?) / DMP-extension constant 0x6758(?)
 | 
GL_UNSIGNED_BYTE(?)
 | 
| 0x6
 | 
Tiled BGR888
 | 
DMP-extension constants 0x6700 / 0x6759
 | 
GL_UNSIGNED_BYTE
 | 
| 0x7
 | 
 | 
GL_LUMINANCE / DMP-extension constant 0x6757
 | 
GL_UNSIGNED_BYTE
 | 
| 0x8
 | 
 | 
GL_ALPHA / DMP-extension constant 0x6756
 | 
GL_UNSIGNED_BYTE
 | 
| 0x9
 | 
?
 | 
GL_LUMINANCE_ALPHA / DMP-extension constant 0x6758
 | 
DMP-extension constant 0x6760
 | 
| 0xA
 | 
?
 | 
GL_LUMINANCE / DMP-extension constant 0x6757
 | 
DMP-extension constant 0x6761
 | 
| 0xB
 | 
?
 | 
GL_ALPHA / DMP-extension constant 0x6756
 | 
DMP-extension constant 0x6761
 | 
| 0xC
 | 
Compression related?
 | 
DMP-extension constant 0x675A
 | 
 | 
| 0xD
 | 
?
 | 
DMP-extension constant 0x675B
 | 
 |