Skip to content
Tech News
← Back to articles

Recreating Voodoo Graphics and a Late-1990s Gaming PC on an FPGA

read original get MiSTer FPGA Analogue Pocket Dock Kit → more articles
Why This Matters

An engineer has recreated the 3dfx Voodoo Graphics (SST-1) chip and a late-1990s DOS PC using an FPGA, running classic titles like Tomb Raider with their original 3dfx renderer. This project highlights how hardware preservation efforts can faithfully reconstruct legacy computing experiences at the hardware level, offering insight into both retro-computing communities and the technical challenges of emulating obsolete 3D graphics pipelines.

Key Takeaways
Worth a Look

MiSTer FPGA Analogue Pocket Dock Kit — This article's whole retro-PC recreation runs on a Xilinx Kria KV260 board, the exact FPGA platform used to bring Voodoo Graphics back to life. If you're into FPGA tinkering and recreating classic hardware like this project does, owning the same board lets you experiment with SystemVerilog designs like zSST yourself.”,

See MiSTer FPGA Analogue Pocket Dock Kit on Amazon → Affiliate link — we may earn a commission on purchases, at no extra cost to you. Product picked by AI based on this article; it is not a tested recommendation.

I've spent the last month adding features and improving performance in z486_MiSTer, mostly working through games from the first half of the 1990s. Looking a few years ahead brought me to another change I wanted to explore: the arrival of 3D graphics cards.

The first one that left a strong impression on me was the Voodoo. The game was Need for Speed II SE. Smooth textures, fog, and the speed of the whole thing made it feel like a new generation of PC gaming. Could I recreate that on an FPGA now that the z486 CPU exists?

The result of this detour is zSST, a SystemVerilog implementation of the 3dfx Voodoo Graphics, or SST-1. Combined with my z486 CPU and the surrounding PC hardware, it forms z486 XL: a DOS PC with Voodoo graphics running in the programmable logic of a Xilinx KV260 board. Tomb Raider now runs with its original 3dfx renderer.

zSST rendering the Utah teapot in simulation. Tomb Raider on the complete FPGA PC.

zSST implements most of the central Voodoo features: prepared triangles, texture filtering and mipmapping, depth and alpha tests, fog, blending, dithering, framebuffer access, and buffer swaps. It supports both the fixed-point and floating-point setup interfaces. Hardware game testing is still concentrated on Tomb Raider; broader compatibility and later Voodoo generations are work for another day.

The CPU and renderer run at 100 MHz on the KV260. That board has enough logic, DSP blocks, on-chip memory, and DDR bandwidth for the combined design. The DE10-Nano does not have room for this graphics addition. The KV260 uses its onboard DDR; there is no external SDRAM module to add.

Starting from the programming model

Fortunately, there is plenty of material to work from. 3dfx released the Glide source in 1999, before NVIDIA acquired its core graphics assets in December 2000. The surviving Glide source and SST-1 specification explain how software prepares triangles, configures the pixel pipeline, and manages textures and framebuffers.

The specification is a behavioral target, rather than a circuit diagram. It tells what should happen when software writes a register, but leaves many implementation choices open. 86Box provides useful references for complicated rendering behavior. The earlier MAME Voodoo work is another part of this preservation history. SpinalVoodoo supplied particularly useful Glide traces and reference screenshots for testing.

From triangles to 3D, one pixel per clock

... continue reading