The news has been spreading like wildfire, Rivatuner has always been able to increase/decrease voltages with GT200 cards and others, but it has been a secret thus far...not anymore. All of my information is based on the information provided by
justageek95 in this thread
here. All credit goes to him, I am just doing what I do best, explaining in an easy to understand and follow manner. This is for Volterra VT11xx equipped cards and hasn't been confirmed to work with GTX 285s. It should work with other cards who's voltage regulators allow for voltage adjustments through registers. I think the GTX 295 uses the Volterra IC so it should work for them, but don't have on on hand to test. Let's get started with the quick and dirty guide...
First...the disclaimer. I nor OCX are in any way responsible for you being an idiot and putting 1.7v through your GTX 260 on air. From here on is all at your own risk and you may very well be voiding your warranty. There, I said it so don't say someone didn't warn you...but if you needed that warning, then get lost and save yourself a headache
Software Needed
Rivatuner - of course
Hardware Needed
GPU with voltage regulator capable of voltage adjustments with register changes. this guide will use
65nm GTX 280/260s as the examples which uses Volterra regulators. HD4870/HD4850 should well since they use Volterra VT11xx regulators i believe. The GTX 295 has also been confirmed to be working with this method. The multi-GPU or multi-core GPU guide is a couple posts down but you are best off to read through the single card guide first as it goes into more detail.
Step 1 :: Install/Configure Rivatuner
If you need instructions for this, then please leave now....seriously, get out.
Once Rivatuner is installed, open it and go to the
Hardware monitoring section...
1.
Make sure your card you are changing voltage for is selected from the drop down menu. Select the
Setup option from the hardware monitoring window in the bottom right...
2.
Then select the
Plugins option in the bottom left...
3.
When the
Active plugin modules window opens, scroll down and make sure there is a check beside
VT1102.dll...
4.
You should now have the
Voltage regulator output, V as one of the monitors in the hardware monitoring window, you may have to scroll down to find it. If not, then go back to the
Hardware monitoring setup window and ensure there is a check beside
Voltage regulator output, V.
This is the one of primary concern at this point. Leave the hardware monitoring open, you can hide or minimize Rivatuner as the next few steps all involve the command prompt. We will come back to Rivatuner to setup shortcuts and automatic scheduling later.
Step 2 :: Find I2C BUS of Card
With the
Voltage regulator output, V monitor visible, we should be seeing the idle voltage for the video card. What we need to do now is find out which I2C BUS the card we are going to adjust is using, and we need the command prompt for that. Easiest way to open the command prompt is
Windows key + R and type
cmd in the run box. The command prompt will open in a small window to your default user name. We need to be in the Rivatuner folder in order to execute Rivatuner.exe so you need to navigate there now. This is the command that gets me to the default Rivatuner folder in this Vista x64 installation.
If you can't navigate DOS enough to get to your Rivatuner folder, again, please leave now. Once in the Rivatuner folder, we can now easily execute Rivatuner.exe which we need to do in order to find the I2C BUS that our card is on. Here is the
EXACT command to type in, you might even be able to copy and paste if you are lazy or have fat fingers and find precision typing a chore...
Code:
rivatuner.exe /ri0,70,1a /ri1,70,1a /ri2,70,1a /ri3,70,1a
This simply polls the four I2C BUSes and tells us where devices are located. The
r in the command stands for
read,
i stand for
i2c, and the
1a is the register we are polling. With different voltage regulators on other cards, the 1a is what you would have to change as it likely won't be the same register. This is what it looks like in the command prompt for 100% clarification...
This checks the four I2C BUSes and reports back where the card is located. Once you type that in and hit
ENTER. A small dialogue should pop up from Rivatuner with the results...
The image speaks for itself, the video card I am working with is on the fourth BUS or the
i3 BUS. the number 3 is what we will have to keep track of as when we are writing to the registers and polling for more information, we will have to poll/write to the 03 I2C BUS. This will make sense in about 10 seconds, unless of course you have to go to the bathroom at this point, then either 30 seconds to say....10 minutes depending on whether it’s a 1 or a 2

.
Step 3 :: Find Voltage Registers of Card
We will now do basically the same thing but with a bit different command in order to find the voltage register for the card. At this point I have determined that at least two of the voltage registers are responsible for idle and load states. These seem to change with each setup, hence the reason for us having to find which one is for which. So in the same command prompt window, we need to type the following...
Code:
rivatuner.exe /ri3,70,15 /ri3,70,16 /ri3,70,17 /ri3,70,18
This polls the 15, 16, 17, and 18 registers on the I2C #3 BUS. compare it to the command we typed earlier and it makes perfect sense. Again, for 100% clarification, here is the command as typed...
And the results again come up in a Rivatuner prompt...
The numbers we are presented with are in hexadecimal and need to be converted to decimal format in order to do the calculation to find the voltage. This web site does just that...
http://www.maxi-pedia.com/hex+to+decimal+converter
After we convert the hexadecimal values to decimal values, we run them through this equation in order to determine the voltage of each register.
Voltage = (VID*0.0125)+0.45
So our first VID is hexadecimal 3b...which is decimal 59 (from conversion web site above)...through the equation...
Voltage = (59*0.0125)+0.45 = 1.1875 = Voltage. Our complete list of registers equals out to these voltages...
Register 15 - 3B = 59 = 1.1875v
Register 16 - 38 = 56 = 1.1500v
Register 17 - 31 = 49 = 1.0625v
Register 18 - 35 = 53 = 1.1125v
We now just match up the different states to the corresponding voltage to know which register controls which voltage. If we go back to the
Voltage regulator output, V from Rivatuner, we can see that this card is running 1.11v at idle.
This would mean that the closest voltage from our register chart above is the last one, #18 which is 1.1125v. In order to change idle voltage, we will want to write to register 18. To find out load voltage, let's put the card under load using F@H and match that up to the corresponding voltage above.
Rivatuner is saying 1.19v is being supplied under load which would be closest to 1.1875v on the register 15. So to adjust load voltage, change register 15. We now know what registers to change, so we can head back to the command prompt to write our changes.
Step 4 :: Adjusting Voltage
Now the easy part, adjusting voltage. We are going to use the identical command, but instead of
read, we will be using
write. Here first is a sample table of some of the voltages and the hexadecimal number they equate to. Obviously these just keep going up so simply go higher in hexadecimal to go higher in voltage or lower to do the opposite...
2C = 1.00v
2F = 1.03v
30 = 1.05v
3A = 1.17v
3F = 1.24v
40 = 1.25v
4F = 1.44v
...and so on and so forth. If you are unsure how the hexadecimal system works, do a Google search, it is pretty straight forward. You can also follow this equation working from voltage backwards to hexadecimal.
VID = (voltage - 0.450) / 0.0125
So for 1.50v it would be.... VID = (1.50 - 0.450) / 0.0125 = 84
convert to hexadecimal = 54.
54 = 1.50v
Now that we have everything we need, let's change some voltages. First up is the command. As mentioned, it is identical to before but with a
w and of course an added value to designate the register.
rivatuner.exe /wi3,70,
register,
hexadecimal value
So still in the same command prompt, we will now change idle to say 1.0v and load to 1.25v...keeping in mind our load register is #15 and idle is #18.
Code:
rivatuner.exe /wi3,70,15,40 /wi3,70,18,2c
In the command prompt, this is what it would look like...
Of course you can also just change one register at a time, you simply designate a single register at a time. For when you setup Rivatuner shortcuts or scheduled events, it is just easier to get use to changing both idle and load at the same time so you can make a single shortcut. Here is what Rivatuner hardware monitor shows for voltages now at idle/load with F@H used for load again.
Of course, the question on everyone's mind is, "does this actually change voltage though"? You tell me, notice the lack of the jumper on the fan header where the alligator clip is reading the voltage from. My hard mod requires the jumper to be there to ground the VR. The following below were taken with the same voltages set as shown in the Rivatuner monitor above.
Idle
Load
There you have it folks, softmod voltage adjustments using Rivatuner and the command line. Yes, it looks like a lot of effort but that is only because I went through stoopid levels of detail to avoid any confusion. It really is simple once you figure out what your registers and I2C BUS are. The next post will involve setting up shortcuts through Rivatuner and automatic scheduled events, AKA loading settings at Windows boot, and shortcuts on your desktop for on the fly voltage adjustments with the double click of the mouse.
Again, all of the credit goes to
justageek95 in this thread
here. I am just regurgitating and polishing his information with some screenshots and images to make it extremely straight forward.