Steam Deck

Steam Deck

kAzAAkAs Feb 8, 2023 @ 12:46pm
3
2
6
Dead zone configuration need to change. Here's why.
Summary

The dead zones on the thumbsticks of the Steam Deck are larger than necessary and they are not configurable by the user at all. There is a calibration menu in Settings -> Controller -> Calibration & Advanced Settings -> Joysticks (screenshot: https://imgur.com/a/TD3MhDb), but this menu does nothing!

It seems that instead the only actually functioning dead zones configurations, are those in Steam Input, and these are added on top of a fixed, unchangable, unremovable dead zone. Instead, the user should be able to set a dead zone that is active across all their games, not only so they can tweak their dead zone to be as small as feasible, but also so they can combat drift if their thumbsticks would ever loosen for whatever reason.

Lastly, there is no way to change the dead zones on the triggers, which are very large by default. These should also be configurable

Below are some ideas on how dead zones could work, and what would be a better, and simpler system:

Introduction: Different dead zones for different purposes
In order to understand the current issues more deeply, let's first consider two different purposes for having dead zones on analog controls:

Purpose 1: Preventing drift at rest.
No analog control device is perfect, so it never rests in the same place after being released. In order for this not to cause any drift, we need a dead zone. Since every manufactured unit is different, we need one such dead zone configuration per one manufactured analog input device. This dead zone may be conservative by default (preventing any Nintendo esque situations such as Joycon drift), but it shouldn't be unchangable, because smaller dead zones feel better, so advanced users will want to tune them to be as low as feasible.

Purpose 2: Finetuning the controls for specific games or applications
Different games ask for different controls. In some games, you might want to add safeguards to make it harder to perform an action accidentally. For example, you don't want to accidentally fire a weapon just by lightly resting your finger on an analog trigger, or you don't want a character to move sideways if you're pressing a thumbstick 99% forward and 1% to the left. Since every game and every user, we may need one set of such deadzone configurations for each user for each game.

The key thing to understand here, is that purpose 1 requires one specific deadzone for one specific device, that is applied always and everywhere. That way, a user can configure the dead zone for their specific device.
Purpose 2 on the other hand, requires a per-user per-game deadzone setting that would effectively sit "on top of" the per device deadzone needed for purpose 1. That way, users can share game configurations regardless of whether their device is using a conservative default deadzone or a customly tuned extra responsive deadzone.

Current issues and solutions

No global dead zone calibration of any kind
There is no way for a user to configure a dead zone that is active across all games. You get a default, very conservative dead zone, and that's it. Valve did an amazing job with the physical thumbsticks on the Deck. They are of great quality, but that's masked by these large unremovable dead zones. Instead, the current deadzone calibration menu in the controller settings should be the "base" deadzone, and the ones in Steam Input should be 0 by default and be added on top this base deadzone. This would fulfill and properly separate both purpose 1 and 2.

Unremovable hardcoded trigger dead zones
The triggers are also problematic in terms of dead zones. There is a fixed deadzone that is applied as part of trigger calibration. This deadzone is very large, and the user has no control over it. The triggers need to be pressed for several millimeters before a small input is registered. This makes it very difficult and awkward to slightly brake, or slightly press the accelerator in vehicle games. This deadzone should be configurable in the controller menu as well.

Note: If you REALLY want to get rid of the trigger deadzones, you can do so with this third-party tool I made that allows you to write custom calibration values to the firmware: https://github.com/kasvtv/steam_deck_overwrite_trigger_cal

Deadzone configuration menus are inconsistent and could be simpler
Depending on the joystick configuration in Steam Input, dead zones are configured in a 0-32767 integer range (https://i.imgur.com/ILkF1Kg.jpg), or a 0-100 integer range (https://i.imgur.com/H2xxyqa.jpg) with visual testing aid, and others show a percentage (https://i.imgur.com/h12BlyQ.jpg). It would be much better if these were more consistent. Some menus also only show these values when the dead zone is set to "Custom", with the other options being "None" and "Default", where it is completely unclear what None and Default exactly are. It might as well be just one slider just like everwhere else.

Suboptimal Steam Input configuration sharing with the community
Since Steam Input is the only area where actually configurable dead zones are, any deadzone you add that might be ideal for your device (Purpose 1) would automatically be loaded onto another person's Deck if they use your controller configuration, whether that dead zone is ideal for them or not. Having proper system-wide deadzone configuration for the thumbstick properly separates Purpose 1 and Purpose 2, as it allows dead zones in Steam Input to be solely for Purpose 2 and thus totally separated to system-wide deadzones that fulfill Purpose 1.

Configurable dead zones shouldn't have a conservative minimum
Currently, in the (non functional) dead zone configuration menu, the minimum is 2000. However, most thumbsticks that are produced could be set lower than that, and people may want to add aftermarket thumbsticks to their Deck which could go even lower. Essentially, this minimum prevents power users from setting the dead zone to an ideal value. Which is a shame, especially given Valve's wonderful "After all, it's your Deck" ethos.

Of course, proper measures should be put in place such that the system remains operable even if dead zones are accidentally set too low. But this could instead be achieved by having menu navigation (or right stick mouse navigation in the Desktop mode) operate on fixed theshold values. Stick responsiveness isn't remotely as important outside of games, so this would be a much better solution. This actually already seems to be the case for the trigger buttons in Desktop mode and the mouse clicks they can register.

Output curve
The output curve of some of the deadzones is not correct. If for example there is a 20% dead zone, once you exit the dead zone, the output value of the thumbstick immediately jumps to 20%. This completely prevents any slow and precise thumbstick movement. It should instead come out of the dead zone at 0%.

An image might speak louder than a thousand words here: https://imgur.com/a/hXSnSll

Anti-deadzone buffer configuration
The anti-deadzone feature of Steam Input is absolutely phenomenal and can make a poor feeling game with large hardcoded deadzones feel incredibly responsive. However, its configuration seems more complicated and awkward than it needs to be. Raising the anti-deadzone setting can cause one to not have any deadzone at all and thus cause stick drift with even the most perfect stick. This can be mitigated by setting the anti-deadzone buffer setting. But, if we have a proper system-wide deadzone, tweaking this buffer setting would not be necessary at all. Instead, all the anti-deadzone setting would need to do to reach its goal, is to raise the starting position that the thumbstick gets the moment it comes out of the deadzone. For example, if a game ignores the center 30% of thumbstick positions as part of a hardcoded game deadzone, the stick should start 30% away from the center as soon as it comes out of its system-wide deadzone.

Again, an image might speak louder than a thousand words here: https://i.imgur.com/2C5v2P3.png
Last edited by kAzAAkAs; Feb 11, 2023 @ 6:22am
< >
Showing 1-15 of 19 comments
Veggicide Feb 9, 2023 @ 11:05am 
Yes please. Some games seem to work with the deadzone calibration that we have, but most don't
ugafan Feb 10, 2023 @ 8:12am 
A change has been pushed to both beta and stable with ZERO documentation of this in the patch notes.

I agree with the OP that changes should be made, I've made many of the same suggestions myself. My problem is when changes are made, they should

A. Be documented
B. Go out to beta and tested before being pushed to stable.

That way if something goes wrong, people can point to a specific update and point to something not working in beta, but working in stable.

I could tell something was off with my DualSense because my normal settings (Relaxed curve, custom deadzone with inner deadzone set to 1000) didn't feel right. Cursor movement feels less responsive. The sluggishness makes harder to move the cursor in a circle.

I'm disappointed with the way this has been implemented. I can tell the joystick no longer feels like it did prior to the change, but I can't compare it to stable because that has been changed as well.
anime_loader Apr 3, 2023 @ 5:21am 
I just found that my right stick started drifting and cannot fix it because both system-wide and per-game dead zones calibration does nothing for some reason. Hope that this thread will take some attention from Valve.
meat May 21, 2023 @ 11:13pm 
+1
Thanks so much for this!

But there is a problem I'm running into, and I'm wondering if there's a solution. Every time I let my deck go to sleep the trigger calibrations reset? Am I doing something wrong?

Thanks again
Last edited by meat; Jun 7, 2023 @ 2:44pm
Fuli May 23, 2023 @ 7:09am 
This explanation is really well done and made me realize why I can't be as precise with the SD sticks as with any other controller.

No matter how I tune my deadzones or change the ingame sens, they always feel too fast when registering the first input because the output curve problem .

I'm also baffled that we can't customize the trigger deadzones.

Please Valve listen to this man.
NexPG⁴² Sep 20, 2023 @ 1:54pm 
Was this fixed in SteamOS 3.5?
ranch Sep 21, 2023 @ 7:15pm 
Bump. Lack of this feature makes it very displeasing to play racing games. The deadzones on the triggers are huge
Brownie Oct 1, 2023 @ 6:43am 
Same problem here. There is a big dead zones that is outside of the steam input config options. Which makes games like The Last Of Us feel super sluggish. This must be software so not sure why it is forced like that.
EfficientTumbleweed Dec 21, 2023 @ 12:56am 
100% Agree, this needs to be a thing.
mcdreamy Jan 3, 2024 @ 9:11pm 
Originally posted by ranch:
Bump. Lack of this feature makes it very displeasing to play racing games. The deadzones on the triggers are huge

The OP of this post has a tool for customizing your trigger deadzones, here:
https://github.com/kasvtv/steam_deck_overwrite_trigger_cal

If this link gets stripped, it's "steam_deck_overwrite_trigger_cal" on github.

It allows you to manually set the values that trigger_cal pulls, as there's still some deadzone applied. I've now got 0-100% granularity in how the triggers behave, making things like custom Soft Pull actions and throttle/brakes in racing/vehicular games actually viable.
mcdreamy Jan 3, 2024 @ 9:12pm 
Originally posted by Fuli:
I'm also baffled that we can't customize the trigger deadzones.

See my reply above about the tool to manually do this. I wish Valve would fix it, but until then, this is a valid way of fixing the problem.
[MAGA]Hartburn Mar 8, 2024 @ 10:52pm 
Bump, I play a lot of Ride 5 and the lack of proper trigger and thumbstick deadzone adjustment makes the game far less enjoyable.

Using OP’s tool for the triggers makes me realize how much better the steamdeck triggers could be with full deadzone adjustment.
meat Mar 24, 2024 @ 4:07pm 
@Sjaak Trekhaak Cool tool, but recalibrations reset everytime after putting the deck to sleep. Please Fix This!
[MAGA]Hartburn Apr 25, 2024 @ 7:07pm 
Originally posted by meat:
@Sjaak Trekhaak Cool tool, but recalibrations reset everytime after putting the deck to sleep. Please Fix This!
That unfortunately isn’t possible, which is why OP is requesting global deadzone settings from the Steamdeck devs.

I looked into forking off OPs repo and automating the script to reconfigure saved deadzones, but there’s really no way to do it as it requires Steam to be restarted for the settings to take.

Our only hope is the Steamdeck devs adding modifiable trigger deadzone settings.

Can the devs just make some of these settings open source and let us create a patch. I’d be happy to do the work if it means custom deadzones for racing games. M
NoTalentedGamer May 5, 2024 @ 10:32pm 
deadzones could be done better and trigger deadzones. im also running into issue where the test part of calibration receives no input.
< >
Showing 1-15 of 19 comments
Per page: 1530 50