Releases: miklebel/adrenalift
Release list
v0.8.0
Adrenalift 0.8.0
A modern overclocking and tuning utility for AMD Radeon RX 9000 series (RDNA 4) GPUs on Windows — a clean, native, closed-source replacement for AMD Adrenalin's overclocking and tuning controls.
Every change is applied live and is fully temporary: reboot and your card is back to stock. Nothing is flashed, nothing is permanent.
⚠️ Overclocking is done at your own risk. All changes are non-persistent and revert on reboot, so any unstable setting is undone with a simple restart.
✨ What's new in 0.8.0
- Live V/F curve from on-device calibration — a quick calibration pass builds a real voltage/frequency curve for your specific card, so you can see how an offset or undervolt reshapes its behaviour before committing.
- Safe & Advanced modes — run driver-only (Safe, no kernel drivers, anti-cheat friendly) or load the InpOut helper (Advanced) for full telemetry and soft clock floor/ceiling limits.
- Built-in stress test — validate an overclock without leaving the app, with adjustable intensity and an optional frame-rate cap.
- Full tuning set — GPU core clock offset, undervolting, memory clock & fast timings, power limit, and hold-max-clock, with saveable profiles.
- Cooling control — 5-point fan curve, fixed-speed or stock profile, and Zero-RPM idle.
- Monitoring — live charts, a metric picker, and CSV export.
- Personalisation — four themes (Dark, Dark Warm, Light, Paper), accent colours, close-to-tray, start minimized, and start with Windows.
📦 Downloads
Adrenalift ships in two flavours. Both are the same app — pick based on whether you want a system install or a single self-contained folder.
| Standalone (Installer) | Portable (Zip) | |
|---|---|---|
| File | Adrenalift_0.8.0_x64-setup.exe |
Adrenalift_0.8.0_portable.zip |
| Size | ~198 MB | ~5 MB |
| Install | Guided installer, installs system-wide | Unzip and run — no install |
| WebView2 runtime | Bundled (works fully offline) | Uses the one already on Windows 11 |
| Start menu / uninstaller | ✅ | ❌ |
| Start with Windows | ✅ | ❌ (compiled out) |
| Settings stored in | %APPDATA%\app.adrenalift |
Beside the .exe (self-contained) |
| Best for | Most users; a permanent install | USB sticks, testing, no-install setups |
What's in the Standalone installer
- The Adrenalift application
- InpOut64 helper driver — used by Advanced mode for full telemetry and soft clock limits
- Microsoft Edge WebView2 Runtime (offline installer) — so it installs with no internet connection
- Per-machine install with Start Menu shortcut, tray integration, "Start with Windows" support, and a clean uninstaller
What's in the Portable zip
adrenalift.exe— the portable build (the "Start with Windows" login-item code is compiled out)inpoutx64.dll— the Advanced-mode helper driver- Nothing else: no installer, no bundled WebView2 (it uses the runtime already present on Windows 11), and all settings live next to the
.exe
✅ Requirements
- Windows 11 (64-bit)
- An AMD Radeon RX 9000 series (RDNA 4) GPU — RDNA 3 and older are untested and unsupported
- A current AMD Adrenalin driver installed
- Administrator privileges — needed to read GPU telemetry and apply settings
🚀 Features
Tweaking
- GPU core clock offset, undervolting, memory clock & fast timings, power limit, and hold max clock
- Clock floor/ceiling limits (Advanced mode)
- A live voltage/frequency curve from a quick on-device calibration shows how your settings reshape the card before you commit
- Save and switch profiles instantly
Cooling
- A 5-point fan curve, a fixed-speed mode, or the stock profile
- Zero-RPM for silent fans at idle
Monitoring
- Live charts for clocks, voltages, temperatures, power and more
- A metric picker and CSV export
Built-in stress test
- A GPU load scene to validate overclocks, with adjustable intensity and an optional frame-rate cap
Safe & Advanced modes
- Safe mode (default) — talks to the GPU through the AMD driver with no extra kernel drivers loaded; most compatible, anti-cheat friendly. Core controls only (no rich telemetry / soft clock limits).
- Advanced mode — loads the small InpOut helper driver for full telemetry and soft clock limits. May be flagged by some AV/anti-cheat; keep it off in protected games.
Personalisation
- Four themes — Dark, Dark Warm, Light, Paper — plus accent colours
- Close-to-tray, start minimized, start with Windows, adjustable polling rate
🔐 Verify your download
This release is closed-source. Verify integrity with SHA-256:
Adrenalift_0.8.0_x64-setup.exe 0BEA22DA725C4F8C71A889DD2D458126CCA0BA231208185DF22D0CB0AF289587
Adrenalift_0.8.0_portable.zip A678A2EF5123C8566AC9AA7B3A83B04A3DF51395BC3D40739443BF0E5B713AF3
PowerShell: Get-FileHash .\Adrenalift_0.8.0_x64-setup.exe -Algorithm SHA256
☕ Support
Adrenalift is built and maintained by a solo developer. If it earned a place in your setup, you can help keep development moving:
Buy me a coffee — every contribution genuinely helps.
© 2026 Adrenalift. All rights reserved. Adrenalift is closed-source software.
v0.1.4
Adrenalift v0.1.4 Release Notes
Highlights
This release introduces PP table dump/load functionality and a significantly improved PowerPlay table editing experience. Users can now save and restore full PP table snapshots from live GPU memory, search through hundreds of PP fields instantly, and edit float32 and signed-integer parameters with correct precision. Scan performance is also improved thanks to PP table address caching.
What's New
PP table dump & restore
Save a byte-exact snapshot of the live PP table from GPU physical memory to disk, and load it back later to populate all spinboxes in one click. Dumps are stored as .bin files in the pp_dumps/ directory and managed through a dedicated panel in the PP tab. This makes it easy to switch between tuning profiles (e.g. "stock", "daily OC", "benchmark") without re-entering hundreds of values.
PP table address caching
The discovered PP table physical address is now persisted to settings.json together with the VBIOS golden_pp_id. On subsequent scans, if the golden ID matches, the cached address is re-validated and returned immediately — skipping the full memory scan entirely. This reduces scan time from several seconds to near-instant on repeat launches.
PP field search
A new search bar at the top of the PP tab lets you filter the tree of PowerPlay fields in real time. Typing a substring (e.g. "clock", "fan", "voltage") hides all non-matching branches, making it trivial to locate specific parameters in tables with hundreds of entries.
Float32 and signed-integer PP field support
PP table fields with float, int16, int32, and uint32 types are now handled natively:
- Float fields use a custom
Float32SpinBoxthat displays the shortest human-readable representation that round-trips through IEEE 754 single precision (e.g.1.45instead of1.450000048). - Signed integers (
int16,int32) are displayed and edited with correct negative ranges. - Uint32 fields use a wide-range double spinbox with zero decimal places.
- Patching and verification logic now uses per-type bitmasks for reliable write-back confirmation.
Live RAM sync for PP spinboxes
The detailed refresh cycle now reads every mapped PP field from physical memory using the correct type-aware reader (read_u8, read_u16, read_u32, read_i16, read_i32, read_f32) and pushes the values back into the PP tab spinboxes. This keeps the "Current" column and input fields in sync with the actual GPU state at all times.
Build script improvements
Both build.bat and build.ps1 now remove the previous build/ directory and pass --clean to PyInstaller, ensuring a fresh build every time and eliminating stale-cache issues.
Changes since v0.1.3
- New: PP table dump save/load UI and backend (
_on_save_dump,_on_load_dump,_refresh_dump_list) - New:
PP_DUMPS_DIRconstant andpp_dumps/directory for dump storage - New:
decode_pp_table_raw()— decode raw PP table bytes without a full VBIOS ROM wrapper - New:
read_raw_at_addr()— bulk physical memory read for dump capture - New: PP table address cache (
_load_pptable_cache,_save_pptable_cache) with golden_pp_id validation - New:
golden_pp_idfield onVbiosValuesfor cache identity matching - New:
read_u8,read_u32,read_i16,read_i32,read_f32— type-aware physical memory readers - New:
Float32SpinBoxandfmt_f32()— IEEE 754 float32 display with minimal-length round-trip formatting - New:
make_float_spinbox()factory for float and large-integer PP fields - New: PP field search bar with recursive tree visibility filtering
- New:
sync_spinboxes_from_ram()— push live RAM values into PP tab input widgets - Changed: PP tab layout refactored into left (search + tree) and right (dump list + buttons) columns
- Changed:
get_patch_values()now returnsint | floatinstead of alwaysint - Changed:
_apply_pp_field_groupsandpatch_pp_single_fielduse per-type bitmask verification (_VERIFY_MASK) - Changed:
DetailedRefreshWorkeruses type-dispatched readers instead ofread_u16for all fields - Changed: Build scripts clean previous
build/directory and use--cleanflag - Removed: Hard-coded
_PP_SMU_KEY_MAPand_infer_unit()— unit suffixes are no longer inferred from field names - Removed: Legacy SMU-key-based metrics mapping in the live-column updater
Files changed
| File | Summary |
|---|---|
src/app/tab_pp.py |
Dump save/load, search bar, float/signed-int spinboxes, RAM sync, layout refactor |
src/engine/overclock_engine.py |
PP table address cache, type-aware readers, float patching, bitmask verification |
src/app/ui_helpers.py |
Float32SpinBox, fmt_f32, make_float_spinbox |
src/app/workers.py |
Type-dispatched PP field reads in detailed refresh |
src/io/vbios_parser.py |
decode_pp_table_raw, golden_pp_id on VbiosValues |
src/app/main_widget.py |
Float formatting in live columns, PP spinbox sync, dump button wiring |
src/app/constants.py |
PP_DUMPS_DIR |
src/app/settings.py |
pptable_cache default |
build.bat / build.ps1 |
Clean build directory, --clean flag |
version.json |
0.1.4 build 1 |
Upgrade Notes
- Drop-in replacement for v0.1.3 — no configuration changes required.
- The
pp_dumps/directory is created automatically on first dump save. - Existing
settings.jsonfiles will gain apptable_cachekey on first scan; this is safe and backward-compatible. - The cached PP table address is invalidated automatically if the VBIOS changes (golden_pp_id mismatch) or if re-validation at the cached address fails.
v.0.1.3
Adrenalift v0.1.3 Release Notes
Highlights
This release focuses on stability on Intel-based platforms. Previous versions could crash with an access violation (BSOD or silent process termination) when the physical memory scan hit device MMIO regions mapped above the 4 GB boundary — a layout common on Intel systems with Resizable BAR enabled. Version 0.1.3 resolves this with two complementary fixes: accurate MMIO region discovery via WMI and crash-proof memory reads via the Windows SEH mechanism.
What's New
Above-4 GB MMIO region exclusion (Intel ReBAR / NVMe BARs)
On Intel platforms (and some AMD configurations), PCI Express devices such as GPUs with Resizable BAR and NVMe controllers map large memory-mapped I/O windows above the 4 GB line. The scanner now queries Win32_DeviceMemoryAddress via WMI at startup to discover all device MMIO regions and automatically excludes them from the physical memory scan. This prevents the scanner from probing address ranges that belong to hardware devices rather than system RAM.
Safe physical memory reads (SEH-protected)
All physical memory reads now go through kernel32.ReadProcessMemory on the application's own process instead of raw ctypes.memmove. ReadProcessMemory has built-in Structured Exception Handling — if a mapped page triggers an access violation (unmapped hole, device MMIO, firmware-reserved region), the call returns a short read instead of killing the process. This eliminates the class of fatal crashes that users on Intel systems were experiencing during the initial scan.
Improved scan logging
The scanner now logs detailed information about discovered MMIO exclusion regions, chunk counts, and the effective scan ceiling. This makes it easier to diagnose platform-specific issues from the log file alone.
Changes since v0.1.2
- New:
_get_device_mmio_ranges()— WMI-based discovery of all device memory address ranges, including 64-bit PCIe BARs - New:
_build_mmio_exclusion_set()— unified MMIO exclusion combining the legacy below-4 GB hole with above-4 GB device regions - New:
_safe_read_mapped()— SEH-protected memory copy viaReadProcessMemoryreplacing rawctypes.memmove - Changed:
_build_scannable_chunks()now excludes above-4 GB MMIO regions from both firmware-guided and fallback scan paths - Changed:
_is_scannable()accepts an additionaldevice_mmio_rangesparameter for above-4 GB filtering - Changed:
scan_memory_windows()window-based rescans also respect above-4 GB exclusions - Changed:
_offset_scan_chunk_list()uses safe reads and handles partial read results gracefully - Changed:
_mp_scan_range()and_mp_scan_range_windows()worker functions use safe reads
Affected Platforms
| Platform | Impact |
|---|---|
| Intel + AMD GPU (ReBAR on) | Major — eliminates scan-time access violations |
| Intel + AMD GPU (ReBAR off) | Minor — safe reads add resilience for edge-case memory holes |
| AMD CPU + AMD GPU | Minimal — above-4 GB MMIO regions are typically smaller; safe reads add defense in depth |
Upgrade Notes
- Drop-in replacement for v0.1.2 — no configuration changes required.
- The WMI query adds ~1-2 seconds to the scan startup on first run.
- Check the log file (
overclock_log.txt) for the new "above-4GB MMIO region(s)" entries to confirm the exclusion is active.
v0.1.2
Adrenalift v0.1.2 — Release Notes
Previous release: v0.1.1 (2026-03-23)
Commits since last release: 4
Files changed: 3 (+47 / -18 lines)
Highlights
This release fixes compatibility with non-English Windows installations and improves GPU discovery.
Bug Fixes
- Non-English locale crash — Subprocess calls in the startup-task scheduler (
schtasks) and PCI device enumeration (PowerShell) now use explicitutf-8decoding witherrors="replace"instead oftext=True. This preventsUnicodeDecodeErroron systems whose default code page is Cyrillic, CJK, or any other non-ASCII encoding. - Localized PCI location parsing — The regex that extracts bus/device/function numbers from Windows'
LocationInformationstring no longer depends on English keywords (bus,device,function). It now extracts the three numeric values positionally, so localized formats are handled correctly.
Improvements
- Updated GPU device IDs — Added
0x7550(Navi 48 / RX 9070 XT & XTX) to the fast-path probe list; removed IDs from hallucination (0x15BF,0x15C8). - Tiered GPU discovery documentation —
find_gpu_barnow includes detailed inline documentation explaining the three-tier discovery strategy (explicit ID, common-ID fast path, PCI class-code fallback) and links to the PCI ID authority.
Requirements (unchanged)
- Windows 10+ (64-bit)
- AMD RDNA4 GPU
- Administrator privileges
- VBIOS dump
v0.1.1
Adrenalift v0.1.1 — Release Notes
Previous release: v0.1 (pre-release, 2026-03-23)
Commits since last release: 7
Files changed: 44 (+6,346 / -10,389 lines)
Highlights
This release focuses on codebase health: the monolithic UI has been decomposed into dedicated modules, obsolete tooling has been removed, and the project now ships with a proper open-source governance structure.
Breaking Changes
ScanOptions.max_gbnow defaults to0(unlimited) instead of32. Callers that relied on the 32 GB cap should set it explicitly.
Architecture & Refactoring
- Modular UI — The ~4,200-line monolithic
main.pyhas been decomposed into dedicated tab modules (tab_pp,tab_smu,tab_od,tab_escape,tab_memory,tab_registry,tab_simple), plus shared files (main_widget,constants,logging_setup,vbios_gate). This significantly improves maintainability and makes individual tabs easier to develop in isolation.
Improvements
- PP table scan accuracy — The decoded PP table's inner fingerprint region is now zeroed in the heap copy, preventing the memory scanner from false-matching the application's own cached data.
- VBIOS parser — Added
inner_fp_to_clocksoffset toVbiosValuesfor more precise fingerprint-relative clock field calculations. - Engine performance — Added pre-computed byte increment/decrement lookup tables (
_INC_TABLE/_DEC_TABLE). - Firmware RAM map — New
get_physical_ram_ranges()reads the Windows registry (CM_RESOURCE_LIST) to obtain the firmware-reported physical memory layout, enabling smarter scan targeting.
Removed
- Obsolete tools — Deleted 13 standalone scripts from
src/tools/that are no longer needed:cn_escape,compare_smu_tables,cpu_power,dump_cn_escape,dump_pptable_sources,find_cached_clocks,find_driver_buffer,investigate_pp_divergence,overclock_cli,parse_cn_escape,scan_od_table,scan_pptable_broad,search_driver_binaries,search_pp_cache_locations,sppt_cache,test_roundtrip. - Benchmark scripts — Removed
apply_benchmark_tweaks.bat,apply_gpu_benchmark_tweaks.bat,restore_original_settings.bat, andrestore_gpu_original_settings.bat.
Project Governance
- Added GPLv3 license (
LICENSE). - Added CODE_OF_CONDUCT.md, CONTRIBUTING.md, and SECURITY.md.
- Added GitHub issue templates (bug report, feature request) and pull request template.
Requirements (unchanged)
- Windows 10+ (64-bit)
- AMD RDNA4 GPU
- Administrator privileges
- VBIOS dump
First release
Adrenalift v0.1-alpha — Initial Pre-release
First public alpha of Adrenalift, a Windows utility that bypasses the artificial boost clock ceiling enforced by the AMD display driver.
What it does
The AMD Windows driver holds your GPU back from reaching its full clock potential through a software-enforced clock gating policy. Adrenalift scans physical memory for the driver's cached PowerPlay table, patches the boost clock limit in-place, and applies the change immediately — no reboot required.
Target hardware
- RDNA4 GPUs (RDNA3 is untested)
Features in this release
- Memory scan & patch — locate and modify the driver's cached PP table boost clock ceiling
- PySide6 GUI with Simple, PP, SMU/OD, Memory, and Registry tabs
- CLI tool (
overclock_cli.py) for scripted/headless use - VBIOS parsing with optional UPP integration for stock value recovery
- Non-persistent patches — reboot restores stock values
Experimental / WIP
The following are included but may not work reliably on all configurations:
- SMU OverDrive table path (DMA transfer)
- D3DKMTEscape (non-admin WDDM) path
- Registry tweaks (ULPS, clock gating keys)
- SPPT cache editing
Requirements
- Windows 10+ (64-bit)
- AMD RDNA4 GPU
- Administrator privileges
- VBIOS dump (app will prompt if not found)
Warning
Use at your own risk. This tool writes to physical memory and communicates with the GPU's SMU. Incorrect use can cause driver crashes, BSODs, or hardware damage. Overclocking may void your warranty.