Key takeaways
- Host 1's EPoX EP-8RDA+ changed its MAC between boots, read 1152 then 1921 MHz, and reset its clock to 2004-07-29 before it stopped booting: a dying BIOS, not a flaky card.
- The Award bootblock floppy was verified sector by sector;
awdflash /Fis not "force",/sbwas the safety decision, and the flash outcome was never recorded. - Six "wedges the driver" verdicts on host 2 were one wedge that broke the board while the agent survived. Agent liveness is not board liveness.
- One configuration per clean boot is necessary, not sufficient: cfg 1 ran 640×480 at 106.9 fps and wedged at 800×600.
- Fourteen lost rows were re-measured rather than reconstructed; every cell came back except cfg 1 at 800×600, which timed out.
Host 1: two "box-killers" that were not
The campaign proper opened on 2026-09-12 on host 1, an EPoX EP-8RDA+ nForce2 board with an Athlon XP-class processor whose clock this report does not print. Only Quake III's demo four at 640×480×16 ran there. cfg 0, the setting the driver labels "Single Chip Only", returned 126.6 fps; cfg 5, labelled "Quad Chip, Fastest Performance", returned 150.2, then 151.4 and 154.2 on repeats, a spread of about 2.6%.
At 14:58Z cfg 8, the driver's "8-Sample AA" setting, hung during a vid_restart: the log ends at "Shutting down OpenGL subsystem", and the agent died while Windows stayed up, ports 139 and 445 open, 9897 accepting connections and never answering. A probe then "proved" grSstWinOpen hangs on cfg 0 through 7, until it was found passing a null window handle. It was the probe.
At 15:27Z cfg 2, labelled "Dual Chip", hung the same way, seven minutes without finishing an 8-second timedemo; the commit reads "2-chip SLI is a second box-killer". Both were wrong (Retraction 1). The surviving cells are in the host 1 results: cfg 0 again at 127.8, cfg 1 (2-sample AA requested, not delivered) at 126.9. The 151.4 re-run and the cfg 8 hang survive only in a pre-migration copy of the CSV.

Host 1's four surviving 640×480 cells; never compared with host 2.
Why did the test rig need a BIOS recovery floppy?
Because the motherboard was dying under the card, and had said so for days. Host 1's nForce NIC changed its MAC between boots (00-04-61-2F-8F-84 in the published record, 00-04-61-F7-25-84 in a live read on 09-12), and the nForce keeps its MAC in the BIOS. The board reported its CPU clock as 1152 MHz on one day and 1921 MHz on another, which is why this series prints no clock for it. The real-time clock reverted to 2004-07-29, the build date of BIOS 8RDA4729. On 2026-09-13 the box stopped booting with no video: a corrupted main BIOS.
The recovery plan was Award's bootblock: 8RDA4729.BIN (262,144 B, md5 f2e2164fa37139fb6e3ec1464329c3dc), awdflash 8.24G and the line AWDFLASH 8RDA4729.BIN /py /sn /sb /cc /cd /cp /R, on FreeDOS 1.3. /sb skips the bootblock so a failed flash stays retryable: the safety decision. Its own strings produced Retraction 3: /F is not "force" but "Use Flash Routines in Original BIOS For Flash Programming", /tiny destroys the BIOSLock signature, /QI is a part-number check. rawfd.exe reads back every sector it writes; on .133's drive all 2880 matched.
The outcome of the blind flash is recorded nowhere; the dossier says the board was written off. Era lore feared the opposite: x86-secret called the HiNT bridge "the biggest death cause for the Voodoo 5 6000 cards in the world". Here the board died and the card walked away.
The card moves to host 2: "3dfx device not found"
Host 2 is .124: an Athlon XP 2400+ at 2004 MHz, 255 MB, Windows XP SP3, the same VX1120 CRT. It had carried a GeForce2 GTS, so the Voodoo enumerated as display-class instance \0001 where host 1 had \0000; a harness that hardcoded \0000 wrote the SLI/AA value into the other card's key and read it back from the wrong place.
The card arrived on Microsoft's in-box XP Voodoo5 driver, 3dfxvs2k.inf 5.1.2001.0, which ships no Glide and no OpenGL ICD: an empty OpenGLdrivers key, a "3dfx device not found" dialog and glideprobe hung inside grGlideInit(). AmigaMerlin 3.1-R11 fixed all of it: a clean A/B in which only the driver changed. x86-secret ran a real rev-3700A on XP with AmigaMerlin 3.1 R6 and reported it completely stable; the rest of this part complicates that verdict.
Two lessons recorded alongside the card swap. On an nForce board, whose chipset and audio INFs are also NVIDIA-provided, "remove all NVIDIA drivers" removes far more than the GeForce. And a pulled card strands a ghost devnode for the HiNT bridge, the part a Voodoo 5 5500 never needed, since only its master chip is visible on the AGP bus (x86-secret). Host 2's chipset is not in its published record.
Six false verdicts: agent liveness is not board liveness
On the afternoon of 2026-09-15 a screening pass on host 2 returned "wedges the driver" for cfg 2, 3, 4, 5, 7 and 8. It was one wedge: cfg 5, the driver's default, written as the third topology change inside one boot, broke the board while the retro agent kept answering PING. Every later setting inherited a dead board and a live agent, and a harness that checked only the agent filed each as its own fault.
The fix was board_alive(), a glideprobe --res 640x480 --noopen after any failed cell, beside agent_alive(), a protocol PING rather than a TCP connect, since port 9897 accepts connections while the agent is dead. The first verified ladder followed, cfg 5 at 122.8 / 122.3 / 117.9 / 114.6 / 78.5 fps from 640×480 to 1600×1200 (first run; rows lost with the scratchpad, quoted from the dossier), and so did Retraction 1: repeated writes within one boot wedge the driver, a resolution change is not a topology change, agent liveness is not board liveness.
Three agent deaths in one afternoon produced the Run-key watchdog at 14:09: agentwd.cmd, registered as RetroAgentWD, runs tasklist every 30 s and relaunches the agent; killed on purpose, it answered PONG in under 5 s. A scheduled task would have put the password in argv and run in the wrong session for a Glide window.
The failure log
Dates are 2026; unsuffixed times are local (EDT, UTC−4); Z is UTC.
| date | host | event | what it turned out to be |
|---|---|---|---|
| 09-12 14:58Z | host 1 | cfg 8 hung in vid_restart; agent died, OS up | the vid_restart route; cvars now set before R_Init |
| 09-12 15:27Z | host 1 | cfg 2 hung, 7 min on an 8-s timedemo | a driver wedge, not a box-killer |
| 09-12 to 09-13 | host 1 | MAC, clock and RTC drifting, then no video | corrupted main BIOS; board written off |
| 09-15 | host 2 | six settings "wedge the driver" | one wedge, cfg 5 as a 3rd topology write; dead board, live agent |
| 09-15 | host 2 | cfg 1 wedged at its second cell after a clean boot | not the write count either |
| 09-15 | host 2 | a cfg 1 hang left the game on screen (cell not recorded) | needed a physical power cycle |
| 09-15 ~21:00 | dev host | scratchpad deleted | 14 rows, 12 verified cells, lost; re-measured |
| 09-16 01:59Z | host 2 | UT99 cfg 7: ConnectionRefusedError | agent down; no UT99 fps table exists |
Is one configuration per clean boot enough?
Necessary, not sufficient. The sweep now gives every setting its own clean boot, writes the SLI/AA value once and walks the five resolutions. cfg 1 (2-sample AA requested, not delivered) got the same clean boot and single write, ran 640×480 at 106.9 fps and wedged on its second cell, 800×600. That is Retraction 1b. A retry reached 800×600 at 86.4; the re-measurement timed out there again and stopped after 1024×768 at 58.2. One cfg 1 hang left the game on screen and needed a physical power cycle. cfg 2, the "box-killer" of 09-12, walked all five resolutions in one boot that evening, 124.7 / 140.1 / 136.1 / 134.5 / 87.0, measured once.
Established: AmigaMerlin 3.1-R11 wedges under repeated Glide context creation, and only cfg 0, cfg 5 and cfg 2 have completed a five-resolution run. No predictor survives: "that config is bad", "write count" and "any AA enabled" (fits cfg 1 and 8, not 2 and 5) are all refuted. Hence two rules: a retry is earned only by a pass that measured a cell, and a quiet log is a wedge only before the renderer identifies itself.
The era's instability was different: prototypes "never reached a fully stable state when FSAA was applied … over all PCB revisions" until Hank Semenec's resistor rework (Vogons). Those were board faults under real anti-aliasing; the lab's wedges are driver-level, and its anti-aliasing never engaged.
Fourteen rows lost: why re-measure rather than reconstruct
At about 21:00 on 09-15 the session scratchpad was deleted, taking 14 measured rows, 12 of them verified cells. The numbers survived in prose; the CSV did not. They were not retyped, because a row here is a frame rate plus the GL_RENDERER block printed on that run, the md5 of every driver file and the exact quake3.exe; AmigaMerlin ships rebranded 3dfx binaries, so only the hash identifies them. The sweep now refuses /tmp output; at 22:59 versions were backfilled onto the 18 re-measured rows, marked retroactive: true in the versions file.
Re-measurement began at 21:10, ten minutes after the deletion and roughly eight hours after the first run, into the host 2 results CSV that the card's benchmark page renders, the campaign's only repeatability data:
| cell | cfg 5 first → re-run | cfg 0 first → re-run |
|---|---|---|
| 640×480 | 122.8 → 108.1 (−12.0%) | 105.3 → 97.4 (−7.5%) |
| 800×600 | 122.3 → 120.2 (−1.7%) | 88.0 → 88.1 (+0.1%) |
| 1024×768 | 117.9 → 116.9 (−0.8%) | 58.7 → 58.6 (−0.2%) |
| 1280×960 | 114.6 → 115.4 (+0.7%) | 38.8 → 38.8 (0) |
| 1600×1200 | 78.5 → 78.7 (+0.3%) | 25.1 → 25.1 (0) |
GPU-bound cells repeat; the CPU-bound 640×480 cell moved for cfg 0 and cfg 5 and repeated exactly for cfg 1 (106.9 both times). The watchdog was installed between the runs and its tasklist loop runs during every benchmark: noise is the hypothesis, the watchdog the candidate cause, and a re-measurement with the loop paused was scheduled before host 2 went offline.

First run against re-run on host 2.
The retractions, in order
Retraction 0 comes first: it changes the meaning of every AA figure in Parts 3 and 4.
| # | believed | measured | established |
|---|---|---|---|
| 0 | AA cells verified (aa_verified=yes) | writes, reads back, changes nothing: Quake III frames byte-identical at 4× requested; 2× requested costs 0.99× (58.2 vs 58.6); UT99 8× requested renders faster (5.1 vs 5.4 ms), edges staircased | FSAA does not engage through either path; every AA figure is requested, not delivered |
| 0b | cfg 0/2/5 are one, two and four chips (3dfx Tools' labels) | cfg 2 = 3.47× cfg 0 at 1280×960 and 1600×1200; beats cfg 5 at every resolution | one registry value takes 1600×1200 from 25.1 to 87.0 fps; no chip count is established |
| 1 | cfg 2 and cfg 8 are box-killers | cfg 5, the default, hung as a 3rd topology write, worked as a 1st and 2nd | repeated writes in one boot wedge the driver; agent liveness is not board liveness |
| 1b | it is the count of topology writes | cfg 1: clean boot, one write, 106.9 at 640×480, then wedged | wedges under repeated Glide context creation; predictor unknown |
| 2 | GR_NUM_FB = 4 means chips ganged | reads 4 for every setting, "Single Chip Only" included | chips present, not ganged |
| 3 | awdflash /F is "force" | its own string reads "Use Flash Routines in Original BIOS For Flash Programming"; /tiny destroys BIOSLock | /sb is the safety switch |
| 4 | the old harness applied its FSAA axis | it logged "apply via the card's driver profile if configured" and wrote the level anyway | a level recorded, never applied; its 09-12 runs were dry runs |
Bottom line
Parts 3 and 4 are trustworthy because of this part, not in spite of it: a board that could not keep its own MAC address was retired rather than blamed on the card, six verdicts were withdrawn once a liveness check reached the board, and fourteen rows were re-measured rather than retyped. 3dfx's own Comdex '99 6000 was a mock-up with four Voodoo3-3500 chips, a step up from a Voodoo3 3000, under VSA-100 decals (thedodgegarage); this one outlived a motherboard. No Voodoo 5 6000 listing exists in the catalog, a rev-3700A prototype having sold for $15,000 in 2023 (Tom's Hardware); a Voodoo 5 5500 AGP or its PCI Mac edition is what actually trades.
Related guides
- Why Nvidia killed 3dfx and how Voodoo still shapes every GPU launch
- Building a period-correct 1999 3dfx Voodoo3 Windows 98 PC
- Using an LLM to fix Win98 Voodoo and TNT driver installs
- Part 2 — the test systems and method these events shaped
- Part 6 — the verdict, and what the lab tests next
The Voodoo 5 6000 that finally shipped — a SpecPicks Retro Lab series
- Part 1 — The card that never shipped, reproduced
- Part 2 — Test systems and method: two motherboards, one dead BIOS
- Part 3 — Quake III benchmarks at five resolutions
- Part 4 — FSAA: the feature that never engaged
- Part 5 — Hangs, wedges, retractions and a bricked board
- Part 6 — Verdict, and what the lab tests next
Citations and sources
- Campaign dossier: https://nscagentstorage.blob.core.windows.net/article-images/voodoo5-6000-strange-god/dataset/campaign-dossier.md (accessed 2026-09-16)
- Host 1 results: https://nscagentstorage.blob.core.windows.net/article-images/voodoo5-6000-strange-god/dataset/host1-191-results.csv (accessed 2026-09-16)
- Host 2 results: https://nscagentstorage.blob.core.windows.net/article-images/voodoo5-6000-strange-god/dataset/host2-124-results.csv (accessed 2026-09-16)
- Host 2 versions: https://nscagentstorage.blob.core.windows.net/article-images/voodoo5-6000-strange-god/dataset/host2-124-versions.json (accessed 2026-09-16)
- x86-secret hands-on: http://www.x86-secret.com/articles/divers/v5-6000/v56kgb-6.htm (accessed 2026-09-16)
- thedodgegarage FAQ: http://www.thedodgegarage.com/3dfx/v6k_faq.htm (accessed 2026-09-16)
- Vogons, reworked 3700A: https://www.vogons.org/viewtopic.php?t=51006 (accessed 2026-09-16)
- Tom's Hardware, $15,000 prototype: https://www.tomshardware.com/news/3dfx-voodoo-5-6000-sold-for-15000-dollars (accessed 2026-09-16)
This is a first-party lab report: the measurements above were taken by the SpecPicks Retro Lab on its own hardware. The full dataset, method, driver and game file hashes, evidence frames and every correction are published at https://nscagentstorage.blob.core.windows.net/article-images/voodoo5-6000-strange-god/dataset/campaign-dossier.md. It is not editorial synthesis of third-party sources.
— SpecPicks Retro Lab · Last verified Sep 16, 2026
