Was the N64 really 64 bits?
One of the most iconic points in gaming was the release of the Sega Genesis / Mega Drive and its advertising that touted its “16-bit arcade graphics”. This ignited what a lot of gamers like to call “The Bit Wars” which was a series of battles that were fought by both the titans in the industry and 8-year-olds in the playground all regarding who had the most powerful machine on the market. Many of the consoles that promoted their specs were put under a microscope as to whether the marketing claims were true and the Nintendo 64 with its 64 bits was no different.
The Hardware
Let’s have a look at each piece of hardware to see what the ‘bitness’ of each component is.
The processor
The N64 uses a 64-bit NEC VR4300 CPU which at face value is a 64-bit CPU. It can perform operations with 64-bit precision (both floating point and integer) but the titles that used this functionality were few and far between since 32-bit operations were a lot faster and took less memory.
Basically, it had a 32-bit system interface, but 64 bits of mathematical execution (which wasn’t always used).
The Reality Co-Processor GPU
The Reality Co-Processor (RCP) was composed of the Reality Display Processor (RDP) and the Reality Signal Processor (RSP). These had properties that were 32, 64 and even 128 bits each.
The processor itself is 64-bit and could perform high-precision vector calculations and matrix transformation, but many developers decided to forgo this precision since it wasn’t really necessary for the N64’s blocky low-poly graphics.
The two co-processors use a 128-bit bus to communicate each other to maximise the bandwidth and speed of data that they can process.
Memory
The N64’s RDRAM is accessed using 32 bits since 64-bit memory addresses would only be useful with memory sizes of over 4GB of RAM. Given that that Nintendo 64 only had 4MB (8 MB with an Expansion Pak), this was pointless.
It only became popular to have 64-bit memory in the late 00’s when larger memory banks became more commonplace.
Colour depth
I wrote a page on how the Nintendo 64 uses various types of colour encoding but the maximum value is 32 bits per pixel (or texel). However, these were fairly large for the 4KB texture memory to handle so more compressed schemes were used in most cases.
To give you an idea, an 8-bit square texture could be 64×64 in size while a 32-bit texture would be 32×32, a quarter of the size. And even then, it wasn’t common since you’d only be able to have one texture available at a time which would slow things down and not allow mipmapping.
Audio
The sound signal (managed by the RCP) is a 16-bit stream of audio data. It’s as simple as that.
Conclusion
For most general purpose operations, the Nintendo 64 uses 32 bits – the memory logic, etc. However, it does allow for 64 bits when it comes to graphical accuracy when calculating vectors and performing arithmetic.
The extent to which these 64-bit capabilities were used is however somewhat limited since they were slower than their 32-bit counterparts and provided little visible improvement. Another problem is that low-precision floats can have more rounding errors which if left unchecked can cause them to desync and cause glitches, but it can all be solved by resyncing.
Overall, this made the Nintendo 64 fairly similar (bitwise) to the PS1 and Sega Saturn which marketed themselves as 32-bit consoles. It did have some advantages when it came to other capabilities like load speed, anti-aliasing and polygon count which still put it above its competition when it came to potential power. How it was taken advantage of was still up to how well the developer could use all the tools at its disposal, including those 64-bit operations.
More info
Here’s a video by Kaze that goes into more detail on the subject: