A 2025 new year build which implements a lot of bug fixes and greatly improved controller management. Please take a moment to read the below.
System Hibernation, The Sleep Demon
Resuming from system sleep and hibernation has been an absolute pain since we started working on Handheld Companion. Especially because of the lack of Microsoft transparency in the way it handles controllers slot attribution but also because of the strain resuming from sleep puts on objects and memory management. Across the last few releases we've been slowly improving memory management and the overall robustness of all task managers. With 0.22.0.5 we might finally have found a way to hold into virtual controller slot on system resume, preventing users from having to restart the app for a stable experience.
New Layout Action: Inherit
Needless to say we're reading most of your comments and suggestions on both Patreon, Discord and Github. Three weeks ago, SgtSweetieBelle made a Github post about the complexity of keeping several game profiles up-to-date, which are typically slight variations of your Default profile. However, updating the Default profile requires manually applying the same changes to all other profiles, which is time-consuming and tedious. SgtSweetieBelle suggested implementing a "Transparent" option for buttons, allowing them to inherit the Default profile's binding. Updates to the Default binding would automatically apply to profiles with "Transparent" settings. Additionally, new profiles should default all bindings to "Transparent," letting users customize overrides as needed for specific apps. We delivered!
What's Changed
Device Support
- ONEXPLAYER Fly F1 Pro
- GPD Win Max 2 (2025) - HX370
- GPD Win 4 (2025) - HX370
- Antec Core HS
- AYANEO (all devices), implemented charging bypass, thanks to <@274238246500696065>.
- All devices, implemented AMD Strix Point CPU support.
Improvements
- Improved overall software stability, performance and resource management.
- Improved controller management, with ability to restore virtual controller to its previous slot when resuming from hibernation and early automatic external controller selection.
- Implemented new layout action: Inherit, will mimic Default profile action for this button. Inherit will be the new default action for every profile from now on. As per SgtSweetieBelle request: #1181.
- Implemented new application settings: Process priority, used to help HC inputs latency in CPU constrained environment and Steam Deck vibration interval.
- Improved GPU management, making it more stable but also preventing crash on startup when ADLX library can't be loaded (OEM drivers suxx).
- Improved settings management,
Bugfixes
- Fixed an issue causing a crash when trying to kill a disposed process.
- Fixed an issue causing a crash when manipulating screen framerate limits.
- Fixed an issue where PrimaryDesktop screen wouldn't be updated on time.
- Fixed an issue causing HC to start with status SystemPending on rare occasion.
- Fixed an issue preventing GPU from being properly initialized due to race condition with other managers.
- Fixed an issue affecting devices with two screens with identical FriendlyName.
- Fixed an issue with multi-screen support due to async managers handling.
- Fixed an issue where the virtual controller was disconnected and reconnected once again when not required.
- Fixed an issue affecting GPU Execute function on device initialization.
- Fixed an issue that caused QuickOverlayCommands to report an incorrect state.
- Fixed an issue causing a crash on controller disconnect.
- Fixed an issue where Dynamic Lighting settings wouldn't be applied on cold boot.
- Fixed an issue preventing power profile name/description edits from being saved.
- Fixed an issue affecting UI resolution and frequency updates.
- Fixed an issue causing a crash when manipulating Hotkeys list.
- Fixed an issue affecting settings: Desktop profile on start.
- Fixed an issue affecting AutoTDP limit value updates.
- Fixed an issue where reading steam settings changes could cause a crash.
- Fixed an issue preventing HC from capturing inputs from the target controller on system resume from hibernation.
- Fixed an issue preventing InputsManager from capturing keyboard keys on system resume, affecting OEM keys.
- Fixed an issue causing a crash on null target controller when updating layout Inherit actions.