Ask HN: How were graphics card drivers programmed back in the 90s?

4 ferguess_k 6 9/18/2025, 5:57:20 PM
I read this doc and it completely blew my mind.

https://www.haiku-os.org/legacy-docs/benewsletter/Issue4-8.html

I have done a few simple embedded driver development but graphic cards, even in the 90s, look like beasts to me.

I don't think there is any books on this topic -- the best thing we have is Linux Device Driver, and I don't think any book is going to dive deep into graphic card driver development. If I want to know the details, I'll probably read the source code of OSS drivers.

I'm wondering if there are more stories or blogs like this (maybe in the 80s too, remember those Hercules cards?). It really warms me up thinking about sitting in a cube, writing code for device drivers, reading docs everywhere, banging my head on every solid wall until I start to see code in air, quaffing coffee one by one, going into deep night...I know it's way more romantic than the real story but I can't keep myself wondering about it.

Comments (6)

MisterTea · 50m ago
You can download the Voodoo 2 programming manual which is only around 250-something pages long. The Voodoo2 was fixed function; you loaded assets into the voodoo memory then called functions to operate on those assets. The driver takes care of those two roles by loading and managing the assets in the voodoo memory and an API to program the registers on the card to execute functions on the loaded assets. There were more steps involved with geometry processing which happened in the driver but I am unsure if those were handled in user space by the libraries the application called or the driver code itself.

This isn't 250 something pages, only 132 so maybe I was wrong, but its a good look into how the Voodoo2 worked: https://www.dosdays.co.uk/media/3dfx/voodoo2.pdf

See also: https://3dfxarchive.com/reference.htm

A fun tidbit is the voodoo2 has a 2D mode but was not VESA compliant so it could not be used in a PC without being tied to a VESA card for 2D graphics. I believe that ability was there for custom and non-pc platforms.

Lumoscore · 2h ago
From what I’ve seen, a lot of 90s driver work was exactly that mix of partial docs, trial-and-error with registers, and mailing some engineer at the card vendor hoping they’d admit to a bug. It wasn’t glamorous, but it’s kind of wild how much of it came down to persistence and a bit of luck
ferguess_k · 1h ago
Thanks. I bet there were a lot of battle stories like what I read. Alas most of those went into history's garbage bin :/

I was even thinking about getting my hand on a few cheap physical cards (not sure which ones are cheaper), a Pentium box, and see if I can do anything -- even displaying some colors is fun enough.

JohnFen · 2h ago
During that time, I had a job for a major games company doing nothing but developing Windows graphics card drivers. They were moderately complex beasts (enormously complex compared to other device drivers), but not really that huge of a thing.

The biggest effort about them was reverse-engineering certain cards. The games often used very strange video settings, and the card manufacturers had poor, sometimes no, documentation about their operation at a low level.

PaulHoule · 2h ago
These were pretty proprietary I remember.
ferguess_k · 2h ago
Yeah I think that was the case and still the case for many companies (nVidia). From what I briefly looked up, good thing that we can now develop drivers for virtual graphic card, and there are OSS drivers from both Intel and AMD.