Repository navigation
Releases: gfgerard/GyroUE
Release list
GyroUE v0.9.1
New
-
PAYDAY 3 support. GyroUE can now read games built with case-preserving names, as PAYDAY 3. A profile is included: the gyro turns the normal camera and the clamped camera some actions use, switching between them by itself.
-
Several cameras for the same character (
Match=Camera). A profile view can now be picked by which rotation the camera follows, not only by the view target. GyroUE switches views by itself: -
Learning a camera during play, without a restart.
-
Ctrl+F7(ProbeKey=) starts the camera probe where you are, and cancels it.AutoProbe=1(default) starts the probe by itself when the camera stops following the gyro.- The verified camera is added to the game's profile as a new view and used at once.
-
Profile hot reload. Changes to the game's profile apply without restarting the game.
-
Mouse turns count like the right stick for the probe and the camera checks.
-
More diagnostics in
GyroUE.log:- focus changes, with the program that took it;
- GyroLib enabling or suspending the gyro;
- motion data lost, the controller lying still, and the controller being reopened;
- when the camera stops following the gyro and when it follows again, with the camera in use.
Fixed
- The camera no longer freezes when looking straight up or down: camera changes are judged on yaw only.
- The probe now handles pitch across level correctly (UE5 stores pitch as 0..360). Turns across level used to read as about 350° and could break the live test.
Views=in a profile now ignores trailing tabs as well as spaces.
GyroUE v0.9.0
Long-press blocking
GyroLib’s Block long press option now works: with gyro activation on Hold (or Hold to disable) on a single button, a short press still does the button’s game action, a long press only controls the gyro. Works for controllers shown to the game as Xbox, real Xbox/Steam Input controllers, and DualSense/DualShock 4 in games with their own PlayStation support.
Sensitivity profiles
Additional tabs in F10 panel: ADS | ALT_ADS | OTHER
Besides Exploration (the default gyro settings), the F10 panel now has three extra tabs, each with its own gyro settings, switched with a controller button:
ADS: for aiming down sights (or anything you want, really)
ALT_ADS: for games with a second aim (e.g. a scope). Starts from the ADS settings.
OTHER: anything else you want a different sensitivity for.
They are off by default: their tab reads e.g. “ADS - disabled” and its description tells you what to set. To enable one, set its button and mode in GyroUE\GyroUE.ini and restart the game:
AdsProfileButton=LT
AdsProfileMode=Hold
AltAdsProfileButton=R3
AltAdsProfileButton=Toggle
Mode Hold: the profile is used while the button is held.
Mode Toggle: one press on, the next off (it also turns off on pause, menus and cutscenes, since GyroUE can’t see whether the game is still aiming).
Buttons: LT RT LB RB LS RS A B X Y (or L2 R2 L1 R1 L3 R3 Cross Circle Square Triangle), Back Start Up Down Left Right Touchpad Misc, paddles LP1 LP2 RP1 RP2.
An enabled profile starts with the Exploration settings, so nothing changes until you edit its tab.
Profiles apply to the main camera only.
The button still does its normal action in the game.
Camera recenter button
GyroLib’s recenter button (levels the camera’s pitch) now works in every camera view, including game profiles with custom cameras (best effort). Bind it in the F10 panel. Profile keys for custom cameras: RecenterPitch= (the level pitch of that camera) and Recenter=0 (hide it where it doesn’t level properly).
GyroUE v0.8.2
New game support
- Unreal Engine 5.7. GyroUE handles the new object list layout in UE 5.7 games such as Valor Mortis
(Xbox / Game Pass build), which works with the generic camera and needs no profile.
Settings panel
- Navigating GyroLib's panel with the controller no longer drives the game behind it. While the panel is open, the
game reads an idle controller. This works for games with their own PlayStation controller support (DualSense and DualShock 4), for
the controller GyroUE shows as an Xbox controller, and for real Xbox / Steam Input / DS4Windows controllers.
GyroUE v0.8.1
New and fixes
- Older Unreal Engine games (UE 4.22 and earlier): GyroUE now reads the older engine name table, so these games
are no longer reported as "engine data can't be read". - Star Wars Jedi: Fallen Order supported (profile included): the gyro turns Respawn's own camera
(RsCameraManager). - DualSense shown as a DualShock 4 to games whose PlayStation support only knows the DS4 (Mortal Shell,
Jedi: Fallen Order), over USB and Bluetooth: PlayStation icons, rumble and light bar. GyroUE detects it, saves it
in the game's profile and asks you to restart once. - Mortal Shell profile included.
Controllers
- Auto mode (
XInput=1) tells PlayStation controllers apart: in games with their own PlayStation support, a Switch Pro
or DirectInput pad is still shown as an Xbox controller. XInput=2fixed for games that handle XInput differently: GyroUE takes back XInput imports rewritten by an overlay
(e.g. Epic Online Services in Mortal Shell).
Camera probe
- After a verified camera, the probe turns itself off (
Probe=0) and the notice asks you to restart the game to
use the gyro. - Rotations nested in a struct (e.g.
ModeOutputs.Rotation) are now tested live, and profiles can name them:
Property=Struct.Memberis resolved by reflection at every start, so it survives game updates (no raw offsets).
GyroUE v0.8.0
Highlights
- Play with a DualSense, Switch Pro controller, any SDL3 supported controller... in games that only support Xbox controllers.
No Steam Input or xbox emulation needed. Automatic Xinput need detection and emulation activation. - Flick stick from GyroLib's
F10config panel (for xinput games or forcingXInput=2inGyroUE.ini). In games with native PlayStation controller support (experimental)NativeFlickStick=1enables flick stick while keeping DualSense features. - Smarter camera probe: it tests each candidate live in the game before writing a profile, trying to no longer write profiles that don't work.
- Hogwarts Legacy support profile included.
Controllers the game doesn't support (Xinput automatic emulation)
GyroUE will show your controller to the game as an Xbox controller: buttons, sticks, triggers and rumble.
It uses the same controller GyroLib reads for the gyro (DualSense, Switch Pro, DirectInput pads, SDL3 compatible).
XInput=1(default, auto): only when the game doesn't read the controller itself and no Xbox controller, Steam Input or other xbox emulator is active. Games with native DualSense support are left alone.XInput=2(always): the game gets only the Xbox controller, even if it supports the DualSense itself. GyroUE keeps the game from opening PlayStation/Nintendo/HID controllers directly, so there is no double input (you lose PlayStation icons, haptics and adaptive triggers).XInputNintendoLabels=1: swaps A↔B and X↔Y, so the button printed A on a Nintendo controller is Xbox A.XInputTouchpadBack=1(default): the DualSense touchpad click also presses View (Back).
Flick stick
GyroLib's flick stick needs the game's own right-stick camera turning switched off. GyroUE can now do it in two ways:
- Xbox controller translation: the translated controller's right stick is zeroed while flick stick is on. Tested in Luto.
- Native PlayStation support (experimental,
NativeFlickStick=1, off by default; needsXInput=1): the game keeps its PlayStation icons, haptics and adaptive triggers. GyroUE centres the right stick only in what the game reads. The controller itself and GyroLib's own reading are untouched. The flick options appear after you move the right stick once in game, when GyroUE has checked the controller's data format. Tested over USB in Pacific Drive and Cronos. Bluetooth and DualShock 4 are not tested yet.
Camera probe and detection
- Improved on screen instructions for camera detection
- Improved camera detection: probe now verifies candidates live: it writes small turns into each one and keeps only those the camera really follows. Values the game overwrites every frame are rejected.
- Generated object names are saved in a form that works across sessions.
- The camera check accepts games whose camera isn't attached to the player character but turns with the right stick (e.g. Hogwarts Legacy).
- On-screen notice when GyroUE can't read a game's engine data, with diagnostics in the log.
- Fixed engine detection in Hogwarts Legacy.
Games
- Hogwarts Legacy: new profile (camera stack rotation).
- The Outer Worlds: Spacer's Choice Edition: gyro works; native DualSense left to the game.
Settings added to GyroUE.ini
| Setting | Default | Meaning |
|---|---|---|
XInput |
1 |
0 off, 1 auto, 2 always |
XInputNintendoLabels |
0 |
1 swaps A↔B, X↔Y |
XInputTouchpadBack |
1 |
Touchpad click = View |
NativeFlickStick |
0 |
1 flick stick with native PlayStation support (needs XInput=1) |
GyroUE.ini is never overwritten on update. Missing keys use the defaults above. Add them by hand to change them.
Known limitations
- XInput translation and native flick stick are not available on protected executables (e.g. Gears of War: E-Day).
- Extra buttons (DualSense mic, Edge paddles, Switch Capture) are not mapped yet.
- With flick stick on, the whole right stick is blocked for the game, not only its camera use.
GyroUE v0.7.0
New camera support for games that turn their camera component directly (first one: Severed Steel).
A startup check that keeps games with an old Visual C++ runtime from crashing.
GyroLib 1.3.1 whose built-in motion delivery replaces GyroUE's own pacer.
New
- Severed Steel support (UE 4.27, tested on the Steam demo). Profile included:
profiles/ThankYouVeryCool-Win64-Shipping.ini.
⚠️ The game ships an old Visual C++ runtime. RenameMSVCP140.dllandMSVCP140_2.dllin its
Binaries\Win64folder (e.g. add.bak), otherwise GyroUE keeps the gyro off (see below). WorldRotation=1profile option. Some games turn their camera component directly from its
world rotation and copy it toControlRotationevery frame, so writingControlRotation(or the
component'sRelativeRotationalone) does nothing. For a scene component with absolute rotation,
WorldRotation=1writes itsRelativeRotationand its world rotation together. See
ADVANCED.md, example 3.- Smarter camera probe. Components whose
RelativeRotationmatches their world rotation are no
longer discarded as "camera output". The probe now suggests them withWorldRotation=1, and puts a
camera component first. - Dependency check before loading GyroLib. If the game ships, or has already loaded, a Visual C++
runtime older than 14.40, GyroLib would crash the game at startup. GyroUE now detects this, leaves
the gyro off, lets the game start normally, and shows an on-screen notice naming the files to rename.
Changed
- GyroLib 1.3.1 (was 1.3.0). It smooths bunched motion reports (e.g. a Switch Pro Controller over
Bluetooth) inside GyroLib itself, so GyroUE's own pacer was removed.PacingandPacingMaxMs
in an existingGyroUE.iniare now ignored; you can delete them. The status line inGyroUE.log
reports GyroLib's delivery instead. - GyroLib 1.3.1 also fixes
gyrolib.iniedits wheregyro.acceleration=0(Off) was ignored if the
fast sensitivities didn't match the main ones. - The "camera seems to ignore the gyro" notice is worded less firmly and shown for 15 s, because the
check can rarely misfire on a camera that does work.
Fixed
- GyroUE's protected memory reads no longer swallow stack guard-page exceptions, a latent cause of
rare crashes in the game.
Upgrading
Extract the zip into the game's Binaries\Win64 folder, overwriting the old files. Your gyrolib.ini
and GyroUE.ini are kept. Old Pacing lines do no harm.
GyroUE v0.6.18
v0.6.18 only exchanges the default output to be winmm.dll as it has broader support
Warning
Experimental. Bugs and crashes are possible. Offline single-player games only: never use it in online or anti-cheat protected games.
Features
- Drop-in install: no loader (UE4SS etc.) needed. Works on UE4 and UE5, with monolithic and modular builds.
- The gyro should pause automatically in menus, the pause screen and when you alt-tab.
- Automatic calibration while you're in menus.
- Automatic camera detection in basic implementations.
- In game messages to guide you through probe scan for camera detection and automatic profile generation.
- In-game settings panel (
F10, DirectX 12 games) for sensitivity, activation button or trigger, smoothing, curves and more.gyrolib.iniedits are also reloaded live. - Per-game profiles for custom cameras (vehicles, camera components), shipped for the tested games.
- Coexists with ReShade, RenoDX and the Steam overlay.
Current limits
Not available yet: flick stick, a gyro button that doesn't also trigger its normal in-game action, a recenter button, and different sensitivity when aiming down sights. Each of these needs extra game hooks. See Current scope.
Tested games
| Game | Notes |
|---|---|
| Pacific Drive | On foot and in the car |
| Returnal | Works without a profile |
| Cronos: The New Dawn | Settings panel also works with HDR (RenoDX) |
| Life is Strange Remastered | No F10 panel (DX11): configure in gyrolib.ini |
| Luto | Works without a profile |
| Terminator: resistance | Works without a profile |
| Gears of War: E-Day (Game Pass) | Campaign only, with EasyAntiCheat disabled. Install in Binaries\WinGDK |
Other UE4/UE5 games often work out of the box. If a game's camera ignores the gyro, GyroUE says so on screen and can create a profile for it with its camera probe (see ADVANCED.md).
GyroUE v0.6.17 - PoC
🚀 First release is a proof of concept only tested in a small number of games
Warning
Experimental. Bugs and crashes are possible. Offline single-player games only: never use it in online or anti-cheat protected games.
Features
- Drop-in install: no loader (UE4SS etc.) needed. Works on UE4 and UE5, with monolithic and modular builds.
- The gyro should pause automatically in menus, the pause screen and when you alt-tab.
- Automatic calibration while you're in menus.
- Automatic camera detection in basic implementations.
- In game messages to guide you through probe scan for camera detection and automatic profile generation.
- In-game settings panel (
F10, DirectX 12 games) for sensitivity, activation button or trigger, smoothing, curves and more.gyrolib.iniedits are also reloaded live. - Per-game profiles for custom cameras (vehicles, camera components), shipped for the tested games.
- Coexists with ReShade, RenoDX and the Steam overlay.
Current limits
Not available yet: flick stick, a gyro button that doesn't also trigger its normal in-game action, a recenter button, and different sensitivity when aiming down sights. Each of these needs extra game hooks. See Current scope.
Tested games
| Game | Notes |
|---|---|
| Pacific Drive | On foot and in the car |
| Returnal | Works without a profile |
| Cronos: The New Dawn | Settings panel also works with HDR (RenoDX) |
| Life is Strange Remastered | No F10 panel (DX11): configure in gyrolib.ini |
| Luto | Works without a profile |
| Gears of War: E-Day (Game Pass) | Campaign only, with EasyAntiCheat disabled. Install in Binaries\WinGDK |
Other UE4/UE5 games often work out of the box. If a game's camera ignores the gyro, GyroUE says so on screen and can create a profile for it with its camera probe (see ADVANCED.md).
Docs
README · Problems? · Advanced · Credits and licenses
Tested with a DualSense (USB/BT) and a Switch Pro Controller. When reporting a problem, attach GyroUE\GyroUE.log and say which controller you used, the connection and whether Steam Input was on.
Released under the MIT License. Includes GyroLib (MIT), SDL3 (zlib), Dear ImGui (MIT) and MinHook (BSD-2); full notices are in GyroUE/licenses/.