First post, by Thermalwrong
The Voodoo 1 was the first 3d accelerator I had, I skipped the Voodoo2 so the Voodoo 1 is the one I have more interest in - I still don't have enough Voodoo II for an SLI setup as well 😉
It seems that unlike the Voodoo 3 and perhaps the Banshee, there's very little definitive information on the Voodoo 1 and Voodoo 2. Which is odd since they were manufactured by so many different vendors prior to the STB buyout, there's probably an information pack out there somewhere.
I've got a few 3Dfx Voodoo 1 cards, because I keep buying broken ones with the hope of getting lucky or fixing one. So far I've had some success but there are 2x Voodoo1 cards that I've not yet been able to fix which are showing black blocks or lines in textures in games like the Tomb raider demo - this is after making very sure that every pin from the TMU is attached, but games look fine if I enter the environment variable to turn off texture mapping.
I decided to look around for schematics or a pinout for the Voodoo 1 or Voodoo2 but there doesn't seem to be one that's immediately available. Then I remembered that 3Dfx chips and cards made their way into many arcade machines and those systems cost enough that you'll usually find schematics for repairs during their operational lifetime. In particular Midway were quite fond of 3Dfx and the Midway Seattle both uses 3Dfx's Obsidian graphics engine and has available schematics. Search for "Midway_Seattle_Hardware_Schematics.pdf" to have a read.
I've split out the 3Dfx related part which starts with "THE OBSIDIAN GRAPHICS SYSTEM BLOCK DIAGRAM". Please note that these are a PDF of a PDF of scanned pages, see the full document's pages 42 to 56 in the PDF for the original print quality.
I don't think the system itself is very similar to an x86 PC but the 3Dfx part is all PCI. There are some minor differences, notably the video output will have no need for 2D input / switching but that's not too important.
If you enable the debug file output as an autoexec variable:
set SST_INITDEBUG_FILE=sst.log
And then run the diagnostic tool mojo.exe, the SST.log file contains this reference to Obsidian GE:
sst1DeviceInfo: Board ID: Obsidian GE
sst1DeviceInfo: FbiConfig:0x2, TmuConfig:0x11
sst1DeviceInfo: FBI Revision:2, TMU Revison:1, Num TMUs:1
sst1DeviceInfo: FBI Memory:2, TMU[0] Memory:2
sst1DeviceInfo: Dac Type: TI TVP3409
sst1DeviceInfo: SliDetect:0
Something I find quite interesting is that there are 3x 16-bit wide buses for chip to chip communication, I was wondering how this was laid out:
FT_ADDR 0 to 2 (up to 4 possible addresses...)
FT_DATA 0 to 15 - I think this is FBI > TMU data
TF_DATA 0 to 15 - I think this would be output from the TMU to FBI
TT_DATA 0 to 15 - This should be for TMU > TMU communication I think???, these pins are all grouped up on a regular Voodoo 1 since it's not doing multitexturing 😀
From the schematic information which lists full pinouts for both the 3Dfx 500-0004-02 TMU and 3Dfx 500-0003-03 FBI, I've put together an initial pinout for the TMU which matches up very well with what I see on the PCB:
The memory bus is taking up most of the pins on the TMU, it's got a 64-bit wide memory bus dedicated to the TMU, with individual control of all address and data bits for each of the 4x memory chips, only grouping up the RAS pins. I think going by the numbers the memory layout should be like this - here's the other card I'm trying to fix:
Going from what I've read about the Voodoo 1 going to the Voodoo2, with the V2 mostly getting speed improvements from being a process improved, better optioned version of the Voodoo 1, giving it higher clocks and multitexturing.
I suspect that the TMU chips may have a lot in common beyond just the pin count (208 on V1 and V2) although someone would need to check, specifically the TT_DATA pins would be important to verify first.
Soon I'll do the same for the FBI chip 😀
edit: edited to replace the lossy jpeg pinout diagram with a lossless one.