Skip to content

Releases: miklebel/adrenalift

v0.8.0

Choose a tag to compare

@miklebel miklebel released this 07 Jun 16:15

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

Choose a tag to compare

@miklebel miklebel released this 27 Mar 22:46

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 Float32SpinBox that displays the shortest human-readable representation that round-trips through IEEE 754 single precision (e.g. 1.45 instead of 1.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_DIR constant and pp_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_id field on VbiosValues for cache identity matching
  • New: read_u8, read_u32, read_i16, read_i32, read_f32 — type-aware physical memory readers
  • New: Float32SpinBox and fmt_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 returns int | float instead of always int
  • Changed: _apply_pp_field_groups and patch_pp_single_field use per-type bitmask verification (_VERIFY_MASK)
  • Changed: DetailedRefreshWorker uses type-dispatched readers instead of read_u16 for all fields
  • Changed: Build scripts clean previous build/ directory and use --clean flag
  • Removed: Hard-coded _PP_SMU_KEY_MAP and _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.json files will gain a pptable_cache key 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

Choose a tag to compare

@miklebel miklebel released this 26 Mar 01:23

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 via ReadProcessMemory replacing raw ctypes.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 additional device_mmio_ranges parameter 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

Choose a tag to compare

@miklebel miklebel released this 25 Mar 17:05

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 explicit utf-8 decoding with errors="replace" instead of text=True. This prevents UnicodeDecodeError on 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' LocationInformation string 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 documentationfind_gpu_bar now 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

Choose a tag to compare

@miklebel miklebel released this 23 Mar 23:22

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_gb now defaults to 0 (unlimited) instead of 32. Callers that relied on the 32 GB cap should set it explicitly.

Architecture & Refactoring

  • Modular UI — The ~4,200-line monolithic main.py has 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_clocks offset to VbiosValues for 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, and restore_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

First release Pre-release
Pre-release

Choose a tag to compare

@miklebel miklebel released this 23 Mar 00:34

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.