Under Windows and the PID specification it is possible to specify less than the full set of condition blocks. Under SDL and the Linux FF input API all condition blocks must always be specified.
The existing code does not set any values outside the specified axes. This effectively sets the strength to zero along these axes. Testing setting just one axis with the MS Sidewinder 2 under Windows, however, reveals that revealed that it sets the first axis (the X-axis) to the given parameter values and sets the other axis to full strength (this is most easily felt/tested with the spring effect).
This sets unspecified axes in the SDL and udev input backends to play at full strength to agree with Windows. It also updates joy.cpl to play condition effects along the indicated axis too.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8824
Summary of: https://bugs.winehq.org/show_bug.cgi?id=58552#c42
Windows versions of various audio apps handle VSTs better than Linux versions.
This seems further prove that this merge request is valid despite bug reports against it.
The more I review the more it seems this merge fixed bugs that made buggy code run in a less obviously buggy way.
Thus it seems this merge may have helped expose fixes needed by Wine dependent VST projects.
Yabridge fixes seem mostly fulfilled per new-wine10-embedding branch testing for vanilla-wine. But yabridge new-wine10-embedding still is not merged with upstream yet because of other reported issues caused by this merge.
I will suggest to all reporters to test Windows versions of audio apps if available to confirm VST handling is improved. If most apps report improvements then it may suggest a common Windows lib is taking care of the lower level window handling details that so far have been difficult to replicate on Linux.
With Windows versions proven to improve VST handling, Windows vs Linux build details around VST handling may reveals whatever Windows component provides the consistency across Windows version to be replicated for Linux builds.
If Wine is able to handle VST natively then it may eliminate the need for yabridge translation of vst.dll to vst.so. LMMS already ingests VST DLLs directly and may already be on the right track for VST DLL handling directly through Wine.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6569#note_113700
@rbernon had also noticed that under the SDL backend, effects with a direction of mostly right with a bit of up played mostly up/down and not right/left as would be expected.
Traced this down using a `INT16` for the rotation angle in the SDL backend, which isn't large enough to represent 36000. Overflowing would effectively subtract 66536, amounting to a 65536 % 36000 = 29536 centi-degree rotation. End effect was effects mostly right with a bit of up (those over 327 degrees) where changed to mostly up with a bit of right (rotated counter-clockwise 65 degrees).
This patch changes the local computation variable to INT32, which also matches what is used by the SDL library.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8780
LButtonDown should return when the treeview handle is invalid (e.g. destroyed) after NM_CLICK to prevent further message processing.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58211
--
v2: comctl32/treeview: Return from TREEVIEW_LButtonDown when the treeview handle is invalid.
comctl32/tests: Add a test for treeview deletion during NM_CLICK in LBUTTONDOWN.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8790