this post was submitted on 21 Jun 2023
64 points (100.0% liked)

PC Gaming

25 readers
1 users here now

Discuss Games, Hardware and News on PC Gaming **Discord** https://discord.gg/4bxJgkY **Mastodon** https://cupoftea.social **Donate** https://ko-fi.com/cupofteasocial **Wiki** https://www.pcgamingwiki.com

founded 1 year ago
you are viewing a single comment's thread
view the rest of the comments
[–] tangelo@kbin.social 21 points 1 year ago (2 children)

Thanks to Steam Input, he can use any controller

[–] gk99@kbin.social 13 points 1 year ago (1 children)

#1 reason I prefer buying games on Steam. The convenience of this is insane.

[–] themoonisacheese@sh.itjust.works 2 points 1 year ago (1 children)

Btw if you add your "epic" games as non-steam games in steam, you can use the steam overlay and change controller bindings like a steam game. It also is a great way to run windows software on Linux without tinkering.

[–] gk99@kbin.social 1 points 1 year ago

Yep, this is also the #1 reason I have no intention to buy games on Epic going forward. I had to do this for well over a year to use my Series X|S controller over Bluetooth with HITMAN III. They're paying for exclusivity explicitly so that I can't buy games on Steam, then I have to launch their launcher through Steam anyway because their platform sucks, so I just end up with an annoying middleman that makes me ask "why?"

It's a great tip for all the free games though.

[–] atocci@kbin.social 4 points 1 year ago (2 children)

How does Steam Input work? Does it contain drivers for almost any controller, or does it just map inputs for those controllers to Xinput?

[–] HidingCat@kbin.social 3 points 1 year ago

It has support for a lot of controllers, including the popular console ones. It's really a nifty feature of Steam.

Most non-xbox controllers use well-known USB extents that are universally recognized as belonging to a generic controller. Windows will display a controller icon, libraries like pygame and SDL 2 will process them as regular controllers, etc. As such, most controllers need no drivers. The exception is that games written with directX use xinput, which is proprietary and has licensing costs to get your controller into (to prevent low-cost controllers from undercutting Microsoft's price-gouging official offering).

Converting USB controller to xinput has famously been a really hard problem, requiring a lot of fancy software that is often incompatible with anticheat and copy protection. Steam is able to do it because the steam overlay is whitelisted by everything that could block it, and is otherwise developped by really great devs.

In the process of intercepting inputs to the game and translating them, you can imagine it's quite easy to swap a button for another, that's how controller remapping works. Some devs additionnally provide steam with custom things a controller may do that may not have a key assigned but becomes callable from a key through the overlay.