26 comments

[ 1.3 ms ] story [ 51.8 ms ] thread
My first video card.

Getting it working in linux in ~1999 was really not easy, especially for a teenager with no linux experience.

My networking card wasn't working either, so I had to run to a friend's house for dial-up internet access, searching for help on Altavista.

Very cool project. Way above my head, still!

My first as well, getting drivers working on *nix I. The mid 90’s.. was always a fun challenge.

Also had the issue with modem, paging through the manual figured out the initialisation string

AT&FX1

Same here. I remember some kernel module or video driver named tdfx, and then, struggling to make X11 work with this DRI (Direct rendering infrastructure or something like that) setting on. It was very rewarding to see it enabled on glxinfo's output after days compiling half of your system and trying to figure out what was wrong, specially when the access to the internet was limited, and then being able to launch GLtron with hardware acceleration. Also remember playing Quake 3 and America's Army games around that time.

Fun times, now everything is straightforward on Linux but I somehow miss that era when you actually had to do everything by yourself.

A 3dfx Voodoo Banshee was the first graphics card I ever bought. I bought it to play the EverQuest beta, which also would have been around 1999. I remember logging into that game for the first time and it felt like a life-changing experience. And it kind of was.

I remember really liking the 3dfx splash screen[1] for some reason. Maybe because it was the only thing that actually ran smoothly on that card. But still, I was a loyal 3dfx user - probably because of their marketing which someone else mentioned in the comments - and was sad when it went out of business a couple years later.

[1] https://www.youtube.com/watch?v=LanTZ_AnAso

I love the names and branding of that era. Technology today is far more advanced but it doesn’t have that same excitement for consumers.
The project is cool, but the LLM generated blog bothers my brain.
I find your (and my!) reaction to LLM generated text fascinating. It has a distinct smell, and I honestly can't really put words to why I find it repellent, I just know that I do.
Are you sure this is AI? Normally when I read AI written stuff I zone out because it can go entire paragraphs without saying anything. The sentences here seem short and to the point.

Their previous posts published before ChatGPT seem similar enough. Although, they have way more em dashes and this one has none, almost like they were removed on purpose... lol

I don't know what is real anymore.

I'm fairly sure not because I have proof, but because of all the "not this, but that!" clauses.

If you spend time generating text with LLMs, there is a style that you learn to recognize pretty quickly.

Also, to be clear -- I'm not saying that we shouldn't use LLMs to help us produce the best text/prose we can -- but letting them just generate a lot of the text doesn't led to the best outcome imo.

The Voodoo cards had no right to look as good as they did for their time. Someone rebuilding one from scratch is exactly the kind of project HN was made for.
Tribes 1 looked so good thanks to Glide…
I had a Voodoo3, can't remember the model number anymore, but my friend who had a TNT2 would often comment about how much worse the 3dfx's 16bit color looked vs the TNT2's 32bit. I could never tell a difference.
Voodoo 16bit was nicely dithered. TNT 16bit was ugly while 32bit looked good by sacrificing ~30-50% of performance.

Nvidia was very smart to advertise 16 bit performance _and_ 32bit quality at the same time :)

3dfx were stupid not to include token 32bit output option on Avenger chip (voodoo3). Every voodoo chip since first one has performed blending calculations in full precision and only dropped to dithered 16bit output to save on framebuffer ram, but that ram saving was meaningless by the time 16MB V3 released.

I find it odd the author adds all these extra semantics to their input registers, rather than keeping the FIFOs, "drain + FIFOs", "float to fixed point converting register", etc as separate components, separate from the task of being memory mapped registers. The central problem they were running into was one where they let the external controller asynchronously change state in the middle of the compute unit using it.

I'm noting down this conetrace for the future though, seems like a useful tool, and they seem to be doing a closed beta of sorts.

I have such fond memories of my old Voodoo card. Surprised how much nostalgia those pictures evoked - its rendering really had a unique look this that (LLM-generated?) FPGA captured quite well.

IIRC, it was a gigantic (for the time) beast that barely fit in my chassis - BUT it had great driver support for ppc32/macos9 (which was already on its way out), and actually kept my machine going for longer than it had any right to.

And then, like a month after I bought it, NVidia bought 3dfx and immediately stopped supporting the drivers, leaving me with an extremely performant paperweight when I finally upgraded my machine. Thanks Jensen.

Tangentially related, that screenshot of Screamer 2 caught me off guard completely, I loved that game to death, and I feel I was the only one of my friends to have played it. Tremendous handling model and superb music.
Oof. The gamma on that screenshot.

If you want to see what it's supposed to look like, copy the screenshot into GIMP, go into "Color, Levels" and in the "Input Levels" section, there should be a textbox+spinner with a "1.00". Set that to 0.45.

It’s been a while since I’ve struggled with Xilinx tools, but I can’t imagine there aren’t any hardware limitations these days. Does this run on a Spartan 6, or do you need the latest UltraScale for it?

Or does this only run in simulation anyway?

I guess it's cool because it could possibly produce a single board design able to emulate many designs with a flash update including SLI requiring 2 Voodoo cards plus a host 2D card that could all be placed onto said one card. I don't know how one engineers the analog DAC bandwidth to render SVGA faithfully at 1600x1200 @ 60 Hz from a FPGA frame buffer though.

Btw, most 8 MiB vintage Voodoo 2 cards can be upgraded to 12 MiB by simply soldering on more RAM. I managed to snag a bunch of legit 125 MHz chips that work with every card produced.

Very cool! I am wondering one thing: how fast is it? Much of the "secret sauce" of the Voodoo is its high speed: a first-gen Verite or (God forbid) any ViRGE takes many more cycles for common operations like, say, Z-buffered pixels.

I'm guessing this isn't fully cycle-accurate, but is it at least somewhat "IPC-accurate"? I'm guessing yes? But much of that was also derived from Voodoo's (for the time) crazy high memory bandwidth AFAIK.

Which actual FPGA is this running on? I've been extremely curious on this space and would love to know what it took to actually get this to run.
The author mentioned the DE-10 Nano on another comment, which is the original board used by the MiSTer project, based on the Cyclone V.
I was wondering if modern 2d games with modern Linux OS could run on Voodoo and lucky I found this post instead of it being 3 years old.