Chapter 25 - Graphics Microcode

Graphics are rendered in Nintendo 64 games by creating a graphics display list, and passing this display list to the RSP. In order for the RSP to process this display list, the application, using system calls, loads graphics microcode. This section discusses the different microcode object files available to applications.

There are 5 basic versions of the graphics microcode, and each basic version has up to 3 subtypes. The basic versions are known as gspFast3D, gspF3DNoN, gspLine3D, gspTurbo3D, and gspSprite2D. Each basic version has a different set of graphics rendering features. Each subtype has the same set of graphics features, but varies according to how the RSP passes commands to the RDP. The three subtypes are regular, .dram and .fifo. The object files for the microcode are labeled, <basicType>.o, <basicType>.dram.o, and <basicType>.fifo.o.

In addition, there are seven versions of gspFast3D, gspF3DNoN, and gspLine3D that have been specially modified to .fifo subtypes to improve performance. These modified versions are gspF3DEX, gspF3DEX.NoN, gspF3DLX, gspF3DLX.NoN, gspF3DLX.Rej, gspF3DLP.Rej, and gspL3DEX.

25.1 Types of Microcode
25.1.1 gspFast3D
25.1.2 gspF3DNoN
25.1.3 gspLine3D
25.1.4 gspTurbo3D
25.1.5 gspSprite2D
25.1.6 gspF3DEX
25.2 RSP to RDP Command Passing
25.3 F3DEX Microcode
25.3.1 F3DEX Microcode Series Functions
25.3.2 Rejection Processing
25.3.3 GBI Compatibility