Every year around Christmas our lord and savior, VisionTek Products LLC, makes available mystery boxes of refurbished ATI graphics cards to lift our spirits - not to mention our framerates - while we huddle around our Athlon FX and Prescott Pentium 4 rigs for warmth. Or so various retrocomputing YouTube channels would have you believe. Spurred on by visions of lengendary GPUs of yesteryear - the Radeon 9800 Pro, X800 Platinum Edition and so forth - I ordered a four AGP mystery cards at a cool $5 a piece.
What retro treasures subsequently arrived at my door, you ask? One Radeon HD 3650 (intriguing!), one non-functional X1550 (drat!), and two absolute stinkers: a Radeon 9550 and X1050. When Nathan of PixelPipes stumbles across the latter of these while unboxing his own mystery assortment he audibly groans, and for good reason.
You see, the X1050 has nothing in common with ATI's other X1000-series cards, which are based on the R500 architecture. Instead, like the 9550, it sports an RV350 - a cut-down, 'value' version of ATI's mid-range offering from not one, but two generations back. Now, to be fair, the 9550 and X1050 do not hail from an ignoble lineage. The RV350 is essentially the same as the RV360 that powered the worthy Radeon 9600 Pro. And the Radeon 9600 Pro was essentially half of a Radeon 9800 Pro - a card that so outshined contemporary competitors that even a nerfed version was a force to be reckoned with. However, adding insult to injury, ATI mandated absurdly low core and memory clocks - just 200 and 250Mhz, respectively - preventing these cards from performing anywhere near their potential. But that's not all! ATI went out of their way to douse even the faintest glimmer of hope by locking in those pitiful clock speeds through the driver, eliminating the possibility of overlocking.
So now you understand why these cards induce involuntary groaning. But here on Contrarian Computing, when life hands us lemons, we use a handful of undocumented utilities from the late '90s and early '00s to make delicious lemonade.
Those of you out ther who, like me, are "nerds of a certain age", will likely recall that a popular trick back-in-the-day was to purchase a cheap Radeon 9500 and modify its BIOS to double its performance, essentially turning it into a 9700. This was possible because the 9500 and 9700 utilized the same R300 chip, with half of the pipelines disabled on the lower-end model. Could I pull off a trick like that with these RV350-based cards? Unfortunately, no. With the release of the Radeon 9800 and 9600 models, ATI had gotten wise physically removed the additional pipes from their budget offering's die and, as stated above, the 9550/X1050 is essentially a downclocked 9600. It did inherit something of value, however, and that is a GPU built on the 9600's smaller, 130nm process which is capable of much higher clocks than the earlier 9500. The RV360-based 9600 XT - clocked at impressive 500Mhz stock - was a capable enthusiast card in its day. If modding to a Radeon 9800 was off the table, perhaps I could set my sights on the 9600?
Standing in the way of that, of course, was the inability to overclock. A bit of Googling revealed that it was possible to trick ATI's driver by altering the device ID in the card's BIOS. And, I thought, while I was at it, I might as well up the default clocks to more respectable figures.
First, I popped the X1050 into my Pentium 4 rig, booted into Windows 7, launched GPU-Z and dumped the BIOS to disk.
I then opened up the BIOS in RaBit, a Radeon BIOS editing utility, and changed the card's PCI device ID from the dreaded 4153 that ATI's driver uses to identify it as a 9550/X1050 to 4152, indicating a generic 9600 card.
I pumped the core clock from 200 to 425Mhz - 25Mhz higher than the Radeon 9600 Pro. Then, having discovered on a Samsung datasheet that the VRAM soldered to my X1050 was capable of DDR400 speeds at a higher CAS 6 latency, I clocked the memory all the way to 324Mhz, beyond that of even the 9600 XT.
I created a bootable MS-DOS USB stick using Rufus, then copied the updated BIOS and the ancient flashrom utility to it. Once booted to the command prompt, I crossed my fingers and flashed the card.
I rebooted the machine and was relieved to see that the card was still superficially functional and the new clocks had taken.
Having determined that the card was at least superficially functional, I shut down the machine, pulled the card and evaluated the cooling solution. The stock heatsink, while certainly adequate for the anemic stock speed, probably wasn't going to cut it for clocks nearer to that of the 9600 XT, I decided it would be best to pursue an active cooling solution, similar to what those cards used. Conveniently I spied an unused, 2-pin fan header ready and waiting on the board.
I measured the distance between the existing heatsink's pins to be 55mm and searched eBay for something that might fit. Sure enough, compatible fan/heatsink combos were readily available in the $2-3 range and a week later, my Shenzhen-fresh solution arrived in the mailbox. Thirty seconds and a squirt of thermal paste later, I at last held in my hand the fruit of my labor: the kinda sorta 9600 XT.
My beloved, trash-built, Socket A Sempron 3000+ Windows '98 machine had, since birth, been saddled with a disappointing Dell OEM GeForce4 MX440. On a good day it might turn in 6500 points in 3DMark '01 SE. It was time for an upgrade.
I kicked the old MX440 to the curb, dropped in the quasi-9600, installed the final Catalyst driver, and loaded up 3DMark. Full of hopeful anxiety, I initiated the benchmark.
When the last demo faded out and 3DMark presented its final verdict, I was floored. At the turn of the millenium I only had access to budget components, and no combination of them resulted in a machine that could turn in 10,000 points. Despite owning dozens of machines since that are literally orders of magnitude more powerful, I felt an undeniable sense of pride and achievement.
If you need me, I'll be playing Unreal Tournament.