sc-controller icon indicating copy to clipboard operation
sc-controller copied to clipboard

Motion often stops working when using Cemu Linux port

Open toboggan7 opened this issue 1 year ago • 1 comments

Often, when using the DSUController input method with Cemu along with the Cemuhook motion provider in sc-controller with a Steam Controller, motion seems to cut out completely.

Input still seems to be sent, although frozen, as drift is noticeable when using a bow or rune in Breath of the Wild after motion stops working.

Other providers, such as MotionSource on Android, seem to work fine with no interruptions. Would a fix for this be possible?

toboggan7 avatar Nov 13 '22 13:11 toboggan7

I've figured out why this is happening. The steam controller is idling when no input occurs, and stops sending the gyro events. Cemu will then consider the client dead because it's not sending any new inputs through.

You can keep it working by having fairly consistent input happening. If you put the controller down for a cutscene it'll not be working when you pick it up again.

I'm working on a fix for this, where the cemuhook server will constantly send UDP packets (even if the current input value hasn't changed) until the client times out, which is the behavior specified in the protocol spec.

alexmaras avatar Jan 24 '23 15:01 alexmaras