3dfx Voodoo 1 Retro Reboot: FPGA Project Recreates The Legendary 1990s GPU

Nostalgic console gaming aficionados have it good, man. You've got all kinds of options for playing retro console games, up to and including systems like the Analogue 3D that painstakingly recreate the original hardware using Field Programmable Gate Arrays (FPGAs), chips that can literally be reconfigured on the fly. Old PC gamer nerds like me haven't had access to such a thing, but that might change before long.

Francisco Ayala Le Brun, who happens to be the CTO of glass-as-screen company VideowindoW, has implemented the core logic of the original 3dfx Voodoo in SpinalHDL, which is a Hardware Description Language that can be used to configure FPGAs. You might think, "well, that's a pretty old card, and it's just doing graphics, so it must have been pretty simple, right?" Not so much.

As Le Brun explains on his blog, "matching the Voodoo's exact behavior closely enough that the wrong pixels stopped appearing" was quite a task. You see, the Voodoo isn't like modern GPUs. It isn't programmable at all. Everything it does is done by fixed-function hardware, which is part of how it was able to be so fast back then. But what you might not realize is that what it is doing is actually quite a lot of things.

screamer2 fpga voodoo1
Racing game Screamer 2 running on the emulated Voodoo card. Image: Francisco Ayala Le Brun

To quote Le Brun again, "even a single triangle may involve interpolated colors, texture sampling, mip level selection, bilinear or trilinear filtering, alpha clipping, depth comparison, clipping, and fog." All of these functions are implemented directly into the silicon, so you have to replicate all of these functions in the HDL code that configures the FPGA. Moreover, you have to get the timing exactly right because of the deeply pipelined nature of the Voodoo architecture.

The full details of the implementation are honestly over my head, but Le Brun goes into extreme detail in his blog post, if you'd like to read it. Most of the post seems dedicated less to "how implementing the Voodoo was hard" and more about how SpinalHDL and Conetrace made it possible for him to do the FPGA reimplementation of the classic graphics processor by himself. He hasn't made any indications that he intends to sell FPGA-based Voodoo cards, but it's plausible someone else could take his work and do so. If you're handy with HDL, you can check out the fully open source code on Le Brun's GitHub.

Hat tip to Hackaday for spotting this story.
Zak Killian

Zak Killian

A 30-year PC building veteran, Zak is a modern-day Renaissance man who may not be an expert on anything, but knows just a little about nearly everything.