By using VID and PID of Valve's SteamController, Steam doesn't give us ANOTHER "fake" XInput device
Therefore it's not necessary anymore to count controllers before we plug in any virtual controllers
By Unhooking Steams hook to XInputGetState, we can detect how many Controllers Steam "emulates", before pluggin in any virtual controllers.
This *should* enable the use of multiple Valve SteamControllers.
The unhooking procedure currently only works on AMD64 and prob. only with XInput1_4
Found out GameOverlayRenderer likes to post very specific messages
Now, instead of memory reading some value from some address, which changes in updates, examine the messagequeue of the process to get overlay status
done by mid function hooking a function in steamclient.dll
the function appears to be setting the appId of the new controller bindings
inject/hook right after the target launched
switch focus -> binding gets changed to shortcut bindings -> hook function grabs appid
hook function replaces desktop-config appid with the one grabbed everytime steam tries to active desktop-config
glosc_gamelauncher unloads dll when the target closes; unloading dll patches steamclient.dll back to original
this significantly reduces input-lag while keeping cpu usage at a minimum
also removed any of the vsync / framerate options as we now always render the overlay with 60fps
this reduces cpu usage and unnecessary overhead if playing with the default option of vsync on high refresh rate displays