[PATCH 2/2] hid: Don't sign-extend 16-bit values.

Zebediah Figura z.figura12 at gmail.com
Tue Feb 12 00:06:23 CST 2019

Okay, through playing around with hid and xinput tests I've managed to 
determine the root cause, which is that xinput's scaling logic is kind 
of broken. In particular it scales X value coordinates to the range 
[-32767, 32768], which breaks when the controller is held all the way to 
the right (which often is not physically "all the way to the right") 
because 32768 wraps around to negative. The reason this worked before is 
because of some quirks involving signed multiply. I've sent some patches 
which should address this.

More information about the wine-devel mailing list