Texture cache of the N64 vs. that of Playstation

Squeak

Veteran
It has been discussed on these boards before but, I think never satisfactorily explained I think.
That is: Why the Playstation had much higher resolution textures in general in its games than N64.

To the best of my knowledge (obtained via what I deem to be reliable sources) the N64 had a 4 Kb texture buffer, while the Playstation had a 2 Kb one.
The N64 buffer was halved when doing trilinear, which means they are essentially the same size.
According to ERP though, in an answer from one of the few threads that discussed, among other things, the subject at hand, the N64 cache is explicitly loaded.
Which in turn should mean that the Playstation cache is a true associative cache, while the N64 has either what could also be described as a scratchpad or a simple directly mapped cache.

The strange thing is though, that the disadvantages of the scratchpad or simple buffer should be quite easily overcome with well crafted code and models.
Especially when you consider that the N64 is a fixed platform with many exclusive games, and the task at hand, rasterizing polygons, is quite predicable and linear.

For example you could split textures into multiple smaller pieces to fit exactly to polygons. This would be especially effective and easy over ground and wall textures.
The N64 could have high texel destiny, as evidenced by some games, it was just the same small 32x32 or 64x64 that was tiled extensively.

There is very little evidence of things improving a lot over the lifetime of the console though (apart from very early rush-ware), even from first party efforts.
 
Last edited:
I thought the main reason why the PS1 had better textures was just that PS1 games came in CD, while N64's cartridges didn't have much space in comparison to a CD, so less space available: lower resolution textures.
 
I'm not a technical person, but like @eloyc, I always thought that the cause for N64 blurry texture had more to do with the limited ROM space. I believe the biggest game use 64MB cart and only 3 games used it, probably because it was expensive to produce at that time, while PS1 has around 10x the space. Average N64 games are probably in 16MB region with the bigger games using 32MB cart.
 
Can anyone provide a comparison of different cart capacities showcasing different degrees of texture quality?
 
Yup. Media limitations, probably.

I remember being shocked when the Glide-driven UltraHLE came out and the first N64 ripped ROMs started to appear in the.. #ahem# internets, which were all around 10MB large. I actually don't remember seeing anything above 15MB.
At this point, most PC games were already 400MB+. Imagine how much of a dream-come-true these full-fledged games were, with tiny 10MB downloads for pirates using phone-line internet.

Ocarina of Time, Majora's Mark, Mario 64, Mario Kart 64, Star Fox 64, Star Wars Shadows of the Empire, Goldeneye, Perfect Dark.. And all you needed was a Voodoo 2 back in 1998. Funny thing is the PC games from that year didn't look that much better than UltraHLE emulated games at 800*600.



The N64 was pre-Cheapass Nintendo, so I'm guessing they were counting on flash storage going down in price-per-MB and up in density, but at the time the industry went towards optical storage instead.
To be fair, flash carts had been serving Nintendo quite well until the N64, with the SNES even taking cartridges with additional co-processors.


Part of me is hoping for the next generation to go back to flash carts, as they offer significantly higher data throughput, very low latency, smaller size, higher robustness, higher longevity due to no moving parts and no annoying spinning noise.
It could bring a crash to the already anemic Blu-Ray market, though I think that's pretty much unavoidable right now.
 
Last edited by a moderator:
Yeah, I know. You get automatic suggestions when you type a new thread title.
You'll notice that I even participated in some of these threads. :)
There was never a satisfactory answer to the question though.
Looking at both consoles with fresh eyes, I'm still struck by the obvious differences.
The N64 really should have killed Playstation with regards to textures.
 
I thought the main reason why the PS1 had better textures was just that PS1 games came in CD, while N64's cartridges didn't have much space in comparison to a CD, so less space available: lower resolution textures.

I'm not a technical person, but like @eloyc, I always thought that the cause for N64 blurry texture had more to do with the limited ROM space. I believe the biggest game use 64MB cart and only 3 games used it, probably because it was expensive to produce at that time, while PS1 has around 10x the space. Average N64 games are probably in 16MB region with the bigger games using 32MB cart.

Cartridge vs. CD has nothing to do with N64 vs. Playstation texture resolution and quality. At a very large stretch it could have something to do with variety over a whole game. But I'm pretty certain no Playstation games where large enough to ever have that become an advantage.

If you subtract FMV and streaming sound most Playstation games actual graphics data and other assets (that is textures and geometry and code), are in the tens of megabytes.
Most of them are the same or smaller size than N64 games. And thats even when developers went all sloppy and left in unused assets, or used the disc redundancy (extra unused space) to speed up loading.
 
Last edited:
Game sizes are subjective on PC and PS1. Most of the size was taken by sound and FMVs. Ripped PS1 games are in the tenths of MBs sometimes. Actually some PS1 pirates were even cramming a dozen games on one disk by simply ripping out videos and music.
So games that had zero FMVs, limited dialogues and compressed sound effects on N64 should have at least enabled some higher res textures in some rare occasions.

edit: Squeak beat me to it
 
Cartridge vs. CD has nothing to do with N64 vs. Playstation texture resolution and quality. At a very large stretch it could have something to do with variety over a whole game. But I'm pretty certain no Playstation games where large enough to ever have that become an advantage.

If you subtract FMV and streaming sound most Playstation games actual graphics data and other assets (that is textures and geometry and code), are in the tens of megabytes.
Most of them are the same or smaller size than N64 games. And thats even when developers went all sloppy and left in unused assets, or used the disc redundancy (extra unused space) to speed up loading.
sounds like the Mega CD to me, or the Turbografx CD....

thanks! it's been a while since ERP has posted here. I think he has been a mod of the site for some time now....
 
If you subtract FMV and streaming sound most Playstation games actual graphics data and other assets (that is textures and geometry and code), are in the tens of megabytes.
Game sizes are subjective on PC and PS1. Most of the size was taken by sound and FMVs. Ripped PS1 games are in the tenths of MBs sometimes.

"Tens of megabytes" is already implying they were substantially larger than N64's 6-14 MB ROMs. The largest game there was for N64 was Perfect Dark (which IIRC could only be played with the extra Rambus RAM pack), and that was a 64MB cartridge.
 
Although not released as a game console as originally intended, the 3DO/Matsushita/Panasonic M2 had 16 Kb texture cache (and 8 MB RAM).

I think textures like this demo would've been possible in completed M2 games, fully developed on final hardware in 1997+

emx6lMZ.jpg


ldAY0Ju.jpg
 
What I always understood was that the whole texture needs to be on the N64's texture "cache" before the polygon to use it starts being rasterized, and once it's drawing, that memory space cannot be changed anymore. I remember a dev saying you couldn't even, for example, use half of it for the texture you are drawing from, while the other half prefetches the next texture that will be used, which would greatly reduce n64's terrible latency problems that left it's actually powerfull gpu wasting cycles during a lot of the frame time.
 
"Tens of megabytes" is already implying they were substantially larger than N64's 6-14 MB ROMs. The largest game there was for N64 was Perfect Dark (which IIRC could only be played with the extra Rambus RAM pack), and that was a 64MB cartridge.

Perfect dark was only a 32mb cart. The only 64mb games I know of are conkers bad fur day (tons of voice-over) and resident evil 2(fmv). I've heard pokemon stadium 2 and paper Mario pal version used 64mb but I'm not certain on those.

Most n64 games were either 16 or 32mb, with most of the launch games being 8mb(sm64, wave race, etc). Mario Kart 64 was 12mb(1 8mb chip+1 4mb chip in the cart).

One thing relating to the texture cache/mip mapping is a trick from super Mario 64. In the hall leading to the first bowser level, there is a painting in the distance of peach but as you get closer it changes to bowser. This was done using pre-made mipmaps for that texture so that the changing mip levels as you get closer change the character.
 
Perfect dark was only a 32mb cart. The only 64mb games I know of are conkers bad fur day (tons of voice-over) and resident evil 2(fmv). I've heard pokemon stadium 2 and paper Mario pal version used 64mb but I'm not certain on those.

Most n64 games were either 16 or 32mb, with most of the launch games being 8mb(sm64, wave race, etc). Mario Kart 64 was 12mb(1 8mb chip+1 4mb chip in the cart).

One thing relating to the texture cache/mip mapping is a trick from super Mario 64. In the hall leading to the first bowser level, there is a painting in the distance of peach but as you get closer it changes to bowser. This was done using pre-made mipmaps for that texture so that the changing mip levels as you get closer change the character.
what abouit zelda64?
 
What I always understood was that the whole texture needs to be on the N64's texture "cache" before the polygon to use it starts being rasterized, and once it's drawing, that memory space cannot be changed anymore. I remember a dev saying you couldn't even, for example, use half of it for the texture you are drawing from, while the other half prefetches the next texture that will be used, which would greatly reduce n64's terrible latency problems that left it's actually powerfull gpu wasting cycles during a lot of the frame time.

The latency of the memory isn’t comparatively that different from latency on PS2 or DDR 1 or 2 equipped machines.
Sure, the Playstations EDO might have a small advantage clock for clock for small, scattered data. But the speed and bandwidth on N64 Rambus is just so much better, that it wins it all back and then some even in pathological cases.

That the cache is loaded explicitly pretty much infers what you describe. Do you have a link to the discussion?

As I mentioned already, it would have been possible to match the geometry and texture coordinates exactly and then combine them to larger textures.
Of course this wouldn’t have been possible with dynamic geometry, like skinning which is not too common on that generation of games anyway.
It would have made a huge difference for ground and wall textures.

For a rare and sadly not very impressive example of this look at the Bowser puzzle in the volcano level of Mario 64. It’s seems they even used some kind of 4 bit CLUT chroma compression in a dual pass on this.
 
Last edited:
Although not released as a game console as originally intended, the 3DO/Matsushita/Panasonic M2 had 16 Kb texture cache (and 8 MB RAM).

I think textures like this demo would've been possible in completed M2 games, fully developed on final hardware in 1997+

emx6lMZ.jpg


ldAY0Ju.jpg
This is a finished M2 game:
Not very impressive texture wise.
 
Back
Top