devilutionX icon indicating copy to clipboard operation
devilutionX copied to clipboard

[Issue Report]: Cleared controller mappings still performing actions. Forced to use default control scheme.

Open Paranoid-Andy opened this issue 1 year ago • 8 comments

Operating System

Windows x64

DevilutionX version

1.5.2

Describe

*** Edit 8/15/2024 *** While the issue isn't exactly solved, @StephenCWills did figure out a very good workaround. TLDR: A controller with just a D-pad and no analog stick may be viewed by the game incorrectly and treat the D-pad as a stick. Stephen suggested "try increasing your deadzone to 1 in diablo.ini" and it fixed the issue immediately by essentially ignoring all input at that point allowing me to use Joy2Key instead. *** End Edit ***

Windows 11 Devilution 1.5.2 Windows Device Name: "SFC/USB Pad" (It's a Super Nintendo controller to USB adapter)

Hi everyone. This seems like an issue, my apologies if it's not.

When I clear all of the controller mappings in the options menu I would expect any press of a button on my controller should do nothing at all. Instead the game still performs those actions anyway.

For example, even though 'LEFT' on the D-Pad is cleared in the options, when I press 'LEFT' on the D-Pad my character still moves to the left in game.

I didn't see any option to outright disable gamepad support in the options menu which would be the preferred fix.

Why do I want to be able to clear controller input entirely? Because I really prefer to use a program of my own like Joy2Key as it has additional features built into it that help me with my disability, but as of right now because the controller input can't be cleared, I'm not able to use Joy2Key without it performing a seemingly 'hard coded' action on each of the keys forcing me to use a sort of default controller scheme.

I'm not able to play the game at this time because of this but still I have to say it looks fantastic and it's so great to see such a classic game modernized. Thank you!

-Andy

To Reproduce

  1. Go to 'Options' on 'Main Menu'.
  2. Clear all controller mappings.
  3. Press any buttons on controller.

Expected Behavior

Cleared controller input should result in nothing happening.

Additional context

No response

Paranoid-Andy avatar Aug 12 '24 10:08 Paranoid-Andy

hello! i am very much interested to solve this bug. its my first open source contribution, so could u assign it to me?

Raj3110 avatar Aug 12 '24 10:08 Raj3110

hello! i am very much interested to solve this bug. its my first open source contribution, so could u assign it to me?

We don't assign stuff, you can submit a pull request fixing this issue and if we like it, it will get merged

qndel avatar Aug 12 '24 10:08 qndel

I'd like to add an update. It seems as though it's specifically the D-Pad buttons that are acting more "hard coded". The other buttons are able to be unbound but even when they're empty, pressing the button still causes the mouse to momentarily disappear as if it's trying to perform some sort of action. Definitely odd.

Paranoid-Andy avatar Aug 14 '24 19:08 Paranoid-Andy

I can't reproduce this issue. When I unbind my movement buttons, I cannot move my character unless I use the left analog stick.

StephenCWills avatar Aug 14 '24 20:08 StephenCWills

Hmmm. I wonder if it thinks the D-Pad on my SNES controller is an analog stick. Are you able to unbind movement from your analog stick?

Paranoid-Andy avatar Aug 14 '24 20:08 Paranoid-Andy

Unfortunately, the analog stick is a special case since we need to interpret its events a lot differently from buttons. But maybe you can try increasing your deadzone to 1 in diablo.ini.

https://github.com/diasurgical/devilutionX/wiki/DevilutionX-diablo.ini-configuration-guide#Controller

StephenCWills avatar Aug 14 '24 21:08 StephenCWills

Well that answered some questions. Indeed yes, it does seem to think the D-Pad on my controller is an analog stick, which is probably why a couple of other games gave me trouble long ago.

That was a fantastic idea @StephenCWills to work around it. It worked like a charm. I love creative solutions like that.

I'm now able to play without any issues. Thank you so much!

Paranoid-Andy avatar Aug 15 '24 11:08 Paranoid-Andy

Hmmm. I wonder if it thinks the D-Pad on my SNES controller is an analog stick. Are you able to unbind movement from your analog stick?

It sounds a lot like this is what is going on. I'm not really sure what we can do about that since it's a hardware thing.

AJenbo avatar Aug 15 '24 18:08 AJenbo