History

The Nintendo 64 was the culmination of work by Nintendo, Silicon Graphics (SGI), and MIPS Technologies. The SGI-based system design that ended up in the Nintendo 64 was originally offered to Tom Kalinske, then CEO of Sega of America by James H. Clark, founder of Silicon Graphics. SGI had recently bought out MIPS Technologies and the two companies had worked together to create a low-cost CPU/3D GPU combo that they thought would be ideal for the console market. A hardware team from Sega of Japan was sent to evaluate the chip's capabilities and they found faults which MIPS subsequently solved. However, Sega of Japan ultimately decided against SGI's design.
In the early stages of development, the Nintendo 64 was referred to by the code name "Project Reality". This moniker came from the speculation within Nintendo that the console could produce CGI on par with then-current supercomputers. In 1994, the console was given the name Nintendo Ultra 64 in the West. The console's design was shown for the first time in late Spring 1994. The first picture of the console ever shown featured the Nintendo Ultra 64 logo and showed a game cartridge, but no controller. The final console was identical to this, but with a different logo. When the system together with the controller was fully unveiled in a playable form to the public on November 24, 1995, the console was introduced as the "Nintendo 64" in Japan, contrary to speculation of it being called "Ultra Famicom", at the 7th Annual Shoshinkai SoftwareExhibition in Japan. Photos of the event were disseminated on the web by Game Zero magazine two days later. Official coverage by Nintendo followed later via the Nintendo Power website and print magazine. In February of 1996 Nintendo of America announced a delay of Nintendo Ultra 64 until September 1996 in North America. Simultaneously it was announced that Nintendo had adopted a new global branding strategy, calling the console Nintendo 64 everywhere. Subsequently the PAL introduction was further delayed, finally being released in Europe on March 1, 1997.

During this stage of development two companies, Rareware (UK) and Midway (USA), created the arcade games Killer Instinct and Cruis'n USA which claimed to use the Ultra 64 hardware. The hardware did have some notable changes; the arcade games used hard drives and TMS processors, although they were based on the MIPS R4600 CPU. Killer Instinct was the most advanced game of its time graphically, featuring pre-rendered movie backgrounds that were streamed off the hard drive and animated as the characters moved horizontally. Nintendo dropped "Ultra" from the name on May 1, 1996, just months before its Japanese debut, because the word "Ultra" was trademarked by another company, Konami, for its Ultra Games division. The console was finally released on June 23, 1996.

Sales

The North American launch on September 29, 1996 ended with 500,000 N64 units sold in the first four months. Benimaru Itoh, a developer for EarthBound 64 and friend of Shigeru Miyamoto, speculated in 1997 that the N64's lack of popularity in Japan was due to the lack of role-playing video games. As of March 312005, the N64 has sold 5.54 million units in Japan, 20.63 million in the Americas, and 6.75 million in other regions, for a total of 32.93 million units.

The system was frequently marketed as the world's first 64-bit gaming system. A few years prior, Atari claimed to have made the first 64-bit game console with their Atari Jaguar; however, the Jaguar actually only used a 64-bit RISC architecture "Object Processor" and a 64-bit RISC "Blitter" in conjunction with two 32-bit processors and a 16-bit Motorola 68000.

Hardware

The new controller included with Nintendo 64 consisted of 1 analog stick, 2 shoulder buttons, 1 digital cross pad, 6 face buttons, a 'start' button, and one digital trigger (Z). It beat the Sega Saturn's analog controller to market by approximately one month.

The official prefix for the Nintendo 64's model numbering scheme is "NUS-", a reference to the system's original name, Nintendo Ultra Sixty-Four.

Central processing unit

The Nintendo 64's central processing unit (CPU) is a MIPS R4300i-based NEC VR4300. The CPU was 64-bit and clocked at 93.75 MHz. It was connected to the rest of the system through a 32-bitdata bus. VR4300 is a RISC 5-stage scalarin-order execution processor with an integrated floating point unit. This was by far the most powerful CPU use in a game system of its generation. It is a 64-bit processor, in that it has 64-bitregisters, a 64-bit instruction set, and 64-bit internal data paths. However, the cost-reduced NEC VR4300 CPU utilized in the console only has 32-bit buses whereas more powerful MIPS CPUs are equipped with 64-bit buses. Many games took advantage of the chip's 32-bit processing mode as the greater data precision available with 64-bit data types is not typically required by 3D games. Also 64-bit data uses twice as much RAM, cache, and bandwidth, thereby reducing the overall system performance. This was later taken advantage of by emulators such as the UltraHLE and Project64 that had to run on 32-bit PC systems. These emulators performed most calculations at 32-bit precision, and trapped the few OS subroutines that actually made use of 64-bit instructions.

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 Signal Processor" (RSP) and
the "Reality Display Processor" aka "Reality Drawing Processor" (RDP) . 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 integervector processor. The RSP performs transform, clipping and lighting calculations, and triangle setup.

The RSP was completely programmable through microcode (µcode). 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 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 actually quite poorly profiled for use in games (it was too accurate), and performance suffered as a result. Several companies were able to create custom microcode programs that ran their software far better than SGI's generic software (e.g., Factor 5, Boss Game Studios, and Rare).

The RSP also frequently performs audio functions (although the CPU can be tasked with this as well). It can play back virtually any type 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).

The RDP is the machine's rasterizer and performs the bulk of actual image creation before output to the display. Nintendo 64 has a maximum color depth of 16.8 million colors (32,768 on-screen) and can display resolutions of 256 × 224, 320 × 240, and 640 × 480 pixels. 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

The final major component in the system is the memory, also known as RAM. The Nintendo 64 was the first console 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 MiB of RAMBUS RDRAM (expandable to 8 MiB 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.

Video

The system provides both composite video and s-video through the MULTI-OUT connection on the back. The MULTI-OUT connector was also used on the earlier SNES and later GameCube systems, however the Nintendo 64 removed certain pin connections for providing RGB video, despite having the capability built-in. A composite cable was available for purchase from Nintendo of America. This cable was also compatible with the Super Nintendo Entertainment System.

Hardware color variations

The standard Nintendo 64 is black, and the other controller is light gray. A Jungle Green color was first available with the Donkey Kong 64 bundle. The Funtastic Series used brightly-colored, translucent plastic with six colors: Fire Orange, Grape Purple, Ice Blue, Jungle Green, Smoke Grey, and Watermelon Red. Nintendo released a banana-like Nintendo 64 controller for the debut of Donkey Kong 64 in the United States. The Millennium 2000 controller, available exclusively as part of a Nintendo Power promotional contest in the United States, was a silver controller with black buttons. A gold controller was released in a contest by Nintendo Power magazine as part of a drawing. In late 1997 through 1998, a few gold Nintendo 64 controller packages were released worldwide; in the United Kingdom there was a limited edition GoldenEye 007 console pack which came with a standard grey console and a copy of GoldenEye. Also, a limited edition gold controller with a standard grey console were released in Australia and New Zealand in early 1998, endorsed by an advertising campaign which featured footage of N64 games including Top Gear Rally and ended with Australian swimmer Ian Thorpe wearing the gold controller as a medal around his neck. Nintendo released a gold controller for the debut of The Legend of Zelda: Ocarina of Time in Japan. Soon after, bundle packs of the game, controller and gold Nintendo 64 were released for the US and PAL markets. The Pokémon Edition Nintendo 64, with a Pokémon sticker on the left side, included the "Pokémon: I Choose You" video. The Pokémon Pikachu Nintendo 64 had a large, yellow Pikachu model on a blue Nintendo 64. It has a different footprint than the standard Nintendo 64 console, and the Expansion Pak port is covered. It also shipped with a blue Pokémon controller; orange in Japan. A Limited Edition Star Wars bundle, available during the time of the release of the film Star Wars Episode I: The Phantom Menace came bundled with Star Wars: Episode I Racer and a standard grey console.

Accessories

Programming difficulties

The Nintendo 64 had weaknesses that were caused by a combination of oversight on the part of the hardware designers, limitations on 3D technology of the time, and manufacturing capabilities. One major flaw was the limited texture cache of 4 KB. This made it extremely difficult to load anything but small, low color depth textures into the rendering engine. This small texture limitation caused blurring because developers would stretch small textures to cover a surface, and then the console's bilinear filtering would blur them further. To make matters worse, because of how the renderer was designed, if mipmapping was used, the texture cache was effectively halved to 2 KB. Towards the end of Nintendo 64's lifetime, creative developers managed to use tricks, such as multi-layered texturing and heavily-clamped small texture pieces, to simulate larger textures. Conker's Bad Fur Day is possibly the best example of this ingenuity. Games would often also use plain colored Gouraud shading instead of texturing on certain surfaces, especially in games with themes not targeting realism (e.g., Super Mario 64).

There were other challenges for developers to work around. Z-buffering significantly crippled the RDP's fillrate. Thus, for maximum performance, managing the z-depth of objects, so objects would appear in the right order and not on top of each other, was put on the programmer instead of the hardware. Most Nintendo 64 games were actually fill-rate limited, not geometry limited, which is ironic considering the great concern for Nintendo 64's low ~100,000 polygon per second rating during its time. In fact, World Driver Championship was one of the most polygon-intense Nintendo 64 games and frequently would push past Sony PlayStation's typical in-game polygon counts. This game also used custom microcode to improve the RSP's capabilities.

The unified memory subsystem of Nintendo 64 was another critical weakness for the machine. The RDRAM had very high access latency, and this mostly canceled out its high bandwidth advantage. In addition, game developers commented that the Nintendo 64's memory controller setup was poor. The R4300 CPU was severely limited at memory access because it had to go through the RCP to access main memory, and could not use DMA to do so. There was no memory prefetch or read under write functionality.

One of the best examples of custom microcode on the Nintendo 64 was Factor 5's N64 port of the Indiana Jones and the Infernal Machine PC game. The Factor 5 team aimed for the high resolution mode (640×480) because of the crispness it added to the visuals. The machine was taxed to the limit running at 640×480, so they needed performance beyond the standard SGI microcode. Firstly, the Z-buffer could not be used because it alone consumed the already-constrained texture fillrate. To work around the 4 KB texture cache, the programmers came up with custom texture formats and tools to let the artists use the best possible textures. Each texture was analyzed and fitted to best texture format for performance and quality. They took advantage of the cartridge as a texture streaming source to squeeze as much detail as possible into each environment and work around RAM limitations. They wrote microcode for real-time lighting, because the SGI code was poor for this task and they wanted to have even more lighting than the PC version had used. Factor 5's microcode allowed almost unlimited real-time lighting and significantly boosted the polygon count. In the end, the game was more feature-filled than the PC version, and unsurprisingly, was one of the most advanced games for Nintendo 64.

Factor 5 also showed ingenuity with their Star Wars games such as Star Wars: Rogue Squadron and Star Wars: Battle for Naboo, where their team again used custom microcode. In Star Wars: Rogue Squadron the team tweaked the microcode for a landscape engine to create the alien worlds. For Star Wars: Battle for Naboo they took what they learned from Rogue Squadron and pushed the machine even farther to make the game run at 640×480, also implementing enhancements for both particles and the landscape engine. Battle for Naboo enjoyed an impressive draw distance and large amounts of snow and rain, even with the high resolution.

The selection of the cartridge for the Nintendo 64 was a key factor in Nintendo's being unable to retain its dominant position in the gaming market. Most of the cartridge's advantages did not manifest themselves prominently and they were ending up nullified by the cartridge's shortcomings, which turned off customers and developers alike. Especially for the latter, it was costly and difficult to develop for ROM cartridges, as their limited storage capacity constrained the game's content.

Most third-party developers switched to the PlayStation (such as Square and Enix, whose Final Fantasy VII and Dragon Quest VII were initially pre-planned for the N64), while some who remained released fewer games to the Nintendo 64 (Capcom, with only 3 games; Konami, with 13 N64 games and over 50 to the PlayStation), and new game releases were few and far between while new games were coming out rapidly for the PlayStation. Most of the N64's biggest successes were developed by Nintendo itself or by second-parties of Nintendo, such as Rareware.

Nintendo cited several advantages for making the N64 cartridge-based. For example, ROM cartridges have very fast load times in comparison to disc-based games, as contemporary CD-ROM drives rarely had speeds above 4x. This can be observed from the loading screens that appear in many SonyPlayStation games but are typically non-existent in N64 versions. ROM carts were so much faster than the 2x CD-ROM drives in other consoles that developers could stream data in real-time off them. This was done in Indiana Jones and the Infernal Machine, for example, to make the most of the limited RAM in the N64. Also, ROM cartridges are difficult and expensive to duplicate, thus resisting piracy, albeit at the expense of lowered profit margin for Nintendo. While unauthorized interface devices for the PC were later developed, these devices are rare when compared to a regular CD drive and popular mod chips as used on the PlayStation. Compared to the N64, piracy was rampant on the PlayStation. The cartridges are also far more durable than compact discs, the latter which must be carefully used and stored in protective cases. It also prevents accidental scratches and subsequent read errors. It is possible to add specialized I/O hardware and support chips (such as co-processors) to ROM cartridges, as was done on some SNES games (notably Star Fox, using the Super FX chip).

ROM cartridges also have disadvantages associated with them. While game cartridges are more resistant than CDs to physical damage, they are sometimes less resistant to long-term environmental damage, particularly oxidation or wear of their electrical contacts causing a blank or frozen screen, or static electricity. Console cartridges are usually larger and heavier than optical discs and hence take up more room to store. They also have a more complex manufacturing processes, which meant that games were usually more expensive than their optical counterparts. The cartridges held a maximum of 64 MB of data, whereas CDs held over 650 MB. As fifth generation games became more complex in content, sound, and graphics, it pushed cartridges to the limits of their storage capacity. Games ported from other media had to use data compression or reduced content in order to be released on the N64. Extremely large games could be made to span across multiple discs on CD-based systems, while cartridge games had to be contained within one unit since using an additional cartridge was prohibitively expensive (and was never tried). Because of a cartridge's space limitations, full motion video was not usually feasible for use in cut-scenes. The cut-scenes of some other games used graphics generated by the CPU in real-time.

However, the smaller storage size of ROM cartridges limited the number of available textures, resulting in games which had blurry graphics because of the liberal use of stretched, low-resolution textures, which was compounded by the N64's 4096-byte limit on a single texture. Some games, such as Super Mario 64, use a large amount of Gouraud shading or very simple textures to produce a cartoon-like look. This fit the themes of many games, and allowed this style of imagery a sharp look. Cartridges for some later games, such as Resident Evil 2 and Sin & Punishment: Successor of the Earth, featured more ROM space, allowing for more detailed graphics.

Production

This era's competing systems from Sony and Sega (the PlayStation and Saturn, respectively) used CD-ROM discs to store their games. These discs are much cheaper to manufacture and distribute, resulting in lower costs to third party game publishers. As a result, game developers who had traditionally supported Nintendo game consoles were now developing games for the competition because of the higher profit margins found on CD based platforms.

Cartridges took much longer to manufacture than CDs, with each production run (from order to delivery) taking 2 to 3 weeks (or more). By contrast, extra copies of a CD based game could be ordered with a lead time of a few days. This meant that publishers of N64 titles had to attempt to predict demand for a game ahead of its release. They risked being left with a surplus of expensive cartridges for a failed game or a weeks-long shortage of product if they underestimated a game's popularity.

The cost of producing an N64 cartridge was far higher than producing a CD: one gaming magazine at the time cited average costs of twenty-five dollars per cartridge, versus 10 cents per CD. Publishers had to pass these higher expenses to the consumer and as a result, N64 games tended to sell for higher prices than PlayStation games did. While most PlayStation games rarely exceeded $50, N64 titles could reach $79.99, such as the first pressing of The Legend of Zelda: Ocarina of Time. Sony's line of PlayStation Greatest Hits retailed for $19.99 each, while Nintendo's Player's Choice value line had an MSRP of $39.99. In the United Kingdom, prices around the time of introduction for N64 cartridges were £54.99, and PlayStation games at £44.99 for new titles.

Cartridge-copy counter-measures

Each Nintendo 64 cartridge contains a so-called lockout chip (similar in spirit to the 10NES) to prevent manufacturers from creating unauthorized copies of games, and to discourage production of unlicensed games. Unlike previous versions, the N64 lockout chip contains a seed value which is used to calculate a checksum of the game's boot code. To discourage playing of copied games by piggybacking a real cartridge, Nintendo produced five different versions of the chip. During the boot process the N64 would compute the checksum of the boot code and verify it with the lockout chip in the game cartridge, failing to boot if the check failed. Some games, such as Banjo Tooie, perform additional checks while running.

Games

The Nintendo 64 game library included a number of critically acclaimed and widely sold games. The Legend of Zelda: Ocarina of Time was critically acclaimed on release and has led many polls for best game ever. Super Mario 64 was the system's best selling title (selling over eleven million copies) and also received praise from critics. 1997's GoldenEye 007, was nominated by Marc Russo as one of the greatest games of all time, and, in his words, remains "to this day . . . the finest game I've ever played across any platform or genre." Its release was exclusive to the Nintendo 64 system.