# RBE voltage register hacking



## BAGZZlash (Feb 11, 2009)

Hi @ all!

It may have come to your mind that there is a new method around enabling you to change your video card's voltages using RivaTuner. For reference, look here or here. The funny thing about this is that I'm already aware of this for a few months now. Problem is that this method needs the card be equipped with a Volterra VT11xx voltage controller chip which is why I wasn't able to make it work with my 3870. So I thought this isn't working at all. The new research showed that the method works with cards that actually have a VT11xx, such as the 4870 or 4870X2 (reference design, at least).

Long story short: I experimentally implemented this feature into RBE as well. The feature will be enabled just for 4870 and 4870X2 cards for now. You will find the feature at the lower left corner of the clocks settings tab, near the voltage table. There's a button that will open a new window where you can enter the new voltages for the several registers. Please also adjust the voltages in the power play settings to the new values as well.
If you have a 4870 or 4870X2, are experienced at flashing video cards and the RivaTuner method works for you, I'd appreciate if you'd download the new RBE beta version and tested if the method applied using RBE works for you as well. Please post any experience or bug reports concerning this new feature in this thread.
However, please be sure to have your boot disk/USB stick or whatever ready as well as your PCI card before trying this.
This RBE version is not labelled beta, even though it is. If there are no bug reports but users reporting this works, RBE v1.19 will go official just the way it is.

Okay, here's to the brave: Download the beta and let the testing begin!


----------



## nafets (Feb 12, 2009)

I will be testing this right away, with my reference HD4870 512MB.

I'm a big fan of Rivatuner and it's recently discovered voltage adjustment abilities.

Good stuff, Bagzz!


----------



## troyrae360 (Feb 12, 2009)

Ok, 1.19, awsum, whats features dose it have above 1.18, i just loaded look very simaler


----------



## troyrae360 (Feb 12, 2009)

opps, its the voltage regis,


----------



## KBD (Feb 12, 2009)

this is great news. i just started playing with the RivaTuner softmodding method on my reference HD 4870 yesterday and already achieved better overclocking results. Though I never flashed a card before and dont know if i'll have the guts to use a beta but if i muster the courage to do it i'll post results here.


----------



## nafets (Feb 12, 2009)

*The following gibberish will probably bore and/or confuse you. It's merely a place to put down my results and thoughts so I don't go nuts...*

Preliminary thoughts: Currently I use Rivatuner to set voltages via the "18" register. I expect that using RBE to alter this "18" register will have the same effect. I also expect altering the other three registers (15,16,17) to have no effect. I only have concerns as to *what takes priority in setting the voltages in the BIOS, either the "18" register value or the dropboxes for the various Clock info #s, and what a combination of both results in*.

Testing method: Boot into windows. Open up GPU-Z. Monitor VDDC reading while invoking PowerPlay state changing from 2D to 3D and vice versa (done by simple clicking on full folders then empty folders and vice versa, in Windows Explorer).

------

Results from Test group 1:

5 BIOSes - For all five BIOSes, Clock info #s 00-09 drop boxes are set to 1.263v.
Test1265.rom - (Test BIOS with altered registers) All four registers set to 1.2625v. *Result*: Stable, Voltage stays at 1.2625v.

Test121.rom - (Test BIOS with altered 15 register only) 15 register set to 1.2v. 16,17,18 registers set to 1.2625v. *Result*: Stable, Voltage stays at 1.2625v.

Test122.rom - (Test BIOS with altered 16 register only) 16 register set to 1.2v. 15,17,18 registers set to 1.2625v. *Result*: Stable, Voltage stays at 1.2625v.

Test123.rom - (Test BIOS with altered 17 register only) 17 register set to 1.2v. 15,16,18 registers set to 1.2625v. *Result*: Stable, Voltage stays at 1.2625v.

Test124.rom - (Test BIOS with altered 18 register only) 18 register set to 1.2v. 15,16,17 registers set to 1.2625v. *Result*: Stable, Voltage stays at 1.2v.

Test group 1 thoughts: Results were as expected. Stability is fine throughout. Functionality of altering the 18 register is the same as setting Clock info #s 00-09 to 1.203v.

------(Further testing to find if separate 2D/3D voltages can be set via registers)

Results from Test group 2:

4 BIOSes - For all four BIOSes, Clock info #s 00-09 are set to 1.083v.
Test111.rom - (Test BIOS with altered 15 register only) 15 register set to 1.2625v. 16,17,18 registers set to 1.2v. *Result*: Stable, Voltage stays at 1.2625v.

Test112.rom - (Test BIOS with altered 16 register only) 16 register set to 1.2625v. 15,17,18 registers set to 1.2v. *Result*: Stable, Voltage stays at 1.2v.

Test113.rom - (Test BIOS with altered 17 register only) 17 register set to 1.2625v. 15,16,18 registers set to 1.2v. *Result*: Stable, Voltage stays at 1.2v.

Test114.rom - (Test BIOS with altered 18 register only) 18 register set to 1.2625v. 15,16,17 registers set to 1.2v. *Result*: Stable, Voltage stays at 1.2v.

Test group 2 thoughts: Results are quite odd here. Stability is fine throughout. Firstly, any changes to register values override any changes made to Clock info #s voltage dropboxes. Register values have priority, which I sort of figured would be the case.

Secondly, in contrast to test group 1, the 15 register's altered value was what the card would be locked in at. When using Rivatuner, I could only change voltages using the 18 register. I am currently rechecking this with Rivatuner.

------

*Update*: I have rechecked setting voltages via register values with Rivatuner. I also did a bit of brainstorming.

Re-reading the two guides on changing voltages with Rivatuner, I remembered that when using Rivatuner in any manner to adjust GPU/MEM clocks, PowerPlay is disabled, and the GPU/MEM clocks stay constant.

When using Rivatuner to adjust *only* voltages via the register values, you also disable PowerPlay, but only it's automatic voltage changing. GPU/MEM clocks are still free to switch, based on the 2D/UVD/3D settings in BIOS.

I am hypothesizing that when adjusting voltages via the register values in the BIOS, you also disable PowerPlay's automatic voltage changing. This could be why I'm not seeing any variation in voltages when PowerPlay is active and the GPU/MEM clocks switch from 2D to 3D state and vice-versa. As a result of this I'm guessing that entering different register values for 2D (IDLE) and 3D (LOAD) isn't possible on an ATI card, because only one register value out of the four is used. From what I've seen of Nvidia cards, *it is possible* to set register values for both 2D (IDLE) and 3D (LOAD), as Nvidia uses a different method of automatically switching GPU/MEM/SHADER clocks and voltages (IE....nothing like ATI's PowerPlay).

With the following test group of BIOSes I will try and figure which of the four register values is always read (and if it's always the same one) to set the voltage of the video card in 2D/3D, and if the above hypothesis is true or false.

------

Results from Test group 3:

3 BIOSes (may need more)
Test101.rom - (Test BIOS with all registers altered with non-standard voltages) 15 register set to 1.2125v, 16 register set to 1.1875v, 17 register set to 1.2375v, 18 register set to 1.225v. Clock info #s 00-09 are set to 1.263v. *Result*: Stable, Voltage stays at 1.225v.

Test102.rom - (Test BIOS with all registers altered with non-standard voltages) 15 register set to 1.2125v, 16 register set to 1.1875v, 17 register set to 1.2375v, 18 register set to 1.225v. Clock info #s 00, 03-09 are set to 1.263v. Clock info #s 01, 02 are set to 1.083v. *Result*: Stable, Voltage changes (finally!) from 1.2125v (2D IDLE) to 1.225v (3D LOAD) and vice-versa.

Test103.rom - (Test BIOS with all registers set to 1.2375v) Clock info #s 00, 03-09 are set to 1.263v. Clock info #s 01, 02 are set to 1.083v. Result: Currently testing... Cancelled

Test group 3 thoughts: Results are definetly encouraging! Stability is fine throughout. I've finally figured why I wasn't seeing any variation in voltages in Test groups 1 and 2. *I* unknowingly disabled PowerPlay's automatic voltage changing by setting the Clock info #s 00-09 dropboxes to the same voltage. Changing the Clock info #s 01 + 02 dropboxes to a different voltage allows PowerPlay to function properly with regards to automatic voltage switching, and the register values are properly read and applied during 2D/3D state switching.

------

Summing it all up:

Well here is a simple baseline of what I have found is necessary to properly utilize the new Voltage Registers section of RBE.

1. You must be using an ATI video card utilizing a Volterra VT11xxx digital VRM controller.
2. Clock info #s 01 and 02 must both have the same voltage settings in the dropbox, and they must be different than what is set in Clock info #s 00, 03-09. As far as I can tell, it does not matter what either group of voltages are as they are overridden by the register values.
3. Register 15 should be set to your 2D IDLE voltage.
4. Register 18 should be set to your 3D LOAD voltage.
5. Currently I haven't found a use for register values 16 and 17. I haven't been able to set anything through them, with either Rivatuner or through the BIOS.

Things I'd recommend to be changed (if possible):

1. Adding dropboxes for each of the four registers, with preset proper values. You may enter weird numbers like 1.264623v but the actual voltage will default to 1.2625v. Each step in voltage is 0.0125v. For example, going higher than 1.2625v would be 1.275v, 1.2875v, 1.3v...

Other than that, I'd say it's a pretty neat feature for RBE. *It's fantastic for OC'ers that want more voltage than what's offered by default, and for power savers who are looking for lower 2D IDLE voltages to drop power consumption/temperatures even more than the lowest available in the BIOS. Add to this you don't need any extra software for it to work. It's all automatic.* I'm surprised at how well it works. Great job Bagzz. Keep up the good work...

PS: I'm currently utilizing a BIOS with the settings shown below for a couple of days, to see how stability is and if there are any issues that may arise. *I suspect it'll work just fine though*. 2D voltage is slightly lower than the lowest available of 1.083v (1.1v in GPU-Z), and 3D voltage is slightly higher than the default of 1.263v (1.2625v in GPU-Z).


----------



## BAGZZlash (Feb 12, 2009)

nafets said:


> Preliminary thoughts: Currently I use Rivatuner to set voltages via the "18" register. I expect that using RBE to alter this "18" register will have the same effect. I also expect altering the other three registers (15,16,17) to have no effect. I only have concerns as to *what takes priority in setting the voltages in the BIOS, either the "18" register value or the dropboxes for the various Clock info #s, and what a combination of both results in*.
> 
> Testing method: Boot into windows. Open up GPU-Z. Monitor VDDC reading while invoking PowerPlay state changing from 2D to 3D and vice versa (done by simple clicking on full folders then empty folders and vice versa, in Windows Explorer).
> [...]



Awesome. Thank you, man!


----------



## BAGZZlash (Feb 12, 2009)

nafets said:


> Each step in voltage is 0.0125v.


That might not be valid for all cards. I have BIOSes here for which this is not the case. So I don't see me implement dropdown boxes here. Cool idea, but it might be contra-productive in this case.



nafets said:


> Other than that, I'd say it's a pretty neat feature for RBE. I'm surprised at how well it works. Great job Bagzz. Keep up the good work...


I'm gladly suprised as well. Thanks a lot for your hard work. 

You seem to be an experienced empirical researcher. Would you like to write a chapter about voltage register tweaking that could be included into the RBE tutorial?


----------



## nafets (Feb 12, 2009)

BAGZZlash said:


> That might not be valid for all cards. I have BIOSes here for which this is not the case. So I don't see me implement dropdown boxes here. Cool idea, but it might be contra-productive in this case.



I don't see why it wouldn't be the same for all cards. The method of arriving at the voltage is based on the same equation for all cards (ATI and Nvidia) that use this register method of changing voltages:

VID = hexadecimal register value converted to decimal
VOLTAGE = (VID x 0.0125) + 0.45

For example. Your 18 register value is 2B (hexadecimal). Converting that to decimal would be 43. This is your VID.

Entering that in the second equation comes out to a voltage of 0.9875v.

If the 18 register value was 2C (the next hexadecimal value). Converting that to decimal would be 44.

Entering that in the second equation comes out to a voltage of 1v.

Add to that, GPU-Z displays the voltage exactly as I enter it in the register settings (at steps of 0.0125v).

As far as I know, none of the cards display register values of hexadecimals with more than two positions (IE.... 1.5b22d0e560419).

There's probably an easier way of explaining it, but I'm very poor at doing easy and simple. I'm also a bit tired now, so I might be missing something. You are obviously more aware than I of the pros and cons of programming in certain features, so I will gladly just accept your decision, as I have no say in the matter anyways.  



BAGZZlash said:


> I'm gladly suprised as well. Thanks a lot for your hard work.
> 
> You seem to be an experienced empirical researcher. Would you like to write a chapter about voltage register tweaking that could be included into the RBE tutorial?



I'd love to, but I'd just confuse the hell out of everyone. As I said before, I'm not very good at doing short and sweet. I'll see what I can come up with that would be presentable to a less-than-experienced audience...


----------



## BAGZZlash (Feb 12, 2009)

nafets said:


> I don't see why it wouldn't be the same for all cards.


Woops. I got you wrong in the first place. That formula is valid all the same of course, it's just how the VT11xx is being programmed. This formula is implemented in RBE, of course.
I was referring to some other thing:
You see, there are BIOSes for which the registers are set to those values:

1.1;  1.137;  1.2;  1.327

for example (this is not an example of an actual BIOS, just for discussion). You see, the differences between the voltages are not all the same. Of course, each one of them is being calculated by the formula given, but how would you know for this BIOS which "default" voltages to offer in some combo boxes?
Another thing: Imagine the user enters a voltage of, say, 0.999999. The formula says us that this yields  0.999999 - 0.45 = 0.549999. 0.549999 / 0.0125 = 43.99992. This can't be converted to a hex value which is why RBE takes a rounded decimal value of the formula's result, which is 44d in this case = 0x2C.
In other words: The user can enter anything he wants, RBE automatically makes sure the result is a valid hex value that is as close to the user's input as possible.
Obviously, the minimal voltage that could be saved in one byte using the formula is 0.45 volts. The maximum is 255 * 0.0125 - 0.45 = 2.7375. Go ahead and try to enter 3 volts into the register boxes in RBE and see what happens. 



nafets said:


> I'd love to, but I'd just confuse the hell out of everyone. As I said before, I'm not very good at doing short and sweet. I'll see what I can come up with that would be presentable to a less-than-experienced audience...


That should be no problem. Long and sour is more preferred over short and sweet by most users anyway which includes myself. Additionally: Did you read the tutorial? I'm sure you can write a text which is way better that what I produced there, honestly!


----------



## W1zzard (Feb 12, 2009)

BAGZZlash, icq me when you see this. i think i have the answers you are looking for


----------



## VuurVOS (Feb 13, 2009)

Tested the registers and found something nice . The lables in the voltage lable are linked. So if your chance register 15 it will change voltage lable 0. 

register 15 -> voltage lable 0 (1.083v)
register 16 -> voltage lable 1 (1.143v)
register 17 -> voltage lable 2 (1.203v)
register 18 -> voltage lable 3 (1.263v)

With ATT you can switch between those registers/voltage lables. Other tip. Never do any 1.1v under volting because it will cause artifacts since the GDDR5 ram controller will cause corruption if you clock the memory too high.


----------



## BAGZZlash (Feb 13, 2009)

VuurVOS said:


> Tested the registers and found something nice . The lables in the voltage lable are linked. So if your chance register 15 it will change voltage lable 0.
> 
> register 15 -> voltage lable 0 (1.083v)
> register 16 -> voltage lable 1 (1.143v)
> ...



That seems pretty obvious, but might be too simple. For instance, look at this (stock) BIOS:


----------



## nafets (Feb 13, 2009)

I'm guessing that's one of the original voltage locked HD4870 BIOSes. Way back when, before RBE had the "enable superior PowerPlay" support, you were stuck at 1.2625v with that BIOS, regardless of what you set in the Clock info voltage dropboxes.

I'm assuming you could now use the Voltage registers section, with that older BIOS, to change 2D and 3D voltages...

The mystery is solved as to how the voltage was locked at 1.2625v, even though there was a selectable (though useless) voltage range. They just modified all four registers to the same value. Something which we could not see or modify at the time. Sneaky...


----------



## BAGZZlash (Feb 13, 2009)

nafets said:


> I'm guessing that's one of the original voltage locked HD4870 BIOSes. Way back when, before RBE had the "enable superior PowerPlay" support, you were stuck at 1.2625v with that BIOS, regardless of what you set in the Clock info voltage dropboxes.
> 
> I'm assuming you could now use the Voltage registers section, with that older BIOS, to change 2D and 3D voltages...
> 
> The mystery is solved as to how the voltage was locked at 1.2625v, even though there was a selectable (though useless) voltage range. They just modified all four registers to the same value. Something which we could not see or modify at the time. Sneaky...



I see. Yeah, that should explain it. It would also correspond to the information W1zzard gave me (which basically also was that there is nothing special about the register selection).


----------



## W1zzard (Feb 13, 2009)

basically the voltage controller has 4 input pins. the pin that is high, selects which voltage register is the one deciding the current output voltage. there is no inherent order to them. you could put 
1.0 2.0 3.0 4.0 volts into the registers or 4.0 3.0 2.0 1.0 .. it only matters that whatever drives the input pins (in our case the gpu) knows which pin to drive for which voltage (or at a minimum which pin to drive for a higher voltage, if absolute values do not matter)


----------



## VuurVOS (Feb 13, 2009)

W1zzard said:


> basically the voltage controller has 4 input pins. the pin that is high, selects which voltage register is the one deciding the current output voltage. there is no inherent order to them. you could put
> 1.0 2.0 3.0 4.0 volts into the registers or 4.0 3.0 2.0 1.0 .. it only matters that whatever drives the input pins (in our case the gpu) knows which pin to drive for which voltage (or at a minimum which pin to drive for a higher voltage, if absolute values do not matter)



Accualy there is an order. Low to higher voltage. Otherwise I could overclock better with the modded register 15. Even with 1.34 volts at register 15, I couldn't get 100% artifacts free passed the normal clocks. Powerplay is sometimes switching even when you force it with ATT to stay at register 15.


----------



## W1zzard (Feb 13, 2009)

i was referring to just the voltage regulator design when you go out and buy one for your own application. if ati implements it that way thats nice for them but that doesnt mean it has to be like that on all cards.


----------



## BAGZZlash (Feb 13, 2009)

However, I added this passage to the tutorial. Users should simply use Register 0x15 for undervolting and 0x18 for overvolting and everything should be fine:



			
				Myself said:
			
		

> At least for cards equipped with a Volterra VT11xx voltage controller chip, there's another way: Tweaking the voltage registers directly. On bootup, the BIOS programs the chip i.e. writes values into its registers. So, those values are stored within the BIOS file and thus, can be changed using RBE. RBE automatically detects if this voltage tweak is possible. If so, the button "view/change voltage registers..." in the lower left corner of the clock settings tab (near the voltage table) is being enabled. Clicking it will open a window where you can enter new values for the four registers 0x15 through 0x18:
> 
> 
> 
> ...



W1zzard, did you recieve my eMail I sent you this morning?


----------



## W1zzard (Feb 13, 2009)

yep got the mail. will post the new version after i finish my döner kebab


----------



## BAGZZlash (Feb 13, 2009)

W1zzard said:


> yep got the mail. will post the new version after i finish my döner kebab



Thanks. I hope your Döner was nice. 

At this place also: Thanks to everyone who contributed during the last few days' research progress. I appreciate it!


----------



## Ben_UK (Feb 16, 2009)

Hello,

Firstly I want to thank everyone for their input with this site, its a fascinating read and a credit to the community, especially W1zzard and BAGZZlash who put so much time and effort into these projects.

I am using a Sapphire 4870 1GB (Non-standard) board.

In the past, I have learned that adjusting the voltages for this card is not possible, I just wonder if its possible now with this latest alteration?
You will have to forgive me, I have PC knowledge, just not much when it comes to voltages, voltage registers, look up tables etc, I know that high voltage can kill PC components, thats about it.

I have included a screendump of the BIOS from my 4870 1GB whereby I can seem to adjust the voltage registers... Is this method likely to work, as I dont understand what the 15,16,17,18 fields denote. I have read the guide and the portion which BAGZZlash added to it, but am still a little hazy.






Any help or advice would be greatly appreciated.

Thanks,

Ben.


----------



## BAGZZlash (Feb 16, 2009)

Ben_UK said:


> Any help or advice would be greatly appreciated.



From the values of your registers, it seems likely that you can change your voltages. Try increasing voltages in little steps and *watch your temperatures very carefully*.
Registers 0x15 to 0x18 simply denote the address of the values in the chip. Usually I would have denoted them 0 to 3 or 1 to 4, but since the 0x15 to 0x18 notation has become popular during the research for the RivaTuner method...


----------



## Ben_UK (Feb 16, 2009)

BAGZZlash said:


> From the values of your registers, it seems likely that you can change your voltages. Try increasing voltages in little steps and *watch your temperatures very carefully*.
> Registers 0x15 to 0x18 simply denote the address of the values in the chip. Usually I would have denoted them 0 to 3 or 1 to 4, but since the 0x15 to 0x18 notation has become popular during the research for the RivaTuner method...



So the 0x15 to 0x18 relates to the 4 voltage levels selectable?

So on my card they are:

0x15 = 1.083
0x16 = 1.143
0x17 = 1.203
0x18 = 1.263

So, if I change the reading for 0x18 (1.263) to something like 1.283 within RBE then obviously flash the card. When I come to select the voltage in ATT, I presume the highest will still say its still 1.263, but will it in reality be 1.283?


----------



## nafets (Feb 17, 2009)

Before you mess with your BIOS, I highly recommend you download the latest Rivatuner and test out whether or not your card's voltages can be softmodded. Both methods work the same way, but with Rivatuner it's not permanent.

It's much easier to do via Rivatuner, rather than editing your current BIOS, and flashing it, for just simple testing.

Just follow the fairly simple guide here, for setting voltages with Rivatuner. If it doesn't work with Rivatuner, it won't work with your BIOS and RBE.

Make sure you do not have Ati Tray Tools running in the background (just disable it altogether) while you have Rivatuner running. It may or may not complicate your voltage testing...


----------



## Duffman (Feb 17, 2009)

it sounds like he has the same card I do.  I tried all the soft mod methods and they don't work on it.


----------



## Ben_UK (Feb 17, 2009)

Duffman said:


> it sounds like he has the same card I do.  I tried all the soft mod methods and they don't work on it.



Yep, thats the one.

So this method wont work either then?


----------



## BAGZZlash (Feb 17, 2009)

Ben_UK said:


> Yep, thats the one.
> 
> So this method wont work either then?


Read the tutorials. Make sure you understood anything about the mod. Try it with RivaTuner then. If it works and you want to make it permament, modify your BIOS.



I just figured out that some 3870X2s also seem to be equipped with a VT11xx, so this method should work with those cards, too.


----------



## Ben_UK (Feb 17, 2009)

Just tried the Rivatuner way.

Cant get past the first bit. The hardware monitoring plugins bit for the voltage doesnt even appear.

I guess im out of luck then.

I wish I had researched this a bit better before buying this card now... 

Thanks anyway.

Ben.


----------



## Duffman (Feb 17, 2009)

It kinda sucks.  I went for that card for the good cooler and 1gb ram.  Sorta the price you pay for getting a non-reference design.


----------



## 50eurouser (Feb 19, 2009)

*Sapphire Hd4870 Non Reference 512 Mb Sucks*

Man it's awful I'm planning to give away ma Sapphire HD4870 512MB NON REFERENCE! Reasons: 1st VRM design is far worse than stock Digital-PWM and can't be voltmodded through software with RBE/Rivatuner. 2nd Overclocks so low ... memory max is ~1025 and core ~800 MHz, pretty Low. 3rd Voltage didn't drop In Idle 2D mode whatever I Did. I tried flashing with RBE and used all possible voltages but all gave me the same result, 1.30 Volts Idle with my multimeter! On load 1.33 Volt. 4th Cooler really sucks ... no better than Stock.  I'm curious of  asking Sapphire why they change it? for good or for worse ??? With my old HD4830 I could hit easily a 760-780 FSB with my Arctic C. S1+12CM fan. With HD4870+AC S1 tops @ 810MHz ... so damn low. My oppinion for possible buyers, jusy stay away from this card, not the best HD4870 out there.


----------



## X2-3800 (Feb 22, 2009)

I am not tested the RBE volt hack for now.
But I think it is an good idea to change the values of the voltage table too, if I change the registers. So I can see what I have changed and anybody can see instantly if it is something wrong eg. all voltages are equal in the registers and someone is wondering because the voltage is not changing depending from GPU load.


----------



## BAGZZlash (Feb 22, 2009)

X2-3800 said:


> I am not tested the RBE volt hack for now.
> But I think it is an good idea to change the values of the voltage table too, if I change the registers. So I can see what I have changed and anybody can see instantly if it is something wrong eg. all voltages are equal in the registers and someone is wondering because the voltage is not changing depending from GPU load.



It's not that simple to change the voltage table to what is set inside the voltage registers. Maybe you should just forget about this idea.


----------



## X2-3800 (Feb 22, 2009)

The absolut lowest voltagesettings for my two MSI HD4870-512 OC edition cards was:

GPU300 MEM400   @0,81V and Hex 1D real value 0,8125V
GPU780 MEM1000  @1,16V Hex 39 real value 1,1625V

For security I have set the folowing values:

GPU300 MEM400   @0,85V and Hex 20 real value 0,85V
GPU780 MEM1000 @1,18V Hex 3a real value 1,175V

I use only the register 15 and 17 for voltage switching, they should be equal to (0: 1.083V) and (2:1.203V) in the "BIOS voltage table".

For testing the voltages before flashing you can use the program "VoltageFactory" from AwardFabrik.de  it works in Vista 64bit but it is not easy to use for the first time.

http://www.awardfabrik.de/images/stories/upload/VoltageFactory_by_AwardFabrik.zip


Forum:  http://www.awardfabrik.de/forum/showthread.php?t=5707  in german.


----------



## BAGZZlash (Feb 22, 2009)

It's not that simple to change the voltage table to what is set inside the voltage registers. Maybe you should just forget about this idea. 
Trust me.


----------



## X2-3800 (Feb 22, 2009)

BAGZZlash said:


> It's not that simple to change the voltage table to what is set inside the voltage registers. Maybe you should just forget about this idea.



I did not understand what is so difficult to change the values of the "voltage table" to the values I set in the voltagehack menue.

The voltage menue and and voltage tabel should looking like this.


----------



## VuurVOS (Feb 22, 2009)

Those are two different things. The voltage settings you see in the combo boxes are more or less labels. It doesn't change the voltage, it only represents which state the voltage regulator is. 

Like BAGZZlash said, it is possible but it isn't simple since some of cards/bioses have more than 4 states available.


----------



## dudikaz (Feb 22, 2009)

k i tried increasing my voltages, but the more i do the faster my card crashes... smthing is wrong :/ it seems voltage is actually increasing because temps get higher, but card crashes in seconds when running furmark... can't understand why... even with fan running @ 100% it crashes in few seconds...


----------



## BAGZZlash (Feb 22, 2009)

X2-3800 said:


> I did not understand what is so difficult to change the values of the "voltage table" to the values I set in the voltagehack menue.
> 
> The voltage menue and and voltage tabel should looking like this.



It's not that simple to change the voltage table to what is set inside the voltage registers. Maybe you should just forget about this idea. 
Trust me. Really.


----------



## VuurVOS (Feb 22, 2009)

dudikaz said:


> k i tried increasing my voltages, but the more i do the faster my card crashes... smthing is wrong :/ it seems voltage is actually increasing because temps get higher, but card crashes in seconds when running furmark... can't understand why... even with fan running @ 100% it crashes in few seconds...



If you don't understand what you don't understand....I can't understand even if I want to understand!  We need more info  Can you tell more about the clock speeds? Are you using a card with a VT11xx voltage controller? Which card are you using ?. Which registers did you change ? Which temps do you have ?


----------



## X2-3800 (Feb 22, 2009)

VuurVOS said:


> Those are two different things. The voltage settings you see in the combo boxes are more or less labels. It doesn't change the voltage, it only represents which state the voltage regulator is.
> 
> Like BAGZZlash said, it is possible but it isn't simple since some of cards/bioses have more than 4 states available.



Yes I know, and this Labelnames can be changed depending from the values that in the voltage list.
0x15 represent (0:1.083) 0x16 represent (1:1.143) and so on. Its possible to read out the four Hex values, convert it to decimal and rewrite the "BIOS Voltage table"

May be there are BIOSs out with more than 4 powerstates, but than there also >4 0xXX addresses with >4 Hex values.  Whatever, RBE works for me.......may be other people have an problem with it.


----------



## dudikaz (Feb 23, 2009)

VuurVOS said:


> If you don't understand what you don't understand....I can't understand even if I want to understand!  We need more info  Can you tell more about the clock speeds? Are you using a card with a VT11xx voltage controller? Which card are you using ?. Which registers did you change ? Which temps do you have ?



the only thing i can't understand is why my card is crashin when i increase voltage... i have reference 4870x2 and yes it has VT11xx controller... i'm using XOC bios which has default clocks of 800/975... first i tried changing only 0x18 register, which imo is 3d mode changed it to 1.3v and card crashed like in 5 seconds even at those same 800mhz (which works perfectly at default voltages) then i tried changing all the registers to 1.3v and all those dropdown boxes to 1.3v aswell and i think it really works cause my idle temps got to ~70-80C at default fan speed so i tried running fan @ 100% but as soon as i start furmark my monitor shuts off :/


----------



## BAGZZlash (Feb 23, 2009)

X2-3800 said:


> May be there are BIOSs out with more than 4 powerstates, but than there also >4 0xXX addresses with >4 Hex values.


It doesn't matter how many "hex values" there are, the VT11xx has just four voltage registers. Do not change the other registers, they program the controller chip to do strage things!
However, the voltage table is more or less independent of the voltage registers. When changing the voltage registers, the voltage table is being kind of ignored. Still, the voltage table can't simply be changed to anything you want, why won't you juste believe me that? It's due to how this table is being saved inside the BIOS.



dudikaz said:


> the only thing i can't understand is why my card is crashin when i increase voltage... i have reference 4870x2 and yes it has VT11xx controller... i'm using XOC bios which has default clocks of 800/975... first i tried changing only 0x18 register, which imo is 3d mode changed it to 1.3v and card crashed like in 5 seconds even at those same 800mhz (which works perfectly at default voltages) then i tried changing all the registers to 1.3v and all those dropdown boxes to 1.3v aswell and i think it really works cause my idle temps got to ~70-80C at default fan speed so i tried running fan @ 100% but as soon as i start furmark my monitor shuts off :/


Does it work with other applications then FurMark? You know that FurMark can destroy chips even at standard voltages? Do you change both BIOSes to equal values?




VuurVOS said:


> Are you using a card with a VT11xx voltage controller?


No need to ask that: RBE automatically detects if the BIOS is to program a VT11xx. If not, the voltage register button will be disabled.


----------



## VuurVOS (Feb 23, 2009)

dudikaz said:


> the only thing i can't understand is why my card is crashin when i increase voltage... i have reference 4870x2 and yes it has VT11xx controller... i'm using XOC bios which has default clocks of 800/975... first i tried changing only 0x18 register, which imo is 3d mode changed it to 1.3v and card crashed like in 5 seconds even at those same 800mhz (which works perfectly at default voltages) then i tried changing all the registers to 1.3v and all those dropdown boxes to 1.3v aswell and i think it really works cause my idle temps got to ~70-80C at default fan speed so i tried running fan @ 100% but as soon as i start furmark my monitor shuts off :/



Does this also happen with Rivatuner? Can you post both bioses ?


----------



## dudikaz (Feb 23, 2009)

i do not use rivatuner, i use ccc cause that xoc bios allows up to 900gpu and 1100mem. haven't tried anything other than furmark, but i'm pretty sure iot would be the same, cause my card doesn't even start to heat up and monitor shuts off like at 60C... it's not a heat issue... and yes i change both bios'es to same values. i've attached both bioses.


----------



## nafets (Feb 23, 2009)

You really should use Rivatuner first to test the voltages on your HD4870X2. The functionality is the same as the RBE BIOS method, but it's not permanent, and is easier to work with than constantly flashing your card left and right...


----------



## dudikaz (Feb 23, 2009)

u really shoudn't tell me what to do, i use vistax64 and rivatuners driver does not work for me... and i'm 100% sure i have VT11xx controller so why shouldn't i try editing my registers?


----------



## nafets (Feb 23, 2009)

It's just advice. Lighten up.

If you card doesn't take increased voltages, then you're stuck with what you have.

Some cards are just more sensitive than others in that regard. I would expect as much with a single-card multiGPU setup like the HD4870X2...


----------



## X2-3800 (Feb 24, 2009)

dudikaz said:


> u really shoudn't tell me what to do, i use vistax64 and rivatuners driver does not work for me... and i'm 100% sure i have VT11xx controller so why shouldn't i try editing my registers?



Thats false, I have Vista 64bit and Rivatuner works great (install "available Updates" during installation). Together with "VoltageFactory" I can set the voltage registers without any problems.

Now I tested the Voltage Register Hack with RBE_119 and it works great.

Only my Catalyst 9.2 has again the Multi GPU Clockdown BUG  but this is an error by AMD.  Cat.9.1 should work.

As you can see, the voltage hack is working. 780-1000Mhz 1.175V   300-400Mhz 0,85V


----------



## X2-3800 (Feb 24, 2009)

"Quote:
Originally Posted by X2-3800 View Post
May be there are BIOSs out with more than 4 powerstates, but than there also >4 0xXX addresses with >4 Hex values.
It doesn't matter how many "hex values" there are, the VT11xx has just four voltage registers. Do not change the other registers, they program the controller chip to do strage things!
However, the voltage table is more or less independent of the voltage registers. When changing the voltage registers, the voltage table is being kind of ignored. Still, the voltage table can't simply be changed to anything you want, why won't you juste believe me that? It's due to how this table is being saved inside the BIOS."

I never wanted to do this! I never claimed this! And I never claimed that this chip has more than 4 voltage registers!  All what you are writing, I am allready know.
What I want is, that RBE simple update the voltage values in the "BIOS voltage table of RBE" depending of the real hexcode in the voltageregisters!! 
Because this values 0: 1.083 V  1:1.143 V 2: 1.203 V and 3: 1.263 V are wrong if I had changed the registers to 
0x15 = Hex20 = 0,85 V 
0x16 = Hex39 = 1,1625 V
0x17 = Hex3a = 1,175 V
0x18 = Hex41 = 1,2625 V
Thats very very simple.
You only have to convert the hexvalues (there is an formula out there, to do this), programed in the BIOS file for "registers" 0x15 0x16 0x17 0x18 to readable voltagevalues and refresh the "Voltage Table".
So the passiv "Voltage Table" becomes activ and shows real voltagevalues instead of standard values of  the card. You can also change the drop down menues for Powerplay.
Now I can load the BIOS file and see instantly what voltage values will be programmed in the Chipregisters by the BIOS-file.
Its all possible because that "Voltage Table" is an simple "Label" that can renamed every time you want. I am allready do similar things with an very old "Visual Borland C++" in school.

But I give up, you didn't or will not understand me. Its so simple to understand......


----------



## BAGZZlash (Feb 24, 2009)

Honestly, do you really think I didn't get what you are trying to tell me?
But I give up, too. It's not me who doesn't understand but it's you who just doesn't want to believe that this IS. NOT. POSSIBLE.
This voltage table is not just a "table" you can save random values to. Get that. For god's sake.


----------

