FWIW, this only shows on the horizontal axis, not the vertical. This makes it even stranger...
Am So., 10. Feb. 2019, 22:04 hat Aric Stewart aric@codeweavers.com geschrieben:
I am noticing this as well with one of my games and a ps4 pad. I have brought it up to Zeb but have not had a chance to dig.
And my mirror problem did go away with this patch reverted.
-aric
On Feb 10, 2019, at 1:10 PM, Kai Krakow kai@kaishome.de wrote:
Hello again!
I'm not sure if this commit is the problem, with it reverted I still see strange effects: Moving the left stick only half-way right still works correctly, moving it further turns it mirrored into left. Have there been any other changes related to this? It worked fine in 4.0, and the only other related change I could find here in my system was updating from libSDL2-2.0.8 to 2.0.9 but I AFAIR this version still worked with 4.0 correctly.
Thanks, Kai
Am So., 10. Feb. 2019 um 19:02 Uhr schrieb Kai Krakow <kai@kaishome.de
:
Hello!
This change seems to introduce odd behavior in at least some games: Gamepad axis are mirrored to one side only now. This happens in Shadow of War (found by me) and Rocket League (reported by a user). I expect other games to fail in a similar way but didn't test those yet.
I guess the clue is in "_may_ report a logical range"...
I'm using the xpadneo driver with an Xbox One S wireless controller, and it reports -32768..32767 according to the driver (which follows the Linux spec on joysticks for this). This used to work perfectly before this change.
Regards, Kai
Am Mi., 6. Feb. 2019 um 19:42 Uhr schrieb Aric Stewart <
aric@codeweavers.com>:
Signed-off-by: Aric Stewart aric@codeweavers.com
On 2/5/19 1:09 PM, Zebediah Figura wrote: From: Zebediah Figura zfigura@codeweavers.com
Some controllers (including, with the previous patch, any reported through SDL) may report a logical range of [0,65535], which takes up 16 bits but should not be sign-extended.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com
dlls/hid/hidp.c | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/dlls/hid/hidp.c b/dlls/hid/hidp.c index f9978038e3..15d827edf1 100644 --- a/dlls/hid/hidp.c +++ b/dlls/hid/hidp.c @@ -277,8 +277,6 @@ NTSTATUS WINAPI
HidP_GetScaledUsageValue(HIDP_REPORT_TYPE ReportType, USAGE Usag
element->valueStartBit,
element->bitCount, &rawValue);
if (rc != HIDP_STATUS_SUCCESS) return rc;
if (element->caps.value.BitSize == 16)
}rawValue = (short)rawValue; *UsageValue = rawValue;
@@ -925,8 +923,6 @@ NTSTATUS WINAPI HidP_GetData(HIDP_REPORT_TYPE
ReportType, HIDP_DATA *DataList, U
element->valueStartBit,
element->bitCount, &v);
if (rc != HIDP_STATUS_SUCCESS) return rc;
if (element->caps.value.BitSize == 16)
v = (short)v; DataList[uCount].DataIndex =
element->caps.value.u.NotRange.DataIndex;
DataList[uCount].u.RawValue = v; }