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
|
gSPLoadUcodeFormatgSPLoadUcode(Gfx *gdl, u64 *uc_start, u64 *uc_dstart) gsSPLoadUcode(u64 *uc_start, u64 *uc_dstart)Arguments
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
|