https://bugs.winehq.org/show_bug.cgi?id=11846
Zakk zakk@rsdio.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zakk@rsdio.com
--- Comment #75 from Zakk zakk@rsdio.com --- I just got pressure sensitivity working with SAI under OSX: some notes for those of you that may end up here via searching for that exact thing:
It seems the DRM issues can be bypassed simply by setting the OS version to Windows 98. I think this may be dependent on which version of SAI you're using, but new(er) ones seem to be just fine this way. My friend had an older version and it didn't seem to work.
You'll need to apply the 'Hacky pressure patch for SAI'.
Even after this pressure sensitivity didn't work. The cause was that the wintab code was not recognizing my input as a tablet. X11 was reporting the name as "pen" which wasn't in the tablet_cursor_whitelist array. Adding the string "pen" there allowed SAI to recognize sensitivity.
Final issue: this may be tablet specific so YMMV. Pressure worked, but if too much pressure was applied SAI would stop drawing. I'm not entirely sure what the issue was, but through some experimentation I noted two things: 1) X11 was reporting the pressure value range as 0 - 65k. 2) SAI would stop drawing somewhere between values of 40k and 50k.
I worked around/fixed this by arbitrarily deciding to report a range of only 0 - 1024 (gSysDevice.NPRESSURE.axMin and axMax) and then storing the value (Axis->max_value - Axis->min_value)/1024 in cursor.pressure_factor (which is a field I added). Then everywhere pkNormalPressure was being setup, I divided the value by cursor->pressure_factor.
The result is a completely functional SAI under OSX, complete with pressure response.
Unfortunately I don't really have a variety of tablets to test with, so I don't know if any of this would be appropriate to package into a general patch. Perhaps making the pressure value mangling controllable via registry settings would be a better approach...