FWIW, this only shows on the horizontal axis, not the vertical. This makes it even stranger...
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;
>>>> }
>>>>
>>>
>>>