[This piece is dedicated to the engineers, the idea men, and the business people behind the Nintendo 64 project, first revealed as Project…
Nintendo 64, SGI, PlayStation and 3D accelerators
I’ve somehow discovered a great article about history of the Nintendo 64 video game console when I searched for more SGI related stuff. It’s very long (again) but it’s worth reading. I knew only PlayStation (1995) from that era and nobody around had N64 (1996). There was a strong partnership between SGI and Nintendo because SGI designed main chips inside N64 and their workstations were used for game development. The result was incredible and performance was mostly superior to what PlayStation could offer. PlayStation won because it was sooner on the market and game developers liked the CD-ROM storage.
I still remember those discussions about 3D performance of video game consoles with my friends thinking about how it was possible to achieve so good 3D performance when there was “no dedicated 3D accelerator” inside. Typical Pentium boxes were capable of rendering about 10,000-30,000 triangles per second (textured and shaded) with software rendering. Wikipedia says that PlayStation could handle up to 90,000 triangles per second with same settings and N64 could handle even more – 150,000 triangles per second.
In the world of PCs, we were used to have powerful but isolated components connected together with a “slow” bus. This was not the approach of neither game consoles or professional UNIX workstations. PlayStation (34-MHz MIPS R3000A) really had low general purpose performance in comparison with Intel Pentium. However, the main CPU was enhanced with a custom vector math coprocessor heavily optimized to do geometric transformations and was paired with the GPU capable of fast rendering of textures on calculated triangles. Software rendered games on PCs usually used most of CPU time to do 3D rendering and only small portion of time was used for AI and game mechanics. With 3D offloaded to special coprocessors the video game consoles didn’t need super-fast CPUs. And that’s the magic.
It’s good to compare the 3D performance with what SGI offered in the workstation market. SGI O2 was an entry-level workstation introduced in 1996 and its performance was about 250,000 triangles per second (textured, shaded). So it was “only” about twice as fast in comparison with cheap gaming systems. Indeed O2 was designed to different workloads because it could use up to ~700MB of memory for textures (= medical visualization) and could render almost 1,000,000 non-textured triangles per second (CAD/CAM).
The World of consumer PCs was different. 50-MHz S3 ViRGE (ViRGE stands for Virtual Reality Graphics Engine), a typical 3D accelerator of the era, could render about 80,000 textured and shaded triangles per second. So it was slightly slower than PlayStation and it couldn’t do geometry calculations. ATI Rage was even slower.
One big exception on the market was 3Dfx Voodoo Graphics. A 3D-only PCI add-on board which was heavily optimized for rendering textured polygons. Unlike other consumer PC boards its texture engine was on a separate chip with internal cache that could store whole texture (that’s why there was the limit for texture size up to 256x256). The design was too complex to be easily manufactured as a single-chip solution. On the other side this card had extreme texture fill-rate (better than most professional workstations) and could handle 350,000 triangles per second with no performance hit caused by texture rendering.
The result is that hi-end PCs were of course faster than video game consoles. However, a typical PC was usually slower for 3D gaming than both N64 and PlayStation.
CyberVision 64/3D is a graphics accelerator for Zorro II/III slots used in professional Amiga computers. It was introduced in 1996 and uses S3 ViRGE chipset which was for a very short time period something like a leader of the home 3D graphics market (ViRGE stands for Virtual Reality Graphics Engine).
S3 ViRGE (86C325) was designed for PCs with PCI bus so Phase5 developers had to add some programmable logic to convert signals from the Zorro bus used in Amiga. The card is autosensing and can work with Amiga 2000 (1987) where only 16bit slots are used. Full 32bit transfers are available when the card is inserted in newer Amiga computers (A3000, A4000).
The first problem was high price ($399) when compared to the PC world. You could buy a way more powerful 3Dfx Voodoo Graphics PCI accelerator board for $299 and there was plenty of decent 2D cards under $100 for standard PCs. In addition to price there was no support for OpenGL 3D acceleration in Amiga OS in mid-90s. The main reasons for buying this card were its fast 2D acceleration (in comparison with outdated Amiga on-board chipsets) and support for 1024x768 with 16 millions of colors on a standard VGA monitor.