Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
With the PS controllers I wasn't saying they should be seeing Define Layout when they're running in DInput mode.
With "I think devices they only support via DirectInput get the Define Layout option", I was meaning if the only way the device is supported in Steam is by DInput. PS controllers have additional/alternative support, they don't get Define Layout & it's the intended behaviour.
If the user sets a variable to opt the controller out of HIDAPI support then they can get Define Layout for PS controllers. I've done this with a DS5 and I would say it applies to the DS4. The official Sony DS3 I don't know, don't know if they are +DInput devices / how things are working for them.
I will update the other thread later how you can set the use HIDAPI setting.
I believe that SDL is fine and that the issue is from Steam. I can't see the client code to actually know, so this is my thinking & reasoning...:
The client is setting the value of SDL_JOYSTICK_HIDAPI_PS5_RUMBLE to 1 (a variable that controls whether the controller should be switched into enhanced mode or not) as part of the DS5 FW comparison check, whereas this variable would normally be controlled via the PS Config Support/Steam Input setting.
It's like it doing:
When it could be doing:
Or if they wish to auto-usher all Dualsense, including those connecting in DInput mode (& so the user has PS Config Support disabled), to the true firmware comparison check (the controller's actual firmware version is read & compared):
And that's some of my pondering :)
When it's a system environment variable the change of that setting will apply even while Steam is running, when it was set as a user environment variable I found for the change of that setting to take affect it requires quitting and re-launching Steam.
Don't forget to Unhide the controller if you hid it if you want to try this...
You can create, edit or delete environment variables with a visual interface via: Control Panel > right-click System > Open > select Advanced system settings > Environment Variables...
(Or can tap Windows key and start typing environment and it should display 'Edit the system environment variables, or could type advanced to get 'View advanced system settings')
Create a new System variable
variable name:SDL_JOYSTICK_HIDAPI_PS5_RUMBLE
value = 0 (remain Dinput/don't switch to enhanced mode), or 1 (switch to enhanced mode)
OK > OK
Power cycle controller to change modes after changing the variable value
Delete the variable & restart Steam for things to go back to regular operation.
You can also set the variable in batch files. This is for the system environment variable:
1. Create a new text file,
save it with this content:
SETX SDL_JOYSTICK_HIDAPI_PS5_RUMBLE 0 /M
close the file
rename it DinputMode.bat
2. Create another text file,
save it with this content:
SETX SDL_JOYSTICK_HIDAPI_PS5_RUMBLE 1 /M
close the file
rename it EnhancedMode.bat
Since these are editing the system environment variable, they need to be run as admin. Good way to automate that is to create a shortcut for the batch file > right-click the shortcut > Properties > Advanced... > tick 'Run as administrator' > OK > OK
Use the shortcuts to trigger the batch files then power cycle the controller to switch modes.
Now the behaviour with Steam running will be:
I went further with the set-up and attached the batch files to the taskbar so they could be activated by e.g. Windows key + 8, Windows key + 9.
Then set those keyboard commands in Steam's Chord config alongside the command to turn off the controller.
So, I press PS + Square: it runs DinputMode & switches off the controller. From then onwards, when I power on the controller, Steam won't switch it to enhanced mode. (If PS Config Support/Steam Input is enabled, it still performs the emulation but it's just Dinput > Xinput).
I press PS + Cross: it runs EnhancedMode & switches off the controller. From then onwards, when I power on the controller, Steam will switch it to enhanced mode.
I'd use those chord commands when wanting to switch modes, the regular command PS+Triangle for just turning it off (not too important though).
I'll add instructions some other time.
Setting things with the environment variable loses out the auto-switch to enhanced mode, (i.e. controller is connected in Dinput mode > enable PS Config Support > controller is auto-switched to enhanced mode), it requires the controller be powered off/on for the first switch. This method gains a working 'opt-out of Steam Input on a per-game basis' setting functionality for BT connected PS controllers though ;)
So I leave PS Config Support enabled, then for Steam games I wish to use their native Dinput Dualsense support, I can disable Steam Input.
For those interested in setting up a similar thing:
1. THE BATCH FILES
- Create a new text file somewhere you're happy to leave it
- save it with this content: SETX SDL_JOYSTICK_HIDAPI_PS5_RUMBLE 0 /M
- close the file
- rename it DinputMode.exe
- Create another text file
- save it with this content: SETX SDL_JOYSTICK_HIDAPI_PS5_RUMBLE 1 /M
- close the file
- rename it EnhancedMode.exe
- Pin both of the files to the taskbar (right-click the file > Pin to taskbar)
- Change the filename extension of both files to .bat
(now you have: DinputMode.bat, EnhancedMode.bat)
2. THE SHORTCUTS PINNED TO THE TASKBAR
For both of the shortcuts on the taskbar:
- Shift + Right-click > Properties
- In the Target text box change the filename extension from .exe to .bat
- set Run to 'Minimised'
- click Advanced... > tick 'Run as administrator' > OK > OK
Positioning the shortcuts on the taskbar:
The shortcuts pinned to the taskbar can be opened with a keyboard command (Windows key + a number, 1 through to 9).
We want the shortcuts to be in one of the first 9 places on the taskbar. Drag them into one of those positions if need be. (May want to close open programs that are displayed on the taskbar to get the correct position for these two shortcuts.)
My Taskbar with the shortcuts in 8th and 9th position
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2872887181&fileuploadsuccess=1
3. THE STEAM CHORD CONFIG
Here we use the Chord config to execute the keyboard command that will run the batch file and then the Steam command to turn off the controller. It can be assigned to different controller inputs but I use Square and Cross, so final command to switch mode would be PS+Square or PS+Cross.
- Steam > Settings > Controller > Guide Button Chord Configuration
(Vid of steps below: https://drive.google.com/file/d/1GtYQQDuLky1G4ApTaNlSHoMdcBLlkgJq/view?usp=sharing )
- Select the face buttons > select Square > Show Activators
- Click Binding > Toggle Multi-Button On > select the Windows key and the number key for the position of the first shortcut > Back
- Click Add Activator > set Activation Type to Release Press > click Binding > select the Power icon > OK ('Turn off controller' is already selected) > Back
Follow steps for Cross, set the keyboard command for the other shortcut on the taskbar
- click Done
:)
To revert to regular Steam behaviour, delete the variable:
- Control Panel > right-click System > Open > select Advanced system settings > Environment Variables...
(Or can tap Windows key and start typing environment and it should display 'Edit the system environment variables, or could type advanced to get 'View advanced system settings')
- Under 'System variables', select SDL_JOYSTICK_HIDAPI_PS5_RUMBLE and click Delete.
My only question atm, is does this prevent PS5 mode/reactive triggers from working in the few games that have it on PC? I've dabbled a little bit, so far metro exodus is the only game that I've tried that will still engage PS5 mode with steam's currently broken support. Borderlands 3 doesn't engage it, and I don't have Riftbreaker anymore but that one wouldn't engage post-steam's breaking of it as well.
Just bringing back ps prompts and dinput for dinput games is wonderful, I'll likely leave it in that state for a while. Just disappointing that after games are implementing full DS/ps5 support on PC steam still hasn't fixed what they've broken.
I'm not a pro but I can't think how Steam doing what it's currently doing would have an affect on games that support PS5 mode. Steam is switching the controller to enhanced/PS5 mode, the games would also switch the controller to PS5 mode if not already there. I'm thinking as long as PS Config Support/Steam Input is disabled then it's over to the game's native support.
You'd have to explain what you mean by engaging PS5 mode (switching it from Dinput to PS mode and working or judging things by adaptive triggers/Dualsense features, or other?) if my explanation below doesn't cover what you meant.
If the controller can vibrate/have different lights than Dinput mode, then it's using PS5 mode. So if that's happening and there is control but no adaptive triggers (and Steam Input stuff is disabled) then it may be adaptive triggers are not supported (or if you're trying via BT then perhaps only supported via USB).
I haven't seen a confirmation that Borderlands 3 has adaptive triggers on PC. In my searches people have said it's in the menu but it's not a feature in the PC version. I didn't come across any comments saying they got it to work.
This guy from Aug 2021 re the triggers:
https://steamhost.cn/steamcommunity_com/app/397540/discussions/0/5167301764839609999/#c4737210531947495101
Comments in this thread:
https://steamhost.cn/steamcommunity_com/app/397540/discussions/0/3052859736123202466/
I have Borderlands 3 downloading from EGS so will see how things go with that version.
BUUUT the Riftbreaker experience is breaking my conclusions - so more to figure out.
Oh that's a good point, I have borderlands 3 as well on both to try without steam's interference. I gave it a go and I actually can't get the EGS version to detect dinput at all, regardless of steam's status. So it's more than likely borderlands 3, not an issue elsewhere. Your threads seem to say as much too, predating the steam bug.
My list of supported games is pretty short so I can't dabble too much.
I'll give the workaround a go and complain some more if it's not working as expected.
https://steamhost.cn/news/group/4145017/view/3404176654594249092
Maybe this is related.
https://steamhost.cn/steamcommunity_com/groups/SteamClientBeta/announcements/detail/5395889876602831030
https://steamhost.cn/steamcommunity_com/app/353370/discussions/1/4932019356830138029/
Your workaround not worked for me :( I'm still have to use dsx or built-in steam support for my dualsense with the games that already have dualsense support but only on wireless.
This worked perfectly.