Microcode
Cross-link to the Ocarina of Time wiki: Microcode |
Introduction
Microcode (sometimes appearing as "ucode", standing for μcode) is a set of C macros used to instruct the RSP on how to render a frame, without the programmer having to do so themselves. (add intro to rsp, dlists, etc. here)
Note: This article has been written from the point of view of a ROM hacker. Function information is given in the context of interpreting and modifying model data from the Zelda games, not necessarily in that of writing an accurate RSP emulator.
Microcode Libraries
Majora's Mask (U) 1.0:
RSP Gfx ucode F3DZEX.NoN fifo 2.08I Yoshitaka Yasumoto/Kawasedo 1999 RSP Gfx ucode S2DEX fifo 2.08 Yoshitaka Yasumoto 1999 Nintendo
Majora's Mask Debug Rom:
RSP Gfx ucode F3DZEX.NoN fifo 2.08I Yoshitaka Yasumoto/Kawasedo 1999 RSP Gfx ucode S2DEX fifo 2.08 Yoshitaka Yasumoto 1999 Nintendo
The above are microcodes, each with a set of opcodes (operation codes) designed to tell the hardware to do certain things, such as enable/disable texturing, draw polygons, and everything from there. S2DEX is a 2D microcode, while F3DZEX (F3DEX2) does the 3D drawing. There are no major differences between 2.06H and 2.08J, as Utility of Time has no trouble rendering model data from OoT 1.0, while it was technically designed around Debug ROM data.
F3DZEX
Main article: F3DZEX
Microcode Dump Feature
In the event of a fatal error, the Majora's Mask 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: 800A5A20 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