Releases: Valkirie/HandheldCompanion
Build 0.21.6.1
Finally releasing 0.21.6.1 to everyone. This update brings support for Rog Ally X and several updates to our main libraries: ADLX and JoyShockLibray for extended AMD features and controller support. You'll now be able to enable frame generation on AMD GPUs using AFMF1 (or AFMF2 preview). Because rumble is also part of a good gaming experience, we're finally implementing (early stage) HD Rumble for Nintendo controllers.
Finally, we've fixed many bugs and we're adding support for Steam Deck OLED latest BIOS which was released alongside the Windows full drivers stack. Make sure to update both BIOS and drivers to enjoy gaming on Windows.
What's Changed
Device support
- Minisforum V3 (Power and Gyro)
- Asus ROG Ally X (beta)
- Steam Deck OLED (New Windows BIOS 0x1090)
Improvements
- Improved controller's drivers manipulation.
- Improved memory management when device goes to sleep.
- Improved UI navigation experience when desktop layout is enabled.
- Updated libraries (LibreHardwareMonitorLib, HidHide, DeviceManagement, Sentry).
- Implemented support for AMD SDK "ADLX" release 1.3, which brings AFMF toggle support.
- Implemented power-specific profile settings, when device is running on battery or plugged. User now has the ability to link two power profiles to a single application profile. HC will automatically apply/swap power profile based on device power status.
- Implemented support for controller and motion gaming library JoyShockLibrary new release, which brings support for HD Rumble from Nintendo controllers. Currently, only Nintendo Pro Controller is supported while we work on JoyCons.
Bugfixes
- Fixed an issue causing some keyboard keys to be "stuck".
- Fixed an issue causing a crash when trying to retrieve serial devices. This fixes compatibility with ONEXPLAYER X1 Mini.
- Fixed an issue allowing gamepad navigation to select disabled UI element.
- Fixed an issue causing some keyboard keys to be "stuck".
- Fixed an issue where the key pressed to trigger hotkey listening was captured within said hotkey.
- Fixed an issue causing a crash when manipulating rumble strength slider too fast.
- Fixed an issue preventing AMD GPU from being detected on rare occasion.
- Fixed an issue causing a crash when processing hotkeys json files.
- Fixed an issue causing a crash when trying to read or write a missing registry key (used by SteamPlatform).
- Fixed an issue causing a crash when trying to retrieve foreground process.
- Fixed an issue causing a crash when using KillForegroundCommands.
- Fixed an issue causing a crash on null or empty TDPOverrideValues.
Build 0.21.5.4
Dear all, it's been a bit more than a month since we released 0.21.4.1. We've been hard at work to implementing a few major functionalities, among which a totally revamped Hotkey manager, offering a lot more flexibility and capabilities to customize your handheld experience. We've also improved the support for a few devices, including the AYANEO Flip DS and it's exotic dual-screen format, allowing users to instantly swap/resize/maximize/make borderless any window across the screens.
We've also heard the Steam Deck community complaining for quite some times now on the inconsistent gaming experience when Steam was running parallelly to HC. Therefore, we've implemented a new "Steam controller mode" with Hybrid/Exclusive options to define the expected controller behaviors. Lastly, we've fixed as many bugs and issues that were reported while also improving the overall user experience.
We wish you all a pleasant summer vacation and lots of fun playing!
What's Changed
Device support
- OneXplayer Mini (Intel edition), added fan support from @romracer
- AOKZOE A1, addedd fan support from @romracer
- LegionGo, updated SaptientiaUSB API
- Ayaneo Flip DS/KB, custom key screen button, second screen support and gyroscope/accelerometer support
Improvements
- New hotkey manager, will allow you to create as many hotkeys as you want. Use either gamepad or keyboard inputs as triggers, execute functions, start applications or send virtual keyboard outputs. We're also finally allowing virtual keyboard inputs (from on-screen keyboards) to be used to setup hotkey output. We're also offering hotkey migration from the old format to the new one
- Implemented multi-window magenement, to manipulate, hide/show, move windows from a single application (perfect for emulators like Citra and Cemu) to any of your device's screen
- Improved support for bluetooth controller, with more efficient (dis)connection and power cycling experience
- Improved Steam compatibility, by implementing Steam Controller Modes: Exclusive to ensure all inputs are managed by HC and Hybrid to have Steam manage inputs for Steam related apps and HC manage inputs for other applications.
- Updated PromptFont, added missing vertical and horizontal touchpad motion icons
- ** Migrated logs to my documents folder**, to get every in a single place
- Migrated settings to my documents folder, to get every in a single place
- Updated libraries, HidHide, LibreHardwareMonitor, Fastenshtein, Nefarius.Drivers.HidHide, PrecisionTimer, Sentry, Serilog
- Improved overall UI experience, with better gamepad management and simplified controller notifications
Bugfixes
- Fixed an issue with the app going unresponsive due to the order managers were started. @joshuatam
- Fixed an issue preventing us from pulling display friendly name in rare occasions
- Fixed several null crashes within the app @romracer
- Fixed an issue preventing AMD GPU from being retrieved
- Fixed an issue affecting gamepad navigation when quicktools is first opened
- Fixed an issue preventing tooltip from disappearing
- Fixed an issue affecting glyphs on hotkeys page when changing controller
- Fixed an issue causing a crash when trying to focus a dropdown with no selected item
- Fixed an issue preventing TDP from being immediately applied when device wakes up from sleep/hibernation
- Fixed an issue affecting Profiles page UI when updating a profile name, drop down selection now selects renamed profile
- Fixed an issue causing a crash when gamepadmotion is null
- Fixed an issue causing a crash when multiple external monitors of the same type and name are hooked
- Fixed an issue causing controller page to incorrectly complain about a connected virtual controller when there is none
- Fixed an issue with controller type selection hotkey being enabled when it was managed by profile
Build 0.21.4.1
🎉 New Release: 0.21.4.1 🎉
This release should bring joy to many users as we're finally delivering a total overhaul of our Quicktools interface. We've brought back the highly requested navigation buttons for an improved user experience. The overlay page was updated to display some overlay information without requiring an actual OSD like RTSS. We've also overhauled the suspender page, renaming it to application, featuring a "Snap" button to move apps to a different screen and location. Finally, HC now features a Quick Start option (including executable arguments) to quickly launch games and or emulators with roms through Quicktools.
This release also features automated crash reporting through Sentry.io integration (opt in). Very often we read that HC is a great app but buggy or that it crashes often. Through this feature we will automatically receive crash data which will help us make the app more stable and robust long term.
Special thanks
Thank you @joshuatam for your work on the OneXPlayer X1 and Sentry.io integration. Thank you @moyogii for your work on the charge limits Thank you @0SkillAllLuck for fixing the Ayaneo chord input bug.
What's Changed
Devices
- OneXPlayer X1 LED speed, applying color(s) faster.
- OneXPlayer X1 device power presets based on manufacturer settings.
- OneXPlayer LED presets.
- SteamDeck LCD F7A0131 BIOS and firmware 0x1010 compatibility.
- Legion Go 83E1 system model compatibility.
- SteamDeck 80% charge limit.
- ROG Ally 80% charge limit.
Improvements
- Sentry.io integration for automated crash report telemetry.
- Implemente support for application Instant localization.
- Implemented a new "Arguments" field within the profile page to be leveraged within Quick Applications page to start applications.
- Quicktools UI overhaul, with repurposed suspender, overlay pages and new settings to change the target screen and Quicktools positioning, including ability to maximize it.
- Improve Bluetooth controller connecting by giving it more time to respond
Bugfixes
- Fix 80% charge limit setting resetting.
- Fix power preset initial setting of TDP when sliders are not adjusted.
- Fix an issue causing a crash when exception "DisconnectsOnWrongThread" is raised.
- Fix an issue causing gamepad navigation to be stuck.
- Fix an issue preventing AYANEO OEM buttons to be released.
- Fix an issue causing a crash when current GPU couldn't be pulled
- Fix an issue effecting QT position with multiple screens
- Fix an issue preventing the delete profile button from being enabled
Build 0.21.3.0
🎉 New Release: 0.21.3.0 🎉
This release brings stability and performance improvements across all devices with a slight focus on the Lenovo Legion Go, drastically reducing CPU usage on controller pulling also fixing gyro latency. New devices are also supported. A huge kodu to @joshuatam and @moyogii for their respective contributions. Also thanks to our brave beta testers and bug reporters.
What's Changed
Devices
- OneXPlayer X1 AMD, Mini, LED
- AOKZOE A1 (pro) LED support
- GPD Win Mini 2024 (except for gyro)
Improvements
- Implemented support for localization live reload.
- Implemented support for Legion Go 80% battery charge rate limit.
- Added Lossless Scaling to process ignore list, improving the experience when configuring your games.
Bugfixes
- Fixed an issue preventing controller management from failing gracefully.
- Fixed an issue affecting CPU usage and controller data pulling rate on Legion Go.
- Fixed an issue causing power presets to be applied twice on profile switch.
- Fixed an issue causing Legion Go proprietary commands to be sent twice.
- Fixed an issue affecting Legion Go accelerometer range.
- Fixed an issue affecting 3D overlay accelerometer axis directions.
- Fixed an issue affecting Legion Go OEM glyphs.
- Fixed an issue affecting default power preset application on start.
Build 0.21.2.4
A new HC release, a hotfix release on top of 0.21.2.x.
If you are experiencing trouble with profiles not applying or performance presets not working, please check you HC profiles folder (/mydocuments/handheldcompanion/profiles) for a empty .json file and Default profile files with numbered postfixes (Default 1231231-123123-1231231) and delete them.
What's Changed
Devices
- AOKZOE A2 LED control (A1 (Pro) is coming in the next release).
Bugfixes
- Fixed an issue with the QT position default setting drop down being empty.
- Fixed a long standing issue with stalled Vigem virtual controllers, thank you @TheNathannator
Build 0.21.2.3
🎉 New Release Alert: 0.21.2.3 🥳
With 0.21.2.0 made available two days ago, this build is focusing on hotfixing a few issues and regressions. This release should provide a fairly stable experience across all devices as we've also fixed a few crash issues. Let's move on to the changelog, shall we ?
Release notes 0.21.2.3
Improvements
- Improved 3D overlay, it will now rely on calibrated data and delta time rather than raw output.
- Improved motion control experience when using internal sensor, by no-longer rely on its delta time, until we figure a better approach.
- Improved profile manager log output, by clearing stating profile type (subprofile, profile) and removing useless logs.
Fixes
- Fixed an issue causing a crash when controller manager was manipulating the virtual controller before it was fully ready.
- Fixed an issue preventing controller calibration from being stored.
- Fixed an issue preventing profile manager from loading default profile on startup.
- Fixed an issue causing empty profiles to be created each time an application would loose foreground with no other window available.
- Fixed an issue causing profile manager to update foreground process profile each time it was picked.
- Fixed an issue causing a crash when trying to read/write foreground process AppCompatRegistry value.
Build 0.21.2.0
🎉 New Release Alert: 0.21.2.0 🥳
We're excited to announce the availability of version 0.21.2.0!
Release notes 0.21.2.0
New device support
- Ayaneo Flip KB and Flip DS (missing OEM buttons, community help welcome!) @0SkillAllLuck
- OneXPlayer X1 @joshuatam
- GPD Win4 2024
- AOKZOE A2 (except LED control).
Improvements
- Improve controller manager and virtual manager relationship
- Quick Tools profile power preset list no longer automatically expands by default
- Removed motion threshold calibration procedure
- ROG Ally and MSI claw open close logic
- Update all library dependencies
- Bring support for AMD Ryzen 8000 series thank to the team at Ryzenadj
- Updated Chinese language support, thanks to @reg-chen.
- Improved motherboard details collection.
Fixes
- AIR 1S OEM RC LC icon swap @0SkillAllLuck
- Fixed Quick Tools profile page power preset glyph from leaf to lightning bolt
- Fixed main GUI bottom right button prompt visibility and placement
- Fixed OSD selection being possible in main GUI without usable RTSS
- Fixed 3D overlay face camera drift compensation and shoulder button position
- Fixed Controller Manager pop up getting stuck
- Fixed a crash on null GetGlyph()
- Fixed profile processing with empty names
- Fixed Chinese translation errors @reg-chen
- Fixed Dual Sense touch pad range mapping
- Fixed an issue affecting Legion Go overall stability (hangs and crashes).
- Fixed an issue preventing GPU clock from being set on Steamdeck OLED.
- Fixed an issue causing a crash when using HC over non-supported Lenovo devices.
- Fixed an issue affecting maximum TDP value on Ayaneo Slide, thanks to @hijae.
- Fixed an issue causing a crash when trying to read Steam desktop layout.
- Fixed an issue affecting 3D overlay motion.
- Fixed an issue causing a crash when profile path is null.
- Fixed an issue causing a crash when performance manager is halted before being ready.
- Fixed an issue when setting OSD battery level.
- Fixed an issue causing a crash when Steam platform is not yet fully initialized.
Build 0.21.0.1
🎉 New Release Alert: 0.21.0.1 🎉
We're excited to announce the availability of version 0.21.0.1! This is a milestone release that brings support for the MSI Claw (thanks to @romracer ), entirely rewritten support for FAN and LED across all AYANEO devices (@0SkillAllLuck ), along with major bugfixes and QoL improvements.
Overall, we've greatly improved the overall gyroscope experience, software stability and reduced HC startup times by up to six seconds 🚀
Release notes
New devices support
- Basic support for MSI Claw (missing FAN and LED control), thanks to @romracer
- Full support for AYANEO Slide, thanks to @0SkillAllLuck
- Full support for AYANEO Next Lite, thanks to @0SkillAllLuck
Improvements
- Improved overall UI responsiveness. This should reduce loading times by up to six seconds.
- Improved overall support for all AYANEO devices, extending FAN and LED compatibility.
- Improved overall support for LENOVO Legion Go with better gyroscope experience when controllers are attached.
- Improved overall stability of virtual controller management.
- Implemented support for drag&drop files within MyDocuments profiles folder.
- Implemented a new profile settings: Automatic Yaw/Roll detection.
- Streamlined bundled OEM power profiles naming convention for better clarity.
- Improved overall gyroscope timing management.
- Improved overall foreground process detection. This should speed-up profile switch.
- Improved 3D overlay rendering. This one still has some known issues.
- Improved motherboard details collection through caching. This should reduce loading times by one second after first start.
- Increased maximum override TDP to 75 Watts.
- Improved overall thread lock logic across the whole application.
- Implemented latest LibreHardwareMonitor library.
Release 0.21.0.0 -> 0.21.0.1 notes
- Fixed Legion Go right joy con motion input
- Fixed Installer not properly detecting installation of HidHide and RTSS
- Fixed "no virtual controller connected" message showing when it's no suppose to
- Fixed a crash when no audio device is available on a device
Build 0.20.4.1
Note from the developers
While we usually publish Early Access versions on github two weeks after their initial release, we've decided to put version 0.20.4.1, based on 0.20.4.0, online just one week after its release, in order to address a rare but very annoying problem: the soft-brick when uninstalling HidHide.
This soft-brick problem was caused by the HidHide library on which Handheld Companion relies to hide the physical controller. It was possible that during uninstallation, a race-condition would occur with the watchdog, responsible for ensuring the smooth operation of HidHide and the uninstaller.
Thanks to the combined efforts of the community and HidHide developer Nefarius, we were finally able to isolate the problem and a new version of HidHide was immediately released.
As you may have guessed, version 0.20.4.1 is nothing other than 0.20.4.0, with the new critical update of HidHide to version 1.4.202.
What's Changed
- Add support for GPD WIN MINI
Improvements
- Custom OSD, configure custom OSD items, at different levels of detail
- Legion Go Fan curve control, proper software fan control
- Legion Go Firmware controller settings, adjust your Legion go joycon firmware settings directly from HC (Joystick Deadzone, Trigger Deadzone, Trigger Margin and Auto Sleep Time)
- Intel Graphics Control Library (IGCL), to support various graphics settings for Intel devices ahead of MSI Claw release
- Improve gamepad navigation, various quality of life improvements and fixes, including proper popup support
- Sound effects with gamepad navigation, disabled by default (it's bad)
- CPU Boost logic, now supports all PerfBoostMode instead of only being Enabled or Agressive
- Controller Page UI, goodbye pretty controller picture, the main GUI Controller page has been reworked for ease of understanding
- Hints page cleanliness, hide stacks if there is no hint
- Improved gyro aiming down sights multiplier, can now be set even lower
- Process detection, added several more applications to the ignore list PC Manager and PowerToys' MouseWithoutBorders
Bugfixes
- Fixed an issue with HidHide uninstallation process that might have caused soft-brick on rare occasions
- Fixed software fan control curve not applying and devices getting stuck at 50% fan speed
- Fixed an issue with the WPF Stylus thread access resulting in a crash
- Fixed an issue with null AdapterRAM causing a crash
- Fixed HidHide uninstall being optional and added additional logging to capture soft brick in case of occurrence
- Fixed switching between hardware and software fan control not applying right away
- Fixed a crash on screen devices not being availible
- Fixed a crash when HC is closing, this was also shown in the Windows event log
- Fixed an infinite loop with the brightness and volume sliders in QT
Build 0.20.3.1
A new HC release, a hotfix release for a specific very frequent crash bug.
What's Changed
Bugfixes
- Fixed an issue crashing HC when discarding layouts, used by profiles. @indiesaudi @MSeys