I had been searching for information how this could be done, reading a thread about the leaked 390X bios on Guru3D I came across a post by sTOrM41 showing how.
Google translated thread worked for me! .
I used all the programs linked in sTOrM41's German thread and successfully edited my Vapor X 290X bios to have GPU/RAM clocks I'd like after knowing it could do them.
Flashing was done using method and files in the OCN 290 -> 290X Unlock thread , view under heading R9 290 Unlock guide in post 1 and use steps 1-7 skipping step 3.
Before reading on further please read and follow these rules to edit / flash bios.
Make backup of original bios on video card, for each switch position.
Edit copies of your original bios, so you always have original unedited bios to use if thinks go bad.
Do not flash both bios positions as then at least you'll have option to boot from that if something goes wrong.
GPU / RAM Clock Editing
The section in your original bios file where you need to edit GPU core clock will be where also the RAM clock is.
Here is an image of my default GPU / RAM clock in bios, use this to ref with instructions below. Be aware values will not be in the same place but like said earlier you make the edit where GPU / RAM clock are together.
So what I did using a backup copy of the factory bios for my card:-
1) Took my default GPU / RAM clocks and did the conversion.
2) Using search in hex editor found the section where both were together.
3) Did the conversion for my OC clocks.
4) Made changes and saved changes.
5) Used the HD7xxx Series UEFI Patch Tool BETA to Fix Checksum on edited bios file.
6) Placed the bios onto my bootable USB and flashed to one of the bios positions on my card.
Do not flash both bios positions as then at least you'll have option to boot from that if something goes wrong.
My card boot as normal after flash and CCC / GPU-Z detected the new default clocks.
Quick check running 3dMark with GPU-Z / MSI AB monitoring stats reported similar readings for temps / volts after the edits applied.
Fan Profile Editing
In image below you can see 2 windows of Hex-Editor MX open, top shows stock bios settings, bottom shows edits done. The notepad window shows information concerning conversion of HEX to values.
1) Run a search in bios for 7C15. The right place to do edits is where 0306 proceeds 7C15 and you find 00 or 01 after counting 7 pairs of HEX between 0306 and 00 or 01. I found the Vapor-X 290 bios did not conform to this rule but instead 7 pairs of HEX were between 0706 and 00, view images in note 3 below. So do count pairs and convert HEX and view values. (Read note 3 below)
2) Take your 7 pairs of HEX and switch each pair around. ie 7C15 becomes 157C
3) Convert switched HEX pairs to DECIMAL (Read Note 1 below), knock off 00 on end and this gives you value.
4) Do the reverse to calculate HEX for new value, ie if new value to be set is 55 add 00 to end, convert 5500 from DECIMAL to HEX = 157C , switch pairs around 157C becomes 7C15 . (Read Note 2 below)
5) Enter new values in corresponding location, save you new bios.
6) Use the HD7xxx Series UEFI Patch Tool BETA to Fix Checksum on edited bios file.
7) Place the bios onto bootable USB and flash to one of the bios positions on card.
Note 1:
When entering HEX value into calculator where first character is 0 it will not be displayed. For example HEX pair 07D0 will be shown as 7D0.
Note 2:
When a DECIMAL is converted to HEX and your result is 3 characters a 0 will be needed to be added to beginning. For example setting 20 as a value becomes 2000 for DECIMAL to HEX conversion, then a result of 7D0 on calculator will be shown. Add the 0 at beginning gives you 07D0.
Note 3:
Sapphire R9 290 bioses orange underlines. Sapphire R9 290X purple bioses.
Asus DCUII R9 290X STD edition Quiet & Uber bioses
In each image notepad shows unedited values for HEX data
Results of fan profile editing
Default %rpm1 = 20% %rpm2 = 47% %rpm3 = 90%
Edited %rpm1 = 30% %rpm2 = 40% %rpm3 = 70%
I ran 3 runs of Valley for each test, default first and edited second. Default was topping out at 50% RPM and edited resulted in 44%. Cards seemed quieter on the ear with only 1c rise for reduction in RPM / noise.
Now some of you may have been wondering when doing the fan profile edit what the 00 or 01 near the end of the 7 pairs of HEX was for.
It enables temperature target & maximum fan speed .
Bios set as 00
Bios set as 01
Above was my Sapphire Vapor-X bios edited which doesn't come with target temperature & maximum fan speed limit on any of the bios switch positions, it only comes with UEFI & NON UEFI.
How to edit Maximum Fan Speed
The HEX straight after the 01 sets % for maximum fan speed, originally bios has 28 (HEX) converted to DECIMAL is 40.
I wanted value of 55, convert decimal 55 to HEX is 37, below is video.
Once you boot into windows with this edit driver needs to be defaulted on overdrive page, I only restored whole CCC to factory defaults as I'd done that before enabling screen video capture software.