Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

a problem with default controller settings #1271

Closed
George22x opened this issue Jan 10, 2021 · 20 comments
Closed

a problem with default controller settings #1271

George22x opened this issue Jan 10, 2021 · 20 comments

Comments

@George22x
Copy link

I played the game with DS4 controller and default sticks settings resulted in wrong input (looking up and turning without pressing a stick) so I had to remap it.
I cannot verify this problem with XBox controller but it may be similar, I have found this reference https://forum.zdoom.org/viewtopic.php?f=2&t=58717#p1030837 . As DualShock and Xbox controllers and their derivatives are currently most commonly used, I think the default settings should reflect that.
I mentioned this issue also here: https://forum.zdoom.org/viewtopic.php?f=15&t=71128

@madame-rachelle
Copy link
Collaborator

This unfortunately can't be fixed except by someone who, themselves, uses controllers a lot, specifically the controllers in question. It may be necessary to look outside the community for someone who is capable of fixing this.

@George22x
Copy link
Author

The user acridAxid found the problem is in configuration of the default settings:
https://forum.zdoom.org/viewtopic.php?f=50&t=65228
As the defaults are configured now, the players that connect a controller are confused and think about the issues with dead zones, mods etc. which takes needless time to solve.
But why would it be so difficult to change defaults in GZDoom that already has some controller support? I can test the results with DS4 controller after some code changes but unfortunately cannot make them as I'm not a programmer.
BTW, more people are using controllers nowadays as the gaming often moves from monitors to the big screen TVs so this input is quite important.

@madame-rachelle
Copy link
Collaborator

The whole entire world can switch to controllers overnight, but that means nothing if there's not a programmer who has one of them and uses it regularly.

@George22x
Copy link
Author

Maybe I'm wrong but I thought that programmers do not need to use regularly every available hardware if non-programmers can help with testing.

@coelckers
Copy link
Member

And guess what: Feedback for the controller interface has always been rather sparse.

@George22x
Copy link
Author

George22x commented Jan 13, 2021

Yes, many people still prefer M&K for classics games, not everybody suffers like me with mouse related repetitive strain injury or migrates to TVs. Still I believe that good controller support is important even if it is just for a minority of users. And GZDoom by the way has quite good implementation of it, not every gaming software supports both XInput and DInput, so lots of work has been already done. It only lacks some minor bugs fixing and polish in its user-friendliness.

@madame-rachelle
Copy link
Collaborator

Maybe I'm wrong but I thought that programmers do not need to use regularly every available hardware if non-programmers can help with testing.

Sorry but I am not throwing spaghetti at a wall and hoping it sticks and that it fixes the problem here. I need specifics about what needs to be changed. I also need a way to test for these new controllers because I am not confident that changing the defaults for a newer one will not negatively affect people with existing older ones that still work.

Find me a dev that has your particular controller in question, please. Or point me to an Amazon listing and I'll see if I am willing to spend the money to get one myself.

@George22x
Copy link
Author

George22x commented Jan 14, 2021

There are lots of controllers on the market, but basically two types are the most common and considered as today's standards.
Xbox controller and its derivatives:
https://www.amazon.com/Xbox-Core-Controller-Carbon-Black-one/dp/B08DF248LD/ref=sr_1_3?dchild=1&keywords=Xbox+Wireless+Controller&qid=1610627231&sr=8-3
and DualShock controller and its derivatives:
https://www.amazon.com/DualShock-Wireless-Controller-PlayStation-Black-4/dp/B01LWVX2RG/ref=sr_1_1?dchild=1&keywords=ds4+controller+black&qid=1610626385&sr=8-1
If you or a developer you know have by chance Xbox or Playstation console, there is also one of these controllers.
There are also two Microsoft's API for controllers, a legacy DirectInput and newer XInput. XInput is for Xbox 360 and newer controllers while DirectInput is still used by DS controllers.
Both these inputs are supported by GZDoom, but the default axis configurations are currently wrongly set for DS controllers (acridAxid found the right settings) and I presume also for Xbox, although I cannot test it. I have no idea for which controller are current defaults suitable.
Ideally there should be not only axis preconfigured correctly, but all buttons as they are currently blank and an user must configure every button manually. You may take a look at Doomsday Engine, that has controller support with presets for the most common controllers.
As Nash writes on the GZDoom forums: "being able to pick presets for Dual Shock and XBox in the game menu would be nice. Could use the default gamepad layout from the console versions of Doom as a starting point, then fill in the other buttons with ZDoom's expanded controls."
I agree and even better would be a controller autodetection with automatically chosen presets as is done in many modern games. In perfect world there could be even features as in-game controller prompts or weapon wheel, but it would be lots of work.

@rampancy777
Copy link

rampancy777 commented May 19, 2021

ive always found the gzdoom implementation to be the best working and easiest to configure out of the box, compared to other sourceports for quake, descent etc. ive had zero issues with 360,one, and elite controllers both wired and wireless.

tbh this feature is one of the main draws for me. id recommend to anyone having issues that they pick up a microsoft controller and make sure everthing is up to date.

@George22x
Copy link
Author

George22x commented May 19, 2021

ive always found the gzdoom implementation to be the best working and easiest to configure out of the box, compared to other sourceports for quake, descent etc. ive had zero issues with 360,one, and elite controllers both wired and wireless.

tbh this feature is one of the main draws for me. id recommend to anyone having issues that they picup a microsoft controller and make sure everthing is up to date.

So you can confirm that default sticks settings work fine with XBox controller and there is no need to remap them?

@rampancy777
Copy link

So you can confirm that default sticks settings work fine with XBox controller and there is no need to remap them?

I can confirm that i have never had a similar issue with any of my xbox controllers. it sounds like maybe the problem controller needs to be calibrated in windows, was damaged, or that there is an issue with ps4 controller(s). i just set up a new 4.5.0 directory from scratch last night, enabled controller support and was off and running. its cool that you can adjust all the sensitivity and dead zones on a per axis basis from within the game. imo it really is the best, most thorough implementation in a sourceport that ive encountered.

@George22x
Copy link
Author

George22x commented May 20, 2021

It's no hardware issue with my controller as it works fine in other programs. So it seems that default settings are made for XBox controllers and it's nice to know that as I could not find any such info in GZDoom documentation. Still it would be nice having better DS4 support, you may be satisfied as you have Xbox controllers, but for example Doomsday Engine has nice default presets also for different controllers including DS4. And if it's a problem to implement similar feature in GZDom, at least some setup info in the manual for the owners of different controllers would be useful.

@rampancy777
Copy link

thats a fair way to feel. maybe you could write up something that could be pinned in the forums or added to the wiki, etc. explaining what you figure out.

did you calibrate it within windows devices and try increasing the deadzone of the offending axis?

if you ever do decide to get an xbox controller, get one with the type c connecter, the micro connector is prone to damage.

@George22x
Copy link
Author

George22x commented May 20, 2021

It's not about the controller calibration, just about wrong default sticks GZDoom settings when using DS4. It leads to a player looking up and turning without pressing a stick. Several players reported this years ago, but it is still there in 4.5.0 release and only solution is remapping the sticks settings to:
1st: Strafing
2nd: Moving Forward
3rd: None (change from Turning)
4th: None (change from Looking Up and Down)
5th: Looking Up/Down (change from None)
6th: Turning (change from None)
So it can be solved, but necessity for troubleshooting, searching the forums and remapping the settings for a player who is starting to use this port with DS4 controller is definitely not ideal.

@rampancy777
Copy link

rampancy777 commented May 20, 2021

i thought it might be that you actually have two issues. bc even if the sticks need to be remapped, the controller shouldnt be registering input. in windows you can calibrate the stick, which will help with setting the "zero" for the sticks, since it seems at least one of them is not zeroed properly. after that, if necessary you can adjust the dead zone within gzdoom, which will increase the size of the zero point to account for issues like what youre facing. its entirely possible that dead zones in different programs are high enough that you dont encounter the issue elsewhere, even though it still exists.

then again it could be something else entirely i suppose.

one solution for rebinding the sticks could be to create an "autoexec.cfg" with the bindings you prefer. i found an old post on this topic that could probably get you started. you would just copy the relevant new values into a new text document and name it "ds4.cfg" or whatever and follow the instructions in the thread. This way you have a semi automatic solution every time you reinstall.

https://forum.drdteam.org/viewtopic.php?t=427

@AL2009man
Copy link

AL2009man commented Apr 8, 2022

Seems like I am not the only one who has this issue, but I might as well report it myself.

Due to the way PlayStation Controllers (DualShock 4 and DualSense) are handled on Windows OS, GZDoom will detect the Controller as a DirectInput device, while plugged as USB. (Which is probably the reason why this issue occurs, since it's isn't the first time I've witnessed a similar issue)

When enabled, the Camera will start to move by itself (and controllable with Left and Right Trigger.) and the bindings are partially incorrect (in menus, pressing the Square or Circle button is the Confirm button, while Cross/X button is Back button.)

Gzdoom.Playstation.Gamepad.Support.Is.Borked-githubcompressed.mp4

As some have noted in this thready thing; you can sorta fixed the incorrect bindings, but I would rather recommend using an Input Remapper and emulate it as a XInput Controller.

...but I am perplexed that this hasn't been solved yet, considering SDL2 (which the Linux version uses, apparently) already expanded their Gamepad support by now (that includes Gyroscopic Sensors which allows for Gyro Aim). And on another side: Steam Deck...which may to require some workarounds to get the Gamepad Inputs to work.

@madame-rachelle
Copy link
Collaborator

Unfortunately this is one of those "I can't fix it without the affected hardware" things.

I have a test gamepad that I've used with GZDoom that does not produce these issues. It's simply a generic controller, but it is mapped as an XBox 360 controller. Without the hardware in question I am afraid I can't reproduce - nor fix - this bug - it's going to require a developer who possesses such a controller.

@AL2009man
Copy link

AL2009man commented Apr 8, 2022

I have a test gamepad that I've used with GZDoom that does not produce these issues. It's simply a generic controller, but it is mapped as an XBox 360 controller. Without the hardware in question I am afraid I can't reproduce - nor fix - this bug - it's going to require a developer who possesses such a controller.

Understandable.

but in the meantime, have you considered using any Input Remappers that uses ViGEm?

I know JoyShockMapper uses it for DS4 or Xbox 360 Emulation. I believe JSM supposedly supports Generic Controllers (and Xbox Controller...and Stadia Controller) due to them using SDL2's Gamepad API. I can't really guarantee it'd work on your test gamepad...but as long as it's seen as an Xbox Controller (as you mentioned), it should theoretically work.

Anyway, I went ahead and used DS4Windows (the Ryochan4 fork) and emulated it as a DualShock 4. I can confirm that the same issue also happens.

@George22x
Copy link
Author

George22x commented Apr 8, 2022

I agree that emulation could help in this case. For example also reWASD can emulate virtual DS4 controller on any generic gamepad and has free 7-day trial.

@eskoONE
Copy link

eskoONE commented Nov 28, 2022

so what is the state of this and what can i do to help with the issue? i would like to play doom with gzdoom on my steam deck, but currently the right stick input is broken i believe. there are workarounds with creating a custom control scheme through steam and play it that way, but i imagine there are also other ppl that suffer from this issue that have no access to steam or dont want to use steam for that purpose.

would it help if i donated money to get the person that wants to work on this problem so they can get an xbox controller? that also uses xinput, which should work for the steam deck as well and many other offname controllers that also use xinput.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants