20 ms·
Nintendo 64 Architecture – A Practical Analysis
- r0bbbo 6y agoFor someone just starting to learn about computer architecture at a low level (rather embarrassing for someone who's been in the industry for over a decade), this is a really interesting read, and it's helping concepts like pipelining and caching to gel.
- flatiron 6y agohttps://www.youtube.com/watch?v=IAkj32VPcUE https://www.youtube.com/watch?v=IAkj32VPcUE
- als0 6y agoHardware used to be so exotic!
- msla 6y ago> Hardware used to be so exotic! It might circle back around to being exotic again, if FPGAs take off and more work is done on highly-specialized task-specific hardware, as opposed to building the fastest general-purpose chips you can and beating problems to death with sheer speed.
- rhlsthrm 6y agoIs this a thing that's happening? I remember how cool I thought FPGAs were from my college CE classes. Seems intuitive to me that you would want to specialize the hardware once you have a process figured out. The fact that FPGAs are upgradable makes it even more of a no brainer to me.
- msbarnett 6y ago> Is this a thing that's happening? Sure. The Afterburner Card that Apple is selling to accelerate ProRes decoding on the newest Mac Pro is an FPGA. They’ve opened it up to third parties like Red as well iirc.
- to11mtm 6y agoWell there's a cost benefit; Cheaper FPGAs may not necessarily be as performant as others for some tasks, there's still a gate budget to deal with, and I personally am not sure whether the FPGA world is one where you have full control over what you do with the chip when you sell it in a commercial product. I know Gigabyte back in the mid 2000s made a PCIE Card that let you use DDR as a disk drive once upon a time; for the original they actually used a Xilinx Spartan FPGA since it was a smaller run.
- moftz 6y agoFPGAs can sometimes be one-time-programmable using anti-fuses that basically disables the JTAG interface or can be set to disable the interface if the FPGA detects attempted tampering. Most of the time, an FPGA is going to be set to OTP to prevent competitors from stealing source code for applications where upgrading the firmware via JTAG is not necessary. The FPGA also can have a massive unique key that allows the designer to create a whitelist algorithm that only lets certain unique IDs run that firmware. Other options involve setting a time limit for how long the firmware will run, disabling certain features, or totally bricking that FPGA forever. Spartans have this feature but it would still allow for someone to build a new design that doesn't check the device ID. Additionally, the bitstream can be encrypted so that if a field update is necessary or the firmware is stored in a stored in a separate flash chip, someone can't reverse engineer it. Overall, the more you pay, the more security features there are available. An example secure design would disable JTAG pins permanently and have a microprocessor inside that would handle new updates. The processor would authenticate any new encrypted firmware before programming the internal flash.
- Polylactic_acid 6y agoI have seen fpgas a bunch in low volume hardware that needs something better than a microcontroller.
- pkaye 6y agoXilinx even has its Zynq line with combines a ARM Cortex processors with programmable logic so you can partition the design to what each portion is best suited.
- mhh__ 6y agoIt might not be visible from a regular programmers' perspective (i.e. You don't need to read https://people.freebsd.org/~lstewart/articles/cpumemory.pdf https://people.freebsd.org/~lstewart/articles/cpumemory.pdf to write a website) but FPGAs are absoutely everywhere already, e.g. Xilinx (the Intel of the FPGA market... as opposed to Intel who are the AMD of the FPGA market) have Market Cap of $21Bn which is quite a lot for a company that is both fairly obscure to investors and doesn't sell directly to consumers. The issue with this is that FPGAs are expensive to buy as a hobbyist, expensive to buy at small quantities unless you can negotiate with Avnet or similar, and involve using software from the past if you want to program them. Beyond FPGAs, ASICs are fairly common in very high margin/high volume electronics.
- saagarjha 6y agoNote that Intel bought the AMD of the FPGA market to enter it ;)
- pjmlp 6y agoIt still is, specially when we spend time playing with what our GPUs allow for nowadays. My main use for C and C++ are actually their shading language derived dialects.
- bambataa 6y agoOn the cost-saving point, I always understood that the limited 4kb texture memory led to lots of games having really muddy, blurry textures. How much more would have 8kb or 16kb cost? It seems a small cost saving that had a pretty large, negative impact.
- jchw 6y agoWell, I would guess twice as much and four times as much respectively. I mean RAM is cheap today but if you wanted 128GB of it today it’d still run you like, $700. I can’t pretend to know what this particular type of RAM cost back in the day, but given how relatively cutting edge the machine was I can only guess it was not particularly inexpensive...
- DarknessFalls 6y agoThey should have released a Nintendo 64 Plus sometime before the release of the Gamecube that would have doubled its RAM to provide hi-res textures.
- TAForObvReasons 6y ago64DD was an expansion to the 64 https://en.wikipedia.org/wiki/64DD https://en.wikipedia.org/wiki/64DD . It was a commercial flop
- echelon 6y agoIt may have done better if Nintendo didn't take so long to develop and release it. I bought one on eBay, and it's a quirky device. It's essentially a glorified floppy drive with proprietary disks, and it makes loud, albeit amusing scanning noises. Every Nintendo console prior to the Wii had some sort of "expansion" or upgrade capability for future peripherals to be added. Hardware revisions took the place of this model.
- Sevaris 6y agoMan, it sounds like it was in development hell. I wish we could get somebody to talk about what it was like developing the 64DD and what problems they ran into. Probably won't ever happen, but I can dream.
- castratikron 6y agoSomeone made a pin-compatible Controller Pak with FRAM that doesn't require a battery. Has layout files too. http://www.qwertymodo.com/hardware-projects/n64/nonvolatile-nintendo-64-controller-pak http://www.qwertymodo.com/hardware-projects/n64/nonvolatile-...
- twic 6y agoOne of my favourite little easter eggs in Goldeneye is that during the Silo mission, two of the satellite components you have to steal are the N64's RSP and RDP: https://twitter.com/007goldeneye25/status/1098294154919071745 https://twitter.com/007goldeneye25/status/109829415491907174...
- LaserDiscMan 6y agoNintendo also included their own Easter eggs: The rabbit you need to catch beneath the castle in Super Mario 64 is named "MIPS". :) https://www.mariowiki.com/MIPS https://www.mariowiki.com/MIPS
- saagarjha 6y ago> In the remake Super Mario 64 DS, MIPS does not make a reappearance, instead being replaced by the rabbits scattered throughout the castle for each character to find. Aw, they should have brought it back and renamed it ARM…
- Causality1 6y agoI don't think I would have gotten as interested in gaming if it weren't for Nintendo's decisions with the N64. The native bilinear texture filtering, Z-buffer, and subpixel model rendering make such an enormous difference to me I'd have found the Playstation unplayable.
- webwielder2 6y agoTo me, N64 continued the video game "tradition" I knew from the 16-bit era. Colorful, fast-paced, responsive. PSX games by contrast were dour, slow-paced, and controlled poorly because of Sony's initial failure to consider how digital control wouldn't work in a 3D environment.
- echelon 6y agoThe N64's control sticks used digital rotary encoders.
- duskwuff 6y agoThe PSX only had D-pad style controls at release in 1995 -- no joysticks! The Dual Analog controller wasn't released until 1997. (I think you're getting distracted by the terms "digital" and "analog". It may help to think about this in terms of discrete and continuous inputs instead.)
- Causality1 6y agoTrue, but there's a rather radical difference between an input device with nine possible states like a d-pad and one with 65,536 possible states like the N64 control stick.
- Grazester 6y agoThe N64 blurry textures and washed out color had me thinking initially that my friends TV was broken. It was only Rare and Factor 5 games on the N64 that really impressed me. Of course they could do nothing for the blurry picture quality. That was a hardware thing that has been fixed with a hardware HDMI mode that offer de-blurring
- littleweep 6y agoI get the nostalgia angle -- but why are we discussing a console that's >20 years old?
- cesarb 6y agoSometimes, it's an important step in the path of hardware evolution; sometimes, it's a path not followed that we can learn from; either way, 20-year-old hardware is still relevant.
- edoceo 6y agoThe linked article is a very indepth, clearly presented breakdown and analysis of the hardware. It's well written and educational. Works like this get hella karma on this site.
- zapzupnz 6y agoBecause it's interesting and technical. Despite the name 'Hacker News', I don't know if you've noticed but not a lot of what's on here is necessarily news — just plenty of food for thought for engineers, people in comp sci, etc.
- 293984j29384 6y agoThe design of this web page leaves a bit to be desired. The tabbed boxes with the light grey background on the white background of the website itself are pretty easy to miss as you scroll forever.
- monocasa 6y agoI gave a talk not too long ago about running Rust on a Nintendo 64, with the slide deck written in Rust and running on an N64. https://twitter.com/DebugSteven/status/1054903603985559553 https://twitter.com/DebugSteven/status/1054903603985559553 So I guess what I'm saying is that I have pretty hands on knowledge with the system and would be happy to answer any questions I can. One thing I'll throw out there, is that one of the biggest limitations of the N64 (its 4KB texture memory) gets called a texture cache a lot, but that's a misnomer. It's a manually managed piece of memory, and (IMO) the system would have been much better off if it were actually a cache rather than having to load an entire texture in regardless of what was being sampled. Nowhere I've seen in Nintendo's literature do they call it a cache either. The crazy hacks that Rare did to subdivide their geometry on texture boundaries wouldn't be necessary for instance. I'd maybe even be into a 2KB cache over a 4KB chunk of manually managed memory. One other aside is that I think the system still has tons of unlocked potential. So much of unlocking it's power seems to be centered around memory bank utilization. Switching which page of DRAM within a bank is expensive in terms of latency, but it seems like if you allocate your memory in 1MB bank chunks you can get around a lot of the limitations of the systems having the slow memory that developers complained about at the time. I don't blame developers at the time, they were coming from SNES where it was single cycle access to RAM, to the N64 that had a very deep, very modern memory hierarchy and what all that means for your code. The industry as a whole didn't really catch on until about halfway through the PS2's development cycle. But applying some of those PS2 techniques back, the system really purrs when you have dedicate a 1MB bank to each streaming source or destination. I can't wait to see what crazy stuff happens when the demoscene folk really start to get their hands dirty with it.
- domlebo70 6y agoAmazing. Is there somewhere I can watch this talk?
- monocasa 6y agoIt wasn't recorded unfortunately. The source behind the text of the most recent slides starts here if you'd like to read it: https://github.com/monocasa/n64-slides-apr/blob/caae25f397c52b81c3e443c9d9afb129758c4608/src/main.rs#L145 https://github.com/monocasa/n64-slides-apr/blob/caae25f397c5... I should probably save off pictures and put it into a pdf or something where it could be more easily accessible.
- plerpin 6y agoDid Rambus have a dossier of compromising photos on industry executives in the mid 90's? Why did Intel and Nintendo go all in on such an expensive and technically inferior memory technology? The latency is such a killer, especially if you're on an architecture with really deep pipelines (ahem, P4).
- rasz 6y agoRambus meant Nintendo shipped 5 gen console on 2 layer pcb with only 4 big ICs. TWO layers! that was a huge cost saving. Compare to Sega Saturn with a total of something like 144bits of various memory buses divided into multiple memory banks over multiple memory chips.
- plerpin 6y agoHow many layers did the Saturn's PCB have?
- rasz 6y agoat least 4 like playstation, compare this nightmare https://mcretro.net/sega-saturn-photographing-has-begun/ https://mcretro.net/sega-saturn-photographing-has-begun/ to https://bitbuilt.net/forums/index.php?threads/trimming-your-n64-revs-1-4.52/ https://bitbuilt.net/forums/index.php?threads/trimming-your-... revercse engineered pcb layout here https://gmanmodz.com/2020/01/30/2020-the-year-of-n64-again/ https://gmanmodz.com/2020/01/30/2020-the-year-of-n64-again/ One was thrown together by committee with some function goal in mind, the other designed top to bottom with huge influence from process engineers. Simplified layout and reducent component count/variety means less time in pick&place, faster optical alignment, faster optical inspection, less opportunity for process flaws.
- plerpin 6y agoVery interesting, thanks.
- rawoke083600 6y agoBrilliant article ! I love these in-depth "old-hardware" articles with my morning coffee. (It's only 8am here in South Africa) Lol this stood out for me (although probably just semantics...): "Reality Co-Processor running at 62.5 MHz." What big dreams we had back then to try and"simulate reality" with only 62.5Mhz :) Well done author... well done Nintendo !
- pjmlp 6y agoAmiga's Agnus and its AGA successor were running at around 7 - 35 Mhz tops. :)
- rasz 6y agosome more hardware info including die shots and development info (verilog simulation etc) here https://www.eevblog.com/forum/blog/eevblog-491-nintendo-64-game-console-teardown/ https://www.eevblog.com/forum/blog/eevblog-491-nintendo-64-g...