My DIY FPGA board can run Quake II
79 points
3 days ago
| 13 comments
| blog.mikhe.ch
| HN
unethicalinfo
4 hours ago
[-]
Cool write up, getting initial bill shock from 2 layer to the 4+ layer PCBs is a rite of passage :)
reply
wowczarek
1 hour ago
[-]
Good to see I'm not the only weirdo still using Midnight Commander.
reply
xracy
3 hours ago
[-]
This is really cool and impressive... but relatedly...

Has anyone figured out what the minimum specs for Quake are?

I feel like the first thing everyone does with a computer is to determine whether or not it can run quake, and I'm just wondering what the like, most simple computer that could exist is, that could run quake?

reply
klodolph
1 hour ago
[-]
You can find a lot of discussion about what the minimum specs for Quake are. Famously, it needs a decent FPU, and the Pentium was a convenient early CPU with a decent built-in FPU. It was significantly faster than a 486.

…But people have managed to run Quake on the 486.

And the myth people tell about Quake is that it killed Cyrix, because Quake performance on Cyrix was subpar. But was that true? And if it was true, was that because the Cyrix was slower than a Pentium, or was it because the Quake code had assembly that was hand-optimized for the Pentium FPU pipeline?

Anyway. “Most simple computer that could run Quake” is probably going to include a decent FPU. If you are implementing something on an FPGA, you can probably get somewhere around 200 MHz clock anyway. At which point you can run Quake II.

reply
polpo
53 seconds ago
[-]
I had a Cyrix 6x86 when Quake first came out. My disappointment at how poorly Quake ran on it was significant, especially because pretty much every other game at the time ran well on the Cyrix. The FPU performance in Quake was doubly handicapped on the Cyrix: not only was its FPU slower than the Pentium's, Quake's code was indeed hand-optimized for the Pentium's FPU pipeline. Fabien Sanglard's writeup up Michael Abrash's optimizations for Quake go into great detail: https://fabiensanglard.net/quake_asm_optimizations/
reply
NooneAtAll3
1 hour ago
[-]
can it be rewritten to use fixed point arithmetic instead?
reply
klodolph
38 minutes ago
[-]
I want to look at this from a different perspective… a single-precision floating-point multiply is pretty simple, no? 24x24 bit multiply, which is about half as many gates as a 32x32 bit multiply.

Maybe I would prefer to rip out the integer multiplication unit first, before ripping out the FPU.

reply
Narishma
1 hour ago
[-]
The PS1 doesn't an FPU but got a version of Quake 2, so it's possible. That said, it was somewhat different from the PC version, so it could be argued that it's not the same game.
reply
klodolph
1 hour ago
[-]
The PS1 version definitely has its own engine, which is not just a port of the Quake 2 engine to the Playstation, but a new engine.
reply
conception
2 hours ago
[-]
That’s only because everything can run Doom now.
reply
markus_zhang
4 hours ago
[-]
This is very impressive. How did you learn to design a real computer, not the toy ones a lot of people made? I read part 1 and part 2 and looks like you just “thrown in” Ethernet and other stuffs and it was done. Really hope to learn from the process, thanks!
reply
bee_rider
1 hour ago
[-]
Quake 2 was the one with the clever approximate inverse square root code, right? I wonder (especially since there’s an instruction nowadays to draw inspiration from), can you implement it “in hardware,” so to speak?
reply
BoredPositron
54 minutes ago
[-]
No that was Q3 Arena.
reply
argulane
2 days ago
[-]
That's some mad dedication to go from kicad schematics to running Quake. Very impressive!
reply
UncleOxidant
2 hours ago
[-]
Cool! Have you considered offering this board on Crowd Supply or similar? There don't seem to be many boards available for Efinix FPGAs.
reply
klodolph
2 hours ago
[-]
The diagonal traces and the empty spaces are throwing me for a loop. Is this the autorouter in action? (But… still, nice work.)
reply
sznio
3 days ago
[-]
reply
tkapin
48 minutes ago
[-]
Very impressive project!
reply
absynth
25 minutes ago
[-]
Another board has become Frag complete. Important milestone!
reply
phendrenad2
56 minutes ago
[-]
Hey, routing your own length-matched traces, nice. Is this Altium?
reply
nacozarina
3 hours ago
[-]
Quake II had the best fn soundtrack.
reply
nntwozz
3 hours ago
[-]
Yes, check out Radioactive Man (from Two Lone Swordsmen) - Trespasser:

https://youtu.be/Zdy9TtInX-c

Lots of Quake II samples.

reply
npunt
3 hours ago
[-]
Sonic Mayhem!
reply
wowczarek
1 hour ago
[-]
I have the album on my phone. When I get called in to put out a fire and save the day, I like to put on March Of The Stroggs in the car when arriving at the destination. It's a great soundtrack for two reasons - the first one is sweet, wasted youth and the second is it's a great soundtrack.
reply