On 21 November 2018 12:56:31 am AEDT, Andrew Eikum <aeikum@codeweavers.com> wrote:
On Tue, Nov 20, 2018 at 12:53:21PM +1100, Brendan McGrath wrote:
Here's the commit from Proton that removed the masquerade. Native xinput
wasn't something I had thought of. That could be why it's there.
Oh yeah, I remember that now. I wonder if the right answer isn't just
to apply that same change to Wine.
Andrew
commit 4d49baf4566d8343055424467bad5e2958390103
Author: Andrew Eikum <aeikum@codeweavers.com>
Date: Fri Aug 3 12:36:21 2018 -0500
winebus: Don't override real VID/PID for controllers
It's unclear what this was useful for, possibly native xinput requires
it. Our built-in xinput is good enough now, though, so let's keep the
real VID/PID. This lets applications match setupapi devices with dinput
devices, see:
"XInput and DirectInput"
https://docs.microsoft.com/en-us/windows/desktop/xinput/xinput-and-directinput
On 20/11/18 12:37 pm, Brendan McGrath wrote:
I'm not a fan of the registry hack either - it should be plug and play.
To match Windows functionality would be to remove the masquerade (as
Proton has). That would fix my problem - but potentially create an issue
for other games that are dependant on this masquerade (although I'm not
familiar with the reasons behind its inclusion).
Perhaps a compromise is to keep this registry hack but have it default
to use the real VID and PID. Then it matches Windows but there is still
an option for those who need the masquerade (and they can choose the
device to which they masquerade).
On 20/11/18 12:17 pm, Zebediah Figura wrote:
Be that as it may, I'm not sure that a registry hack is the approach
we want to take. If the game doesn't work with controllers that
don't report themselves as gamepads, but should, then we should fix
it to work.
At the same time, as regards your original problem, we should look
to rewrite the dinput joystick code on top of Wine's HID stack, so
that it will report the same VID/PID as xinput does. I believe Aric
is working on some patches to this effect ;-)