4-3 Using Microcode


Currently, N64 has two types of microcode, graphics microcode and audio microcode.


4-3-1 Graphics Microcode


The commands used in the graphics microcode are called GBI (Graphics binary interface) commands. Each GBI command uses 64 bits.


(gspF3DEX Series)

Note that the F3DLP.Rej microcode is slightly faster than the F3DLX.Rej microcode. However, this faster speed applies only to the RSP process. There is no effect on the RDP process. Therefore, the RDP process may not follow the RSP process, in which case, you may need to change the render mode to the RA mode (G_RM_RA_ZB_OPA_SURF). Also note that this microcode does not support G_CULL_BOTH or G_CULL_FRONT.

  • GBI Compatibility

  • At the binary level, there is no compatibility between the GBI of the gspF3DEX series of microcode and the GBI of the usual Fast3D microcode. However, the gspF3DEX series has been designed so that the differences are absorbed by gbi.h. Even if both types of microcode are in the same display list, a compile option can distribute each command to its proper GBI. Specifically, you can ensure that the GBI corresponding to the gspF3DEX microcode is output by defining the "F3DEX_GBI" keyword before including the gbi.h file.

    After Release 0.96, all microcode of F3DEX, F3DLX, F3DLX.Rej, and F3DLP.Rej became compatible at the GBI binary level, so each display list was able to use it. However, because of the reject process, operations are slightly different even under the same command; as a result, you need to be careful that the same screen is not always drawn even when in the same display list.

  • Microcode of the Fast3D series

  • Although microcode of the Fast3D series is used in many samples, they are really obsolete now that the new and improved F3DEX series is out. You should use the improved F3DEX series for your actual game making.


    (Sprite Microcode)

    (JJPEG Microcode)
    The N64_JPEG library has two types of microcode, one for encoding and one for decoding.



    4-3-2 Audio Microcode


    The audio microcode is made up of ABI (audio binary interface) commands. These ABI commands are strung together to form the audio command list. Each ABI command uses 64 bits.

  • aspMain : audio microcode

  • Audio microcode is used only for waveform synthesis. This microcode makes the RSP operate as a waveform synthesis processor. The audio microcode processes each game application task and synthesizes the 16-bit sample data of an L/R stereo.

  • n_aspMain : audio microcode for n_audio

  • n_aspMain is an enhanced version of the original N64 audio library. This microcode helps speed up the audio process.