Project

General

Profile

Bug #2307

Problem changing bindings with DualShock 4 (and other controllers)

Added by J345 8 months ago. Updated 6 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
3rd party compatibility
Target version:
Start date:
2018-12-14
% Done:

100%

Tags:

Description

I cannot change in game binding with DualShock 4 controller. As reported on forum when I try to change DualShock 4 binding, after pressing enter joy-w or joy+w is written and then controller or keyboard keys pressing does nothing. I tried to adjust deadzone with no effect. If I apply PS4 presets, default turn left is joy-x joy-z and turn right joy+x joy+z so it is strafing and turning at the same time on left stick.

Associated revisions

Revision 1916b71f (diff)
Added by skyjake 8 months ago

Input|Client: Prevent interference from nonexistent controller axes

When applying a game controller preset, disable all extra game controller axes.

IssueID #2307

Revision ea1a9c89 (diff)
Added by skyjake 8 months ago

Input|Client: Prevent interference from nonexistent controller axes

When applying a game controller preset, disable all extra game controller axes.

IssueID #2307

Revision fec553f5 (diff)
Added by skyjake 8 months ago

Fixed|Bindings: Failure to remove bindings of device

When removing bindings of a specific input device, the wrong ID was used when searching for bindings to remove.

IssueID #2307

Revision f54c669e (diff)
Added by skyjake 6 months ago

Fixed|Input: Controls menu does not wait for axis movement

When making axis bindings, check the position relative to the axis position at the beginning.

IssueID #2307

Revision aed9f34d (diff)
Added by skyjake 6 months ago

Fixed|Input: Controls menu does not wait for axis movement

When making axis bindings, check the position relative to the axis position at the beginning.

IssueID #2307

History

#1 Updated by J345 8 months ago

I tried to increase deadzone even more to 1 and there was a change - now it wrote joy+axis05 after pressing enter but then still does not react to any presses.

#2 Updated by skyjake 8 months ago

  • Category set to 3rd party compatibility
  • Assignee set to skyjake
  • Target version set to 2.1.x
Could you provide a bit more information:
  • which operating system are you using?
  • is the DualShock connected via USB cable?
  • do you have any additional software installed for managing/configuring game controllers?

#3 Updated by J345 8 months ago

OS is Windows 10, DualShock is connected via USB cable. I have Steam and DS4Windows installed but disabled when running Doomsday. BTW: Now I found old post on Doomsday forum that is about the similar problem - see third post in the thread:
https://talk.dengine.net/discussion/2291/how-to-reset-joystick-settings

#4 Updated by J345 8 months ago

So I wrote to console input-joy-w-deadzone 1 and input-joy+axis05-deadzone 1. Now it started to react to gamepad press but after I pressed for example button 12, it wrote: joy+axis05 joy+w joy-x joy+button12.

#5 Updated by skyjake 8 months ago

I will try to replicate your setup (Win10, USB, with or without DS4Windows) and see if I can get these issues to occur on my system.

#6 Updated by J345 8 months ago

Ok, please check also PS4 default binding. Strange I have strafing and turning at the same time on the left stick when choosing presets.

Edit: I tinkered with it more and duplicity happens only if I apply presets without deleting original binding. To replicate:

With new Doomsday install I have this in controls:

If I then apply PS4 presets, I get this (strafing and turning at the same time):

If I delete bindings and apply PS4 presets, I get this:

#7 Updated by skyjake 8 months ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100
I believe I have resolved this issue now. There were two bugs:
  • Before applying a controller preset, Doomsday failed to remove all the previously existing joy bindings, resulting in duplicates (e.g., sidestep and turn controlled by the same axis).
  • Doomsday allocates a generous 32 axes for each controller, but apparently SDL is giving some sort of activity/non-zero values for the extra, non-existent axes as well, or Doomsday is using uninitialized values. This was making it difficult to use the bindings menu.

The fix for the latter issue is that the presets disable all the additional axes, since it is known how many axes each controller has.

Please test with the next 2.1.1 candidate (build 2905 or later).

#8 Updated by skyjake 8 months ago

  • Target version changed from 2.1.x to 2.1.1

#9 Updated by skyjake 8 months ago

  • Subject changed from problem to change binding with DualShock 4 to Problem changing bindings with DualShock 4 (and other controllers)

#10 Updated by J345 8 months ago

Ok, thanks, I will test it.

#11 Updated by J345 8 months ago

So I tested it with 2905 build and it works fine when presets are applied. If they are not, the bindings menu has the same problem as before so users that don't know that presets must be applied first may still struggle a bit with it.

#12 Updated by skyjake 8 months ago

  • Status changed from Resolved to In Progress
  • % Done changed from 100 to 80

Yeah I agree there is still a third bug that needs addressing: the bindings menu should actually wait for some activity on a controller axis before deciding to bind it. The non-existent axes shouldn't be moving at all, so they'll be ignored as they should.

#13 Updated by skyjake 6 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 80 to 100

#14 Updated by skyjake 6 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF