Skip to content

Gyro support #45

Closed
Closed

Description

@govt-boot-licker

What would you like?

Just like regular Wind Waker HD with gamepad, gyroscope should be added to the project.

Both Cemuhook and mouse type gyro (for Steam Input) should be considered

Platform (if it matters)

No response

Activity

  1. StonedEdge commented on Oct 7, 2026

    @StonedEdge

    Can confirm, gyro does not have support at this stage.

  2. lschaupp commented on Oct 7, 2026

    @lschaupp
    Contributor

    Update: gyro aiming is implemented and on its way into devel; it will be in the next release. Like on the Wii U it moves the first-person camera (R3 look, bow, hookshot, boomerang, telescope, Picto Box, grappling hook), respecting the game's own Gyro option.

    Sources (settings overlay → Controls → Gyro, off by default):

    • Controller gyro via SDL: DualSense/DS4, Switch Pro, Joy-Con, Steam Deck (and GameController on macOS)
    • Cemuhook (DSU): DS4Windows, BetterJoy, phone apps (host/port/slot configurable)
    • Mouse (for Steam Input gyro-to-mouse): mouse movement acts as gyro only while aiming

    Plus sensitivity and invert per axis and a recenter binding. Details in docs/gyro.md.

    We don't have a gyro controller here, so testers would be very welcome once the release is out (@govt-boot-licker, @StonedEdge?). Things worth checking: turning right/tilting up moves the view the same way, both with the controller held flat and upright; the view stays still when the controller rests; Cemuhook with DS4Windows/BetterJoy; Steam Input with the Mouse source. If something is off, WWHD_GYRO_LOG=1 logs the raw sensor values, which would help a lot. I'll post here when the release with gyro is out.

  3. lschaupp commented on Oct 7, 2026

    @lschaupp
    Contributor

    Gyro aiming is now released in v0.2.5 (settings overlay → Controls → Gyro…, off by default; details in docs/gyro.md). Testers with a DualSense/DS4, Switch Pro, Joy-Con, Steam Deck, DS4Windows/BetterJoy (Cemuhook) or Steam Input are very welcome — see my previous comment for what to check.

  4. butterbutts commented on Oct 8, 2026

    @butterbutts

    I just tried it, left and right are mapped to rolling the controller instead of turning it left or right, and the default sensitivity is very high. Other than that it's working on both my Dualsense and Steam Controller.

    Edit: After playing for a while, the gyroscope stops working and the game needs to be restarted to get it back.

  5. lschaupp commented on Oct 8, 2026

    @lschaupp
    Contributor

    Thanks a lot for testing, @butterbutts, that's exactly the feedback we needed!

    Left/right on roll: you were right. The first version copied the controller's whole movement onto the virtual GamePad, and the game reads the GamePad in a way where rolling also turns the view. The next update adds a Turn left/right by setting (F1 → Controls → Gyro…) with the usual gyro options:

    • Player space (new default): turn the controller left or right and the view follows, however you hold it. Rolling does nothing.
    • Yaw: turn it around its own vertical axis, as if it were lying flat.
    • Roll: tilt it sideways like a steering wheel.

    Tilting the top of the controller up or down always looks up or down.

    Sensitivity: the new default is 0.5x, which makes the view follow the controller about one to one. The slider now goes down to 0.05x. If you never changed the sensitivity, the new default is picked up automatically.

    Gyro stops working: we couldn't reproduce this without the hardware, but the update fixes the likely causes we found:

    • the gyro no longer stops if a controller's sensor timestamps stall
    • with several controllers connected (say your DualSense and the Steam Controller), the one you're moving is used, not just the first one that sent data
    • if a controller's sensors go quiet while the game window is focused, they get switched off and on again

    One more thing to check: the game ignores the gyro while the right stick is even slightly pushed. A drifting stick can cause that, and raising Controls → stick dead zone fixes it. The log and the Gyro window now point this out.

    If it still happens after the update, could you send a log from a run started with WWHD_GYRO_LOG=1? Please mention roughly when it stopped and whether you had switched windows, opened the Steam overlay or reconnected a controller around then. The [gyro] lines will show whether the samples stopped arriving, another controller took over, or the game was ignoring the gyro because of the stick. Your platform (Windows, Linux or Steam Deck) and whether Steam Input was on would help too.

    Also new: gyro aiming now works when the game is set to the Pro Controller too (#71). All of this is already on the devel branch if you build from source.

  6. lschaupp commented on Oct 8, 2026

    @lschaupp
    Contributor

    The gyro fixes from my last comment are now in v0.2.8: the Turn left/right by setting (Player space by default, so rolling no longer turns the view), the lower default sensitivity, gyro in Pro Controller mode, and the fixes for the gyro stopping after a while.

    Since gyro aiming itself is in and working, I'm closing this request. @butterbutts if the gyro still stops for you with v0.2.8, please open a new issue (or comment here and we'll reopen) with a log from a run started with WWHD_GYRO_LOG=1, roughly when it stopped, and your platform/Steam Input setup. Thanks everyone for testing!

  7. butterbutts commented on Oct 8, 2026

    @butterbutts

    The controls are working correctly now, I'll see later today when I can play longer if they stop working after some time.

  8. butterbutts commented on Oct 9, 2026

    @butterbutts

    I played for a few hours and the gyro kept working, so it seems like it's fixed.

  9. lschaupp commented on Oct 9, 2026

    @lschaupp
    Contributor

    Great :) thanks for the update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions