Difference between revisions of "Nintendo 64"

From Mod My Classic Wiki
Jump to: navigation, search
(Regional lockout)
(Central processing unit)
Line 89: Line 89:
 
The Nintendo 64's [[central processing unit]] (CPU) is the [[NEC]] VR4300, a licensed variant of the [[64-bit computing|64-bit]] [[MIPS Technologies]] [[R4200#R4300i|R4300i]], itself a cost-reduced derivative of the MIPS R4200. Built by NEC on a 0.35 [[micrometre|µm]] [[Semiconductor device fabrication|process]], the VR4300 is a [[Reduced instruction set computing|RISC]] 5-stage [[Scalar processor|scalar]] [[Out-of-order execution#In-order processors|in-order execution]] processor, internal 24 [[Kilobyte|KB]] direct-mapped [[CPU cache|L1 cache]] (16 KB for instructions, 8 KB for data). Although a floating-point unit exists as a logical coprocessor, there is no dedicated physical FPU datapath on the VR4300; instead, the integer pipeline is shared for this purpose, meaning that floating-point instructions will stall the pipeline. The 4.6 million [[transistor]] CPU is cooled passively by an [[Aluminium|aluminum]] heatspreader that makes contact with a [[steel]] [[heat sink]] above.
 
The Nintendo 64's [[central processing unit]] (CPU) is the [[NEC]] VR4300, a licensed variant of the [[64-bit computing|64-bit]] [[MIPS Technologies]] [[R4200#R4300i|R4300i]], itself a cost-reduced derivative of the MIPS R4200. Built by NEC on a 0.35 [[micrometre|µm]] [[Semiconductor device fabrication|process]], the VR4300 is a [[Reduced instruction set computing|RISC]] 5-stage [[Scalar processor|scalar]] [[Out-of-order execution#In-order processors|in-order execution]] processor, internal 24 [[Kilobyte|KB]] direct-mapped [[CPU cache|L1 cache]] (16 KB for instructions, 8 KB for data). Although a floating-point unit exists as a logical coprocessor, there is no dedicated physical FPU datapath on the VR4300; instead, the integer pipeline is shared for this purpose, meaning that floating-point instructions will stall the pipeline. The 4.6 million [[transistor]] CPU is cooled passively by an [[Aluminium|aluminum]] heatspreader that makes contact with a [[steel]] [[heat sink]] above.
  
With a [[clock rate]] of 93.75 MHz, the N64's VR4300 is generally considered to be the most powerful console CPU of the [[History of video game consoles (fifth generation)|fifth generation of video game consoles]]. Except for its narrower 32-bit system bus, the VR4300 retains the computational abilities of the 64-bit MIPS R4200, though few titles take advantage of 64-bit [[Significant figures|data precision]] operations. N64 game titles generally use faster and more compact 32-bit data-operations,{{self-published source|date=May 2015}} as these are sufficient to generate 3D scene data for the console's RSP (Reality Signal Processor) unit. In addition, 32-bit code executes faster and requires less storage space, which came at a premium with contemporary technology. The CPU is constrained by a 250 MB/s bus to the system RAM, and in order to access the [[Random-access memory|RAM]], the CPU must go through the [[#Reality Coprocessor|Reality Coprocessor]] (RCP), and can not use [[Direct memory access|DMA]] to do so as the RCP can. This issue is further compounded by the [[RDRAM]]'s high access latency.
+
With a [[clock rate]] of 93.75 MHz, the N64's VR4300 is generally considered to be the most powerful console CPU of the [[History of video game consoles (fifth generation)|fifth generation of video game consoles]]. Except for its narrower 32-bit system bus, the VR4300 retains the computational abilities of the 64-bit MIPS R4200, though few titles take advantage of 64-bit [[Significant figures|data precision]] operations. N64 game titles generally use faster and more compact 32-bit data-operations, as these are sufficient to generate 3D scene data for the console's RSP (Reality Signal Processor) unit. In addition, 32-bit code executes faster and requires less storage space, which came at a premium with contemporary technology. The CPU is constrained by a 250 MB/s bus to the system RAM, and in order to access the [[Random-access memory|RAM]], the CPU must go through the [[#Reality Coprocessor|Reality Coprocessor]] (RCP), and can not use [[Direct memory access|DMA]] to do so as the RCP can. This issue is further compounded by the [[RDRAM]]'s high access latency.
  
 
Programs [[video game console emulator|emulating]] the Nintendo 64 benefit from the scarcity of 64-bit operations in the game's executable code, especially when running with a 32-bit machine architecture as a host. Most of these emulators perform the majority of calculations at 32-bit precision and [[trap (computing)|trap]] the few subroutines that actually make use of 64-bit instructions.
 
Programs [[video game console emulator|emulating]] the Nintendo 64 benefit from the scarcity of 64-bit operations in the game's executable code, especially when running with a 32-bit machine architecture as a host. Most of these emulators perform the majority of calculations at 32-bit precision and [[trap (computing)|trap]] the few subroutines that actually make use of 64-bit instructions.

Revision as of 19:25, 5 February 2019

Nintendo 64
Nintendo 64 Logo.png
Nintendo-64-wController-L.jpg
A charcoal grey Nintendo 64 console and grey controller
Also known as Project Reality (code name), Ultra 64 (planned product name)
Developer Nintendo IRD
Manufacturer Nintendo
Type Home video game console
Generation Fifth generation
Release date JP: June 23, 1996
BRA: September 29, 1996
EU: March 1, 1997
AUS: March 1, 1997
Retail availability 1996–2002
Discontinued WW: April 30, 2002
Units sold Worldwide: 32.93 million
Japan: 5.54 million
Americas: 20.63 million
Europe & Australia: 6.75 million
Media Nintendo 64 Game Pak
Magnetic disc (64DD)
CPU 64-bit NEC VR4300 @ 93.75 MHz
Memory 4 MB Rambus RDRAM (8 MB with Expansion Pak)
Storage 64 MB Game Pak
Removable storage 256 Kbit (32 KB) Controller Pak
Graphics SGI RCP @ 62.5 MHz
Sound 16-bit, 48 or 44.1 kHz stereo
Controller input Nintendo 64 controller
Power Switching power supply, 12V and 3.3V DC
Online services Randnet (Japan only)
SharkWire Online (third-party)
Best-selling game Super Mario 64, 11.62 million (as of May 21, 2003)
Predecessor Super Nintendo Entertainment System
Successor GameCube

Introduction

The Nintendo 64, stylized as NINTENDO64 and abbreviated as N64, is Nintendo's third home video game console for the international market. Named for its 64-bit central processing unit, it was released in June 1996 in Japan, September 1996 in North America and Brazil, March 1997 in Europe and Australia, and September 1997 in France. It is the last major home console to use the cartridge as its primary storage format until Nintendo's seventh console, the Nintendo Switch, released in 2017. The console was discontinued in mid-2002 following the launch of its successor, the GameCube, in 2001.

Codenamed "Project Reality", the Nintendo 64 design was mostly complete by mid-1995, but its launch was delayed until 1996, when Time named it Machine of the Year. It was launched with three games: Super Mario 64 and Pilotwings 64 (worldwide) and Saikyō Habu Shōgi (exclusive to Japan). As part of the fifth generation of gaming, the system competed primarily with the Sony PlayStation and the Sega Saturn. The suggested retail price at its United States launch was US$199.99, and 32.93 million units were sold worldwide. The console was released in a range of colors and designs over its lifetime. In 2015, IGN named it the 9th greatest video game console of all time.

Specifications

Hardware

The Nintendo 64's central processing unit (CPU) is the NEC VR4300. Popular Electronics said it had power similar to the Pentium processors found in desktop computers. Except for its narrower 32-bit system bus, the VR4300 retained the computational abilities of the more powerful 64-bit MIPS R4300i, though software rarely took advantage of 64-bit data precision operations. Nintendo 64 games generally used faster (and more compact) 32-bit data-operations, as these were sufficient to generate 3D-scene data for the console's RSP (Reality Signal Processor) unit. In addition, 32-bit code executes faster and requires less storage space (which is at a premium on the Nintendo 64's cartridges).

In terms of its random-access memory (RAM), the Nintendo 64 is 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 megabytes of Rambus RDRAM. The RAM is expandable to 8 MB with the Expansion Pak. Rambus was quite new at the time and offered Nintendo a way to provide a large amount of bandwidth for a relatively low cost.

Audio may be processed by the Reality Coprocessor or the CPU and is output to a DAC with up to 48.0 kHzsample rate.

The system allows for video output in two formats: composite video and S-Video. The composite and S-Video cables are the same as those used with the preceding SNES and succeeding GameCube platforms.

The Nintendo 64 supports 16.8 million colors. The system can display resolutions from 320 × 240 up to 640 × 480 pixels. Most games that make use of the system's higher resolution 640 x 480 mode require use of the Expansion Pak RAM upgrade; several do not, such as Acclaim's NFL Quarterback Club series and EA Sports's second generation Madden, FIFA, Supercross, and NHL games. The majority of games use the system's low resolution 320 × 240 mode. A number of games also support a video display ratio of up to 16:9 using either anamorphic widescreen or letterboxing.

The Nintendo 64 is one of the first gaming consoles to have four controller ports. According to Shigeru Miyamoto, Nintendo opted to have four controller ports because the Nintendo 64 is the company's first console which can handle a four player split screen without significant slowdown.

Components

The Nintendo 64 motherboard, showing CPU, RCP, and RDRAM
  • CPU: 64-bit NEC VR4300 (MIPS R4300i) with 24 KB L1 cache, running at 93.75 MHz.
  • GPU: 64-bit Reality Coprocessor, running at 62.5 MHz and over 100 MFLOPS. It is a microcode-reprogrammable T&L GPU, composed of two integrated processors: the Reality Signal Processor (RSP) and the Reality Display Processor (RDP).
    • Video Interface (VI) reads data from the frame buffer using a fixed time interval, and sends it to the DA (digital-to-analog) converter (video DAC) to produce the video output.
    • Audio Interface (AI) reads data from the audio buffer using a fixed time interval, and sends it to the DA (digital-to-analog) converter (audio DAC) to produce the sound output.
    • Parallel Interface (PI).
    • Serial Interface (SI).
    • Hardware features: texture mapping with perspective correction, anti-aliasing, Z-buffering, bilinear filtering, trilinear filtering, Gouraud shading, 8-bit alpha blending, level of detail management.
    • Peak fillrate:
      • 31.25 megapixels/second (texturing, perspective correction, bilinear filtering, translucency, Z-buffering, mipmapping, fog).
      • 62.5 MP/s (texturing, perspective correction, bilinear filtering, translucency, Z-buffering).
      • 125–250 MP/s (fill mode, copy mode).
  • Audio: 16-bit, stereo, CD quality.
    • Number of ADPCM voices: 16–24 channels with pitch-shifting PCM, up to 100 PCM channels theoretically possible.
    • Sampling frequency: 44.1 kHz or 48 kHz, selectable.
  • 4 (4.5) MB 250 MHz (500 MHz effective) RDRAM (Rambus DRAM) on a shared 9-bit bus with 562.5 MB/s peak bandwidth, upgradable to 8 (9) MB with Expansion Pak. Differing memory countings are due to the 9th bit being used only for tasks such as anti-aliasing or Z-buffering.
  • ROM cartridge (Nintendo 64 Game Pak) bus running at 264 MB/s.
  • Resolution: 240p (320×240), 288p (384×288), 480i (640×480), 576i (720×576), widescreen via letterboxing or anamorphic compression.
  • Color palette: 16,777,216 (24-bit color depth), 2,097,152 possible colors (21-bit color) on screen.

Central processing unit

CPU-NUS VR4300 central processing unit

The Nintendo 64's central processing unit (CPU) is the NEC VR4300, a licensed variant of the 64-bit MIPS Technologies R4300i, itself a cost-reduced derivative of the MIPS R4200. Built by NEC on a 0.35 µm process, the VR4300 is a RISC 5-stage scalar in-order execution processor, internal 24 KB direct-mapped L1 cache (16 KB for instructions, 8 KB for data). Although a floating-point unit exists as a logical coprocessor, there is no dedicated physical FPU datapath on the VR4300; instead, the integer pipeline is shared for this purpose, meaning that floating-point instructions will stall the pipeline. The 4.6 million transistor CPU is cooled passively by an aluminum heatspreader that makes contact with a steel heat sink above.

With a clock rate of 93.75 MHz, the N64's VR4300 is generally considered to be the most powerful console CPU of the fifth generation of video game consoles. Except for its narrower 32-bit system bus, the VR4300 retains the computational abilities of the 64-bit MIPS R4200, though few titles take advantage of 64-bit data precision operations. N64 game titles generally use faster and more compact 32-bit data-operations, as these are sufficient to generate 3D scene data for the console's RSP (Reality Signal Processor) unit. In addition, 32-bit code executes faster and requires less storage space, which came at a premium with contemporary technology. The CPU is constrained by a 250 MB/s bus to the system RAM, and in order to access the RAM, the CPU must go through the Reality Coprocessor (RCP), and can not use DMA to do so as the RCP can. This issue is further compounded by the RDRAM's high access latency.

Programs emulating the Nintendo 64 benefit from the scarcity of 64-bit operations in the game's executable code, especially when running with a 32-bit machine architecture as a host. Most of these emulators perform the majority of calculations at 32-bit precision and trap the few subroutines that actually make use of 64-bit instructions.

Reality Coprocessor

RCP-NUS "Reality Coprocessor"

Nintendo 64's graphics and audio duties are performed by the 64-bit SGI coprocessor, named the Reality Coprocessor, or RCP. The RCP is a 62.5 MHz chip split internally into two major components, the Reality Display 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 of bandwidth. The RSP is a MIPS R4000-based 128-bit integer vector processor. It is programmable through microcode, allowing the chip's functions to be significantly altered by each software title if necessary, to allow for different types of work, precision, and workloads. A number of microcodes were provided by Nintendo, while a few companies, such as Rare and Factor 5, would later develop their own microcodes. The RSP performs transform, clipping and lighting calculations, and triangle setup. The Reality Display Processor is primarily the Nintendo 64's pixel rasterizer, and also handles the console's Z-buffer compute.

Instead of a discrete sound processor, the RSP 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 theoretically capable of a maximum of 100 channels of PCM at a time, but only in a case where all system resources are devoted to audio. It has a maximum sampling rate of 48 kHz with 16-bit audio. In practice, however, storage limitations caused by the ROM cartridge format limit the audio size and thus quality. Some game titles are designed for higher quality audio when storage expansions are available, as with F-Zero X Expansion Kit.

The RDP performs rasterization, converting images into raster format before output to the display. The RCP also provides the CPU's access to main system memory via a 250 MB/s bus. 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.

Memory

Rambus RDRAM18-NUS, early 2-chip variant

The final major component in the system is the random-access memory, or RAM. Following its design heritage in SGI supercomputing, the Nintendo 64 implemented a unified memory architecture (UMA), instead of having separate banks of memory for CPU, audio, and video, as seen on its competitors. The RAM itself consists of 4.5 megabytes (0.5 MB for anti-aliasing) of Rambus RDRAM, fabricated by NEC. System RAM is expandable to a total of 9 MB with the Expansion Pak. The RAM has a 9-bit data bus at 250 MHz; as RDRAM transfers data at both the rising and falling edge of the signal (a technique also known as DDR), it provides the system with 562.5 MB/s peak bandwidth, shared between CPU and RCP.

Rambus technology was quite new at the time and offered Nintendo a way to provide a large amount of bandwidth at 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); this way, the N64 mainboard could be designed with only 2 layers. However, RDRAM, at the time, came with a very high access latency. The combination of high bandwidth and high latency meant that significant effort was required from developers to achieve optimal results. Early N64 revisions use two 18 Mbit RAM chips; in ca. 1998 these were replaced with a single 36 Mbit chip, same as was used on the Expansion Pak.

The Nintendo 64 Game Pak ROM cartridges are so much faster than contemporary CD-ROM drives that data can be streamed in real-time from cartridges as if they are additional RAM, thus maximizing the efficiency of the system's RAM. This was a common practice for developers of many games, such as Nintendo EAD's Super Mario 64 or Factor 5's Indiana Jones and the Infernal Machine.

Video

The system allows for video output in two formats: composite video and S-Video. This is accomplished through the proprietary "MULTI OUT" connector on the rear of the system, which was carried over from the SNES and later reused on the GameCube. Although the digital-to-analog converter chip used in early models had the capability to produce RGB video, it was not connected by default for this purpose, and later revisions lacked the pin connections for this purpose entirely.

The system came bundled with a composite cable (labeled Stereo A/V cable by Nintendo). Available separately (and included with the system in the UK)Template:Citation needed were 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 U.S., the official S-Video cable could only be ordered direct from Nintendo of America, while in PAL territories, no S-Video cable was officially sold altogether. Furthermore, Nintendo omitted several components from the S-Video signal path in PAL consoles, meaning that using an unmodified NTSC S-Video cable will result in an overbright, garish image, or no image at all.

The system supports standard-definition resolutions up to 480i (576i for PAL units). Few games make use of this mode, and most of those which do also require use of the Expansion Pak RAM upgrade. Most games instead use the system's low-definition 240p (288p for PAL models) modes. A number of games also support widescreen display ratios using either anamorphic widescreen or letterboxing. Games with support for this include Banjo-Tooie, Donkey Kong 64, GoldenEye 007, 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, Hybrid Heaven, and South Park.

Regional lockout

Nintendo initially stated that while the Nintendo 64 units for each region use essentially identical hardware design, regional lockout chips would prevent games from one region from being played on a Nintendo 64 console from a different region. Following the North American launch, however, they admitted that the cartridges contain no such chips, and the regional lockout is enforced by differing notches in the back of the cartridges.