proomt

Search

Search posts, papers, and topics

All posts

Hacker News front pageby nand2mario13 min readadvanced

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

Summary

The author built zSST, a SystemVerilog recreation of the 3dfx Voodoo 1 graphics chip, and integrated it with a z486 CPU on a Xilinx KV260 to run DOS games with original 3D rendering at 100 MHz. The post details the fixed‑point pipeline, stage breakdown, and memory subsystem needed to sustain one pixel per clock.

  • zSST implements most Voodoo1 features (triangles, texture filtering, mipmapping, depth, fog, blending) in SystemVerilog, running at 100 MHz on a KV260.
  • The pixel pipeline is split into a four‑stage TMU front‑end and six FBI stages, using fixed‑point arithmetic derived from the original spec.
  • Memory bandwidth is the bottleneck; four‑way interleaved texture RAM and parallel accesses are used to sustain one pixel per clock.
  • All geometry transforms are done on the host z486 CPU, leaving the FPGA to handle rasterization and pixel operations.

FPGA designers and retro‑hardware enthusiasts will care because it shows how to recreate a classic 3D GPU with modern programmable logic, exposing practical pipeline and memory design trade‑offs.

7/10

Related reading

  1. A custom virtual machine for the Stars! 4X game

    Stars!VM is a 32‑bit Windows executable that embeds a custom 80286 emulator and a Win16‑to‑Win32 bridge to run the 1995 4X game Stars! without any external emulators. The author adds differential fuzzing, hot‑routine patching, I/O buffering and asset compression, achieving about a 2× speedup in turn generation.

    Chris Wellonsnullprogram.com5 minHN8422
  2. Benchmarking Wild vs Mold

    Reproduces Mold’s linker benchmarks on a 16‑core Ryzen, shows that configuration (filesystem, delete‑output, fork) explains most of the Wild vs Mold speed gap, and notes recent Mold releases and upcoming Wild tweaks that close the gap.

    Lobstersgithub.io4 minHN461lobste.rs52