STEAM GROUP
Steam Client Beta SteamBeta
STEAM GROUP
Steam Client Beta SteamBeta
18,917
IN-GAME
81,864
ONLINE
Founded
January 8, 2013
All Discussions > Bug Reports > Topic Details
supersmo Jan 26, 2019 @ 3:24pm
Steam Input - XBox One controllers don't work with Steam Input when XInput is disabled
ISSUE
When XInput is disabled for Steam Input it can detect more than 4 XInput controllers via DirectInput instead. This works great for XBox 360 controllers but not for XBox One Controllers. With XInput switched off and the XBox One Controllers are set up I am able to navigate Steam Big Picture but games using Steam Input API detect the controllers but no Input is passed on to the game. I have verified this with the games "Super Bomberman R" and "Pixel Fishies".

(I've verifed that eight XBox 360 controllers work in this mode)

OS
Windows 10 Home (64 bit build 17134)

STEPS
Switch XInput off
Create an environment variable called SDL_XINPUT_ENABLED and give it the value 0 and then restart Steam.
(Or use my bat script to restart Steam with XInput off: https://1drv.ms/u/s!AvTqYNMjugSugljzr20KpTJRYDOI )

Plug in an XBox One Controller

Select Generic Controller support and deselect XBox Controller Support
Go to Steam -> Settings -> Controller -> General Controller Settings. Only have Generic Controller support selected.

Define Layout
This is probably not necessary to reproduce the issue but is needed to get correct bindings for Guide and Triggers. When accessed via DirectInput the Guide button does not exist and triggers are on the same axis. To get correct values I did the following:
Steam->Settings->Controller->General Controller Settings->Select the controller->Define Layout and save it as a Generic Controller Type.
Define Layout is unable to handle triggers on the same axis so you will have to edit C:\Program Files\Steam\config\config.vdf manually to get the triggers right.
These are my mappings for XBox One S via Bluetooth with XInput disabled:
030000005e040000ea02000000000000,dev:gen:Controller (Xbox One For Windows),platform:Windows,a:b0,b:b1,y:b3,x:b2,start:b7,back:b6,leftstick:b8,rightstick:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:+a2,righttrigger:-a2,

These are my mappings for XBox One S via Usb cable with XInput disabled:
030000005e040000ff02000000000000,dev:gen:Controller (Xbox One For Windows),platform:Windows,a:b0,b:b1,y:b3,x:b2,start:b7,back:b6,leftstick:b8,rightstick:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:+a2,righttrigger:-a2,

Select a game that uses Steam Input API and set "Steam Input Per-Game Settings" to "Use your global Steam Input Settings"
(Both "Super Bomberman R" and "Pixel Fishies" use the Steam Input API.)

Start the game
Start the game and notice that the controllers are registered by the game but they don't recieve input. (For Super Bomberman R check the output_log.txt after unplugging and plugging an XBox One controller. For Pixel fishies hit escape then navigate to Settings->Controllers where you will see the detected controllers

EXPECTED
Steam Input API should send Input Events to the game for XBox One controllers when XInput is disabled but it doesn't.

It works for XBox360 controllers and since XInput is switched off the games mentioned can use 8 (or for Pixel Fishies up to 16) Xbox 360 controllers via Steam Input instead of max 4 on Windows!
Last edited by supersmo; Jan 26, 2019 @ 8:16pm
< >
Showing 1-3 of 3 comments
True_Six_God Feb 17, 2019 @ 6:21am 
I would pay money to have this issues fixed please!!!!!
supersmo Feb 17, 2019 @ 3:35pm 
After some more investigation it looks like it can be fixed but it’s not as easy as I first thought. It seems like applications running in the background can’t get input from XBox One controllers via Direct Input. Looks like a bug in Microsoft’s code. However the controllers can be accessed in the background via RawInput and still not be limited to 4 controllers so there is a possible solution but someone would need to implement it for SDL which Steam uses under the hood.
Last edited by supersmo; Feb 17, 2019 @ 3:36pm
Leeham Nov 2, 2022 @ 11:53pm 
how has this still not been fixed? Its been 3 years. Any updates on this?
< >
Showing 1-3 of 3 comments
Per page: 1530 50

All Discussions > Bug Reports > Topic Details
Date Posted: Jan 26, 2019 @ 3:24pm
Posts: 3