Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam Support? #2

Open
TemporaryPSP opened this issue Jun 1, 2024 · 12 comments
Open

Steam Support? #2

TemporaryPSP opened this issue Jun 1, 2024 · 12 comments

Comments

@TemporaryPSP
Copy link

TemporaryPSP commented Jun 1, 2024

Can't seem to get Steam games to work with this, non Steam executables logs end with this:
Initialized! Initializing thread... Found device via CfgMgr API Opening device via file API Opening xusb device Using async xusb api (from wgi?)

Meanwhile here are the Steam logs:
steam.log
Initializing... Loading config from: D:\MyInput\Configs\steam.ini ERROR: Failed to open: D:\MyInput\Configs\steam.ini Loading config from: D:\MyInput\Configs\_default.ini Mapping C to %A Mapping X to %B Mapping Z to %X Mapping V to %Y Mapping S to %LT Mapping A to %LB Mapping D to %RT Mapping F to %RB Mapping W to %L Mapping E to %R Mapping B to %Start Mapping G to %Back Mapping N to %Guide Mapping H to %Extra Mapping Left to %L.Left Mapping Right to %L.Right Mapping Up to %L.Up Mapping Down to %L.Down Mapping Delete to %R.Left Mapping PageDown to %R.Right Mapping Home to %R.Up Mapping End to %R.Down Mapping Numpad4 to %D.Left Mapping Numpad6 to %D.Right Mapping Numpad8 to %D.Up Mapping Numpad5 to %D.Down Mapping LShift to %Mod.L Mapping RShift to %Mod.R Mapping Q to %Mod.T Mapping F12 to Reload Mapping Pause to ToggleDisable Initialized! Initializing thread...

Game log
Initializing... Loading config from: D:\MyInput\Configs\test.ini ERROR: Failed to open: D:\MyInput\Configs\test.ini Loading config from: D:\MyInput\Configs\_default.ini Mapping C to %A Mapping X to %B Mapping Z to %X Mapping V to %Y Mapping S to %LT Mapping A to %LB Mapping D to %RT Mapping F to %RB Mapping W to %L Mapping E to %R Mapping B to %Start Mapping G to %Back Mapping N to %Guide Mapping H to %Extra Mapping Left to %L.Left Mapping Right to %L.Right Mapping Up to %L.Up Mapping Down to %L.Down Mapping Delete to %R.Left Mapping PageDown to %R.Right Mapping Home to %R.Up Mapping End to %R.Down Mapping Numpad4 to %D.Left Mapping Numpad6 to %D.Right Mapping Numpad8 to %D.Up Mapping Numpad5 to %D.Down Mapping LShift to %Mod.L Mapping RShift to %Mod.R Mapping Q to %Mod.T Mapping F12 to Reload Mapping Pause to ToggleDisable Initialized! Initializing thread... Injecting into new process of same bitness "D:\Steam\steam.exe" steam://run/AppID//

@thisismypassport
Copy link
Owner

thisismypassport commented Jun 2, 2024

  1. Do you have Steam Input enabled? If so, does it work if you disable it?

For me, for the generic stream games I tried with, myinput worked with Stream Input disabled, but not with it enabled (I'll take a look why later).

  1. Does it help if you change the following line in the config file from:
    #!InjectChildren = False
    to:
    !InjectChildren = False
    (Remove the #)

@TemporaryPSP
Copy link
Author

Disabled on a per-game basis via properties, tried with and without InjectChildren. I am using the one-time launch though, should that matter in any way.

@thisismypassport
Copy link
Owner

thisismypassport commented Jun 2, 2024

Yeah, one-time launch is fine.

Two more possibilities:
(First, add the # back to !InjectChildren)

  1. Make sure to fully close steam (right click on the steam icon in the notification area -> 'Exit Stream') before you use myinput with a game that relies on it for input.

Then, if you haven't already, try using one-time launch on the game itself (not on steam)

If that doesn't help:

  1. I did find out what prevented steam input for working - a steam process is processing input in the background, which isn't very well supported right now (I'll look if I can easily support it)..

This might be causing the issue for you, even if you're not using steam input.

A poor workaround for this, mostly for you to check and tell me if this is indeed the issue for you too:

In the config file, change:
#!Forward = True
#!Always = True
To:
!Forward = True
!Always = True

(Remove both #'s)

The main disadvantage of this workaround is:

  • The input will get forwarded to the keyboard, which will cause the game to respond both to the keyboard action and the controller action (so make to test it with keyboard buttons that the game ignores)
  • (And the input lag will suffer too, if there are many spawned processes)

@TemporaryPSP
Copy link
Author

Almost every executables from Steam come with DRM so I could only test a few titles with noDRM exe, and as expected, controller's detected just fine. The same can't be said for the second workaround though.

@thisismypassport
Copy link
Owner

thisismypassport commented Jun 2, 2024

To make sure I read you right - you tried the second workaround and it didn't help, yes?

And the game runs fine when myinput is injected, the remapping just doesn't work? Does that mean the remapped keys do nothing, or do they do their original function before the remapping?

I find it odd that the steam DRM (that's what it is, right?) would silently block this, though I don't know much about DRM schemes.

@thisismypassport
Copy link
Owner

thisismypassport commented Jul 15, 2024

Do you have any specific examples of games that have this issue? (If there are many, listing them all would be great - just saying "all" or "most" doesn't help me understand if this issue is specific to your configuration or observable by anyone)

@thisismypassport thisismypassport closed this as not planned Won't fix, can't repro, duplicate, stale Jul 29, 2024
@thisismypassport
Copy link
Owner

Closing, as it doesn't seem like more information is coming, feel free to reopen or open a new issue

@TemporaryPSP
Copy link
Author

TemporaryPSP commented Jul 29, 2024

Sorry. I eventually forgot about this. So I got it working on non-Steam titles like GOG for example. Steam titles (even those that do not rely on additional protections) just don't work, with or without SteamInput. Dead Rising for example (even 2) accepts XInput but myinput doesn't work with them because they're both on Steam.

@thisismypassport
Copy link
Owner

  1. Are you using Windows 10 or 11?
  2. What is the precise issue - is the game not working at all, or is it working but the inputs aren't being mapped?
  3. Did you share all log files created or modified when the game is run?
  4. Did you try registering the game's executable (via myinput_ui or myinput_register), then launching steam normally, then running the game from steam?

I do see some issues with steam games not working at all when launched directly (looking into it) - might be related, might be not - some more info from your side would be good.

@thisismypassport
Copy link
Owner

  1. Does the following "pre-release" version help:
    https://github.com/thisismypassport/myinput/releases/tag/v0.2.1

@TemporaryPSP
Copy link
Author

  1. Windows 11
  2. Steam titles don't recognize any controller/inputs
  3. I will upload it again if needed
  4. I've only tried one-time launch for now
  5. No, it doesn't unfortunately

@thisismypassport
Copy link
Owner

thisismypassport commented Oct 8, 2024

Did you do this step:

Make sure to fully close steam (right click on the steam icon in the notification area -> 'Exit Stream') before you use myinput with a game that relies on it for input.

Based on the original log up top, the issue is simply that the game ends up running from a pre-existing steam process that isn't hooked.

Try doing that step together with using the pre-release version (which should fix issues in windows 11) and if it still doesn't work - please share the new logs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants