3dfx
3dfx (written as 3Dfx until 1999) was a 3D graphics chipset manufacturer and later on graphics card manufacturer. Founded in 1994, the company was one of the pioneers of 3D graphics in the PC industry in the mid to late 1990's. Their products were popular for arcade machines, PC 3D game accelerators and professional visualization systems. They played an important role in the 3D graphics industry until 2000, when most of their assets were purchased by NVIDIA Corporation, after which the company filed for bancruptcy and officialy went defunct in 2002.
Contents
General 3dfx advice
3dfx cards - namely their proprietary Glide API - can be considered one of the prime reasons to use vintage hardware today, because many early 3D games starting from 1996 had versions for at least some 3dfx cards, and in a lot of times, those versions had the superior image quality. Perhaps the most notorious example here is Unreal (1998), a game that first was developed for software rendering, but had a Glide renderer added as soon as it was clear that Voodoo would come out as the best 3D accelerator. The game also had Direct3D and OpenGL renderers, but Direct3D was well in its infancy back in the day and even the OpenGL renderer wasn't their best effort, therefore players with competitor cards had to wait for Epic's patches to improve the graphics, but in the end it would take fanmade patches to provide competitive renderers.
It was also common for game developers to put 3dfx logos on their games' boxes, leading to misconceptions for a decent amount of games supporting Glide which actually do not at all, or only provide a special MiniGL driver for 3dfx cards. This was again due to 3dfx being the dominant 3D solution at this time, and also a commonly known brand with PC gamers. Technically, all 3dfx MiniGL/OpenGL ICDs and the 3dfx Direct3D HAL redirect to Glide. If software does not straightforwardly access either glide2x.dll/ovl or glide3x.dll, it cannot be said to directly support the Glide API.
Since Glide was a proprietary interface, there were 3rd party efforts from day one to bring it to all 3D cards. Glide wrappers are at a level where they can properly emulate how those games would look on a real Voodoo card and can be considered a viable alternative to the real cards. A problem with them is that games written for Win9x are not necessarily compatible with modern operating systems, so only a (at best) period-correct Win9x system can be guaranteed to play all games properly.
The main weak points of all vintage cards apart from incompatibility with modern mainboards/operating systems are lack of full screen anti-aliasing (addressed with V5), anisotropic filtering (only started to be useful with about GF3) and bad performance in some then available Direct3D games, since Microsoft's API had the problem of not being programmable as close to the hardware as OpenGL and its MiniGL/Glide derivatives were and therefore was slow to take off initally.
The biggest disadvantage of 3dfx' SLI multiple GPU solution (V2 SLI/V5 for consumer cards) is that it is prone to slight horizontal artifacts somewhat akin to screen tearing, which results from the multiple chips not fully working synchronously. This can be prevented by activating VSync in the drivers or in the games, a solution which itself has the problem of causing mouse lag in many cases.
Cards of Voodoo2 SLI/3 grade speed scale with CPUs up until about a ~1 GHz Intel Pentium III Coppermine, although a PIII 500 Katmai should be enough to get all Glide games going fluently. AMD's K6 line can only be considered second choice when building a 3dfx centered PC, because these CPUs can be a significant bottleneck with some later games. Pentium Classic and Pentium MMX CPUs will only be able to run the earliest Glide titles decently, as these CPUs were already reaching the end of their lifecycle when 3dfx cards arrived. Older games besides a very few exceptions should be able to cope with faster CPUs. Lastly, it should be noted that Voodoo Graphics cards will not work with K7 (Athlon) CPUs, and Voodoo2 cards will need special 3rd party drivers to work with these CPUs.
Community-made resources for 3dfx cards include drivers, such as Amigamerlin, x3dfx and SFFT, which can provide more features and speed than the latest official drivers from 2000 and some of which allow the cards to be run under Windows XP, or tools such as V.Control which provide more in-depth tweaking options. For potentially better OpenGL compatibility or speed, one can use the MesaFX standalone OpenGL driver or Metabyte's WickedGL MiniGL driver.
Getting the best compatibility
For better compatibility and versatility, it is common practice among vintage computer enthusiasts to have multiple video or sound cards in one system. Back in the day, this was typically widespread and necessary for 3D-only 3dfx cards with a loop cable (V1/V2). That way, one can easily have a faster card for OpenGL/D3D (or a card supporting one of the other proprietary 3D APIs) combined with e.g. V2 SLI which will automatically engage when Glide is chosen in games. This may cause issues with some cards if for some reason OpenGL/D3D would be needed on the 3dfx card(s).
Another way is to combine said non-3dfx card with a 2D+3D 3dfx card, one of them being AGP and the other one PCI. Due to both being full video cards one would need to perform the switch in the BIOS under "Primary VGA adapter", "Boot from AGP/PCI" or likewise (if it supports it) depending on what card is needed. This method has the disadvantage of requiring to relocate the monitor cable each time because there is no passthrough; a monitor with multiple inputs or a VGA or KVM switch would solve that problem, potentially with DVI for one of the cards of available. This should work very reliably without any conflicts.
It is also possible to take advantage of multi-monitor support in Windows 98, either with a multi-input monitor by switching between inputs on the monitor itself or two monitors. However, this has been reported to cause Windows to use the OpenGL software fallback mode as long as the secondary display is enabled, so it is perhaps not the optimal solution. Direct3D hardware acceleration only works on the primary display.
Finally, for maximum Glide compatibility, one could even use three cards (e.g. V1, V2 and V3/4/5) and switch between the cards by copying the appropriate glide2x.dll/glide3x.dll drivers into the game directory depending on which card the game should run with. When using this method, it is important to install the drivers in ascending order, so that games which access the drivers in the Windows folder use the newest 3dfx card. For DOS games, one would analogically copy Glide2x.ovl into the game folder.
To get games which were originally made for Voodoo Graphics to work with Voodoo2 boards, one can use the following SST variables in the autoexec.bat, either directly or by an external batchfile:
SET SST_GRXCLK=90 SET SST_FT_CLK_DEL=0x4 SET SST_TF0_CLK_DEL=0x6 SET SST_TF1_CLK_DEL=0x6 SET SST_VIN_CLKDEL=0x1 SET SST_VOUT_CLKDEL=0x0 SET SST_TMUMEM_SIZE=2
Voodoo Graphics
The Voodoo Graphics chipset, based on the SST1 architecture, was 3dfx' first foray into the PC market. Its release in 1996 was primarily made possible by EDO DRAM declining in price, allowing good profits from an adequately-equipped ~$300 Voodoo Graphics solution. The PCI cards, which were manufactured by board partners, feature a frame buffer processor, a texture processor (texture mapping unit, TMU), a RAMDAC and 4 MB EDO DRAM (some later versions were released with 6 or even 8 MB). Both the RAM and graphics processors operate at 50 MHz, with 2 MB RAM being used as framebuffer and 2 MB as texture memory. The RAM banks are on independent 64-bit buses. A Pentium 90 with 8 MB RAM was considered the minimal specifications for these cards.
The chipset was rich in features, boasting perspective correct texture mapping, bilinear texture filtering, level of detail MIP mapping, sub-pixel correction, polygonal-based Gouraud shading and texture modulation. It natively supported Direct3D 5 and introduced Glide, 3dfx's own proprietary API that worked initially under DOS and later under Windows 9x and NT 4.0/2000. Glide was essentially a subset of OpenGL, with no support for features deemed unnecessary for PC gaming at the time, and for some functions not supported by the SST-1 architecture. OpenGL games were initially only supported through the use of MiniGL, which was an OpenGL driver with only the necessary functions implemented for a specific game, most notably Quake engines. In 1999, 3dfx released a full OpenGL ICD, providing support for all OpenGL applications, which was becoming increasingly important at the time since it was required for the then-upcoming Quake 3.
Voodoo Graphics does not have 2D functions like VGA or GUI acceleration, meaning that they have to be used in conjunction with a standard 2D card by means of a VGA passthrough cable. Voodoo cards have relays onboard that switch between passthrough mode and output mode, controlled by the driver or DOS game/Glide. Unfortunately the passthrough impacts 2D quality because of the signal passing through additional circuitry that may not be of optimum quality. High resolution GUI modes are most noticeably affected.
Thanks to 3dfx's efforts with game developers and publishers and the excellent performance of their solution, the company's technology was quickly adopted as the de-facto standard in PC 3D gaming. Voodoo 1 enjoyed lengthy support from game developers. Despite only supporting resolutions as high as 640x480 (800x600 without the usage of Z-buffering) and 16-bit color depth, the card was usable with games into 2000.
The prime competitors upon its release were the PowerVR PCX1 and Rendition Vérité V1000 chipsets, the latter of which already featured complete 2D processing onboard. Other competitors include the Matrox Millenium II/Matrox Mystique, ATI Rage II, S3 Virge and NVIDIA RIVA 128, all of which had 2D functions, but only the RIVA 128 can be said to match the Voodoo 1 in performance, while of course lacking Glide support.
Today: The card's prime use case would be statically-linked Glide games in DOS that depend on the first Voodoo chipset. Later games, starting with ca. 1997, are better played with the subsequent Voodoo cards.
Cards with higher than 4 MB are a trade-off: they have somewhat higher compatibility to later games, but lose some compatibility with first generation titles. 6 MB versions only have more texture memory and are therefore still limited to 640x480; 8 MB boards are able to show 800x600 resolutions due to extra framebuffer memory. Both offer smoother frame rates in games with more texture memory usage, such as Unreal and Quake 2.
Voodoo Rush
Voodoo Rush was released in August 1997 for the PCI bus and addressed the main shortcoming of the Voodoo Graphics by being a complete 2D/3D solution. The chipset combined either an Alliance Semiconductor AT25/AT3D or Macronix 2D core on the same board as the exact same Voodoo chipset (on some cards the 3dfx part came as a daughterboard).
The combination of two independent chipsets led to a bottleneck for the 3dfx part and therefore about 10% lower performance. The cards had 4, 6 or 8 MB total memory, with only 8 MB versions offering 4 MB for texture space, similarly to Voodoo Graphics. Some cards had slightly higher clocks to close the performance gap. The cards also sometimes weren't fully compatible to existing games, leading to specific Voodoo Rush patches for some games, e.g. Tomb Raider.
The AT3D chipset has rudimentary 3D functions which can be activated, meaning that Rush cards that feature it have two 3D chipsets.
Today: Rush cards were an infamous early attempt at a 2D/3D card by 3dfx and should be avoided when building a vintage gaming system. Primarily a curiosity. Despite that, the cards may be potentially useful in fringe cases like in a system with only a single available PCI slot that does not support a Banshee or Voodoo3 because of a weak power supply or weak voltage regulators. They shouldn't be difficult to acquire since the demand is not as high as for other 3dfx cards.
Voodoo2
Released in early 1998, the Voodoo2 chipset (SST96) expanded upon its predecessor by adding a second texture processor and featuring 8 or 12 MB EDO DRAM. The clock was increased to 90 MHz, almost doubling the performance compared to Voodoo1. Since the V2 features single-pass multi-texturing and single-pass trilinear filtering (and therefore supports Direct3D 6), performance in games utilizing these features is further increased because the second texture unit is taken advantage of. The first notable game to do so was Quake II (1997). The cards also support SLI (Scan-Line Interleave), a technique which allows 2 cards to be run simultaneously and draw the lines of the image in turn, boosting performance and enabling resolutions up to 1024x768. With one card installed, up to 800x600 is possible regardless of memory.
Following the same principle as the Voodoo1 there are three independent 64-bit RAM buses, one for the frame buffer processor and one for each TMU. While 4 MB RAM are available for the frame buffer, the textures have to be copied into the RAM of both TMUs. So even though there are technically 4 or 8 MB of texture memory on a card effectively there are only 2 or 4 MB available for textures. With SLI this amount does not grow, instead the textures will be copied two more times.
A large number of cards from different manufacturers were released, with some deviating from the reference design and/or featuring extra cooling and even slight factory overclocks. The Voodoo2 remained the best 3D accelerator card throughout 1998.
Voodoo2 still requires the passthrough cable and use of a separate 2D card. However, the chipset does have some 2D features and there is a driver for Linux that allows one to use Voodoo2 as a GUI accelerator.
Today: The iconic Voodoo2 SLI setup holds nostalgic value for some people. Thanks to the PCI interface, they can theoretically be used even with some modern mainboards. Voodoo2 SLI is viable for almost all Glide games, and has the advantage over Voodoo3 that it can play more Glide games originally only designed for Voodoo1, with necessary environment variable configuration.
Banshee
Released in 1998, the Banshee was 3dfx's first fully integrated 2D+3D chip. Due to its 100 MHz clock the midrange Banshee is actually slightly faster than the high-end Voodoo2 in single-textured games, yet falls clearly behind in games utilizing multi-texturing. Banshee cards were the first 3dfx cards to universally feature some kind of cooling solution and came equipped with 8MB/16MB SDRAM or SGRAM, with PCI and AGP versions existent.
Its 2D acceleration was very capable. It rivaled the fastest 2D cores from Matrox, Nvidia, and ATI, consisting of a 128-bit GUI engine and a 128-bit VESA VBE 3.0 VGA core. DirectDraw is accelerated, and the GUI portion supports all of the Windows Graphics Device Interface (GDI) in hardware. The GUI engine achieved near-theoretical maximum performance with a null driver test in Windows NT.
Today: Banshee cards are far superior to Voodoo Rush, although they have a few bugs in various areas such as video playback and DOS VESA modes. As such they are not ideal gaming choices, although they can be still useful for some games.
Voodoo 3
The Voodoo 3, codenamed "Avenger", was announced at COMDEX in November 1998 and released on April 3, 1999. Following the buyout of STB, 3dfx was now manufacturing their own cards. The Voodoo 3 was basically a higher-clocked Banshee core outfitted with a second texture unit and some bugfixes. The cards were released in four different flavors: the 125 MHz Voodoo 3 1000, the 143 MHz Voodoo 3 2000, the 166 MHz Voodoo 3 3000, and the 183 MHz Voodoo 3 3500 TV with integrated TV tuner. Except for the low-end V3 1000, which could also come with 8 MB, all cards featured 16 MB. The V3 line came both in PCI or AGP versions, with the 3500 being AGP-only. Some PCI versions featured SGRAM instead of the standard SDRAM. Thanks to the integrated 350 MHz RAMDAC (V3 3000/3500), the maximum resolution is 2048x1536 at about 75 Hz.
Now facing stronger competition from NVIDIA's RIVA TNT line, which already supported 32-bit color depth, higher than 256x256 textures and AGP texturing (all 3dfx cards use the AGP port as a mere 66 MHz PCI port), the Voodoo 3 line was somewhat panned by critics and called outdated in terms of features, but was still considered to be very competitive speed-wise, because 32-bit rendering introduced a big performance hit on competitor cards. At that time, 3dfx' marketing was centered around speed, but to demonstrate that the image quality was still better than their last year's high-end setup, they invented the term "22-bit", describing the fact that the RAMDAC of the card would perform either a 2x2 box or 4x1 line filter on the image, depending on the driver settings, masking some of the dithering.
The RIVA TNT2 Ultra was competitive to the higher V3 cards in speed. The GeForce 256, which came out later that year, beats it both by features and performance in D3D and OGL games, yet can still merely tie it in some Glide-centric games such as Unreal Tournament.
A noteworthy problem with Voodoo3 or other cards from this generation was the higher power demands, which certain mainboards at the time could not cope with. The issue lied specifically in the voltage regulators for the AGP slot. Intel specified 6A at 3.3V for this slot, but due to cost saving measures some mainboard manufacturers utilized parts that were specified for less than that. Voodoo3 cards were reported to demand up to 4.8A, which could cause severe thermal issues, crashes and even hardware failures with these boards. One known manufacturer with this problem was Gigabyte. A list with Gigabyte motherboards which are confirmed for use with Voodoo3 cards by the company is available in the links section.
Today: A Voodoo 3 2000 roughly matches Voodoo2 SLI 12MB in speed, while only taking one slot and offering better real-world performance due to more texture memory (for 1024x768 as the highest resolution available with Voodoo2 SLI there would be 16 - 4.5 = 11.5 MB available instead of 4 MB, nearly three times as much). The image quality is slightly better due to more advanced RAMDAC filtering and the end of the passthrough design. AGP and PCI versions of all 3dfx cards will perform similarly.
Like with all Voodoo cards, the cards will run games requiring 8-bit paletted textures or table fog. If all this is taken into account together with their good DOS compatibility/speed, wide availability and low cost, the Voodoo 3 can be considered the all-around best vintage card for games of its time frame and before.
Voodoo 4/5
The VSA-100 (Voodoo Scalable Architecture), codenamed "Napalm", was the final product from 3dfx and was released in 2000. Only the single-chip Voodoo 4 4500 and the dual-chip Voodoo 5 5500 made it to market, both clocked at 166 MHz and released both in AGP and PCI versions. It is a further refinement of the architecture of all previous products, with some changes and additions such as two pixel pipelines with one texture unit each (instead of one pipeline with two texture units), 32-bit rendering and larger texture caches. The chip supports 2048x2048 textures, FXT1 and DXTC texture compression.
The marketing was now more centered on image quality ("cinematic effects") than speed: Due to the added "T-buffer" the Voodoo 4 4500 can do 2x RGSSAA (rotated-grid super-sampling anti-aliasing), while the Voodoo 5 5500 is capable of up to 4x RGSSAA. This method of anti-aliasing is considered high quality until today and was actually usable in a large number of titles, albeit with considerable performance impact.
The Voodoo 5 matched the GeForce 256 or slightly edged it out, but was not competitive with high-end GeForce 2 cards, especially since Glide support in new games was rapidly declining by that time. Unlike the GeForce cards which were Direct3D 7 capable, the VSA-100 line was still limited to Direct3D 6, as it lacked Hardware T&L. This feature, which was introduced by Nvidia a year ago, was slowly taking off in 2000 and games from that time which use it are not optimally suited for these cards.
Voodoo 4 4500 cards have 32 MB SDRAM. Voodoo 5 5500 cards have 64 MB SDRAM, although only 32 of it are actually usable due to the SLI method used, much like with Voodoo2 SLI. Voodoo5 cards require supplementary power in the form of a single Molex connection.
Today: The V4 4500 is arguably not much better than the V3, since it performs similarly and its new features are of limited benefit. The V5 5500 is considerably faster and provides an optimal Glide experience up to around 1280x1024 without AA, with the added possibility of adding anti-aliasing for higher image quality in lower resolutions.
For the best possible frame rates, it can be combined with fast CPUs such as Athlon XPs with the KT333 chipset. AGP 3.3v support is necessary.
Macintosh PCI versions of the V5 5500 have DVI outputs for clearer image quality. Using this with DOS games is said to cause problems due to locked refresh rates though.
Other 3dfx cards
The company also released other cards, such as the budget Velocity (name taken after the acquisition of STB) line, which only came with 1 TMU similar to Banshee, although the second one can reportedly be enabled by a registry hack. Also, 3dfx had plans for a Voodoo 5 6000, which would have come with four VSA-100 chips installed and would have been powered by an external power supply, dubbed "Voodoo Volts". About 150-250 of these were made as prototypes. These cards beat Nvidia's GeForce 2 line and are even competitive with GeForce 3 when used with faster CPUs, and are also capable of 8x RGSSAA. The prototypes are considered "legendary" in the enthusiast community and are highly sought after, with prices easily as high as $1000 paid for them.
User benchmarks
Main article: 3dfx Benchmarks
External links
- Complete database of 3dfx cards
- Best resource for 3dfx drivers + other information
- nGlide wrapper compatibility list
- Complete list of Glide games for DOS
- 3D Acceleration Comparison with many 3dfx games
- Many 3dfx tests and driver comparisons
- List of SST variables
- List of Gigabyte mainboards which will accept a Voodoo3
- Moody's Voodoo2 FAQ