[PATCH 2/4] winebus.sys: Process quirky DualSense bluetooth reports.

Arkadiusz Hiler ahiler at codeweavers.com
Mon Jan 24 04:25:11 CST 2022


On Mon, Jan 24, 2022 at 12:48:21AM +0100, Rémi Bernon wrote:
> On 1/22/22 21:01, Roderick Colenbrander wrote:
> > Hi Arkadiusz,
> > 
> > I'm not a big fan of this type of fixup here (and the same for DS4 to
> > be honest). The DS4/DualSense have unusual HID reports, but this type
> > of fixup causes issues for applications which properly parse the HID
> > data. For example various applications for example do use our
> > libScePad.dll for games on Windows. They go through the Windows HID
> > APIs. This breaks such applications.
> > 
> > Thanks,
> > 
> > Roderick Colenbrander
> > Sony Interactive Entertainment, LLC
> 
> Hi Roderick,
> 
> Thanks for giving some feedback. The fixups have been added for games and
> applications which do not expect to receive the extended reports, and only
> support the reports that are openly described in the HID descriptors.
> 
> As Arek has found already, and as you say, some other applications or
> middlewares are explicitly requesting them, so we were considering adding
> some more logic to remove the fixups and send the extended reports in the
> same way as on Windows, when they are requested.
> 
> I understand that these extended reports are triggered by some feature
> report requests, and this is automatically done on Linux by the kernel and
> evdev driver, to the contrary to what happens on Windows, or maybe there's
> something we've missed?

Hi folks,

As Rémi has mentioned this is only to "undo" the mode switch that
hid_playstation/hid_sony does on Linux for Sony controllers when they
are used over Bluetooth.

On Windows those use the basic reports (#1) by default and require
getting calibration feature report (#5) to switch modes.

The next patch in this series handles the mode switch:
https://source.winehq.org/patches/data/224003

That's at least how SDL does that. If there are more ways to trigger
this please let us know so we can support it.

Also after switching the modes the controller no longer works through
DirectInput and requires to be reconnected, as it seems to be a one way
transition.

I've found a fairly new game that comes with libScePad.dll - God of War.
The game does handle DualSense and DualShock 4 over USB only. When those
contollers are connected over Bluetooth the game does not detect them.

If you have any suggestions for a game that I could use for testing the
Bluetooth extended mode switching please let me know.

-- 
Cheers,
Arek



More information about the wine-devel mailing list