Closed WydD closed 8 years ago
Idea: the memory of the state is never reset. Resetting the xinput state every time should fix it. User is ready to test adhoc dll, will test this tomorrow.
PS3 mode is working perfectly.
Meanwhile, in PS4 mode : When I boot SFV, my keyboard is P1 and my stick is P2. My stick is correctly binded as player 2, but holds player 1's «up» anyway. When I switch my stick to P1 with Home Button + left, player 1 is my keyboard and my stick. Stick is correctly binded as P1, but holds player 2's «up» (i.e. it's the opposite). I can go back to the initial case with Home Button + right.
The test DLLs didn't change anything (https://twitter.com/WydD/status/744995839173615617). At some point, after doing an alt+tab, the thing worked perfectly (i.e. it wasn't holding the other player's «up»). But it's rare.
Keyboard is always binded to P1 that's something that would be hard to workaround. But I think I understand the problem better. The stick should always be P1 because keyboard is not a directinput device. So detection is weird somewhere, some device has been detected that is not present in the game controller panel somewhere.
@2lafru Pointed out that this has happened in another game http://steamcommunity.com/app/294860/discussions/0/620696934086195645/ Using x360ce obviously fixes it because you select the device's guid you desire.
This can be fixed by correctly selecting the right items (using capabilities maybe?). I'll either fix it myself by installing vjoy that seems to have the same problem, or send a logging dll to @2lafru to get some data about this weird device.
Here is what dinput-devices.exe returns.
Congratulations, you're done. Video evidence : https://twitter.com/BilliBalla/status/745729085087809537 Everything works : PS3 and PS4 modes, deconnections and reconnections in-game, switching between players, bindings are good.
Chapeau.
Alright for people wanting to have this beta try the dlls that i've put here http://petitl.fr/dl/ @dantarion For the record, we have to filter for the property wUsage / wUsagePath to select only game controllers in the enumCallback (you can see a hid usage table here http://www.freebsddiary.org/APC/usb_hid_usages.php)
This has been commited in my fork. Here's the commit https://github.com/WydD/SF5DInput/commit/480d0033e580f3666fe226419cdfd912670eb818#diff-188d9800d6d2d28b48a951f3b4133cb7R240
Will make a PR when I have #4 solved using messages
Id go ahead and submit a PR. Better to have 1 issue = 1 PR in case things get broken later on, especially since #4 may be harder than it looks.
Fixed in 0.0.3
Reported by BilliBalla on twitter https://twitter.com/BilliBalla/status/744611602972966912 with video evidence
Hori RAP Kai 4 on PS4 mode holds up, on PS3 mode not.