N64 Technical Details

Central processing unit
The Nintendo 64 motherboard, showing CPU, RCP and RDRAM The Nintendo 64's central processing unit (CPU) is the NEC VR4300,[19] a cost-reduced derivative of the 64-bit MIPS Technologies R4300i. Built by NEC on a 0.35 µm process, the VR4300 is a RISC5-stage scalar in-order execution processor, with integrated floating point unit, internal 24 KB direct-mapped[20] L1 cache (16KB for instructions, 8KB for data). The 4.6 million transistors CPU is cooled passively by an aluminum heatspreader that makes contact with a steel heat sink above.[21]

Clocked at 93.75 MHz, the N64's VR4300 was the most powerful console CPU of its generation.[22] Except for its narrower 32-bit system bus, the VR4300 retained the computational abilities of the more powerful 64-bit MIPS R4300i,[19] though software rarely took advantage of 64-bit data precision operations. N64 game-titles generally used faster (and more compact) 32-bit data-operations,[23] as these were sufficient to generate 3D-scene data for the console's RSP (Reality Signal Processor; see below) unit. Though powerful, the CPU was hindered by a 250MB/s bus to the system memory; not only that, but in order to access the RAM, the CPU had to go through the RCP (Reality Co-Processor), and could not use DMA to do so (the RCP could). This problem is further compounded by the RDRAM's very high access latency.

Emulators such as UltraHLE and Project64 benefit from the scarcity of 64-bit operations in the game's executable-code, as the emulator is generally hosted on a 32-bit machine architecture. These emulators performed most calculations at 32-bit precision, and trapped the few OS subroutines that actually made use of 64-bit instructions.[23]

[ edit ]Reality Co-Processor
Nintendo 64's graphics and audio duties are performed by the 64-bit SGI co-processor, named the "Reality Co-Processor". 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.[9] 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 (µcode).[24] 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") was poorly profiled for use in games (it was too accurate), and performance suffered as a result. Several companies, such as Factor 5,[25] Boss Game Studios and [http://en.wikipedia.org/wiki/Rare_Ltd. Rare], were able to write custom microcode that ran their software better than SGI's standard microcode.

[ edit ]Two of the SGI microcodes
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).<sup class="reference" id="cite_ref-videogameconsolelibrary90_25-0" style="line-height: 1em; font-weight: normal; font-style: normal; ">[26]
 * Fast3D microcode: < ~100,000 high accuracy polygons per second.
 * Turbo3D microcode: 500,000–600,000 normal accuracy polygons per second. However, due to the graphical degradation, Nintendo discouraged its use.

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">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<sup class="reference" id="cite_ref-americanpoems1_26-0" style="line-height: 1em; font-weight: normal; font-style: normal; ">[27] and can display resolutions of 256 ×224, 320 ×240 and 640 ×480 pixels.<sup class="reference" id="cite_ref-americanpoems1_26-1" style="line-height: 1em; font-weight: normal; font-style: normal; ">[27] The RCP also provides the CPU's access to main system memory via a 250 MB/s bus.<sup class="reference" id="cite_ref-nintendopresentation1_23-1" style="line-height: 1em; font-weight: normal; font-style: normal; ">[24] 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.

[ edit ]Memory
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">The final major component in the system is the memory, also known as RAM. The Nintendo 64 was one of the first modern consoles to implement a unified memory subsystem, instead of having separate banks of memory for CPU, audio, and video, for example. The memory itself consists of 4 megabyte of RAMBUS RDRAM (expandable to 8 MB with the Expansion Pak) with a 9-bit data bus at 500 MHz providing the system with 562.5 MB/s peak bandwidth. RAMBUS was quite new at the time and offered Nintendo a way to provide a large amount of bandwidth for a relatively low cost. The narrow bus makes board design easier and cheaper than the higher width data buses required for high bandwidth out of slower-clocked RAM types (such as VRAM or EDO DRAM); however, RDRAM, at the time, came with a very high access latency, and this caused grief for the game developers because of limited hardware performance.<sup class="reference" id="cite_ref-videogameconsolelibrary90_25-1" style="line-height: 1em; font-weight: normal; font-style: normal; ">[26]

[ edit ]Video
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">The system provides both composite video<sup class="reference" id="cite_ref-27" style="line-height: 1em; font-weight: normal; font-style: normal; ">[28] and S-Video through the "MULTI OUT" connector on the rear of the system; however, the Nintendo 64 removed certain pin connections for providing RGB video, despite the DAC chip used in early models having the capability built-in. In most countries the system came bundled with a composite cable (AKA Stereo AV cable) The composite and S-Video cables are the same as those used with the earlier SNES and later GameCubesystems.

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">Available to buy separately was a RF modulator and switch set (for connection to older televisions) and an official S-Video cable, although the latter was only sold at retail stores in Japan. In the US the official S-Video cable could only be ordered direct from Nintendo of America,<sup class="reference" id="cite_ref-28" style="line-height: 1em; font-weight: normal; font-style: normal; ">[29] and the cable was not officially sold in Europe. In the United Kingdom the N64 was shipped with a RF modulator and switch set, but was still fully compatible with the other cables.

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">The system supports SDTV resolutions up to 480i although few games made use of this 'high resolution' mode, many of which required the use of the Expansion Pak RAM upgrade. The majority of games instead used the system's 240p/288pmodes. A number of games also support a video display ratio of up to 16:9 using either Anamorphic widescreen or Letterboxing. However, very few of its games provided options to use this feature, these were: Banjo-Tooie, Donkey Kong 64,GoldenEye 007, The World Is Not Enough, Jet Force Gemini, Perfect Dark, Starshot: Space Circus Fever, Turok 2: Seeds of Evil, Turok 3: Shadow of Oblivion, Mission Impossible, South Park.<sup class="reference" id="cite_ref-29" style="line-height: 1em; font-weight: normal; font-style: normal; ">[30]

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">Work Cited = en.wikipedia.org/wiki/Nintendo_64 =

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">Contributed by Alex Wilcox

<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">