Building an FPGA 3dfx Voodoo with Modern RTL Tools

" This frame of Screamer 2 was rendered not by an original 3dfx card and not by an emulator, but by an FPGA reimplementation of the Voodoo 1 that I wrote in SpinalHDL. Available on GitHub.

What surprised me was not just that it worked. It was 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.

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. A modern GPU concentrates much of its complexity in flexible programmable units. The Voodoo concentrates it in a large number of hardwired rendering behaviors.

One of the bugs that drove this home looked at first like a framebuffer hazard. Small clusters of partially translucent text and overlay pixels would go mysteriously transparent, even though most of the frame looked fine. The real issue turned out not to be one broken subsystem, but several small hardware-accuracy mismatches stacking up in exactly the wrong way. That bug ended up being a good summary of the whole project: the hard part was not “making triangles appear.” It was matching the Voodoo’s exact behavior closely enough that the wrong pixels stopped appearing.

This post is about the two abstractions that made that tractable. The first is how I represented the Voodoo’s register semantics in SpinalHDL. The second is how I debugged a deep graphics pipeline using netlist-aware waveform queries in conetrace. "

cont. in dev blog.

Building an FPGA 3dfx Voodoo with Modern RTL Tools

"My first triangle" dated 2003. Using 3dfx Glide in Free Pascal Compiler. And yes, the music is a part of this.

#retrocomputing #gamedev #graphicsprogramming #pascal #3dfx

Roughly 25 years ago I bought a #Voodoo 5 graphics card, about 10 minutes before #3dfx went tits up. I was gutted after spending £200 on something that wasn’t going to be supported for too much longer.

After getting rid of that PC years ago and having seen the amount of money these are worth today, I’m wondering if the box of old shit I’ve got in the attic might actually be worth something.

Anybody want some old VGA cables and a PS/2 mouse missing the ball?

#RetroComputing #retrogaming

Heh! Never seen the original. Well, neither #2 but that was all the hype for a while. I got a Voodoo 3 2000 PCI back in the day. I still have it somewhere and I wish that I didn't get rid of its box. Oh, well.

The #3dfx Voodoo Lives Again In An #FPGA

#3dfxVoodoo #RetroGaming

https://hackaday.com/2026/03/22/the-3dfx-voodoo-lives-again-in-an-fpga/

The 3DFX Voodoo Lives Again In An FPGA

The 3DFX Voodoo was not the first dedicated 3D graphics chipset by any means, but it became the favourite for gamers among the early mass-market GPUs. It would be found on a 3D-processing-only PCI …

Hackaday
The 3DFX Voodoo Lives Again In An FPGA

The 3DFX Voodoo was not the first dedicated 3D graphics chipset by any means, but it became the favourite for gamers among the early mass-market GPUs. It would be found on a 3D-processing-only PCI …

Hackaday
🌗 使用現代 RTL 工具構建 FPGA 版 3dfx Voodoo
➤ 從硬體設計到精準還原:重現 90 年代圖形渲染的神話
https://noquiche.fyi/voodoo
本文記錄了作者如何利用現代硬體描述語言(HDL)工具,成功在 FPGA 上重新實現經典的 3dfx Voodoo 1 顯示晶片。與現代可程式化 GPU 不同,Voodoo 依靠大量的固定功能硬體來處理繁雜的圖形渲染任務,如紋理採樣、深度測試與模糊處理。作者指出,這項工程最困難的部分在於精準還原硬體行為,特別是解決管線(Pipeline)中的暫存器寫入同步問題。透過 SpinalHDL 及其 `RegIf` 抽象層,作者將暫存器的複雜語意封裝在單一程式碼區塊中,有效管理了管線狀態的一致性,並實現了更高效的除錯流程。
+ 這種將暫存器語意直接寫入硬體描述層的做法太聰明瞭!以前寫 Verilog 時,這些同步邏輯總是散落在各處,導致維護起來像惡夢一樣。
+ 很有啟發性。我一直以為 Voodoo 只是簡單的加速器,沒想
#FPGA #硬體設計 #3dfx Voodoo #SpinalHDL #數位電路設計
Building an FPGA 3dfx Voodoo with Modern RTL Tools

Building an FPGA 3dfx Voodoo with Modern RTL Tools

https://noquiche.fyi/voodoo

#HackerNews #FPGA #3dfx #Voodoo #Modern #RTL #Tools #RetroTech

Building an FPGA 3dfx Voodoo with Modern RTL Tools

Gerade bei #boemermann im #zdf royal gesehen: ein Bootscreen von einer #3dfx #voodoo5_6000 ...
Danach waren andere Dinge zu sehen ...