STEAM GROUP
Steam Remote Play homestream
STEAM GROUP
Steam Remote Play homestream
4,023
IN-GAME
40,201
ONLINE
Founded
November 7, 2013
BoBo May 21, 2018 @ 3:33pm
Xinput devices and Unity Engine games
The issue:
Xinput devices (in this case official X360 controllers – both wired and wireless versions) won’t work with Unity Engine games while using Steam In-House Streaming – Unity Engine games don’t recognize X360 controller input at all.

Streaming Client:
Windows 10 Home x86 8-inch tablet with X360 Wireless Controller (including official Microsoft wireless receiver for PC).

Streaming Host:
Windows 7 Professional x64 etc. – I don’t think it matters because non-Unity Engine games work great with IHS and my X360 wireless controller.

All my drivers (including X360 drivers) and Windows 10 are up to date.

Unity Engine games I tested:
Dreamfall Chapters, Tacoma, Slender: The Arrival, Whispering Willows, Lara Croft GO, AER Memories of Old, Ori and the Blind Forest Definitive Edition and countless other Unity Engine games, mostly from Humble Bundle. Games stream fine, but they don’t respond to X360 controller inputs.

To avoid any confusion – every other non-Unity Engine Xinput game works flawlessly with my setup. I played Dead Rising 4, various Telltale Games, Transistor, Tomb Raider (2013), Dark Souls series, Prey and many more and they all work great and there are absolutely no issues with Xinput and X360 controller.

Only Unity Engine games have problem with Xinput while streaming. When I play them natively on the host PC, Xinput works fine.

I also tried the Steam Link app with my Android (KitKat 4.4) tablet and some 3rd party controller (iPega 9023). And it… worked with Unity Engine games. That’s pretty odd – official Xinput X360 Controller on Windows 10 doesn’t work when streaming Unity Engine games, but some random 3rd party controller connected to an Android device works perfectly fine as an emulated Xinput device.

The “button mashing” workaround:
There used to be a workaround for Xinput/Unity Engine problem that I used for several months. Basically, you had to start streaming Unity Engine game with your X360 controller plugged it. Obviously, the game would not detect any input. Then you just had to unplug your X360 controller/receiver, wait for that lovely Windows 10 notification chime, plug in the controller/receiver again and just “mash” Guide button along with faceplate buttons and R3 (pressing the stick). I discovered this workaround after countless hours of trying various possible solutions to my problem. I got frustrated, unplugged/plugged the controller again and just started to mash all the buttons… and out of the sudden Xinput started to work. Of course you had to do it every time you wanted to stream an Unity Engine game, but it was not a problem for me. It worked like a charm every single time with every Unity Engine game I tried. Alas, the aforementioned workaround has stopped working since the 17th May Steam Client update (the day of Android/iOS Steam Link app release). On the 18th May Valve released some kind of controller hotfix, but unfortunately my workaround doesn’t work.

I know there was some kind of update for Steam Client in 2014 that added controller support for Unity Engine games but obviously it doesn’t work anymore or perhaps it doesn’t support all/newer Unity Engine versions. Or maybe Valve accidentally removed that feature? :)

I don't think it's a Unity Engine issue (at least not entirely), because X360 input used to work with my workaround.

Anyway, I need some help :)
1. Can anyone with the official X360 wired/wireless controller test In Home Streaming with one of the Unity Engine games I listed above? Preferably using Windows 10 PC/laptop/tablet as a client machine. As I said, Android Steam Link app with random non-Xinput controller works fine. It would seem that the problem with streaming Unity Engine games occurs only with official Xinput devices and Windows 10.
2. This is very important - I’m NOT interested in mapping keyboard buttons to my gamepad. I tried various Steam Controller/X360 Controller presets and it works iirc, but there are keyboard input prompts shown on-screen so… that’s a no-go. So please, no keyboard/button remapping and other weird suggestions. I also don’t wanna use my Android tablet for streaming. I’m only interested in working native Xinput support for Unity Engine games, while streaming on my W10 tablet. Stay on topic, please :)

Any suggestions?

Obligatory "apologize for any spelling and/or grammar mistakes". English is not my native language but I hope you can understand me :)

tl;dr
X360 controller/Xinput does not work when streaming Unity Engine games (tested both in Big Picture and Desktop modes): streaming Windows 7 PC to Windows 10 Tablet + wireless X360 controller. This setup works fine for streaming every other non-Unity Engine game. HELP! :)
< >
Showing 1-7 of 7 comments
Greytega Jun 24, 2018 @ 2:26pm 
Hey bud. same issue as you, streaming host is Win10 (1803)
Guest is the gpdwin1 or laptop with wired xbox (both x-input & win10)
not much to say other than its aids. all the same tests as you.
excellent english btw.
Add me if you want to try further tests.
BoBo Aug 21, 2018 @ 6:16am 
Since (almost :steamhappy:) nobody cared (and yes, thank you Valve so much for caring) I found yet another workaround. Sadly, it’s very user unfriendly and pretty inconvenient, but hey, at least It works :steamsalty:

It’s recommended to use Steam in normal/desktop mode (not in Big Picture mode) – it’s just easier that way but it works with Big Picture as well.

Here we go:
  1. Launch Steam on both your Host (e.g. Desktop PC) and on your Client devices :steammocking:
  2. Start streaming an Xinput game that streams without any problems on your Client device (in my case it’s ‘Alan Wake's American Nightmare’ – game streams fine and controller inputs work great; in short – game is perfectly playable with a controller when streaming; another game that worked for me is ‘Mortal Kombat Komplete Edition’).
  3. Now, on your Host press alt-tab (IMPORTANT: do NOT close Xinput game/Alan Wake yet) and run a Unity Engine game that you really wanna play (a game that doesn’t work with your Client’s controller – in my case it’s ‘AER Memories of Old’).
  4. Unity Engine Game (AER) should launch and now controller should be working on your Client device. However, Xinput game(Alan Wake) is still running in the background.
  5. On your Host device alt-tab again and press alt+f4 to close the other game (Alan Wake).
  6. Your Client device will stop streaming (because we launched Alan Wake for streaming and now it’s no longer running). However, on your Client device you will see that your Unity Engine game (AER) is currently ‘Running…’ on your Host PC.
  7. Now, on your Client device select the game that is currently running (AER) and press the ‘Stream’ button. Because the game was already running, controller inputs should be recognized by the game and it should work fine.

In other words:
You have to stream a working Xinput game and then just alt-tab, launch a game with controller issues you wanna play, alt-tab again, kill the first game, start streaming the game that’s currently ‘Running…’ (which is the game with controller issues) – PROFIT! :steamhappy:

I also tried the Batman game from Telltale (since it turned out that Telltale games had stopped working as well…) and by using this workaround, I was able to play (stream) it with my Xinput controller without any problems. Therefore, this workaround MIGHT actually work for every other game that has controller issues, not only Unity Engine games (Telltale games don’t use Unity Engine as far as I know and this workaround makes them playable).

This workaround clearly shows that there’s a problem on the Steam side and not on the engine side. Valve, would you kindly fix it?
Greytega Aug 21, 2018 @ 1:45pm 
amazing ! Thank You !!!
BoBo Aug 21, 2018 @ 4:29pm 
I found even a better workaround based on the same principle :steamhappy:

  1. Download GameGo launcher by Kenney (Google 'GameGo'). It's a free launcher app that uses Xinput (which is essential for my workaround).
  2. Unpack GameGo and edit 'games.xml'. Erase everything and paste the following lines (IMPORTANT: change your Steam.exe path under <executable> tag if necessary):

    <games> <category title='Games'> <game> <title>Sample game</title> <banner>banner/sample_banner.png</banner> <executable>C:\Program Files (x86)\Steam\Steam.exe</executable> <parameters></parameters> </game> </category> </games>

  3. Add GameGo.exe to your Steam (Add a non-Steam game to my library...)
  4. Start streaming GameGo app on your Client device.
  5. GameGo launcher will 'trick' Steam into enabling Xinput because the launcher itself uses Xinput
  6. From GameGo you can now 'launch' Steam (press 'A' button on the controller - sometimes you have to press it twice). Since Steam is already running it will only change focus from GameGo to Steam, but that's OK. Now you can see your Steam Library, and Xinput enabled GameGo app is working in the background.
  7. Launch desired Unity Engine game (use right stick to move the cursor and 'A' button to 'click'). Controller should now work without any problems.

This is a better solution than launching Xinput game and all that alt-tabbing madness, because it can be done completely on the Client side - you don't need physical access to your Host PC, which is great if you wanna stream to another room. GameGo.exe is running in the background but you don't have to close it, since it's not as resource hungry (it's VERY lightweight) as your typical Xinput game (e.g. 'Alan Wake').

Oh, and after you're done playing you have to manually close streaming on your Client device and close GameGo app on your Host PC. That's the only downside as far as I know.

So every time you wanna stream a game with controller issues you have to stream GameGo app instead. While streaming, launching Steam from within GameGo launcher will essentially stream your Windows desktop. From there you can launch your games that normally don't work with your controller.
Last edited by BoBo; Aug 21, 2018 @ 4:30pm
BoBo Aug 21, 2018 @ 4:34pm 
Originally posted by Greytega:
amazing ! Thank You !!!
You're welcome. Happy streaming :steamhappy:
Scik Sep 14, 2018 @ 12:13pm 
Originally posted by BoBo:
I found even a better workaround based on the same principle :steamhappy:

  1. Download GameGo launcher by Kenney (Google 'GameGo'). It's a free launcher app that uses Xinput (which is essential for my workaround).
  2. Unpack GameGo and edit 'games.xml'. Erase everything and paste the following lines (IMPORTANT: change your Steam.exe path under <executable> tag if necessary):

    <games> <category title='Games'> <game> <title>Sample game</title> <banner>banner/sample_banner.png</banner> <executable>C:\Program Files (x86)\Steam\Steam.exe</executable> <parameters></parameters> </game> </category> </games>

  3. Add GameGo.exe to your Steam (Add a non-Steam game to my library...)
  4. Start streaming GameGo app on your Client device.
  5. GameGo launcher will 'trick' Steam into enabling Xinput because the launcher itself uses Xinput
  6. From GameGo you can now 'launch' Steam (press 'A' button on the controller - sometimes you have to press it twice). Since Steam is already running it will only change focus from GameGo to Steam, but that's OK. Now you can see your Steam Library, and Xinput enabled GameGo app is working in the background.
  7. Launch desired Unity Engine game (use right stick to move the cursor and 'A' button to 'click'). Controller should now work without any problems.

This is a better solution than launching Xinput game and all that alt-tabbing madness, because it can be done completely on the Client side - you don't need physical access to your Host PC, which is great if you wanna stream to another room. GameGo.exe is running in the background but you don't have to close it, since it's not as resource hungry (it's VERY lightweight) as your typical Xinput game (e.g. 'Alan Wake').

Oh, and after you're done playing you have to manually close streaming on your Client device and close GameGo app on your Host PC. That's the only downside as far as I know.

So every time you wanna stream a game with controller issues you have to stream GameGo app instead. While streaming, launching Steam from within GameGo launcher will essentially stream your Windows desktop. From there you can launch your games that normally don't work with your controller.

Thanks so much for this fix! I spent the last few hours trying to find a workaround, and this is the first working solution I've found!
HeikkiH Sep 20, 2018 @ 11:31am 
I can confirm also that this works wonderfully! Hopefully Valve sometimes fixes Steam with Unity games.
< >
Showing 1-7 of 7 comments
Per page: 1530 50

Date Posted: May 21, 2018 @ 3:33pm
Posts: 7