The Reality Co-Processor chip.

Nintendo 64's graphics and audio duties are performed by the 64-bit SGI co-processor, named the "Reality Co-Processor".



The MIPS R4300i Architecture

The RCP is a 62.5 MHz chip split internally into two major components, the "Reality Drawing Processor" (RDP) and the "Reality Signal Processor" (RSP). Each area communicates with the other by way of a 128-bit internal data bus that provides 1.0 GB/s bandwidth. The RSP is a MIPS R4000-based 8-bit integer vector processor. It is programmable through microcode, allowing the chip's functions to be significantly altered if necessary, to allow for different types of work, precision, and workloads. The RSP performs transform, clipping and lighting calculations, triangle setup. The "Reality Display Processor" is primarily the Nintendo 64's Pixel Rasterizer, and also handles the console's Z-Buffer Compute. The RSP was programmable through microcode.[1] By altering the microcode run on the device, it could perform different operations, create new effects, and be better tuned for speed or quality; however, Nintendo was unwilling to share the microcode tools with developers[citation needed] until the end of the Nintendo 64's life-cycle. Programming RSP microcode was said to be quite difficult because the Nintendo 64 µcode tools were very basic, with no debugger and poor documentation. As a result, it was very easy to make mistakes that would be hard to track down, mistakes that could cause seemingly random bugs or glitches. Some developers noted that the default SGI microcode ("Fast3D"), which allowed more than ~100,000 high accuracy polygons per second, was poorly profiled for use in games (it was too accurate), and performance suffered as a result. "Turbo3D" microcode allowed 500,000–600,000 normal accuracy polygons per second. However, due to the graphical degradation, Nintendo discouraged its use. Several companies, such as Factor 5,[2]Boss Game Studios and Rare, were able to write custom microcode that ran their software better than SGI's standard microcode.


The MIPS R4300i System Design

The RSP also frequently performs audio functions (although the CPU can be tasked with this as well). It can play back most types of audio (dependent on software codecs) including uncompressed PCM, MP3, MIDI, and tracker music. The RSP is capable of a maximum of 100 channels of PCM at a time, but this is with 100% system utilization for audio. It has a maximum sampling rate of 48 kHz with 16-bit audio; however, storage limitations caused by the cartridge format limited audio size (and thus quality).[3] The RDP is the machine's rasterizer and performs the bulk of actual image creation before output to the display. The Nintendo 64 has a maximum color depth of 16.8 million colors[62] and can display resolutions of 256 × 224, 320 × 240 and 640 × 480 pixels.[4] The RCP also provides the CPU's access to main system memory via a 250 MB/s bus..[5] Unfortunately, this link does not allow direct memory access for the CPU. The RCP, like the CPU, is passively cooled by an aluminum heatspreader that makes contact with a steel heat sink above.