Skip to main content
Voodoo 5 6000 Stability: Hangs, Wedges and a Bricked Board

Voodoo 5 6000 Stability: Hangs, Wedges and a Bricked Board

Six false wedge verdicts, seven retractions and one dead EPoX BIOS

Voodoo 5 6000 stability on the Retro Lab's Athlon XP hosts: a self-bricking BIOS, six false wedge verdicts, 14 lost rows re-measured, seven retractions.

Quick Answer

The Voodoo 5 6000 campaign lost its first host to a corrupted motherboard BIOS on 2026-09-13, returned six false "wedges the driver" verdicts on the second host in one afternoon, lost 14 measured rows to a deleted scratchpad, and re-measured them. Seven retractions are in the campaign dossier; they are why the surviving numbers can be trusted.

Voodoo 5 6000 stability, on the SpecPicks Retro Lab's evidence, is a driver story more than a silicon story: AmigaMerlin 3.1-R11 wedges under repeated Glide context creation, and the one board that died took itself out with a failing BIOS before anyone could blame the card.

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 /F is not "force", /sb was 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 Quake III 640x480 bars

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.

datehosteventwhat it turned out to be
09-12 14:58Zhost 1cfg 8 hung in vid_restart; agent died, OS upthe vid_restart route; cvars now set before R_Init
09-12 15:27Zhost 1cfg 2 hung, 7 min on an 8-s timedemoa driver wedge, not a box-killer
09-12 to 09-13host 1MAC, clock and RTC drifting, then no videocorrupted main BIOS; board written off
09-15host 2six settings "wedge the driver"one wedge, cfg 5 as a 3rd topology write; dead board, live agent
09-15host 2cfg 1 wedged at its second cell after a clean bootnot the write count either
09-15host 2a cfg 1 hang left the game on screen (cell not recorded)needed a physical power cycle
09-15 ~21:00dev hostscratchpad deleted14 rows, 12 verified cells, lost; re-measured
09-16 01:59Zhost 2UT99 cfg 7: ConnectionRefusedErroragent 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:

cellcfg 5 first → re-runcfg 0 first → re-run
640×480122.8 → 108.1 (−12.0%)105.3 → 97.4 (−7.5%)
800×600122.3 → 120.2 (−1.7%)88.0 → 88.1 (+0.1%)
1024×768117.9 → 116.9 (−0.8%)58.7 → 58.6 (−0.2%)
1280×960114.6 → 115.4 (+0.7%)38.8 → 38.8 (0)
1600×120078.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.

Host 2 Quake III first run versus re-run

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.

#believedmeasuredestablished
0AA 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 staircasedFSAA does not engage through either path; every AA figure is requested, not delivered
0bcfg 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 resolutionone registry value takes 1600×1200 from 25.1 to 87.0 fps; no chip count is established
1cfg 2 and cfg 8 are box-killerscfg 5, the default, hung as a 3rd topology write, worked as a 1st and 2ndrepeated writes in one boot wedge the driver; agent liveness is not board liveness
1bit is the count of topology writescfg 1: clean boot, one write, 106.9 at 640×480, then wedgedwedges under repeated Glide context creation; predictor unknown
2GR_NUM_FB = 4 means chips gangedreads 4 for every setting, "Single Chip Only" includedchips present, not ganged
3awdflash /F is "force"its own string reads "Use Flash Routines in Original BIOS For Flash Programming"; /tiny destroys BIOSLock/sb is the safety switch
4the old harness applied its FSAA axisit logged "apply via the card's driver profile if configured" and wrote the level anywaya 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.

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

Products mentioned in this article

Live Amazon & eBay pricing, plus full specs and alternatives on each product page.

As an Amazon Associate, SpecPicks earns from qualifying purchases; we also earn on qualifying eBay purchases via the eBay Partner Network. Prices shown were last tracked at crawl time and may vary — check the listing for the current price.

Find this retro hardware on eBay

Pre-2012 hardware isn't sold new on Amazon. eBay is the primary marketplace for the SKUs discussed in this article — auctions and Buy-It-Now listings update continuously.

Search eBay for "Voodoo 5" Live listings →

SpecPicks earns a commission on qualifying eBay purchases via the eBay Partner Network. Prices and availability change frequently.

Frequently asked questions

Why did the Voodoo 5 6000 test rig need a BIOS recovery floppy?
Because host 1, an EPoX EP-8RDA+ nForce2 board, stopped booting with no video on 2026-09-13 after days of warning signs: its MAC address changed between boots, it reported two different CPU clocks on two days, and its real-time clock reverted to 2004-07-29, the build date of BIOS 8RDA4729. That is a corrupted main BIOS, so the lab built an Award bootblock floppy with awdflash 8.24G and the /sb switch, verified every sector by read-back, and then wrote the board off; the flash outcome was never recorded.
Were cfg 2 and cfg 8 really box-killer settings on the Voodoo 5 6000?
No. Both hung on host 1 on 2026-09-12 and were recorded as box-killers, but on host 2 the driver's default cfg 5 hung identically when written as a third topology change in one boot and worked as a first or second. Retraction 1 established that repeated writes of the SLI/AA value within one boot wedge AmigaMerlin 3.1-R11; cfg 2 later completed all five resolutions in a single clean boot, from 124.7 fps at 640×480 to 87.0 at 1600×1200.
What does 'agent liveness is not board liveness' mean in this Voodoo 5 6000 test?
The retro agent that drives each machine kept answering PING after a Glide wedge had already broken the card, so a screening pass on host 2 filed six settings (cfg 2, 3, 4, 5, 7 and 8) as 'wedges the driver' when only one wedge had occurred. The harness now runs glideprobe after any failed cell and treats a TCP connect as no evidence at all, because port 9897 accepts connections while the agent is dead.
Why did the lab re-measure the 14 lost Voodoo 5 6000 rows instead of restoring them from notes?
Because a row in this dataset is a frame rate bound to the GL_RENDERER string printed on that run, the md5 of every driver file and the exact quake3.exe; AmigaMerlin ships rebranded 3dfx binaries, so only hashes identify them. The numbers survived in prose, but retyping them would have produced rows with no attribution. The re-run repeated the GPU-bound cells within 1.7% and moved the CPU-bound 640×480 cell by 7.5 to 12.0%, with the newly installed agent watchdog the candidate cause.
Is awdflash /F a force switch for a bricked Award BIOS?
No, and that was Retraction 3. The flasher's own strings say /F means 'Use Flash Routines in Original BIOS For Flash Programming', /tiny destroys the BIOSLock signature, and /QI is a part-number check rather than an override. The lab's recovery line was AWDFLASH 8RDA4729.BIN /py /sn /sb /cc /cd /cp /R, where /sb skips the bootblock so that a failed flash leaves the board retryable rather than dead.

Sources

— Mike Perry · Last verified 2026-09-16

More guides & deep dives from the SpecPicks archive

Browse all articles & guides →

More buying guides from SpecPicks

Browse all buying guides →

Hardware benchmark data on SpecPicks

All benchmarks →