N64® Functions Menu

al - Audio Library Functions
gDP - DP GBI Macros
gdSP - General GBI Macros
gSP - SP GBI Macros
gt - Turbo Microcode RDP
gu - Graphics Utilities
Math - Math Functions
nuSys - NuSystem
os - N64 Operating System
sp - Sprite Library Functions
uh - Host to Target IO
64DD - N64 Disk Drive

Nintendo® Confidential

   

gSPLoadUcode

Format
gSPLoadUcode(Gfx *gdl,
   u64 *uc_start,
   u64 *uc_dstart)
gsSPLoadUcode(u64 *uc_start,
   u64 *uc_dstart)
Arguments
  • gdl is the pointer to the graphics display list
  • uc_start is the top of the text selection of the microcode (physical address)
  • uc_dstart is the top of the data selection of the microcode (physical address)
What This Macro Does
It loads the specified microcode. However, only microcodes F3DEX, F3DLX, F3DLX_Rej, F3DLP_Rej, and L3DEX can be loaded. Neither Fast3D nor Turbo3D can be loaded. Loading microcodes causes overhead, so it should be done as few times as possible for better performance. Terrain should be drawn using F3DLX. Microcode that requires clipping processing and characters should be drawn using F3DLX_Rej (a fast microcode). The microcodes should be changed depending upon the drawing processes that are required. When drawing lines, you can change from F3DEX to L3DEX without interrupting the CPU.

Note
Graphics and internal status of the RSP are initialized when you load microcode using the GBI. Therefore, set the RSP again right after loading the microcode. The display list (DL) link information is also initialized when the microcode is loaded. As a result, when this macro is used in a DL that is called by gSPDisplayList, the previous DL cannot be returned. This situation is inconvenient but cannot be avoided.

To enable the gSPLoadUcode macro to do its work, you must set the OS_TASK_LOADABLE flag to an OsTask structure flag with this code: OSTask *tp;
tp->t.flag = OS_TASK_LOADABLE | OS_TASK_DP_WAIT;
To enable this flag processing, you need to patch the OS. Please refer to F3DEX concerning the patching method. Once the OS is patched, the OS is upward compatible with the OS before it was patched.

See Also
gSPLoadUcodeL



Nintendo® Confidential

Warning: all information in this document is confidential and covered by a non-disclosure agreement. You are responsible for keeping this information confidential and protected. Nintendo will vigorously enforce this responsibility.


Copyright © 1998
Nintendo of America Inc. All rights reserved
Nintendo and N64 are registered trademarks of Nintendo
Last updated January 1998