Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Transform Unit (XF)

The transform unit (XF) is responsible for performing transformations on positions, normals and even texture coordinates.

Internal memory

Addressable unit is a word (4 bytes), address space is 16-bit.

Address RangeSizeRegion
0x0000..0x01001 KiBPosition matrix memory
0x0400..0x046096 BNormal matrix memory
0x0500..0x0600256 BDual texture transform matrix memory
0x0600..0x0680128 BLight memory
0x1000..0x1057128 BInternal registers

Normal memory and light memory only keep the 20 most significant bits of written values.

Position matrix memory

This region is organized as 64 groups of 4 words. Each group represents a column in a matrix, and each column can be used as the beginning of a 4x3 matrix.

Example matrix starting at 0x0000 (values are offsets):

00 04 08
01 05 09
02 06 10
03 07 11

Matrix beginning at 0x0000 is usually the position matrix.

Normal matrix memory

This region is organized as 32 groups of 3 words. Each group represents a column in a matrix, and each column can be used as the beginning of a 3x3 matrix.

Dual texture transform matrix memory

This region is organized exactly the same as the position matrix memory.

Light memory

Contains all lighting information.