Overclocking
First of all, overclocking the X1000 series is a nightmare once you want to use something that allows higher clocks than ATI's Overdrive. Overdrive limits the clocks on this card to 700 MHz GPU and 1100 MHz memory.
The problem for software developers is that everything is different now when it comes to overclocking. In the past you could just change the clock with one GPU register write. Now it's a complex series that includes reinitializing the memory controller. This means you have to write code for DDR1, DDR2, DDR3 and now DDR4. Of course ATI does not make any information available on what your code actually has to do, so you are on your own figuring it out: disassemble existing software, understand how it works, then implement it in your own code.
An alternative to direct register writes is using the BIOS routines for overclocking. Inside the BIOS is a script file which contains the required sequence of operations to perform a clock change. Since it's in the BIOS it has the right code for every card in the user's system. The problem here is that you have to write a BIOS script parser that "understands" ATI's script language (no documentation available) and then executes it. An additional problem is that this code uses huge delays, so clock setting is not instant and sometimes causes display corruption.
Both these methods are screwed when a card with 2D/3D clocks is installed. Once an application enters fullscreen 3D mode, the ATI drivers will change the clocks on their own and override your changes, including voltage settings.
A method to be compliant with this is to use driver calls to set the clocks. Problem here is that you have big clock steps like 9 MHz and can only set clocks within the overdrive limits. I figured out a workaround for the limits, but it's not working 100% and also tends to crash sometimes as users of ATITool Beta 15 know. Using the driver calls you can also not set clocks of the Crossfire slave card. ATI says they will implement this in a future driver version.
Right now the state of solid overclocking utilities for ATI cards is more than poor. I want to improve ATITool but it is very frustrating to invest a lot of time into a method which seems feasible and then it just does not work right.
Back to the X1950... Like on the X1900 series four voltages on the video card are controlled by software, so there is no more need for soldered or penciled hardmods.
The highest stable clock I could get out of my card was 722 MHz on the core and 1133 MHz on the memory. The memory can definitely do more, but no matter what you do to overclock you can not go past this limit. I assume this is a software bug of some sort, my guess is that the BIOS script for memory clock changing is faulty.
In 2D mode the Radeon X1950 XTX will run at 500 MHz core and 600 MHz memory, with reduced voltages. Once you start a full-screen 3D application, the nominal clocks of 600 MHz / 1000 MHz are set.