Hacker News new | ask | show | jobs
by ThatPlayer 533 days ago
XInput is still the standard API for controllers on PC, and there's no way for it to support additional inputs. So this is the same issue with adding gryo and extra buttons to any controller: they don't work without software to translate the new inputs to those standard either XInput or keyboard and mouse events.

Like how ds4windows is used to translate Playstation controllers gryo and touchpad. Even the Steam controller requires Steam. I don't think oems are investing in the software to do the same.

3 comments

Steam already has Steam Input, a translation layer that converts between various input events to whatever the game expects.

It is how i got to play the original System Shock 2 on my Steam Deck even though the game was designed with a keyboard and mouse in place.

Yeah, but that requires Steam to add support for those input events. It doesn't have an API for you to feed it input events. There's not exactly a standard for random input events for Steam to hook into either.

That's why distros like Bazzite and ChimeraOS have an additional translator[0] to take input events and output a controller that Steam supports, Dualsense edge or Steam Deck's controller, to be able to add support for gyro and back buttons.

[0] https://github.com/hhd-dev/hhd or https://github.com/ShadowBlip/InputPlumber

This runs SteamOS. That ships with the necessary controller translation layer you're describing.
It's TBD how it will handle extra buttons. I believe Valve has a kernel module for the Steam Deck controller.

Lenovo's current handheld exposes an Xbox controller and a USB device with extra buttons. Handheld Daemon synthesizes them into a virtual PlayStaton controller. If you tried to use the current SteamOS without Handheld Daemon, the 6 extra buttons wouldn't work. The community is waiting to see if Valve ships a more robust solution that Linux can standardize on, or if we'll still be using daemons like HHD for devices that don't have official Valve support.

This, the Lenovo Legion Go S—Powered by SteamOS, shares the hardware as the Windows variant, Lenovo Legion Go S. They're not building hardware specific for SteamOS yet.

I think the Orange Pi Neo is the only (other) one that's targeting Linux only. And they do have touchpads

On PC, or on Windows ?

This is something to watch : we'll see how much Valve actually cares about Linux (and libre software/hardware in general) compared to just using it to get rid of Windows : will they make their new controller API SteamOS exclusive ?

(How well do Steam Link and Steam Controller work without Steam ?)

I'd say on PC because it's easier to name the modern controller protocols that aren't Xinput: Nintendo, Sony, and Steam. Except for Steam, the first two aren't targeting PCs. Basically every other controller targeting PC from the old Logitech F710 to the Flydigi Apex 4 will be using XInput to communicate with the computer. Even the Hori Steam Controller has an alternative XInput mode despite being the only current standalone Steam Controller.

Steam Link the streaming application does require the Steam. Steam Link the discontinued hardware was able to run local applications without Steam.

The Steam Controller defaults to a keyboard and mouse mode until it receives a signal from Steam. So even on Linux, the Steam controller required Steam to function as a controller until the protocol was reverse engineered. Can read about it in the driver comment header, and the Valve copyright that didn't get added until they contributed support for the Deck controller in these drivers : https://github.com/torvalds/linux/blob/master/drivers/hid/hi...

Thanks for the information.

(I recently started again regularly using both the hardware Steam Link and the original Steam Controller - funnily enough, for a non-Steam game - I'll have to check out what people have hacked over the years...)

They didn't made proton exclusive why would they do it with input