Steam – Disable Nvidia GameStream gamepad input

controllersnvidia-geforce-experiencesteamwindows 10

Hardware and Software used:

  • iMac 27" (late 2012) with NVIDIA GTX 680MX (I know, not ideal for gaming), Windows 10, Steam, Skyrim, NVIDIA GeForce Experience and GameStream enabled, ScpToolkit (a program that connects PlayStation Gamepads as if they were XBOX).

  • A Raspberry Pi 2 with OSMC OS running Moonlight Embedded.

  • Normal mice and keyboards.

  • Sony Dualshock 3 and 4.

I have already set everything up so when I start Moonlight, and I connect to my PC with Steam as "game", the screen gets displayed onto the TV my Pi is attached to. The only problem is that OSMC (the operating system used by my Raspberry Pi) does not support Dualshock gamepads: when I connect them, all the axis are wrong and many keys do not work. My particular configuration does not allow me to set up custom keymaps for Moonlight, so (since the TV is very close to the Computer), I tried to use the Dualshock 4 via Bluetooth directly to the computer. Whenever I start Skyrim directly from the PC, the gamepad works like a charm, but when I connect with GameStream, the Gamepad connected directly to the PC stays on (and pressing Home button Windows 10 asks me if what's running is a game), but Steam and Skyrim (I expect all games to be so) refuse to respond to the controls of my Dualshock. If I connect it to the Raspberry Pi instead, the keymaps are wrong, but the game responds to the (wrong) controls. Weird fact is that the USB keyboard and mouse (connected directly to the PC) are working!

What I suspect is that GameStream is overriding my (simulated) XBOX controllers with their (simulated) remote XBOX controller. How do I disable the input from GameStream so I can control the games from the PC itself?

Best Answer

Based on what you've described, I think this post has a solution.

Using a wired/wireless controller connected to the GFE PC instead of the streaming device

Normally, Moonlight sends controller input from the streaming client which gets sent to the game by GFE. If you want to connect a controller to your PC instead of the streaming device, GFE can cause some problems because the emulated controller still appears to games as controller 1. Luckily there is a workaround for this. You'll need to rename the DLL that Nvidia is using to send controller input so it won't be used anymore. On 32-bit and 64-bit Windows, rename rxinput.dll to rxinput.dll.old on in C:\Program Files\NVIDIA Corporation\NvStreamSrv. On 64-bit versions, there's another copy of the DLL in C:\Program Files (x86)\NVIDIA Corporation\NvStreamSrv which you'll want to rename. You may have to do the renaming again if GFE does an update, but it should allow you to use your controller normally on games that only support 1 controller.

(I bolded the instructional portion of the quote for ease of access)

It will also be necessary to rename rxgamepadinput.dll and rxnvgamepad.dll, both located in the aforementioned directories.