nVidia BIOS Modifier (v3.3)

This file is a BIOS editor specifically for nVIDIA graphics cards. Caution, editing BIOS files is extremely dangerous.
nVidia BIOS Modifier v.3.3
This tool must be used by ADVANCED users ONLY!!!
This tool works correctly with BIOSes of 6x00 / 7x00 series cards ONLY (including QUADRO series, built on NV4x and higher) !!!
BIOSes of 5x00 and older arent supported.
V3.3 - Added: new cards series support (7300/7600/7900).
NBM is used to view, extend and erase (or just modificate) data of:
1) General Info section;
2) Voltage Table section;
3) Performance Table section;
4) Thermosensor & Timings section.
General Info section provides modification of next parameters:
a) Chip Name and Chip ID describe info about GPU: these 2 parameters are logically coupled, and when user changes one of them second changes synchronically;
Chip Name is the name of GPU (for example, NVIDIA 7800 GTX).
Chip ID is identifier of this GPU (for example, GPUs ID of NVIDIA 7800 GTX equals 0091 in HEX).
b) Vendor Name and Vendor ID describe info about vendor: its very similar to Chip Name and Chip ID.
c) Start-up Info contains info about videocard (such as BIOS version, date etc) that user can see when the system just starts-up.
Voltage Table section provides modification of next parameters:
a) Number Of Voltage Levels describes how many voltage levels are in Voltage Table (VT). Using this parameter user can configure the number of possible Vgpu values and correspond it to VID values. For example, VT of 6800NU consists of 3 entries (1.1V 0, 1.2V 1 and 1.4V 2) by default, but nobody prevents to extend this table and add 4th entry. As a result VT will consist of 4 entries (1.1V 0, 1.2V 1, 1.4V 2 and 1.5V 3)! Also user can decrease number of VT levels.
b) every voltage level contains info about actual Vgpu and VID corresponding to this voltage.
Vgpu is made changeable, because there are many videocards that have values of this parameter without corresponding it to real measurements by digital multimeter.
For example, extended voltage table of my 6800NU consists of 4 entries (1.1V 0, 1.2V 1, 1.4V 2 and 1.5V 3). 2nd level (numeration starts from 0) of VT consists of Vgpu = 1.4V and VID = 2. When I set this voltage for 2D mode and then measure real voltage by digital multimeter I get only 1.3V! In other words, advanced user can correct values of Vgpu with measured values. In real this feature CANT increase/decrease Vgpu values!!!VID is made changeable, because different videocards have different power supply system of GPU (Vgpu and corresponding VID values).
For example, if advanced user wants to flash BIOS from 6800GT in his 6800NU, he should correct some of possible Vgpu and VID values in VT previously. Thats because BIOS of 6800NU has growth-sorted values of Vgpu and VID, but BIOS of 6800GT has growth-sorted values of Vgpu only.
Performance Table section provides modification of next parameters:
a) Number Of Performance Levels describes how many performance levels are in Performance Table (PT). Using this parameter user can configure the number of possible Fgpu values and corresponding Vgpu and Ffan values. For example, PT of 6800NU consists of only 1 entry (Fgpu = 325MHz, Vgpu = 1.2V, Ffan = 40%) by default. But if user wants to extend PT, he should add 2nd only or 2nd and 3rd performance levels. As a result PT will consist of 2 or 3 entries! Also user can decrease number of PT levels, but I think there is no any reason to do that.
b) Fgpu is the frequency of GPU for defined mode (2D, LP3D, 3D). The values of this parameter always must be growth-sorted and this growth-sorting protection is released in this tool. It means that Fgpu2D <= FgpuLP3D <= Fgpu3D.
c) Fgpu* (Geometry Delta) is the extra frequency of NV47's geometric block for defined mode (2D, LP3D, 3D). Growth-sorting protection is spread on this parameter also. It means that Fgpu2D* <= FgpuLP3D* <= Fgpu3D*. This feature is enabled for 7x00 series cards only! This value can be both negative and positive.
d) Vgpu is the value of GPU voltage for defined mode (2D, LP3D, 3D). Growth-sorting protection is spread on this parameter also.
e) Ffan is the value of GPUs cooler fan frequency (in percents). Growth-sorting protection is spread on this parameter also.
f) Fmem is the DDR frequency of videocards memory. This value must be always the same for each mode (2D, LP3D, 3D) due to protection of ForceWare driver v.6x.xx and higher!
Thermosensor & Timings section provides modification of next parameters:
a) Temperature sensor activation for 6200/6600 series cards activates ability to get temperature parameters via sensor that is installed on users videocard (this ability is disabled by default on some videocards). This parameter is disabled on non 6200/6600 series cards.
b) Number Of Timings Set indicates what set of timings is current. It means that all changes will be done for this set. If user selects other timings set and he wanna save current changes he should press Apply Changes button before changing this parameter. Else all changes he has done will be ignored. To know what timings set is used by videocard user should find entry Memory type : DDR (RAM configuration xx) in RivaTuners information module. This entry contains set (xx) is used by videocard.
c) NV_PFB_TIMING0, NV_PFB_TIMING1, NV_PFB_TIMING2 are the values of timings for current timings set. Changing these values user can increase/decrease videocards performance or just crash videocard at all.
If user has made some changes, but he wants to get default data, he should just press Load Defaults button. But if he pressed Apply Changes the default data become applied. But even in this case user can return default data by reopening file with BIOS image.
After making changes user should apply them by pressing Apply Changes button. And only then modified BIOS maybe saved in file. As alternative user can apply changes and save report in file. This feature was added to simplify describing of BIOS parameters. Now there is no need to insert NBM pictures in forums. It's enough to save report in .brf-file and then insert text from this one there. For example, report for GeForce 7800 GTX looks so:
*_General_Info_
---------------------------------------------------------------------_Chip_Info_-
Chip Name : NVIDIA GeForce 7800 GTX (NV47)
Chip ID : 0091
---------------------------------------------------------------------------------
-------------------------------------------------------------------_Vendor_Info_-
Vendor Name : LEADTEK
Vendor ID : 107D
---------------------------------------------------------------------------------
-----------------------------------------------------------------_Start-up_Info_-
GeForce 7800 GTX VGA BIOS
---------------------------------------------------------------------------------
*_Voltage_Table_
Voltage Level 0: Vgpu = 1.20V => VID = 0
Voltage Level 1: Vgpu = 1.30V => VID = 2
Voltage Level 2: Vgpu = 1.40V => VID = 1
*_Performance_Table_
Performance Level 0: Fgpu= 275MHz/ +0MHz/ Vgpu= 1.20V/ Fmem= 1250MHz/ Ffan= 100%
Performance Level 1: Fgpu= 415MHz/ +35MHz/ Vgpu= 1.40V/ Fmem= 1250MHz/ Ffan= 100%
Performance Level 2: Fgpu= 450MHz/ +40MHz/ Vgpu= 1.40V/ Fmem= 1250MHz/ Ffan= 100%
*_Thermosensor_&_Timings_
---------------------------------------------------------------_Timings_set_¹_0_-
NV_PFB_TIMING0: 04080E0C
NV_PFB_TIMING1: 05030405
NV_PFB_TIMING2: 00220404
---------------------------------------------------------------------------------
---------------------------------------------------------------_Timings_set_¹_1_-
NV_PFB_TIMING0: 0B162821
NV_PFB_TIMING1: 0E010D06
NV_PFB_TIMING2: 2527080D
---------------------------------------------------------------------------------
---------------------------------------------------------------_Timings_set_¹_2_-
NV_PFB_TIMING0: 0A172420
NV_PFB_TIMING1: 0B01080B
NV_PFB_TIMING2: 20250A0A
---------------------------------------------------------------------------------
---------------------------------------------------------------_Timings_set_¹_3_-
NV_PFB_TIMING0: 0A192D23
NV_PFB_TIMING1: 0D01080D
NV_PFB_TIMING2: 0008080C
---------------------------------------------------------------------------------
---------------------------------------------------------------_Timings_set_¹_4_-
NV_PFB_TIMING0: 070C1B13
NV_PFB_TIMING1: 09010608
NV_PFB_TIMING2: 21240508
---------------------------------------------------------------------------------
---------------------------------------------------------------_Timings_set_¹_5_-
NV_PFB_TIMING0: 070C1B13
NV_PFB_TIMING1: 09010608
NV_PFB_TIMING2: 21240508
---------------------------------------------------------------------------------
---------------------------------------------------------------_Timings_set_¹_6_-
NV_PFB_TIMING0: 0A172420
NV_PFB_TIMING1: 0B01080B
NV_PFB_TIMING2: 21250A0A
---------------------------------------------------------------------------------
---------------------------------------------------------------_Timings_set_¹_7_-
NV_PFB_TIMING0: 0813211B
NV_PFB_TIMING1: 0A01060A
NV_PFB_TIMING2: 20270509
---------------------------------------------------------------------------------
NBM supports Drag-n-Drop technology. It means that user can drag and then drop BIOS image file on tools window. Also if user registers .rom-file in Windows once, then to open BIOS image he should just double-click on one of them. In this case, NBM will be opened with selected file immediately.