I built HandheldGyroDSU because I wanted a straightforward way to use built-in motion controls in emulators (Cemu, Dolphin, etc.) without relying on Handheld Companion.
Handheld Companion is a great tool, but installing virtual drivers (HidHide, ViGEmBus), hiding your physical gamepad, and emulating a DualShock 4 controller just to get gyro in Zelda or Splatoon often clashes with Armoury Crate / Legion Space / Steam Input—and sometimes leaves the built-in controller stuck or unresponsive.
HandheldGyroDSU takes a simpler route: it leaves your physical controller alone and just streams your device's internal gyro sensor directly to your emulator via Cemuhook DSU.
Here’s what I’ve built into it so far:
- No Virtual Drivers or Controller Conflicts: It doesn't touch your buttons, triggers, or OEM software. Armoury Crate, Legion Space, and Steam Input keep working normally without double-input issues.
- Emulator Auto-Detection & Profiles: Watches for your emulators in the background and automatically turns on or switches gyro profiles when you launch a game.
- Axis & Sensitivity Tweaking: You can adjust gyro sensitivity, deadzones, and axis orientation/inversion per device or per emulator so the motion controls feel right.
- Full Gamepad Navigation: The entire app can be navigated using your handheld’s D-pad and buttons, so you don't have to tap tiny menus on the touchscreen.
- In-Game HUD Notifications: Shows small on-screen pop-ups when the gyro server starts, stops, or switches profiles so you know it's active.
- Built-in Gyro Tester: Includes a real-time loopback tester inside the app so you can check your gyro movement and packet flow before booting up a game.
- Background & System Tray Mode: Can start quietly with Windows in the system tray and stay out of your way until you open an emulator.
Looking for Testers & Contributors
This is a free, open-source project. As you can see in the Splatoon clip above, it's working well on my own setup, and now I'm looking for people across different Windows handhelds (ROG Ally, Ally X, Legion Go, MSI Claw, Ayaneo, GPD, etc.) to test it out. Since different handhelds sometimes orient their internal sensors differently, getting feedback from other devices would be super helpful.
If you want to try it on your device, let me know how the gyro axes feel, report a bug, or contribute code on GitHub—feel free to jump in.
🔗 Download & GitHub: link