25.1 Types of Microcode

UP


25.1.1 gspFast3D

gspFast3D microcode is the most full-featured of the microcode types. It is also the microcode used in the majority of the demo applications. gspFast3D supports 3D triangles, 3D clipping, Z-buffering, near and far clipping, lighting, mip-mapped textures, perspective textures, fog, and matrix stack operations. It does not support the GBI command, gSPLine3D.

UP


25.1.2 gspF3DNoN

gspF3DNoN microcode is similar to gspFast3D microcode, except it does not handle near plane clipping in the same manner. When using gspFast3D microcode, objects between the eye and the near plane are clipped. When using gspF3DNoN microcode, objects between the eye and the near plane are not clipped. However, the area between the eye and the near clipping plane does not implement Z-buffering. This means that objects that fall into this area must be rendered in order from far to near.

UP


25.1.3 gspLine3D

gspLine3D microcode contains many of the features contained in gspFast3D, except that instead of rendering triangles, it draws 3D lines. This is useful for producing wireframe effects. If a gSP1Triangle command is encountered it will render the three edges of the triangle, but not the center portion of the triangle.

UP


25.1.4 gspTurbo3D

gspTurbo3D microcode is a reduced-feature, reduced-precision, microcode that delivers significantly faster performance. The features not supported by gspTurbo3D are: Clipping, lighting, perspective-corrected textures, and matrix stack operations. The quality of the anti-aliasing also suffers, due to the lack of precision used by gspTurbo3D. This loss of precision can also manifest itself as various visual artifacts, depending on the content. gspTurbo3D uses a different format for the display list.

UP


25.1.5 gspSprite2D

gspSprite2D microcode is optimized for rendering 2D sprite images. Sprites are implemented as textured screen rectangles. gspSprite2D does not support 3D lines, 3D triangles, vertex operations, matrix operations, lighting, or fog. All of the DP commands such as blender modes, and color combiner modes are supported. Z-buffering can be used to arrange the order of the sprites from front to back.

UP


25.1.6 gspF3DEX (Fast3D Series Improved Version)

The F3DEX series is a tuned version of the previous Fast3D and Line3D microcode. The new version uses .fifo exclusively as the method by which commands are passed from the RSP to the RDP. In addition, the vertex cache size is increased, and the matrix stack is increased from 10 levels to 18 levels. The seven microcode versions in this series are listed below. Among them are several versions designed to improve performance by restricting function.

  1. gspF3DEX.fifo.o
  2. gspF3DEX.NoN.fifo.o
  3. gspF3DLX.fifo.o
  4. gspF3DLX.NoN.fifo.o
  5. gspF3DLX.Rej.fifo.o
  6. gspF3DLP.Rej.fifo.o
  7. gspL3DEX.fifo.o

The features of each microcode are as follows.

F3DEX - gspF3DEX.fifo.o / gspF3DEX.NoN.fifo.o
F3DEX is the extended version of Fast3D microcode. The vertex cache size is increased to 32, and g*SP2Triangles, a GBI command for displaying two triangles at once, is supported. The GBI command g*SP1Quadrangle (which displayed rectangles) that was supported in F3DEX version 1.21 and earlier, is no longer supported. (Emulation is supported in 2Tri).
F3DLX - gspF3DLX.fifo.o / gspF3DLX.NoN.fifo.o
With F3DLX, the subpixel calculation in the F3DEX microcode is simplified. This microcode retains compatibility with F3DEX and GBI, and improves processing capacity of the RSP. This is done by reducing the precision in calculating each polygon's vertex. The extended functionality unique to F3DLX enables the DL command to turn the clipping process On or Off.
F3DLX.Rej - gspF3DLX.Rej.fifo.o
This version substitutes rejection processing for clipping. The vertex cache size is 64 and the g*SP2Triangles commands are supported. Optimization can be achieved assuming the 2Tri operation will be performed. The triangle can not be fully rendered when one of the vertexes occurs outside the defined reject area. Therefore, it is not appropriate for rendering large triangles. Perspective texture correction is implemented.
F3DLP.Rej - gspF3DLP.Rej.fifo.o
F3DLP.Rej has similar functionality to F3DLX.Rej, however perspective texture correction is not implemented. Therefore, the processing speed in RSP is far more faster. The vertex cache is 80.
L3DEX - gspL3DEX.fifo.o
L3DEX is Line3D microcode that can handle 32 vertexes. It is equivalent to Line3D in Fast3D. A polygon rendered by F3DEX can be displayed in a wireframe.

UP