VOGONS


First post, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie
TL;DR

Cause of death: Broken solder joints on FBI chip pins.

These days I got one defective Guillemot Maxi Gamer 3D Voodoo 1 card in visually perfect condition. The symptoms for this videocard were black screen and frozen system at initializing of the card. Of course my first job was to check what MOJO.EXE will tell in pure DOS and I was very disappointed to see these logs:

Broken Voodoo 1 logs

DPMI: In DpmiHookFxMemmap, addr=e8000000, size=01000000
DPMI: Loading fxmemmap.vxd
DPMI: GetDeviceAPI, devid = 0027
DPMI: GetDeviceAPI: Devid=0027, FuncPtr0000:00000000
DPMI: GetDeviceID returns NULL!!!
DPMI: Couldn't get VXDLDR entry point
Info for Voodoo board # 0:
=====================================================
Virtual Base Address: 0x10400000
Physical Base Address: 0xe8000008
PCI Device Number: 0x11
Vendor ID: 0x121a
Device ID: 0x1
FBI Revision: 2
FBI Memory: 2 MB
FBI PowerOn Sense: 0x2
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)!

------------------------------------------

sst1Init Routines: InitCode $Revision: 5 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0x10400000 pAddr:0xe8000008 Dev:0x11 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
ERROR: b_sum=0x060 r_sum=0x030
sst1InitFillDeviceInfo(): Retry #1 for chip GetInfo()...
ERROR: b_sum=0x060 r_sum=0x030
sst1InitFillDeviceInfo(): Retry #2 for chip GetInfo()...
ERROR: b_sum=0x060 r_sum=0x030
sst1InitFillDeviceInfo(): Retry #3 for chip GetInfo()...
ERROR: b_sum=0x060 r_sum=0x030
sst1InitFillDeviceInfo(): Retry #4 for chip GetInfo()...
ERROR: b_sum=0x060 r_sum=0x030
sst1InitRegisters(): ERROR filling DeviceInfo...

I've checked all pins of both TMU and FBI chips for broken solder joints, but they seemed to be OK and because of these lines
"FBI PowerOn Sense: 0x2
TMU PowerOn Sense: 0xdead
TMU Revision: 57005
Number TMUs: 57005
WARNING: Board 0: Bogus number of TMUs (57005)!"
I focused entirely on the potential problem in TMU.

Since I didn't know exactly what to do to further diagnose the problem, I just put the card in the ultrasonic bath (even though it was perfectly clean) - this way I've already "revived" two "dead" videocards due to accumulated dirt/corrosion on contacts and elements and meanwhile I've started searching the internet for information related to "TMU PowerOn Sense: 0xdead", "Board 0: Bogus number of TMUs (57005)!" and "b_sum=0x060 r_sum=0x030" errors.

I've read all related to those errors threads in this forum as well (they are only for Voodoo 2 cards) and again - only hypotheses with nothing concrete as information. For the "0xdead" error I found guesses and suggestions for multiple possible causes (including a problem with the frame buffer chip, although the MOJO logs don't suggest this), but all of them were for Voodoo 2 cards. In one thread I came across a comment with the exact same errors (again on a Voodoo 2 card) and it wasn't easy to find it, because the user had posted pictures like this instead of text logs. And again - no answer for the "0xdead" problem.

Unfortunately ultrasonic bath did not help this Voodoo 1 card to "magically" work again, but it did help for the bad solder joints on pins of the FBI and TMU chips to show up better 😀 And after last desperate "acoustic test" to the pins of the both FBI and TMU chips I've got it! There were eleven detached from the solder pads pins on the FBI chip (56 to 66). Bingo! These loose pins are visually traceable to FBI RAM chips and that's why I've got "ERROR: b_sum=0x060 r_sum=0x030" related to EDO RAM. I've turned on my soldering iron and it was pretty easy repair job.

After the reflow of the detached FBI pins the card is now in fully working condition.

Repaired Voodoo 1 logs

DPMI: In DpmiHookFxMemmap, addr=e8000000, size=01000000
DPMI: Loading fxmemmap.vxd
DPMI: GetDeviceAPI, devid = 0027
DPMI: GetDeviceAPI: Devid=0027, FuncPtr0000:00000000
DPMI: GetDeviceID returns NULL!!!
DPMI: Couldn't get VXDLDR entry point
Info for Voodoo board # 0:
=====================================================
Virtual Base Address: 0x10400000
Physical Base Address: 0xe8000008
PCI Device Number: 0x11
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
DpmiUnmapMemory
DPMI: DpmiUnhookFxmemmap OK

-----------------------------

sst1Init Routines: InitCode $Revision: 5 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0x10400000 pAddr:0xe8000008 Dev:0x11 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:0x11
sst1DeviceInfo: FBI Revision:2, TMU Revison:1, Num TMUs:1
sst1DeviceInfo: FBI Memory:2, TMU[0] 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...

Still there is a problem with overheating of TMU and FBI chips at 50 MHz (maybe due to different power feed design with this board - the PCB is different from the referent design), but clocked at 45 MHz (this is written on the card: "45 million pixels/sec") it works perfectly fine without any cooling and even managed to beat my other Voodo 1 Diamond Monster 3D (running at 50 MHz) in 3DMark99 with the drivers for Diamond Monster 😀 Of course I'll glue some 28mm heatsinks to FBU and TMU chips to work normally at 50 MHz.

P.S. MOJO doesn't always give proper guidance through its logs on first reading. In this case it seems more likely the problem to be with TMU or RAM chips, but actually the problem was with FBI chip.

P.P.S. Does anyone know what the unpopulated J6 and J7 connector's spots were intended for?

Photo of J6 and J7
unpopulated pinheaders.jpg
Filename
unpopulated pinheaders.jpg
File size
32.63 KiB
Views
602 views
File comment
unpopulated J6 & J7
File license
Fair use/fair dealing exception

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 1 of 3, by Spark

User metadata
Rank Newbie
Rank
Newbie

Great you got it working, I had one of these and also had problems with it overheating and causing all sorts of errors. All the problems went away with heatsinks across the two chips and a fan on top, and so I pushed my luck with a 57mhz overclock and it was still rock solid. No glue was necessary in my case for the heatsinks, just normal double sided tape.
How's the picture quality on yours? I had some diagonal wavy lines that I could never shift but were not there with all the same cables and a voodoo 2.

Reply 2 of 3, by treeman

User metadata
Rank Oldbie
Rank
Oldbie

The wavy lines could be the video signal filters, they are the smd chips right on the way out to vga output.
I have a voodoo which had a blown filter which I replaced with a filter from a random dead s3 trio and it shows some slight lines, not enough to bother me.

Reply 3 of 3, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie

I've created this topic mainly due to lack of any answers related to Voodoo 1 cards with these errors "TMU PowerOn Sense: 0xdead", "Board 0: Bogus number of TMUs (57005)!", "ERROR: b_sum=0x060 r_sum=0x030" and "sst1InitRegisters(): ERROR filling DeviceInfo...", but I'm glad to see that someone's asking to discuss another problems related to Voodoo 1 vdeocards.

As I mentioned in another topic for Voodoo 1 cards this Gullemot Maxi Gamer 3D have much more noise/shadowing in picture in pass-through 2D mode than my other Voodoo 1 card - Diamond Monster 3D. But in 3D mode I can't see any excessive noise/shadowing. Of course there is the problem with overheating at 50 MHz in 3D mode, but this particular card is intended to work at 45 MHz and yes, it works flawlessly at 45 MHz without any cooling.

Here are some results from 3DMark 99 Max Pro on my socket 7 system:
MB: Zida Tomato 5STX-512 with heavily modified BIOS
Chipset: Intel 430TX
CPU: AMD K6-233 @ 233 MHz
RAM: 128 MB SDRAM PC-100 @ 66 MHz (3-3-3-5)
VC: Diamond Monster 3D @ 50 MHz (no active or passive cooling) / Guillemot Maxi Gamer 3D @ 45 MHz (no active or passive cooling)
OS: Windows 98 SE with DirectX 7.0a
VC Driver: Diamond Monster 3D driver ver. 4.10.01.1600 (February 1999)

Guillemot Maxi Gamer 3D @ 45 MHz: 938 3D marks
3DMark99VoodooMaxiGamer45MHz.jpg
Filename
3DMark99VoodooMaxiGamer45MHz.jpg
File size
67.23 KiB
Views
440 views
File comment
Guillemot Maxi Gamer 3D @ 45 MHz: 938 3D marks
File license
Fair use/fair dealing exception
Diamond Monster 3D @ 50 MHz: 935 3D marks
3DMark99VoodooMonster50MHz.jpg
Filename
3DMark99VoodooMonster50MHz.jpg
File size
68.13 KiB
Views
440 views
File comment
Diamond Monster 3D @ 50 MHz: 935 3D marks
File license
Fair use/fair dealing exception
Just for comparison - Sapphire ATI Radeon 7000 (same system, latest official ATI driver for this card) @ 640x480 resolution: 847 3D marks
3dMark99Radeon7k.jpg
Filename
3dMark99Radeon7k.jpg
File size
68 KiB
Views
434 views
File comment
Sapphire ATI Radeon 7000: 847 3D marks
File license
Fair use/fair dealing exception

So, in my socket 7 system Guillemot Voodoo 1 at 45 MHz beats Diamond Voodoo 1 at 50 MHz.

I think that these strange results (45 MHz Voodoo 1 beats 50 MHz Voodoo 1), the problem with overheating of Maxi Gamer 3D at 50 MHz and more noisy picture in 2D pass-through mode with Maxi Gamer 3D are due to different PCB designs. Also I thought that Monster 3D PCB design is "referent" as the Diamond's card is amongst first Voodoo 1 cards (mine is rev. A from the early 1997), but it turned out that Maxi Gamer 3D's PCB design is much more widespread with different brands/vendors.

P.S. Still I'm interested in purpose of the two unpopulated spots for 10 pin connectors J6 and J7 on Gullemot Maxi Gamer 3D card. I couldn't find any info or user manuals on the internet. I would be grateful if someone could provide me links to scanned manuals for these Diamond Monster 3D and Gullemot Maxi Gamer 3D videocards.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"