NVIDIA VBIOS Vix Editor
Offline VBIOS Editor for Blackwell 2.0 (GB2XX) cards, Ada (AD1XX), Ampere (GA1XX) and Turing (TU1XX) GPUs.
Use them via a loader, NVIDIA Linux VBIOS Vix Loader for Linux.
On Windows, NVIDIA Windows VBIOS Vix Loader or mVolt+ with BIOS override.
Not affiliated with, endorsed by or sponsored by NVIDIA Corporation. NVIDIA and GeForce are trademarks of NVIDIA Corporation.
[!CAUTION]
You use this software entirely at your own risk. Any modification you make with it,
anything derived from it or from its output, and any damage that results, is solely your
responsibility. See Read before using an edited image.
Download
From the Releases page:
| File | Contents |
|---|---|
| nvidia-vbios-vix-editor- | Linux: editor window (nvbios-gui) and command line (nvbios) |
| nvbios- | Linux: command line only, one file |
| nvbios-gui.exe | Windows: editor window, one file with its own GTK 4 |
| nvbios.exe | Windows: command line, one file |
| SHA256SUMS | checksums: sha256sum -c SHA256SUMS, or Get-FileHash FILE in PowerShell |
Requirements
Windows: Windows 10 or 11, x86_64. Nothing else; nvbios-gui.exe carries its own GTK 4.
Linux:
- x86_64 with glibc 2.39 or newer: Ubuntu 24.04+, Debian 13+, Fedora 40+, Arch and
- Editor window: GTK 4.14+ and the GObject Introspection runtime.
sudo apt install libgtk-4-1 libgirepository-1.0-1
- Fedora: sudo dnf install gtk4 gobject-introspection
- Arch: sudo pacman -S gtk4 gobject-introspection-runtime
- Command line: nothing else.
Your VBIOS image
The editor does not include any VBIOS. You provide the image of your own card, for example:
- Windows: GPU-Z, with the arrow next to the BIOS version and Save to file….
- Linux:
nvflash --save card.rom(reading only; never write an edited image with
Keep the original file: the editor never modifies it and always saves a new copy.
Use
Linux:
tar xf nvidia-vbios-vix-editor-<version>-linux-x86_64.tar.gz
cd nvidia-vbios-vix-editor-<version>
./nvbios-gui # editor window (English)
./nvbios-gui --lang es card.rom # Spanish, with a ROM
./nvbios fields card.rom # JSON list of the fields
./nvbios memory card.rom # read-only memory tables (JSON)
./nvbios edit card.rom out.rom --set power_max_w=700
./nvbios import card.rom other.rom out.rom --sections fans
Windows: double-click nvbios-gui.exe. The first start unpacks its GTK runtime to
%LOCALAPPDATA%\NVIDIA VBIOS Vix Editor (a few seconds); later starts reuse it. From a
terminal:
.\nvbios-gui.exe --lang es card.rom
.\nvbios.exe fields card.rom
.\nvbios.exe edit card.rom out.rom --set power_max_w=700
Screenshots
![]() RTX 5090 (GB202): changes verified while typing |
![]() RTX 5080 (GB203): image just opened |
![]() RTX 5070 (GB205): single rail, current in A, fans |
The programs are not code-signed, so Windows SmartScreen may warn the first time: choose More info, then Run anyway.
The editor window verifies each change while you type and saves a new ROM plus a JSON
manifest. The original file is never modified. On Windows it follows the light or dark app
mode; File options > Theme (or --theme light / --theme dark) changes it.
Shunt multiplier (x): on a shunt-modded card, type the shunt factor (for example 2) and the board power, PCIe slot and 12 V input current rows also show about the real limit, the value times the factor. It is display only: the saved ROM keeps the values in the fields. It assumes the same factor on every 12 V input shunt; NVVDD/MSVDD output current limits are measured by the VRM and are not scaled.
Startup environment
The compiled application isolates import search paths and disables site imports.
CPython still reads some startup variables before the application's recovery code
runs. Invalid PYTHONMALLOC or PYTHONHASHSEED values can therefore stop startup.
If those variables are set by another Python environment, launch with:
env -u PYTHONMALLOC -u PYTHONDEVMODE -u PYTHONHASHSEED ./nvbios --version
env -u PYTHONMALLOC -u PYTHONDEVMODE -u PYTHONHASHSEED ./nvbios-gui
Detailed Description
Offline editor for NVIDIA Blackwell (GB20x), Ada (AD10x), Ampere (GA10x) and Turing (TU10x/TU11x) VBIOS images. It edits when applicable: power limits, voltage ceilings, the minimum voltage (VMIN), clock offset ranges, 12 V input current and output OCP limits, fan PWM frequency, fan channels, per-channel fan speed limits, the stored fan curves and zero RPM (experimental). A read-only Memory section (all four families) shows the memory configurations, the memory clock bands and their timing entries with decoded values and, on Blackwell, an undecoded board memory-training profile, and tells whether another ROM's tables are identical or differ. Import from ROM… copies the values of chosen sections (for example the fan settings; Blackwell board power and Turing VMIN often need the advanced fields too, as does a fan curve that starts below this ROM's zero RPM threshold) from another ROM of the same family as pending changes; they are copied as stored numbers, so check that this board's hardware can take them.
Read before using an edited image
- Edited images keep the original cryptographic signature, which no longer matches.
-loader.bin . From the command line:
nvbios normalize edited.rom payload.bin --representation ada-relocated-v2 (Ada desktop and
workstation) or --representation ampere-relocated-v1 (Ampere GA102–GA107). Both are experimental;
so far they have been loaded on an RTX 4090 and an RTX A2000. Turing payloads fit without relocation:
saving an edited Turing copy saves -loader.bin (load it first) and -loader-e0end.bin
(--representation turing-e0-end-v1, to try if the first does not apply the edit); both have loaded
on an RTX 2080 Ti through the Windows loader.
- YOU ARE SOLELY RESPONSIBLE FOR WHAT YOU DO WITH THIS SOFTWARE. Every modification
- Fields marked experimental have not been tested on hardware, or only on the cards
- Recognized images: GB20x object-directory v3 (GB202, GB203, GB205, GB206). Ada (AD10x),
- Laptops: the layout of the RTX 5080 and RTX 5090 Laptop GPU images is recognized by its
Run from source
Python 3.11 or newer. The command line uses only the standard library; the editor window also needs PyGObject with GTK 4.10 or newer:
- Ubuntu / Debian:
sudo apt install python3-gi gir1.2-gtk-4.0 - Fedora:
sudo dnf install python3-gobject gtk4 - Arch:
sudo pacman -S python-gobject gtk4 - Windows: in an MSYS2 UCRT64 shell,
pacman -S mingw-w64-ucrt-x86_64-python mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-gtk4
git clone https://github.com/Panchovix/nvidia-vbios-vix-editor
cd nvidia-vbios-vix-editor
./nvbios fields card.rom # Windows (MSYS2): python nvbios fields card.rom
./nvbios edit card.rom out.rom --set power_max_w=700 --dry-run
./nvbios gui --lang es card.rom
inspect, fields, verify, edit and normalize print one JSON document,
{"ok": true, "result": ...}, or {"ok": false, "error": {...}} with exit status 2. On Windows,
start the window with GSK_RENDERER=cairo python nvbios gui: GTK's OpenGL renderer aborts on some
NVIDIA desktops, and the release programs choose cairo for the same reason. Over SSH the window
uses its built-in file picker; see docs/gui.md.
To install it, give it a virtual environment of its own. The Linux loader installs the same
nvidia_vbios package and nvbios command, so the two cannot share one:
python3 -m venv --system-site-packages .venv # the system site-packages provide PyGObject
.venv/bin/pip install .
.venv/bin/nvbios --version
.venv/bin/nvbios-editor --lang es
The tests build small synthetic ROM structures; no VBIOS image is needed:
PYTHONPATH=src python3 -m unittest discover -s tests
The GTK window test is opt-in; see docs/gui.md. More documentation: docs/editor-api.md
(formats, editor API and limitations), docs/extended-fields.md (voltage, OCP, memory and fan
fields) and docs/gui.md (the window; in Spanish, docs/gui_es.md).
Build
The release programs are compiled with Nuitka from this tree by the scripts in tools/release/.
Their version is __version__ in src/nvidia_vbios/__init__.py.
- Linux: in a clean checkout with podman,
tools/release/build.sh X.Y.Z. It builds in an
nvbios and SHA256SUMS to dist/release-X.Y.Z/.
- Windows: the windows-release GitHub Actions workflow (
.github/workflows/windows.yml) builds
nvbios-gui.exe, nvbios.exe and their third-party notices as a workflow artifact. Only the
repository owner starts it, with Run workflow or by pushing a vX.Y.Z tag that matches the
version. To build locally: an MSYS2 UCRT64 shell with the packages that workflow installs,
Nuitka 4.2.2 and Zig 0.16.0 on PATH, then VERSION=X.Y.Z tools/release/build-windows.sh
(output in dist-windows/).
Contributing
Issues and pull requests are welcome. Run the tests before you open a pull request. The maintainers port accepted changes into the project themselves, so a merged change can land as a different commit from your branch. Contributions are licensed under GPL-3.0-or-later, like the rest of the project.
Pull requests, forks included, run the unit tests on Linux (.github/workflows/tests.yml).
Acknowledgements
Thanks to @pantsoftime (overclock.net), whose original GB202 VBIOS
editor and vbios_override patch this project builds on. Thanks also to @b00nza.
License
Copyright (C) 2026 panchovix. GNU General Public License v3.0 or later (GPL-3.0-or-later), see
LICENSE: you can use, study, change and share it, and changed versions you share must stay
under the same license. There is no warranty, to the extent permitted by law.
The source code is at v matches
each release. The binaries also contain third-party components under their own licenses: see
THIRD_PARTY_NOTICES.md, which also says where to get their source code. Binary releases up to 0.1.13 were
distributed under a freeware license agreement.


