https://bugs.winehq.org/show_bug.cgi?id=39891
--- Comment #31 from Omar gamingpakker+wine@gmail.com --- Recompiled again including that patch to try it out. With the patch it now exposes vendor id and product id for the 'js' entry. As such I expanded the spoofing so it applies to the 'js' code as well (joystick_linux.c). With the spoofing both the 'js' and 'event' entries are now working properly.
This still leaves issue 2:
If the 'js' entry of the controller isn't disabled in WINE it will process that entry instead of the 'event' entry of the same controller ('js' seems to take precedence over 'event').
But as I said before, that can easily be solved by just disabling the 'js' entry in wine control.
I don't know anything at all about joystick handling in WINE but I do feel like with the VIDPID patch it may be possible to just disable 'js' entries by default? If the 'js' entry matches the name, vid, pid and controller ID of an 'event' entry it could be disabled by default, right?