nefarius / ViGEmBus

Windows kernel-mode driver emulating well-known USB game controllers.
https://docs.nefarius.at/projects/ViGEm/
BSD 3-Clause "New" or "Revised" License
3.08k stars 284 forks source link

D-pad Y-axis will unexpectedly invert #21

Closed NonVoxPopuli closed 4 years ago

NonVoxPopuli commented 5 years ago

Describe the bug The Y-axis of a DS4 D-pad will flip if either the UP or DOWN arrow is held, and either the LEFT or RIGHT arrows is tapped.

So holding: ↑↗↑ or ↑↖↑ will result in ↑↗↓ or ↑↖↓ The same will also occur in reverse if the DOWN arrow is pressed in place of the UP arrow.

To Reproduce As stated above, when either UP or DOWN is held on the Dpad, then a diagonal direction is toggled, the direction of the UP or DOWN movement inverts temporarily until the arrow button is released. The LEFT and RIGHT arrow, however, never invert.

Also notable, When using the DS4 controller on Steam, if an arrow button is pressed, it causes the cursor to move 1 unit in that direction; so to get to the bottom of a list requires repeatedly pressing the DOWN button where the ViGEm driver will 'rapid fire' when an arrow is held. This seemed unusual to me, but I can't be sure it's related.

System details My Setup: A DS4 controller on Linux Mint 19.1 running ShadowPC Official release. I followed the guide here (https://www.reddit.com/r/linux_gaming/comments/9cf6ip/guide_how_to_make_all_of_your_controllers_work_at/) to interpret my DS4 controller as SDL2 output. Without this ShadowPC doesn't register the D-pad at all. All outputs were verified to work correctly with jstest-gtk on the Linux system.

Additional context After installing the driver the problem has been seen with 2 separate PS4 controllers and 1 PS3 controller using both Linux Mint and Windows 10 as the client system.

nefarius commented 4 years ago

Can't reproduce and I've had no idea ShadowPC builds upon ViGEm, I'd say it's a case for their support.