Building an FPGA 3dfx Voodoo with Modern RTL Tools

126 points - today at 1:24 PM

Source

Comments

TapamN today at 8:03 PM
Oof. The gamma on that screenshot.

If you want to see what it's supposed to look like, copy the screenshot into GIMP, go into "Color, Levels" and in the "Input Levels" section, there should be a textbox+spinner with a "1.00". Set that to 0.45.

ashwinnair99 today at 3:46 PM
The Voodoo cards had no right to look as good as they did for their time. Someone rebuilding one from scratch is exactly the kind of project HN was made for.
Tsiklon today at 7:36 PM
Tangentially related, that screenshot of Screamer 2 caught me off guard completely, I loved that game to death, and I feel I was the only one of my friends to have played it. Tremendous handling model and superb music.
sejje today at 3:09 PM
My first video card.

Getting it working in linux in ~1999 was really not easy, especially for a teenager with no linux experience.

My networking card wasn't working either, so I had to run to a friend's house for dial-up internet access, searching for help on Altavista.

Very cool project. Way above my head, still!

ekelsen today at 3:18 PM
The project is cool, but the LLM generated blog bothers my brain.
bob1029 today at 4:24 PM
I miss the box art more than the actual GPUs.

https://lockbooks.net/pages/overclocked-launch

12_throw_away today at 5:58 PM
I have such fond memories of my old Voodoo card. Surprised how much nostalgia those pictures evoked - its rendering really had a unique look this that (LLM-generated?) FPGA captured quite well.

IIRC, it was a gigantic (for the time) beast that barely fit in my chassis - BUT it had great driver support for ppc32/macos9 (which was already on its way out), and actually kept my machine going for longer than it had any right to.

And then, like a month after I bought it, NVidia bought 3dfx and immediately stopped supporting the drivers, leaving me with an extremely performant paperweight when I finally upgraded my machine. Thanks Jensen.

VonTum today at 3:51 PM
I find it odd the author adds all these extra semantics to their input registers, rather than keeping the FIFOs, "drain + FIFOs", "float to fixed point converting register", etc as separate components, separate from the task of being memory mapped registers. The central problem they were running into was one where they let the external controller asynchronously change state in the middle of the compute unit using it.

I'm noting down this conetrace for the future though, seems like a useful tool, and they seem to be doing a closed beta of sorts.

SilverElfin today at 3:18 PM
I love the names and branding of that era. Technology today is far more advanced but it doesn’t have that same excitement for consumers.