https://bugs.winehq.org/show_bug.cgi?id=51873
Ivo Ivanov logos128@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #71017|0 |1 is obsolete| | Attachment #71044|0 |1 is obsolete| |
--- Comment #21 from Ivo Ivanov logos128@gmail.com --- Created attachment 71063 --> https://bugs.winehq.org/attachment.cgi?id=71063 dinput-additions-and-fixes.patch
Added two new patches to support the PID_USAGE_PARAMETER_BLOCK_OFFSET usage in the Set Condition Report of dinput and UDEV lnxev + SDL backends. Added also a patch for the UDEV lnxev and SDL backends, which makes their behavior similar to the MS PID driver, in relation to the output reports being sent only when the corresponding flag in SetParameters is set. The patch also makes those backends compatible with the modified reports patch.
While looking at the backends, noted that the Logical min/max values of various usages as magnitude, offset, attack/fade level, pos/neg coefficient and saturation, deadband, ramp start/end, gain, etc., are being set to one byte max values. Thus the frontend scales them down to those ranges and sends them to the backends which pass them directly to ff_effect / SDL_HapticEffect. While those structures expect mostly 16bit signed/unsigned values in the range of -32767/+32767 or 0/65535. IMO this could be one of the reasons for non existent FFB in those backends. I'll look further when the time permits.
Rebased the remaining patches to the current master b65ef71fc0a7044557e0ba530e3b95497644867c
P.S. Saw that you already submitted the DIPROP_FFGAIN patch in winehq, so excluded it as well. From the other new reports probably the Block Free Report will need additional implementation in the backends, similar to the Device Gain Report.