Microcode

From CloudModding OoT Wiki
Jump to: navigation, search

Introduction

The N64's Reality Co-Processor (specifically, the RSP component) is reprogrammable, allowing developers to add extra/custom functionality to the Co-processor. Microcode (sometimes appearing as "ucode", standing for μcode) is thus the set of instructions that can be loaded/executed on the RSP.

Microcode Libraries

OoT 1.0 (U):

RSP Gfx ucode F3DZEX.NoN  fifo 2.06H Yoshitaka Yasumoto 1998 Nintendo
RSP Gfx[Safe] S2DEX       fifo 2.05  Yoshitaka Yasumoto 1998 Nintendo

Debug Rom:

RSP Gfx ucode F3DZEX.NoN  fifo 2.08J Yoshitaka Yasumoto/Kawasedo 1999
RSP Gfx[Safe] S2DEX       fifo 2.05  Yoshitaka Yasumoto 1998 Nintendo

The above are microcode programs, each with a set of opcodes (operation codes) which instruct the RCP to do certain things, such as enable/disable texturing, draw polygons, and everything from there.

F3DZEX

Main article: F3DZEX

F3DZEX is a 3D based graphics microcode, and the primary graphics microcode used by the Zelda 64 engine. F3DZEX is based off of the F3DEX2 microcode, and actually shares the same graphics binary interface.

GBI is a collection of 64 bit commands which instruct both the RSP and the RDP units.

There are no major differences between 2.06H and 2.08J of the F3DZEX microcode

S2DEX

S2DEX is a 2D based graphics microcode. It is rarely used by the Z64 engine, seemingly used solely to draw rooms with pre-rendered backgrounds.

/* 0x0A */ gsSPBgRectCopy(mptr); //mptr points to uObjBg type

Argument Mapping

Microcode Reference Function
0A000000 aaaaaaaaa gsSPBgRectCopy(mptr)

Description

Quickly draws a background image. a is a pointer to a 0x28 byte data structure


Microcode Dump Feature

In the event of a fatal error, the Debug Rom is capable of generating a dump of the entire microcode pipeline for the current frame, sending it to the IS64. This dump can be triggered with the following cheat code: 80166D28 0000. Once the dump begins, it's recommended that you set the value back to 0001, since otherwise the game will constantly generate a dump.

Legacy Credits

cooliscool
ZethAlkar64