First post, by bimole
Hi,
I found a Voodoo 2 8MB card at a (too) decent price and as expected, things go quite wrong!
This is a CT6670 in an excellent cosmetic shape (no dust, shiny PCB, no missing parts)
It is "almost" working. I use the Creative drivers for the CT6670 found on http://falconfly.3dfx.pl/3dfx.htm
Here is my setup :
PIII Coppermine 1GHz
384MB RAM PC133
MSI MoBo 815E Pro Ver 1.0 (MS-6337)
10GB system partition on an SSD (via PATA/SATA bridge)
The other GPU is an ATI 9600PRO
I'm not using the small VGA passthrough cable, I switch manually from the ATI to the 3DFX card (as a beginning...)
The card is normally found by Win98SE, and is correctly identified in the Device Manager
The graphic tab for the Voodoo 2 in Display properties is also here...
...but I can't always access it. I get often the nasty error message :
Sometimes it works, sometimes not.
The 3 3DFX chips are barely warm so they seem to be supplied
I read some threads on Voodoo 2 troubleshooting and I found the 3DFX Glide SDK 2.43 package with the "mojo" executable.
I set the variable environnements in Autoexec.bat as recommended here en there :
set SST_INITDEBUG=1
set SSTV2_INITDEBUG=1
set SST_INITDEBUG_FILE=c:\sst1_3dfx.log
set SSTV2_INITDEBUG_FILE=c:\sst2_3dfx.log
set SST_DEBUGDAC=1
set SSTV2_DEBUGDAC=1
detect.exe always find correctly the card.
Things are different for mojo.exe, that I run in pure DOS or from a Win98SE command prompt.
Sometimes the card's characteristics seem to be well found :
Sometimes not :
I gave a look at the log files. There a several cases.
CASE 1 : When I can access to the display properties (in Win98SE), only sst2_3dfx.log is generated
sst1Init Routines: Voodoo2 InitCode $Revision: 39 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0xdc9c0000 pAddr:0xd6000008 Dev:0x42 Board:0
sst1InitRegisters(): Setting TREX-to-FBI FIFO THRESHOLD to 0x8...
sst1InitRegisters(): Setting PRELIM FT-CLK delay to 0x8...
sst1InitDacDetect(): Entered...
sst1InitDacDetectICS(): Entered...
dacWr(0x7,0xb)
dacRd(0x5,0x79)
dacRd(0x5,0x2e)
dacWr(0x7,0x1)
dacRd(0x5,0x55)
dacRd(0x5,0x49)
dacWr(0x7,0x7)
dacRd(0x5,0x71)
dacRd(0x5,0x29)
sst1InitDacDetectICS(): Exiting...
sst1InitRegisters(): Storing TREX0INIT0=0x5441
sst1InitRegisters(): Storing TREX0INIT1=0xf420
sst1InitRegisters(): Storing TREX1INIT0=0x5441
sst1InitRegisters(): Storing TREX1INIT1=0xf420
sst1InitRegisters(): Storing TREX2INIT0=0x5441
sst1InitRegisters(): Storing TREX2INIT1=0xf420
sst1InitSetGrxClk(): Entered...
dacWr(0x7,0xe)
dacRd(0x5,0x0)
dacWr(0x4,0xa)
dacWr(0x5,0x7b)
dacWr(0x5,0x6c)
dacWr(0x4,0xe)
dacWr(0x5,0x0)
sst1InitRegisters(): Setting up FAST DRAM Configuration
sst1InitInfo(): NAND-tree: 5476
sst1InitInfo(): NOR-tree : 5274
sst1DeviceInfo: Board ID: 12
sst1DeviceInfo: FbiConfig:0x2, TmuConfig:0xca54
sst1DeviceInfo: FBI Revision:4, TMU Revison:4, Num TMUs:2
sst1DeviceInfo: FBI Memory:4, TMU[0] Memory:2, TMU[1] Memory:2
sst1DeviceInfo: Dac Type: ICS ICS5342
sst1DeviceInfo: SLI Detected: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...
sst1InitSetGrxClk(): Entered...
dacWr(0x7,0xe)
dacRd(0x5,0x0)
dacWr(0x4,0xa)
dacWr(0x5,0x41)
dacWr(0x5,0x62)
dacWr(0x4,0xe)
dacWr(0x5,0x0)
sst1InitShutdown(): Returning with status 1...
All things seem to go right.
CASE 2 : When I launch mojo and it is working normally, only sst1_3dfx.log is generated
sst1Init Routines: InitCode $Revision: 8 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0xdc9c0000 pAddr:0xd6000008 Dev:0x42 Board:0
sst1InitRegisters(): Setting TREX-to-FBI FIFO THRESHOLD to 0x8...
sst1InitRegisters(): Setting PRELIM FT-CLK delay to 0x8...
sst1InitDacDetect(): Entered...
sst1InitDacDetectICS(): Entered...
dacWr(0x7,0xb)
dacRd(0x5,0x79)
dacRd(0x5,0x2e)
dacWr(0x7,0x1)
dacRd(0x5,0x55)
dacRd(0x5,0x49)
dacWr(0x7,0x7)
dacRd(0x5,0x71)
dacRd(0x5,0x29)
sst1InitDacDetectICS(): Exiting...
sst1InitRegisters(): Storing TREX0INIT0=0x5441
sst1InitRegisters(): Storing TREX0INIT1=0xf420
sst1InitRegisters(): Storing TREX1INIT0=0x5441
sst1InitRegisters(): Storing TREX1INIT1=0xf420
sst1InitRegisters(): Storing TREX2INIT0=0x5441
sst1InitRegisters(): Storing TREX2INIT1=0xf420
sst1InitSetGrxClk(): Entered...
dacWr(0x7,0xe)
dacRd(0x5,0x0)
dacWr(0x4,0xa)
dacWr(0x5,0x7b)
dacWr(0x5,0x6c)
dacWr(0x4,0xe)
dacWr(0x5,0x0)
sst1InitRegisters(): Setting up FAST DRAM Configuration
sst1DeviceInfo: Board ID: Obsidian GE
sst1DeviceInfo: FbiConfig:0x2, TmuConfig:0x8d1
sst1DeviceInfo: FBI Revision:2, TMU Revison:1, Num TMUs:2
sst1DeviceInfo: FBI Memory:4, TMU[0] Memory:2, TMU[1] Memory:2
sst1DeviceInfo: Dac Type: ICS ICS5342
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...
sst1InitSetGrxClk(): Entered...
dacWr(0x7,0xe)
dacRd(0x5,0x0)
dacWr(0x4,0xa)
dacWr(0x5,0x41)
dacWr(0x5,0x62)
dacWr(0x4,0xe)
dacWr(0x5,0x0)
sst1InitShutdown(): Returning with status 1...
All things seem to go right.
CASE 3 : When I CAN'T access to the display properties (in Win98SE), only sst2_3dfx.log is generated, "glide2x.dll expected Voodoo^2" error displayed
sst1Init Routines: Voodoo2 InitCode $Revision: 39 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0xdc9c0000 pAddr:0xd6000008 Dev:0x42 Board:0
sst1InitRegisters(): Setting TREX-to-FBI FIFO THRESHOLD to 0x8...
sst1InitRegisters(): Setting PRELIM FT-CLK delay to 0x8...
sst1InitDacDetect(): Entered...
sst1InitDacDetectICS(): Entered...
dacWr(0x7,0xb)
dacRd(0x5,0x79)
dacRd(0x5,0x2e)
dacWr(0x7,0x1)
dacRd(0x5,0x55)
dacRd(0x5,0x49)
dacWr(0x7,0x7)
dacRd(0x5,0x71)
dacRd(0x5,0x29)
sst1InitDacDetectICS(): Exiting...
sst1InitRegisters(): Storing TREX0INIT0=0x5441
sst1InitRegisters(): Storing TREX0INIT1=0xf420
sst1InitRegisters(): Storing TREX1INIT0=0x5441
sst1InitRegisters(): Storing TREX1INIT1=0xf420
sst1InitRegisters(): Storing TREX2INIT0=0x5441
sst1InitRegisters(): Storing TREX2INIT1=0xf420
sst1InitSetGrxClk(): Entered...
dacWr(0x7,0xe)
dacRd(0x5,0x20)
dacWr(0x4,0xa)
dacWr(0x5,0x7b)
dacWr(0x5,0x6c)
dacWr(0x4,0xe)
dacWr(0x5,0x20)
sst1InitRegisters(): Setting up FAST DRAM Configuration
ERROR: b_sum=0x4e0 r_sum=0xcc8
sst1InitFillDeviceInfo(): Retry #1 for chip GetInfo()...
ERROR: b_sum=0x4e0 r_sum=0xcc8
sst1InitFillDeviceInfo(): Retry #2 for chip GetInfo()...
ERROR: b_sum=0x4e0 r_sum=0xcc8
sst1InitFillDeviceInfo(): Retry #3 for chip GetInfo()...
ERROR: b_sum=0x4e0 r_sum=0xcc8
sst1InitFillDeviceInfo(): Retry #4 for chip GetInfo()...
ERROR: b_sum=0x4e0 r_sum=0xcc8
sst1InitRegisters(): ERROR filling DeviceInfo...
Something is wrong with the "FAST DRAM Configuration"
CASE 4 : When mojo DOESN'T work correctly, only sst1_3dfx.log is generated
sst1Init Routines: InitCode $Revision: 8 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0xd6000000 pAddr:0xd6000008 Dev:0x42 Board:0
sst1InitRegisters(): Setting TREX-to-FBI FIFO THRESHOLD to 0x8...
sst1InitRegisters(): Setting PRELIM FT-CLK delay to 0x8...
sst1InitDacDetect(): Entered...
sst1InitDacDetectICS(): Entered...
dacWr(0x7,0xb)
dacRd(0x5,0x79)
dacRd(0x5,0x2e)
dacWr(0x7,0x1)
dacRd(0x5,0x55)
dacRd(0x5,0x49)
dacWr(0x7,0x7)
dacRd(0x5,0x71)
dacRd(0x5,0x29)
sst1InitDacDetectICS(): Exiting...
sst1InitRegisters(): Storing TREX0INIT0=0x5441
sst1InitRegisters(): Storing TREX0INIT1=0xf420
sst1InitRegisters(): Storing TREX1INIT0=0x5441
sst1InitRegisters(): Storing TREX1INIT1=0xf420
sst1InitRegisters(): Storing TREX2INIT0=0x5441
sst1InitRegisters(): Storing TREX2INIT1=0xf420
sst1InitSetGrxClk(): Entered...
dacWr(0x7,0xe)
dacRd(0x5,0x20)
dacWr(0x4,0xa)
dacWr(0x5,0x7b)
dacWr(0x5,0x6c)
dacWr(0x4,0xe)
dacWr(0x5,0x20)
sst1InitSetGrxClk(): Resetting TMUs after clock change...
sst1InitResetTmus(): Could not reset TMUs...
TMUs reset issue...
It seems there are 2 problems.
Useless to say that I can't launch Quake or any game, but I managed to make the test29.exe (in Glide SDK directories) work and only this one, so the DAC looks good.
I made a reflow of all FBI pins with a proper soldering iron and flux, under the binocular. No success.
I will continue with the TMUs and check the resistors as well as ferrite beads...
What do you think ? Is it worth it ?!
Cheers,
JB