22 comments

[ 4.2 ms ] story [ 44.9 ms ] thread
That's some mad dedication to go from kicad schematics to running Quake. Very impressive!
Cool write up, getting initial bill shock from 2 layer to the 4+ layer PCBs is a rite of passage :)
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!
Quake II had the best fn soundtrack.
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?

Cool! Have you considered offering this board on Crowd Supply or similar? There don't seem to be many boards available for Efinix FPGAs.
The diagonal traces and the empty spaces are throwing me for a loop. Is this the autorouter in action? (But… still, nice work.)
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?
Good to see I'm not the only weirdo still using Midnight Commander.
Hey, routing your own length-matched traces, nice. Is this Altium?
It is KiCad. No autorouting. I only used the "tune length" tools for adding serpentine traces.
Very impressive project!
Another board has become Frag complete. Important milestone!
Section 6 where you link to Quake II is 404. (at the time of this post)

URL: https://blog.mikhe.ch/quake2-on-fpga/part6.md

404 File not found

The site configured at this address does not contain the requested file.

If this is your site, make sure that the filename case matches the URL as well as any file permissions. For root URLs (like http://example.com/) you must provide an index.html file.

Read the full documentation for more information about using GitHub Pages.

It is because I haven't written it yet. I wanted to finish it first, and post to Hacker News next week, but sznio did it earlier :)
I find first version https://github.com/petrmikheev/endeavour much more impressive. Dude somehow managed to get 100MHz DDR1 ram working on 2 layer board with no ground reference :o Its one of those things you only attempt when crazy or dont know any better. Anyone with EE experience will tell you its impossible, like flying commercial grade SoCs in satellites :) Mad lad.
I can't imagine why a 100 MHz digital signal at 2.5 V would be even particularly challenging on a small two-layer PCB. A lot of signal integrity lore has to do with passing EMI compliance (this almost certainly wouldn't), as well as with people extrapolating from Rick Hartley videos without pausing to think if it really applies to hobby stuff.
With Claude, a software engineer can now be a hardware engineer.
Very impressive, and I'm sure satisfying. Kudos!
What's the deal with the diagonal squigglys
Willing to solder BGA, but not willing to use 0402 components while using the stencil anyways?

Nonetheless, impressive project!