ATI Radeon 9250 PCI cards, converting from 64-bit to 128-bit and other details

obsolete

6502
I wanted to play with some of the last/fastest classic Mac OS-compatible PCI video cards, so I managed to find a pair of Radeon 9250s. I feel like these used to be plentiful and cheap, but they seem to have gotten much rarer and more expensive. Of course, because I'm looking for projects, I only buy the cheapest I can find. I was lucky enough to get two different 128MB 64-bit cards for ~$50 each.

Card #1 is the black Sapphire board, which is referred to as the ATI reference design on The Mac Elite and elsewhere.
1767054000965.webp
1767054014972.webp
It came with 5ns Winbond RAM, good for 200MHz. This one needed two strap resistors moved on the back, which The Mac Elite 9250 Trick page has a helpful diagram of. Annoyingly, there are no silkscreened component labels on this PCBA. I moved the resistors, upgraded the ROM chip to 128KB, and flashed the modified v127 firmware from The Mac Elite, which resulted in a card that worked but only reported 64MB VRAM. Apparently this firmware is configured for half the memory density of this card.

Card #2 is a red Mad Dog board. It's got a different layout and BOM vs. the reference board, and needs no resistor changes.
1767054131018.jpeg
1767054148821.jpeg
It came with 4ns Samsung RAM, good for 250MHz. I did the same ROM chip swap and firmware flash as the first card and got the same results, a working card with 64MB of its 128MB VRAM reporting for duty.

I had a scrap AGP 9200 with compatible RAM on hand, so I decided to try using its chips to upgrade the Mad Dog card from 64-bit to 128-bit; 4 chips to 8 chips, but half the density, so still 128MB. The replacement RAM is 5ns instead of 4ns, but I'm not trying to set any benchmark records here, so it'll be fine. I'm sure that doubling the bus width more than makes up for the clock speed difference. This upgrade was tempting to try because all of the supporting passive components for the extra 4 RAM chips were already on the Mad Dog board; all I needed to do was swap the RAM. I preheated the board for a few hours to drive out any residual moisture, removed the original 4 chips with hot air, then drag-soldered the 8 chips I had salvaged from the scrap board in place. With no other changes, the result was...still a card that reported 64MB of VRAM. I believed my soldering was good, so I suspected the firmware. I took a look at the other available options, and found that despite being labeled as Radeon 9200, the original v201 firmware at The Mac Elite has a device ID of 0x5960, which is the same as the 9250 cards. I flashed that one, and magically I had my full 128MB of VRAM. Apparently the modified v127 firmware on The Mac Elite is hardcoded for 64MB and 64-bit. I'll have to try taking a look at v127 vs. v201 someday to see whether I can figure out which bits control this.

The upgraded Mad Dog looks like this now:
1767056921582.jpeg
1767056935601.jpeg
As you can see, I also replaced its old Ketuo branded caps with Nichicon SMT electrolytics.

Energized by my success with the Mad Dog 9250, I looked through my scrap box again and found a broken Geforce 6600 (chipped die) with 256MB of compatible RAM. I decided to use it to upgrade the Sapphire card from 64-bit to 128-bit. This is more of a challenge because the Sapphire is also missing all of the passives surrounding the unpopulated RAM chips. I found two resources that allowed me to easily overcome this. First, there are some 9200 schematics posted at VOGONS. Second, this Gigabyte 9250 AGP on The Retro Web has the same component layout around the RAM, and nice high-resolution photos with reference designators that match the R9200_V101 schematic. Armed with this info, I was able to compile the following parts list:

QuantityValueSizeRefDesDigi-Key
210 nF0805C878, C879https://www.digikey.com/en/products/detail/samsung-electro-mechanics/CL21B103KBANNNC/3886673
1256 ohm0603R875, R876, R877, R878, R879, R880, R881, R882, R897, R898, R899, R900https://www.digikey.com/en/products/detail/yageo/RC0603FR-1356RL/14008360
85.1k ohm0603R64, R65, R66, R67, R72, R73, R74, R75https://www.digikey.com/en/products/detail/yageo/RC0603FR-135K1L/14008317
1256 ohm x 41206RP167, RP168, RP169, RP170, RP171, RP172, RP173, RP174, RP175, RP176, RP177, RP178, RP179, RP180, RP181, RP182https://www.digikey.com/en/products/detail/yageo/YC164-FR-0756RL/5952757
50 ohm x 41206RP187, RP188, RP189, RP190, RP192n/a
80 ohm0603R859, R860, R861, R862, R863, R864, R865, R866n/a
33100 nF0603C81, C82, C225, C226, C227, C228, C240, C241, C242, C244, C419, C421, C567, C568, C582, C583, C584, C585, C586, C587, C588, C589, C590, C591, C602, C604, C605, C606, C607, C608, C609, C610, C611https://www.digikey.com/en/products/detail/samsung-electro-mechanics/CL10B104KB8NNWC/3887593

No Digi-Key links for the 0-ohm resistors or resistor packs because I had enough on hand and was able to salvage from the scrap AGP 9200 respectively.

The unfinished Sapphire card looks like this at the moment:
1767056950936.jpeg
1767056971976.jpeg
As you can see, I also replaced its old G-Luxon and Teapo branded caps with some lovely dark brown Nichicons. I thought about removing its 4 original Winbond RAM chips so I would have 8 matching Elixir chips, but that just feels like unnecessary work. I don't need to make it look like it came from the factory as 128-bit 256MB. Besides, now this card will be unique, half Winbond and half Elixir. It's for my own use anyway, so who cares?
 
Last edited:
I checked the Winbond W9425G6EH and Elixir N2DS25616CT (which is Nanya, TIL) datasheets just to make sure there weren't any obvious incompatibilities. I found that Winbond specifies 2.5V +/- 0.2V for DDR400 (200MHz) but Nanya/Elixir wants 2.6V +/- 0.1V to run at that speed. It would probably be fine regardless, but I wanted to check just in case the regulator setting should be changed.

Here's the +MVDDQ/VDDR1 regulator from the 9200 schematic:
1767060055198.png
The 431L here is a version of the ubiquitous TLV431 shunt regulator. My Sapphire card has 1.1k and 1k resistors at R279/Rq1 and R283/Rq2 respectively. I was having trouble wrapping my mind around the output voltage programming formula in the datasheet, so I just threw together an LTSpice model:
1767060749981.png

Yep, 2.6V, should be good to go. The schematic values, 4.75k and 4.32k, also result in 2.6V output. I'll try to remember to measure on the card once I have it fully assembled.
 
There's an error in my table above that I wish I could correct; 16 (4 x 4) of the 56-ohm resistor packs are required, not 12. Not sure how I screwed up such basic math, must have been up late that night. Anyway, thinking I needed 12, I ordered 15 from Digi-Key, meaning I was one short. I angrily searched my scrap boards and found one near the RAM slots on a Socket 478 motherboard (makes sense, it uses DDR1 SDRAM too). I stole it and the card is finished. Bonus points if you can spot it.
IMG_20260102_192136_048.jpg
IMG_20260102_192144_959.jpg

The card works well. It immediately showed up as 128MB, 128-bit with the v127 ROM, which was a bit confusing based on my experience with the Mad Dog card above. I don't fully understand how the ROM and hardware work together to determine the memory size and bus width on these cards. I flashed the v201 ROM on it and there was no change, still 128MB, 128-bit. The difference between 128MB and 256MB doesn't really matter for all practical purposes with this card, but I'd like to understand how it works. Maybe Mem_Strap0, Mem_Strap1, and Mem_Strap2 have something to do with it? These are shown in the schematic but their meaning is not documented.
 
Loving your VidCard hijinks! Keep 'em coming. :)
Have any suggestions for flashable to Mac OS9 PCI cards that'll do 1920x1200 DVI output?

edit: side note; does anyone have Mac compatible suggestions for same?
 
On the back, fourth one from left to right under the upper left RAM chip 😁
Points for you! Unfortunately...
who%27s-line.gif
 
Somewhat unexpectedly, this saga continues. @Trash80toHP_Mini asked me to convert a PCI 9250 for him, and I agreed to take a shot at it. Specifically one of these, a VisionTek with a DMS-59 connector:

1768803127122.png

The DMS-59 output is odd and was clearly chosen for its ability to fit into a low-profile PCI bracket. Luckily, the card I have is equipped with a full-height bracket. A dual DVI adapter is included, but the card has only one digital output, available on port 2; analog output is available on either port via a DVI-to-VGA adapter.

While the layout of this card was rearranged to fit on a smaller PCB, the components all use the same reference designators as the available schematic, so it was pretty easy to check and move strap resistors. Based on The Mac Elite information, the schematic, and a little poking around, I put together the following table of straps that seem to be important for the Mac Radeon 9250 PCI. The Sapphire and VisionTek (and Mac) cards use the reference design (at least in terms of how the strap resistors are labeled) and the Mad Dog uses an alternate design (which I presume is just one of many).

Net NameGPU Pin NameGPU BallReference Design = 0Reference Design = 1Alternate Design = 0Alternate Design = 1Mac PCIMad Dog PCISapphire PCIVisionTek PCI
BUSCFG0GPIO4AG4R220R219R40R390001
BUSCFG1GPIO5AH4R222R221R42R410000
BUSCFG2GPIO6AK3R224R223R44R431111
MULTIFUNC0LCDDATA16AH9R228R227R48R470000
MULTIFUNC1LCDDATA17AJ9R230R229R50R490011

As the table shows, I had to move R219 to R220. I found R229 populated, so I removed it, but I could not find R230 anywhere, including under the heatsink. I measure 1.7Mohms to GND on that net, so I guess it's very weakly pulled down? Maybe I should search for R230 again. Anyway, the card works well. Before the resistor changes, the video output was garbled, now it's clear. Here's the area of the card where the resistors need to be changed, just up and to the left of the upper heatsink pin. They have already been moved in the picture, and the flash ROM chip has been replaced with a 1Mbit part:IMG_20260118_204208_421.jpg

Oh yeah, the heatsink on this card has the awful yellow phase change TIM, like R300 and NV25/NV28 cards typically do. It requires heat and scraping to remove. I replaced it with regular thermal paste.

I was optimistic that the 4.0ns RAM onboard would clock to its rated speed of 250MHz:
IMG_20260118_164743_535.jpg

Well, it didn't. Any attempt to increase the memory clock above 225MHz showed artifacts. True to the reference schematic, this card uses the same TLV431-based switcher that I posted the schematic of above to supply both VDD and VDDQ for the memory. R279 is 4.75k and R283 is also 4.75k, which results in an output of 2.5V. The memory wants 2.6V, so it's being undervolted, thus it won't reach its rated speed. I'm sure the performance difference isn't huge, but I may try playing with these resistors later to see if I can get the rated speed out of these chips.

Another oddity of this card is that the two FETs at Q901 and Q902 get HOT! I measured over 100C under load, and that's with the G4's case open in a cool room. I suspected that these FETs might be under-specified switching FETs like I'd seen on early NV25 cards, but I was wrong; it's weirder than that. These are NTD14N03s, fairly beefy 14A parts. Scoping their gate pins, I see no switching, just a constant DC voltage...this isn't a switching regulator, it's two linear regulators in a trenchcoat! Their source pins are tied together, so these two FETs are supplying current to the GPU core in parallel, regulating 3.3V down to 1.6V and burning the rest off as heat. So, as far as wanting to reduce their operating temperature, I think I'm kinda screwed. If I replace the FETs with ones that have lower RDSon, the gate drive voltage will be adjusted until their RDSon is high enough to regulate the output, at which point they'll be dissipating exactly the same amount of power as the existing FETs. Oh well, this design worked for 20 years, and the silicon is rated for 150C. Might just have to live with it the way it is.
 
Back
Top