In order to edit this wiki, you must register and verify your account.

Motion controls

From Cemu Wiki
Revision as of 07:45, 5 September 2024 by Bg (talk | contribs) (WebGyro and MotionSource both didn't work, I found these two apps recommended by Dolphin Emu that actually work and don't require sideloading.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to:navigation Jump to:search

This article provides a list of methods to achieve motion controls within Cemu.

Cemu is capable of emulating motion controls within the Wii U GamePad or a Wiimote (MotionPlus model). In order to accomplish that in Cemu, various methods can be attempted, including setting up a UDP-based motion server application to send the motion data of a real motion-support controller (that Cemuhook's GamePad Motion Source API listens to), using the emulated Wiimote Controller API in Cemu's input menu in combination with a real Wiimote (MotionPlus model), or using a hacky workaround that involves right clicking and dragging within the Cemu window.

Cemu 1.18.0 and later support the Cemuhook motion API natively (Input Options > API > DSUClient) and adds native motion for the emulated Wiimote Controller API.

Note
Cemu's DSUClient API option should not yet be used due to some inconsistencies. The Wiimote Controller API should still be fine, however.

Full-motion solutions

The following solutions are full-motion because they provide a three-axis gyroscope and three-axis accelerometer.

DualShock 4 (DS4) or DualSense (DS5)

Note
This is a very feature-rich solution because the device also includes a touchpad which can be very useful at games that do heavy usage of the GamePad touchscreen, such as Super Mario 3D World

Cemu supports the motion control capabilities within the DualShock 4 and DualSense natively by setting the API to the SDLController API on Windows. On Linux, ds4drv-cemuhook is needed (rumble should also work with Wine's XInput emulation).

Wiimotes

Note
Original Wiimotes only contain an accelerometer, so their functionality is limited, e.g. as a "Wii Wheel" for Mario Kart 8.

Motion for the emulated Wiimote Controller API option is supported out of the box when the Wiimote API is used with a real Wiimote in Cemu's input options. This is necessary for games that absolutely require a Wiimote.

Alternative methods

Third-party alternatives exist for motion control support via Wiimotes (MotionPlus model), including WiimoteHook.

On Linux, linuxmotehook exists. WiimoteHook, depending on your setup, may work on Linux if wineconsole and .NET 4.5.2 or better are installed.

Nintendo Switch controllers

Cemu supports the motion control capabilities within Nintendo Switch controllers natively by setting the API to the SDLController API on Windows. On Linux, joycond-cemuhook works.

Various controllers on Linux

Since Linux allows its drivers to expose motion data to userspace, it is possible to read it from such modern drivers for multiple devices. This also means ever-expanding list of supported devices as drivers for them become available. Please note that only motion feature is provided, neither buttons nor touchscreen are mapped even if present. Supported devices currently include the Nintendo Switch Joy-Cons and Pro Controller, as well as the DualShock 3, DualShock 4, and DualSense controllers via evdevhook.

Mobile devices

Note
Not all mobile devices include a gyroscope. Some only include a magnetometer, which runs slow within Cemu; certain devices only include an accelerometer, which does not allow for yaw motion

iOS

Beginning with the iPhone 4, a gyroscope is included in every iPhone. The recommended method to utilize your iPhone for motion controls in Cemu is through DSUController, which provides motion sensor data (select Wii Classic Controller for GamePad) and basic button functionality. The Nunchuk can also be emulated, but requires a second device.

Alternatively, WiiMoteDSU also provides motion sensor data and basic button functionality.

Android

The MotionSource app is capable of providing gyroscope data to Cemu via Cemuhook.

Windows phones

The only way to set up motion controls with Windows phones in Cemu is through the UWP MotionSource app.

Full-motion solutions with limitations

DualShock 3

Note
The DualShock 3 only provides yaw axis data.

Cemuhook's ScpToolkit patch is capable of utilizing the gyroscope within the DualShock 3 to use in Cemu on Windows.

Partial solutions

Xbox controllers

Note
This method emulates motion data using the analog stick on the Xbox controllers; it is counter-intuitive in several cases and not recommended

To set up an Xbox controller with motion data, download cemu-no-gyro and Cemuhook and set the GamePad motion source to DSU1.

Mouse

Hold down the right button in a game and move the mouse allows for a full degree of movement. Control third axis scrolling the mouse wheel. This method is not recommended.