github Valkirie/HandheldCompanion 0.28.4.5
Build 0.28.4.5

10 hours ago

Handheld Companion – Release Notes

0.28.4.5

Highlights

  • WinRing0/RyzenAdj to PawnIO (AMD power path): All AMD power manipulation (TDP, CPU clock frequency, GPU frequency, Curve Optimizer) has been moved off WinRing0/RyzenAdj and onto PawnIO. This should prevent any future Windows Defender warnings and make the whole stack more robust and cooperative with anti-cheat systems going forward.

  • Extra buttons on SDL controllers: We’ve updated the SDL controller database and added support for paddles and miscellaneous buttons on any SDL-supported controller. If your pad exposes extra buttons through SDL, HC can now see and bind them.

Hotfixes

  • 0.28.4.3b: Fixed a regression with keyboard based OEM buttons.

  • 0.28.4.4: Fixed support for PawnIO version 2.1.0.0.

  • 0.28.4.5: Fixed simultaneous support for PawnIO versions 2.0.1.0 and 2.1.0.0.

Power & Dependencies

Please let us know if you notice any regressions or improvements on TDP manipulation (all devices) or Curve Optimizer (AMD specific).

PawnIO-based power path

We’ve replaced the RyzenAdj and WinRing0 dependencies with PawnIO for AMD power manipulation, covering:

  • TDP control

  • CPU clock frequency

  • GPU frequency

  • AMD voltage curve (Curve Optimizer)

This is aimed at eliminating WinRing0-related issues and Defender warnings, and giving us a cleaner, more maintainable power path going forward.

TDP handling improvements

  • Improved overall TDP management so requested values are properly (re)applied instead of occasionally "sticking".

Controllers & Input

  • Improved SDL controllers support with an updated the gamecontroller database (12/02/2025) and support for paddles and miscellaneous buttons from generic SDL controllers.

  • Legion Go 2: M1 and Page/Desktop buttons are now properly integrated into the device mapping.

UI/UX & OSD

  • On-screen display / RTSS: Added an RTSS frame graph to the on-screen display, giving you a clearer view of frame pacing and performance (thanks to @ltchipotle).

Navigation & interaction

  • You can now use the gamepad left joystick for UI navigation.

  • Miscellaneous tweaks and improvements to the Layout page for a smoother configuration experience.

Settings & window behavior

  • New setting: Fullscreen on launch. ALT+ENTER now toggles the main window between windowed and fullscreen states.
  • New setting: Show splash-screen at startup if you like the visual cue when HC launches.

QuickTools

  • Added an "Exit HC" button to the QuickTools navigation bar to cleanly close Handheld Companion without having to fight against Windows task-tray icon.

Stability & Fixes

  • Fixed an issue where Configurable TDP up/down could be set to 0, forcing TDP to an abnormally low value.
  • Fixed AMD-specific Curve Optimizer availability checks so the feature is only exposed when supported.
  • Fixed AMD integer scaling registry check/override by matching the currently active GPU while also making the integer scaling dropdown selection more robust.
  • Fixed an issue preventing some inputs from being captured when the controller polling rate was set to 250 Hz and above.
  • Fixed Legion Go 2 M1 button behavior, so the button now works as expected.
  • Fixed a crash when failing to open the ONEXPLAYER serial port.
  • Fixed a crash on null selectedProfile when navigating to the power profile page.

Library Updates

  • SDL3
  • LibreHardwareMonitor
  • Sentry
  • Microsoft.Xaml.Behaviors.Wpf
  • System.Drawing.Common
  • System.IO.Ports
  • System.ServiceProcess.ServiceController
  • System.Text.Json

Special thanks to

@ltchipotle for his support on WinRing0 migration

Don't miss a new HandheldCompanion release

NewReleases is sending notifications on new releases.