Wah, I've been buying broken 3DFX cards for a while to see if I can fix them. Today I was looking over a Voodoo 1 that I'd bought last year and I could never get it to do anything. It would only report 0xDEAD for the TMU status with 57005 TMUs. I'd thought it was down to a broken pin since there were a few on this card - but now I know how to actually use mojo.exe to generate the SST.LOG file which gives actual information:
This 0xDEAD result in Mojo
Info for Voodoo board # 0:
=====================================================
Virtual Base Address: 0xe6000000
Physical Base Address: 0xe6000008
PCI Device Number: 0x9
Vendor ID: 0x121a
Device ID: 0x1
FBI Revision: 2
FBI Memory: 0 MB
FBI PowerOn Sense: 0x0
TMU PowerOn Sense: 0xdead
FBI DAC Output Color Format: 24BPP
Scan-Line Interleaved? No
TMU Revision: 57005
Number TMUs: 57005
WARNING: Board 0: Bogus number of TMUs (57005)!
Was caused by
sst1Init Routines: InitCode $Revision: 8 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0xc8dc0000 pAddr:0xdd000008 Dev:0x9 Board:0
sst1InitRegisters(): Setting TREX-to-FBI FIFO THRESHOLD to 0x8...
sst1InitRegisters(): Setting PRELIM FT-CLK delay to 0x8...
sst1InitRegisters(): Could not detect DAC...
This reference design Voodoo 1 card did have a very bad hit to the empty PCB area and I'd already had to rebuild the VGA pass-through circuitry, but it looks like the DAC took a hit too:
The attachment 3dfx voodoo1 TVP3409 DAC traces damaged.JPG is no longer available
Those are all damaged traces where you see the thin metal legs, three of them were the red green and blue signals. I found that after I got the DAC to communicate with the FBI chip by resoldering legs at the upper part, which are the digital connections, the MOJO result changed into a good one:
Mojo and SST log of working Voodoo 1
SST:
sst1Init Routines: InitCode $Revision: 8 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0xc8dc0000 pAddr:0xdd000008 Dev:0x9 Board:0
sst1InitRegisters(): Setting TREX-to-FBI FIFO THRESHOLD to 0x8...
sst1InitRegisters(): Setting PRELIM FT-CLK delay to 0x8...
sst1InitRegisters(): Storing TREX0INIT0=0x5441
sst1InitRegisters(): Storing TREX0INIT1=0xf420
sst1InitRegisters(): Storing TREX1INIT0=0x5441
sst1InitRegisters(): Storing TREX1INIT1=0xf420
sst1InitRegisters(): Storing TREX2INIT0=0x5441
sst1InitRegisters(): Storing TREX2INIT1=0xf420
sst1InitRegisters(): Setting up FAST DRAM Configuration
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
sst1InitRegisters(): LFB Writes go through memory FIFO...
sst1InitRegisters(): TEXTURE Writes go through memory FIFO...
sst1InitRegisters(): exiting with status 1...
sst1InitShutdown(): Shutting down SST-1 #0...
sst1InitShutdown(): Returning with status 1...
Mojo result:
Info for Voodoo board # 0:
=====================================================
Virtual Base Address: 0xe6000000
Physical Base Address: 0xe6000008
PCI Device Number: 0x9
Vendor ID: 0x121a
Device ID: 0x1
FBI Revision: 2
FBI Memory: 2 MB
FBI PowerOn Sense: 0x2
TMU PowerOn Sense: 0x11
FBI DAC Output Color Format: 24BPP
Scan-Line Interleaved? No
TMU Revision: 1
Number TMUs: 1
TMU 0 RAM: 2 MB
It even has full RAM showing for both the texture and frame buffer - so I started a game and only saw a totally black screen, but the computer was still running. I was probing at the DAC while it was running to see if the VCCA (DAC analog side power) and ground were connected when my probe on ground slipped and maybe completed the circuit since the ground trace there was completely broken away. But when my multimeter probe slipped something good happened instead of something bad - I could see the unreal flyby in blue!
Pressing the DAC area more I think I managed to get red as well and turned it off to work on the DAC. I thought the DAC might be damaged initially but if it's working well enough to generate 2 colours of 3 and make an image it should be fine. Instead of using hot air I used the low melt solder stuff and that got the DAC off pretty cleanly except as you can see in the picture a bunch of traces were broken probably before the chip was removed.
Took an hour or two to get all the traces in place and then I marked the DAC legs where there were wire legs instead of copper traces, so I could squash some of the "J" shaped legs into "L" legs - allowing the remaining good traces to still make contact with the DAC's PLCC legs, while giving clearance for the wire leg 'traces'.
That went great though, I put the card back together again and could actually test it - it went straight into tomb raider demo with the 3DFX splash screen showing all colours 😁
This card has been with me for something like 18 months and I've now and then taken another go at getting it working with no result each time because I didn't know what the diagnostics could show, didn't know that no DAC would upset the whole card. I've taken chips off, replaced RAM, broken traces in the process of replacing RAM, resoldered the QFP legs probably multiple times... It's had a rough time and I've never been able to test it.
I found that although it can now run games with proper display, it's glitching sometimes - I resoldered the RAM again and added some more capacitors to no avail, but there were some 0-ohm resistors on the back that had somehow had the markings rubbed off and replacing those seemed to stabilise the display. To test it I ran the unreal flyby for a while and it looked fine.
I was celebrating a job well done when...
The attachment IMG_2328 (Large).JPG is no longer available
Party mode activated... I may still have a bit more work to do...