SpinalVoodoo FPGA Core Brings Cycle-Accurate 3DFX Voodoo to MiSTer
Francisco Ayala Le Brun has built a near-complete FPGA reimplementation of the 3DFX Voodoo 1, with Glide games running on silicon as if it's 1996.

Francisco Ayala Le Brun, who serves as CTO at the Dutch company VideowindoW, has taken a path most retro hardware enthusiasts would consider audacious: building a near-complete FPGA reimplementation of the original 3DFX Voodoo 1 graphics accelerator entirely by himself. The project, named SpinalVoodoo, is already live on GitHub and represents one of the most technically demanding preservation efforts the MiSTer community has seen.
Le Brun recently detailed the significant effort required to describe the Voodoo chip in SpinalHDL, a hardware description language designed to convert projects into digital models that can then be realized in "real" hardware by configuring the integrated circuits of a modern FPGA chip. Designed to use the same Terasic De-10 board as the popular MiSTer retro console format, the implementation aims to provide the same unique graphics as a vintage gaming PC armed with the add-on board, which in turn could help devices similar to the Commodore 64 Ultimate or Analogue 3D replicate a specific '90s rig vibe.
The cycle-accurate ambition here is not trivial. The Voodoo 1 is old, but it is not simple. It has no transform-and-lighting hardware and no programmable shaders, so all of its graphics behavior is fixed in silicon: gradients for Gouraud shading, texture sampling, mipmapping, bilinear and trilinear filtering, alpha clipping, clipping, depth testing, fog, and more. In 3dfx-based graphics, the CPU handles the complex mathematical calculations required to describe a 3D scene, while the Voodoo accelerator's primary role is to render mapped triangles as quickly as possible. Le Brun noted that this apparent barebone design "can make the hardware sound simpler than it really is. Even a single triangle may involve interpolated colors, texture sampling, mip level selection, bilinear or trilinear filtering, alpha clipping, depth comparison, clipping, and fog. None of these operations are programmable in the modern sense. They are all baked into the silicon."
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. The payoff for getting those timings right is significant: a frame of Screamer 2 rendered not by an original 3dfx card and not by an emulator, but by an FPGA reimplementation of the Voodoo 1 written in SpinalHDL. The GitHub repository shows off simulations of several games, including Quake, Screamer 2, and Valley of Ra.
The broader implication for the Glide API faithful is that this approach sidesteps the compromises that have plagued Voodoo compatibility for decades. Software wrappers like dgVoodoo offer moderate accuracy but remain hostage to OS compatibility layers. Running original cards means contending with aging, failure-prone silicon. SpinalVoodoo sits in between: cycle-accurate in behavior, but updateable when bugs surface, something the fixed-function chips of the 1990s could never offer.
The end goal is running classic PC titles, including the likes of Tomb Raider, with proper 3DFX Voodoo graphics. The card was an additional accelerator that paired with a traditional VGA card, so the vibe is very different from a dedicated GPU or anything using DirectX. There were even some arcade machines, like Gauntlet Dark Legacy and San Francisco Rush: The Rock, that utilized the graphics tech, so the new FPGA core doesn't just benefit retro PC players.
There are real hardware constraints to clear first. Even once the SpinalVoodoo FPGA core is complete, it will need something more advanced than a current-gen MiSTer with an Intel Pentium CPU implementation to fully mimic an old-school PC build. The project currently focuses on Voodoo 1 rather than the later Voodoo 2 and 3 models. Exactly how large an FPGA board would be needed to run an AO486 core together with the Voodoo 1 remains an open question; MiSTer's DE-10 Nano is almost certainly not large enough. His SpinalVoodoo FPGA implementation is available on GitHub with only a few features of the original Voodoo chip still missing, and he does not currently appear interested in selling FPGA hardware built around the SpinalVoodoo design.
What surprised Le Brun was not just that it worked, but that a design like this can now be described, simulated, and debugged by one person, provided the tools let you express the architecture directly and inspect execution at the right level of abstraction. For anyone who remembers Quake in 640x480 Glide mode and has been chasing that exact rendering ever since, that one-person achievement is the whole story.
Know something we missed? Have a correction or additional information?
Submit a Tip

