Skip to content

Releases: corando98/GoTweaks

Release V15.2 - Stability Overhaul, Full Gyro Emulation, PresentMon FPS, Legion Go S fixes

Choose a tag to compare

@corando98 corando98 released this 07 Jul 21:42

This update focuses on installation & stability fixes for the issues reported on V15.1 (#90, #91, #92), plus a complete overhaul of controller emulation gyro support.

Installation & Stability (please update if GoTweaks was broken for you)

  • Fixed the helper deploy bug that could wipe its own install and leave GoTweaks stuck on "Initial Setup in progress" forever. This also caused the helper to stay on an old version after updating (Legion tab missing, widget stuck "Launching helper").
  • Fixed duplicate helper processes spinning at full CPU after first setup (mutex + setup-handoff race). If you saw several XboxGamingBarHelper.exe in Task Manager, this was it.
  • Downloads (PawnIO installer, ViGEmBus installer, updates) now have real timeouts. On machines with strict outbound firewall rules the Install buttons silently hung forever - they now fail with a logged error instead.
  • Display resolution/refresh detection now pins to the primary display device. Fixes phantom "1920x1080@60" readings on multi-GPU / eGPU / LTSC setups (#91, #47).
  • Legion Go S: the controller monitor no longer rescans incompatible HID devices in an endless loop (CPU waste + log spam). Go S skips the monitor entirely; other devices back off smartly and recover within seconds when controllers are powered back on.
  • Game Bar no longer closes instantly on activation-path exceptions (#81) - global exception guard with logging.

Controller Emulation - Gyro on every target
Fully mapped IMU (gyro + accelerometer) wire formats for all VIIPER targets, verified against SDL3 and Steam on Legion Go 2:

  • DualShock 4 / DualSense / DualSense Edge
  • Steam Deck (also fixes sticks/buttons silently not working - SDL3 rejected every report due to a header length bug)
  • Switch Pro, Joy-Con Pair, Joy-Con Left & Right (landscape single Joy-Con with SL/SR mapped from back paddles)
  • New "Alternate gyro convention" toggle for downstream apps that read gyro differently (Steam gyro-to-mouse vs native game gyro)
  • Software gyro bias calibration (Steam-style one-shot capture) + torn gyro register read filter for Legion Go 2 firmware quirk

PresentMon FPS + FrameBudget OSD (#66)

  • Rendered vs displayed FPS from Intel PresentMon - finally see real frame generation output (AFMF/LSFG show [FG] badge)
  • New FrameBudget OSD item with CPU/GPU-bound indicator

GoTweaks Lighting & Haptics

  • Reactive lighting effects, button haptics, and controller sleep timeout for Legion Go

Fixes

  • Charge limit persists and re-applies on boot (#88, #92)
  • AutoHibernate AC/DC gate reads correct battery status (#88)
  • Fan RPM always pushed to OSD; fan curve respects max point instead of hardcoded 100% (#83, #88)
  • Custom Legion SPPL/FPPT persist across reboot and profile reapply (#79)
  • UWP / Microsoft Store game detection (Forza Horizon 4) via ApplicationFrameHost resolution (#87)
  • AFMF Display-tab toggle reliably reaches the AMD driver
  • Legion Go 2 CPU/GPU wattage OSD labels match Adrenalin
  • Keyboard bind dropdowns label Win keys as LWin/RWin (#68)
  • Per-profile TDP Boost deltas; CPU optimization pass (sensor walk gating, idle throttling)
  • Quieter logs: game detection, HID reconnect, RTSS attach

Known issues

  • Joy-Con Right gyro mapping shipped with best-known values - feedback welcome if motion feels off
  • Game Bar overlay tiles can render out of bounds after "Rearrange tiles" on some LTSC setups (#91) - investigating

Release V15.1 - Lenovo Driver Updater, AutoTDP Improvements, Improved Controller emulation

Choose a tag to compare

@corando98 corando98 released this 10 May 02:45
8d2cbe7

This update includes,

New Controller Emulation Backend

  • VIIPER, forked from https://github.com/Alia5/VIIPER to add support for Legion Go special keys handling and Steamdeck controller, Dualsense Edge controller, Switch Pro, and more.
  • Supports gyro, trackpad, LED passthrough; select gyro source, change IMU Axis mapping
  • Change the behavior of the Guide/Mode buttons, for Legion Go see Special remapping section in Legion Tab.
image - Experimental, some features might not work. Needs to be enabled on Debug menu. image image - Use Dualsense Edge emulation on steam to map back buttons to games, or use Steam Input. image - Steamdeck controller emulation, allows use of right trackpad to Legion Go, and back buttons. Note: Xbox FSE will only work with DS and Xbox controller, Xbox Elite emulation is currently broken as it required special work to emulate.

Improved AutoTDP

  • New AutoTDP learns the best TDP for your game, not only to reach the FPS but to sustain a smooth frametime, the SARSA ML model learns game performance at different TDPs and uses this to bias AutoTDP.
image

Added Gyro Calibrate for Legion Go

  • Built in gyro calibration for Legion Go
image

Lenovo Driver Updater

  • Pull driver updates straight from Lenovo without having to fight a browser, downloads the latest and notifies you if an update is available.
image

Auto check GoTweaks Updates, on startup
image

  • System tab -> Debug menu

Fixes

  • Fixed TDP Presets not saving when restarting
  • Fixed custom TDP reverting on reboot
  • Fixed outdated PawnIO dependency
  • Added debounce to LT/RT tab browsing to avoid skipping due to held to long or stuck key.
  • Fixed DGPs not showing up on non-FSE devices.
  • HidHide race on reboot — physical Legion controller no longer visible alongside VIIPER virtual controller (TCS barrier serializes the two deferred applies).
  • TDP presets wiped on reboot (issue #79) — guard flag blocks the pre-load Toggled event from saving an empty list.
  • ADLXCSharpBind rebuilt in Release mode — fixes "DllNotFoundException" on machines without Visual Studio.
  • Fan curve format, TDP restore on startup, settings persistence, Chill slider steps, widget height.
  • Profile sync race conditions, global profile corruption, per-game TDP mode switching, game-close detection.
  • Legion button + scroll remap response key mismatch; Labs Legion remap persistence.
  • AutoTDP initial TDP seeding, learned-TDP threshold, profile save, quick metrics persistence, state persistence across mode switches.
  • VIIPER hot-swap, settings persistence, upgrade flow, Steam paddles.
  • XY gamepad navigation, game-name mismatch from Game Bar API, async-void connection crash.
  • Keyboard shortcut parsing (Ctrl+Alt+Del removed), Focus GoTweaks hotkey sync.
  • Quieted transient RTSS-attach and HID-reconnect log noise.

Pre-Release V15 - Controller Emulation, Navigation Menu Fix, AutoTDP Improvements

Choose a tag to compare

@corando98 corando98 released this 16 Apr 02:20
8d2cbe7

Hello all, want to make a sign of life and say that I miss working on this project. With the current world events around the middle east I find myself affected by what is happening. I am okay, not in need of donations or anything. Development will resume once things start moving. I have touched my Legion Go 2 a lot less than I would like. With that said this is a build I left off, bringing some of the most requested improvements.

UI Navigation fixes and appearance
image

Controller Emulation w/gyro
image

AutoTDP improvements, self learning
image

Quick Widget Stats View
image

Some stuff that I also had been experimenting was emulating Steam deck controller fully to include Dual sense Edge similar to Linux. This is done, and currently working as a separate "test" project. Need to integrate to GoTweaks.

With that said, feel free to drop feedback. As always, I appreciate everyone dropping issues and feedback. This is a project that I started for myself and thought it would be useful to others. This build is about 300builds newer than the last public one.

Release V14.1 - Stability, UAC Be-Gone, Named Pipes, Scroll wheel remapping, and more!

Choose a tag to compare

@corando98 corando98 released this 26 Jan 10:53
8d2cbe7

New Features:

Reorganized default Quick tab:

  • Tiles are now arranged by default closer to their respective area, changed some icons.
image

Quick tab:

  • Rotation tile: Quickly switch your Legion Go into a tablet with one press

Performance tab:

  • Non Legion devices now get TDP modes, these TDP presets are able to be saved onto profiles!
  • Added Advanced section, includes Power plans and CPU affinity.
image

Profiles tab:

  • Now simplified, with Game Detection options. Reworked to remove a lot of the complexity and major improvement over V13 which had issues.
  • Additional per profile settings added: CPU affinity and Overlay Level
image

Display tab:

Fixes: Properly greys out the features unsupported when on non AMD GPU, supports eGPU now.

Scale tab:

Fixes: Use dynamic scale hotkey if user changed default.

Legion tab:

  • Fixed bug with stick lighting leaking when using other lighting properties such as Power light.
  • Improve Disable Legion Space Service
  • Added Special Remapping section:
image

System tab:

  • Consolidated all TDP settings
image
  • Added gamepad combo shortcuts (All devices)
image

Debug panel updates:

  • Export/Import profiles features
  • V13+ users are able to use check for update (debug).
image

Other changes:

  • Reduce timer between Gamebar open and focus GoTweaks
  • Optimized helper start up time
  • GoTweaks no longer needs UAC prompts to start up
  • GoTweaks task creation, start up is seamless
  • Initial GPD implementation
  • Optmized loading time
  • Prepare source code for multiple device support
  • On start up, read the existing values for EPP & CPU Boost
  • Migration to IPC Named Pipes

Update (1/31/2026)
V14.1

Changes:

  • Fixed Disable Legion Space issue
  • Improved widget launch time and optimized launch experience
  • Added frametime graph "pinning toggle"
  • Optimized frametime graph for smoother graphs
  • Added refresh rate as part of profile settings
  • Fixed issue where changing controller settings would reset the LED sticks to white

Feature Requests? #32

Like the work? Buy me a drink: https://github.com/corando98/GoTweaks#support-development

Release V13 - Default Game Profiles, Legion features, Winring0 gone, UAC fixes

Choose a tag to compare

@corando98 corando98 released this 13 Jan 02:23
8d2cbe7

Thank you all for the support, this one is a big update and fixes a lot of issues and adds some quality-of-life fixes, such as addressing the constant UAC prompts. In 4 short weeks we have turned what seemed like dead support from Lenovo into a full-fledged widget integrated into the GameBar with customization, per game profiles, and more!

New features:

Introducing Default Game Profiles

image

Seamlessly apply optimized settings on battery power without having to tweaks TDP, automatically updates list of available profiles, below is example of supported DGP (Default Game Profiles): As of Jan 11, 781 optimized profiles.

image
  • Legion Go 2 defaults to the Xbox Ally X, Legion Go 1 / Go S defaults to the Xbox Ally

  • Fallback mechanism: if Legion Go 2 profile is not detected, fallbacks to the Legion Go 1 / Go S profile.

  • Default Game Profiles are updated constantly, games are tested by Xbox team optimizing for battery and performance for ease of use, automatically applies on DC power, optional for AC. User can disable and preference will be remembered.

  • Learn more here Demo video: https://www.youtube.com/watch?v=RCU97vtmsE8

Toggle to force on unsupported devices under System tab:

image

Added Legion Go 2 front buttons to per game remap functions:

  • Add your own per game shortcuts using the front buttons, ie. Map "Quick Save" or "Quick load" from your emulator
image

Legion Controller remap profile now syncs Stick RGB per game:

  • Disable power button light and sticks while gaming
  • Example: "Set Call of Duty per game to Red pulsing, white for Hollow Knight, etc"
image

Added Hair trigger feature and trigger dead zones:

image

Improve Legion Controller page:

image
  • Shows detached/attached status, battery, charging state and VID:PID

Labs features: (Found at bottom of Legion tab)

Lenovo Legion L/R remapping: (Labs)

  • Map Legion L/R to Xbox button, requires ViGemBus installed (Does not remap whole controller, just Xbox button).
  • Supports Keyboard actions (Win, Win+G, Win+Alt+Z, etc)
  • "Focus GoTweaks" immediately jumps straight to tweak similar to other game bar control center, eliminating extra button presses.
  • Supports commands + args, launch playnite on Legion L or frontend of choice!
image image

Disable Legion Space service: (Labs)

  • Sets TDP on charger connect/disconnect, previous mitigation was to use of stickyTDP
  • Ability to monitor process, start, stop with one button.
  • Noninvasive, won't remove, rename or alter file system.
image

**Removed WinRing0 completely, no longer false positive flags from Windows Defender: **

  • PawnIO is now default for non-legion devices. Works with Anti-Cheat games, and won't require any defender whitelisting.
  • Installation of PawnIO is required for CPU, RAM, and other sensors info to display, button to install under System tab.

Profile detection settings, and custom apps:

  • Quickly whitelist an app as game for custom profile
  • Match games by .exe or window title
image

Debug Menu Under System Tab: (New)

image
  • Easily export logs for debugging or issue submission
  • Kill GoTweaks / Restart Helper (for debugging)
  • Check for updates, automatically checks if a new update is available.
image

Other small additions:

  • Quick tab: battery tile is now available for all users
  • Quick tab: Profile tile has a gradient when DGP (Default Game Profile) is enabled
  • Quick tab: Added hibernate tile, quickly hibernate with one press
  • Quick tab: Toggle Legion Power Light tile
  • New OLED burn in protection for OSD, automatically enabled
  • Added support my work button under about dropdown in system tab (Optional)
  • Batch property sync, syncs widget from ~2600ms down to ~30ms
  • Optimization loading of helper (60% faster)
  • Added option for 5 columns to quick tab
  • Default to 4 columns on quick tab
  • Premade Fan curve profiles for Legion devices (Silent, Balanced, Performance, Custom)

Fixes:

  • Addresses constant UAC prompts, now should prompt once at install or rarely if helper dies.
  • Battery Limit appearing on unsupported devices
  • Widget ghost disconnection from helper on startup
  • Fixed stale battery on OSD when resuming from sleep after a charge session
  • Quick tab shortcuts send Win+G prior to execution instead of Alt+Tab
  • Fixed PawnIO not showing actual installation state
  • Tweaked Legion fan curve to allow lower values

Update:
build 1234:
Fixes
Fixes icon extractor not working
Fixes explictely added games in Xbox Gamebar
Fixes old profiles with no RGB lighting saved defaulting to white

Update 2:
build 1268:
Fixes
Fix: Power light toggle not saving to per-game controller profile

  • Added LegionPowerLightToggle.Toggled += ControllerSettingChanged event subscription
  • Power light changes now persist when switching between game profiles

Fix: Game detection not showing when opening Game Bar

  • Added force-sync of RunningGame to widget after reconnection
  • When widget reconnects (Game Bar opens), helper now sends current game state immediately
  • Previously, if the same game was running before and after opening Game Bar, no update was sent

Disabled: Current apps, Custom games, and Blacklist features

  • These features in the Profile Detection settings caused user confusion
  • Commented out in both XAML and code-behind (can be re-enabled later)

Profile Detection now only shows:

  • Match game by executable toggle
  • Detect games only toggle

Should match previous build detection logic.

Release V12.2 - Hello PawnIO, Fan Curves, Fixes

Choose a tag to compare

@corando98 corando98 released this 03 Jan 23:49
88ae860

PawnIO,

PawnIO will be replacing WinRing0 for TDP control and reading some sensor values for OSD, next build will drop WinRing0 support completely. Website for more information, https://pawnio.eu/.
Safe, signed, and compliant driver that replaces WinRing0, this allows the user to play anticheat games such as EAC, it also does not flag AV like WinRing0 does as of recent updates.

PawnIO is relatively new in the scene and more testing is required, currently testing support for GPD Win5, Z2 Extreme devices such as Legion Go 2 and Xbox Ally X are pending support in the driver, with a pull request to add their CPU to the supported list.
(namazso/PawnIO.Modules#41)

A TDP control method dropdown has been added that automatically picks the best TDP control method for your device:

  • Legion devices automatically use the Manufacturer WMI method
  • Options include: Manufacturer WMI (if supported), PawnIO, and Winring0 (soon to be dropped).
  • Includes a button to install the PawnIO driver. PawnIO driver can also be installed manually if desired.

New Features:

  • PawnIO introduction and easy install method.
  • Added hotkey to trigger Legion Desktop controls using CTRL+SHIFT+D.
  • Add Charge Limit tile to Quick Settings for Legion devices
  • Legion Go fan curve setting:
image
  • Quick tab battery tile: (Shows Left/Right legion controllers battery charge, status, charging state):
image
  • New Legion Controller OSD item:
image

More OSD customization options:

  • 2 additional larger options (XX-Large and XXX-Large)
  • New color picker for both labels and values.
image
  • Battery time-to-full OSD estimation (shows estimated time until fully charged)

Fixes:

  • Fixed shortcuts sending alt-tab when executed from the quick tab.
  • Fixed battery indicator coming out of sleep/hibernate, stale values.
  • Adjusted Legion Desktop controls to use the Left stick as arrows.
  • Fix issue with reconnection to helper on Legion Go 1.
  • Fix FPS Limit, HDR, AFMF, RSR, AntiLag, and Radeon Chill toggles not saving to profile when changed from Quick Settings tiles
  • Auto-switch to Custom mode when enabling AutoTDP on Legion Go (AutoTDP requires Custom mode to control TDP values directly)
  • Fix controller navigation on Legion tab - can now navigate from Power Profile dropdown to Fan controls when Custom TDP is hidden
  • Fix CPU Boost toggle not persisting when changed from Quick Tab
    (now updates UI toggle which triggers profile save)
  • Display set TDP values on OSD when using PawnIO method
    (PawnIO cannot read back values from hardware)
  • Add SMU response logging for TDP commands to aid debugging

Release v12 - Rebrand

Choose a tag to compare

@corando98 corando98 released this 29 Dec 00:20
d14c45a

GoTweaks v0.3.782.0 Release Notes

Rebranding

  • Renamed from "Xbox Gaming Bar" to GoTweaks across the entire application
  • Updated all app icons, manifests, installer, and OSD with new branding

OSD (On-Screen Display) Enhancements

  • Per-item label color customization: Customize the label color for each OSD item independently (Default, White,
    Yellow, Green, Cyan, Red, Orange)
  • Per-level item reordering: Reorder OSD items within each level using up/down buttons
  • Item order and colors are saved per-level and persist across sessions

Navigation & UI

  • Added LT/RT visual indicators in the navigation bar for tab switching
  • Reduced nav font size and shortened labels to fit all items
  • Added Saved Profiles dropdown under Legion tab showing Global and per-game profiles with button remap details

Controller Remapping

  • Added M1 button to remappable buttons (Y1, Y2, Y3, M1, M2, M3)
  • Three mapping types supported: Gamepad, Keyboard (up to 5 keys), Mouse
  • Added Desktop Controls preset: RS=Mouse, DPAD=Arrows, A=Enter, B=Esc, LS=Scroll/Win, LB=LClick, LT=RClick
  • Added Quick Settings tiles for Desktop Controls and Remap Controls
  • Remap tile shows current controller profile name

Joystick & Gyro

  • Added joystick-as-mouse mode with sensitivity controls
  • Added gyro deadzone control

Profile System

  • Added HDR, Resolution, and Sticky TDP display to profile cards
  • Fixed profile checkbox persistence across widget close/open
  • Fixed Remap tile to toggle per-game controller profile instead of navigating

Bug Fixes

  • Fixed keyboard key dropdown mapping formulas for numbers and F-keys
  • Added 50ms HID command delays for firmware stability
  • Fixed missing IPC property registrations for M1 and GyroDeadzone
  • Fixed button remap failures with timing adjustments

Release v11 - Legion Go Per Game controller mapping, Gyro

Choose a tag to compare

@corando98 corando98 released this 20 Dec 09:13

New Features

Legion Go Controller Settings

  • Added gyro configuration: target, sensitivity (X/Y),
    invert axes, mapping type, and activation mode/button
  • Added stick deadzone adjustment (0-50%) for left and
    right sticks
  • Added touchpad haptics toggle
  • Added button remapping for M2, M3, Y1, Y2, and Y3
    buttons
  • Added controller profile selection and Nintendo layout
    toggle
  • Added vibration mode settings

Bug Fixes

Quick Tab Stability

  • Fixed custom shortcut tiles becoming stale after widget
    reload
  • Fixed delete button not appearing correctly on custom
    shortcut tiles
  • Custom shortcuts now properly close Game Bar and focus
    the previous app before sending input

TDP Reliability

  • Fixed race condition where TDP settings were applied
    before hardware finished switching fan modes
  • Added hardware confirmation polling with fallback to
    ensure TDP values are applied correctly during profile
    switches

Release v10.4 - Bug Fixes, StickyTDP note

Choose a tag to compare

@corando98 corando98 released this 18 Dec 19:18

Release Notes:

Improvements

  • Bug fix TDP race conditions when fast switching profiles manually
  • Bug fix TDP mode condition when fast switching profiles manually
  • Improved frametime graph layout and color
  • Added new OSD item to display current TDP Limits
  • Fix connection banner not displaying correctly
  • Grey out AutoTDP and TDP Boost toggles when using non Custom TDP modes.

Note: Some users experience TDP not applying correctly or legion space hijcking TDP, use StickyTDP as a workaround. Looking into this.

Release v10.3 - Rearrange tiles, added functions, 4 columns option

Choose a tag to compare

@corando98 corando98 released this 17 Dec 15:05

Release Notes

Quick Tab Enhancements

  • 4-Column Layout Support: Quick Settings tiles can now be configured in up to 4 columns for a more compact view
  • TDP Mode Tile: Cycle through Silence → Balanced → Performance → Custom modes with color-coded states
  • EPP (Energy Performance Preference) Tile: Quick access to CPU power efficiency settings
  • Custom Shortcut Tiles: Add your own app/game shortcuts to Quick Tab
  • Custom Shortcut Deletion Fix: Deleted shortcuts now properly persist after closing the widget
  • Tile Visibility & Ordering: Show/hide and reorder tiles to your preference

Performance & Profiles

  • TDP Boost: New feature to add temporary SPPT/FPPT boost on top of base TDP (per-profile support)
  • TDP Boost Toggle Persistence: Toggle state now saves correctly across widget restarts
  • Per-Game Profile Toggle: User preference to disable per-game profiles now persists (won't auto-enable if you
    turned it off)
  • TDP Race Condition Fix: Fixed issue where TDP would reset to Global profile value when reopening widget while a
    game is running

Stability & Reliability

  • Single-Instance Helper: Prevents multiple helper processes from running simultaneously (fixes conflicts and TDP
    issues)
  • Improved Game Detection: Better detection of running games for automatic profile switching
  • Display Dock/Undock Support: Detects display changes when docking/undocking

OSD & Monitoring

  • RTSS Direct API: Frametime graph now uses direct RTSS API for better performance
  • Y-Axis Legend: Frametime graph includes Y-axis scale for easier reading
  • Reduced CPU Usage: Optimized polling and update intervals

Lossless Scaling Integration

  • Improved Profile Detection: Better matching of game profiles using multiple strategies (window title, exe name)
  • Create Profile: Fixed profile creation for detected games

Bug Fixes

  • Fixed TDP Mode and EPP not persisting to profiles
  • Fixed widget crash during XAML initialization
  • Fixed infinite reconnection handling and wake re-apply
  • Replaced "Limit CPU Clock" with Min/Max CPU State dropdowns