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
Special K can manage this for you. Just need to place that DLL in the Steam client directory and then the entirety of Steam Input can be enabled or disabled using a registry key. SKIF will even restart the Steam client for you.
https://i.imgur.com/y4jWj7M.png
Thanks for posting this Kaldaien. I'll take a look into it.
Can this be done on a selection of controllers or is it more as of disabling steam input as an entirety?
IT WORKED!!!!!!!!!!
Installed Special K FrontEnd and do not see that option to disable steam input: https://i.imgur.com/8x6Yt5R.png
I could probably implement Vendor ID / Product ID matching, similar to what HIDHide does.
That's only in the "experimental" version of Special K right now. But that version will be promoted to "stable" over the weekend.
https://sk-data.special-k.info/repository/SpecialK_24.5.10.exe
I originally did try HIDHIDE and it did not work. This led to this post along with a compilation of links to people complaining about the exact same issue in hopes that valve would listen (probably not).
For example the entire library of Nintendo Official Controllers for Retro systems:
https://www.nintendo.com/us/store/hardware/#p=1&sort=df&f=controllerType&controllerType=Other+controllers
Atari Controllers, Sega Genesis, Super Nintendo, Nintendo 64 - All use Bluetooth connectivity. My assumption is that they will not work with HIDHIDE.
Under Device Manager and on the N64 Controller, this is what hardwareID looks like: https://i.imgur.com/PRv6rDY.png - As we can see the naming conventions for the controllers are proper (default).
This is what steam detects it as: https://i.imgur.com/u1MEXqs.png
The VID/PID method would not work with Bluetooth controllers and would need an alternative method. Perhaps, by whitelisting specific BTHENUM\DEVICE_ID_GIVEN from the hardware id section, images provided above.
I have a number of Bluetooth controllers, if you would like to test or remote into my PC to accomplish this task. Just add me up on steam and I would be willing.
Thanks again Kaldaien :)
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/hidsdi/nf-hidsdi-hidd_getattributes
That API works for both USB and Bluetooth.
Special K even spoofs the PID in order to get DualSense Edge controllers working in Unity engine games (USB and Bluetooth), since Unity only recognizes vanilla DualSense controllers. That's a completely artificial limitation -- they use the same protocol -- Edge just uses 5 previously unused bits for the additional buttons.
https://imgur.com/a/MHJX1Vk
Just needs byte swapping
There are 2 ways to accomplish obtaining of said IDs
Method1:
Do a Test Input as such: https://i.imgur.com/wJaqzCz.png
Result VID/PID Displayed: https://i.imgur.com/mfJioeo.png
Method2:
Start Button (windows button on your computer) > type in "dxdiag" and run it > select input tab
https://i.imgur.com/F4kBC7R.png
Hey Kaldaien, I figured out how to get everything going without disabling your steam input completely and thus selecting specific controllers to blacklist.
Turn off steam COMPLETELY. This is a requirement or your config.vdf will get overwritten.
After turning off steam, navigate to:
C:\Program Files (x86)\Steam\config
Inside you will find a config.vdf > open it up with notepad++.
Scroll all the way to the bottom.
Before the very last }, add
Stupid that we have to manually hard set this up rather than them providing a GUI Interface to do this for you.
Here is an image visual representation of what this looks like:
https://i.imgur.com/lOGMzO6.png
=====================================
=====================================
I think adding both methods of a vid/pid blocker from steam would be beneficial and perhaps an advanced option to only whitelist that vid/pid to specific games/exe would be beneficial.
I also think adding the controller_blacklist method to your program would also be beneficial. Have steam auto close, modify that file by adding that line before the last } symbol, save, and re-open steam - would be beneficial.
2 methods just in case one does not work for your program.
It would also be nice if this was added to valve_plug as a user such as myself, for example, does not need the entire SpecialK but rather just the controller specific features since Steam wants to be such a pain in the butt.
=====================================
=====================================
I hope I have been of help to you with this post.
As of this writing: this is only available in Steam Client Beta client starting on May 28th 2024.
Valve just made an increasingly bitter man less so :P
I am still irritated by the games in my library that require Steam Input and lack a fallback to normal OS input APIs, since the native Steam Input API hasn't worked for years. The Steam client cannot download the controller bindings from the Steam Workshop, so those games only work with keyboard and mouse...
To combat that problem I just buy all of my games from another store. Sucks that Valve won't refund the games I already bought, but it's easy enough to look on the Steam store page, see the broken controller icon that says "Steam Input API" and then... never buy that game on Steam.
Thank you for listening!
Thanks Valve
The next step would be to allow to disable individual controllers from within the controller menu gui. Currently it can be done with my example from post #7 and post #8 to see the full picture. AND this requires a steam client restart. It shouldn't have to be hard coded in via config, it should be as simple as pressing a "Disable this controller" toggle and shouldn't require a restart. This will let the controller off the hook and allow it to be used universally with other apps and programs.
If at first step it will require a restart, that would be fine just to get these settings going. Later, focus on how to get around this.