Open uppps opened 7 years ago
Nope, unless you have someone with at least some Windows coding experience :D
What I was trying to do was to get at least SendInput level of "emulation", what would work badly and with no gamepad support. AFAIK, there is no way to actually emulate gamepad spare of replacing xinput.dll and/or some system libraries.
There are two main options for emulating an Xbox 360 gamepad across the system on Windows. The old standby is using the Scp Virtual Bus Driver. That driver is not really being maintained anymore though. A newer driver that will eventually replace it is called ViGEm. One nice feature about that driver is that it will be capable of emulating more than just an Xbox 360 gamepad. It still has some stability problems so it is not ready for mass consumption yet. Hopefully those issues will be ironed out soon.
Thanks, that sounds useful.
But just to be clear, Windows support is currently somewhere at very bottom of TODO list, somewhere bellow support for non-steam controllers, i18n and probably VR integration or something :D But contributions are always welcomed.
There is long list of stuff that needs to be solved in potential Windows port:
Keys.KEY_LEFTMETA
to whatever numerical constant Windows uses for Winkey.I'll update that list if I remember anything else :)
Well, thanks for at least having it on the todo list!!
Absolutely nothing is happening, I'm just writing down library that may be usable as uinput replaceament.
Like the meme says, it's something!! Thanks for letting us know!
@kozec Any progress? There haven't been any new commits in the windows branch recently.
I know nothing about windows programming (at least at that low level), so I cannot help, but would love to see this implemented.
I understand the priority of the tasks, but man, having this app on windows would be awesome. I always said that the worst thing about steam controller is... steam, and this app solves that issue and in a very, very good manner, seriously! good job @kozec and other collaborators!
If someone is still watching this and feels really adventurous, there is now work-in-progress SCC that should work on Windows.
I AM STILL WATCHING.... :) i have been for a long time, its awesome to see this might one day be a real thing, i would love to ditch the steam setup for my non steam games.
It kinda works already, as long as you don't need GUI :)
Main problem is this ViGEM issue that can literally freeze Windows 7, but I can make another prerelease with xinput-compatible pad emulation at least for Win10 tomorow.
ahh i see, well considering most of the world is moving towards windows 10 anyway i think even if it never gets fixed dropping support for windows 7 while unfortunate is not totally unacceptable.
Win 7 user, seems to work but it only emulate ps4 pad, i cannot use the mouse pad or mix desktop option with mouse or keyboard. Also Desktop mode only work outside of game, inside game it stop working. Also i need to launch many time the daemon, because it always return serial number can't be obtain.
Is there a way to get mouse pad ? Or something useful ? Also the camera pad for ps4 don't work : relXY function is not here. So for now the pad is not usable.
Win 7 user, seems to work but it only emulate ps4 pad
That's intentional, and probably will stay like that for foreseeable future :( It's better alternative than crashing entire OS.
Also i need to launch many time the daemon, because it always return serial number can't be obtain.
... but this is not. Those serials are working differently between "versions" of Steam Controller, but I thought I had it finally got it right. I'll add workaround for case when it can't be retrieved at all.
Also the camera pad for ps4 don't work : relXY function is not here.
Probably good thing to prioritize, thanks for reminding me.
New pre-release now works with XInput on Windows 10.
i can't move in-game(seems like the left stick works like the right one), do I have to remap the keys in some config? should it be done in one of the sccprofiles?
thanks for adding windows support!
Firstly monster thanks! I have it working as a keyboard and mouse but I would like some help as I am not sure I am using it right. I have VIGEM installed and see a couple of profiles loaded when I start the daemon how do I activate different profiles? (if I just wanted the SC as an generic / Xbox controller, could I just overwrite the currently loaded profile with the xbox one?)
I gather the OSD is not working yet (? or does it require some GTK dependencies on windows?
Thank you for the work on the Windows port. I have tried it and the daemon can interact with ViGEm but there are issues with the controller state translation.
Since exclusive access to the Steam Controller cannot be obtained yet, I have been testing playing Turok 2 from GOG Galaxy.
i can't move in-game(seems like the left stick works like the right one), do I have to remap the keys in some config? should it be done in one of the sccprofiles?
Yes, until GUI is there, editing sccprofile file in text editor should work.
I start the daemon how do I activate different profiles? (if I just wanted the SC as an generic / Xbox controller, could I just overwrite the currently loaded profile with the xbox one?)
I gather the OSD is not working yet (? or does it require some GTK dependencies on windows?
OSD menu should work, but I noticed it takes few seconds to load on Windows. Pressing steam button should spawn it.
@Ryochan7 thanks for report, I'll check on those points.
I recorded a short video showing some of the issues that I was having. Hopefully that will be a useful reference.
Okay, I believe I managed to fix all of that and put it into prerelease number 3.
I've just tried that latest version and works pretty well under windows 10. Great work @kozec 😃.
Some errors were risen to the console, although the controller continued working as expected and the executable didn't exit in any of them; given that, I'd say these are more warnings than errors, as everything continues working as expected.
Basically, the warnings arise when you:
The error is the same for all (Error 10054; dropping client
), although, when you try to open the overlay again there's a different message before that error:
[E] OSD Failed to lock controller
Edit: I just found an issue stopping my controller using the overlay; I powered it off, and when trying to turn it on again, the scc-daemon console started throwing a lot of Input/Output errors (without any other details). Shutting down the daemon and starting it again didn't help; neither with the controller. Restarting windows finally "fixed it", and now I can't reproduce it again. I didn't reboot after installing ViGEMBus, so it may be related.
Basically, the warnings arise when you:
- Press the steam button when the overlay is already open.
That's by design, only one menu should be shown at time. Menus are "locking" buttons they are using and that mechanism is used to prevent multiple menus spawning at once.
- Every time you select any of the overlay options.
The error is the same for all (Error 10054; dropping client),
That's just means that menu is finished and closed connection, so it's expected, but I should probably silence it.
Just tried the latest pre-release and all of those issues have been fixed. Thank you.
My only issue currently is that sc-controller doesn't take over exclusive control of the device. So Lizard Mode or Steam Configs will activate as well as the sc-controller profile. I figure that you're already aware of this but it is the largest hurdle for the program currently. Otherwise, excellent job on getting it to where its at. I'm looking forward to see the Windows version evolve into the full blown Steam Input replacement that the Linux version is.
It now includes GUI, which actually makes it even more experimental than one before :)
(also, I'm not ignoring @CriticalComposer message, it's just that I don't know if I can help with that. AFAIK, this is just how Windows works. But I'll definitely take opportunity if I find that I'm mistaken)
Dang, that sucks. It kinda overrides some of the utility of sc-controller. You either end up with double inputs or you have to run a blank Desktop config in Steam, which technically works but the whole point of sc-controller (in my eyes) is to circumvent the Steam dependency. I'm not a huge Steam user (I prefer Itch and GOG) so I'm always looking for ways to ditch Steam while retaining the full capabilities of the Steam Controller.
edit: on your "Running SC Controller on Windows" wiki page you have a link that directs to a tutorial for installing ViGEm via Powershell. The recent update to ViGEm (https://github.com/ViGEm/ViGEmBus/releases/tag/v1.16.112) has changed from using Powershell to using a Windows setup wizard so it's a LOT easier to install for your average user.
The recent update to ViGEm (https://github.com/ViGEm/ViGEmBus/releases/tag/v1.16.112) has changed from using Powershell to using a Windows setup wizard so it's a LOT easier to install for your average user.
Great, I changed page accordingly.
I have a problem, the program doesn't seem to hook with the controller i get the following errors:
[E] USB Failed to open device 2 on bus 1: No such device (it may have been disconnected) [E] sc_by_cable Failed to open '/win32/usb/1/2'
. Before it kind of worked and the inputs where detected in windows devices, the emulated xbox pad recognized my inputs (this was in v0.4.9.3 on a previous windows 10 installation with avast) and the guide buttom worked and showed the modes but now when I run the scc-deamon.exe or sc_controller.exe nothing is happening, no response from the controller inputs (apart from lizard mode) on emulated xbox controller.
BTW, I have in this installation of windows a kind of phantom xbox controller that appears when I open the devices, it doesn't even show inputs to test. I have glosc and that works but do not know if I somehow Flunked my installation of ViGEm.
On the Gyro per-axis control, i can't adjust any of the settings, they're all greyed out.
Same goes for the settings too.
The program only works when using the dongle, not when the controller is plugged directly. I tried, and when putting new bateries and trying with the dongle the scc daemon suddenly comes to life.
I prefer to use a wired connection so I don't waste a lot of batteries.
Ok, more specificity Using Dongle. I'll try the batteries, but it's not the daemon. it's the GUI
Sorry about that, I meant the emulation, the GUI opens and all but there are no response from the controller. Just tried it again connected and the daemon throws these two errors
[E] USB Failed to open device 3 on bus 2: No such device (it may have been disconnected)
[E] sc_by_cable Failed to open '/win32/usb/2/3'
The GUI controller symbol (the one that lights on green when emulating) is grey
Then connect via dongle and the daemon is responsive, all inputs I use are registered and the GUI controller symbol shows green.
I already tried using games when connected via dongle and it does work, all keybindings are responsive, high precision template works
In short, the program always worked, but only recognizes my controller via dongle, not when directly plugged in.
Ok, separate error from all the buttons in the GUI being greyed out. got it.
I'm sorry, I'm not entirely sure what are you reporting. But gyroscope is what's am implementing right now, so anything related to it doesn't work yet and that's why it is grayed out in GUI.
Ah. Then what about the settings? why are they greyed out?
On Tuesday, May 21, 2019, 2:05:22 PM EDT, kozec <notifications@github.com> wrote:
I'm sorry, I'm not entirely sure what are you reporting. But gyroscope is what's am implementing right now, so anything related to it doesn't work yet and that's why it is grayed out in GUI.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.
Sorry about the mess of replying through email
To clarify: The Global settings for everything are also greyed out
Its an experimental build for windows, I imagine that the linux version already has those features.
that's why this is in an issue titled "windows version"
The Global settings for everything are also greyed out
Yes, that's same case. I should have probably write that somewhere.
Does Steam have to be running? Because when i exit Steam the controller goes into Lizard mode and is just kinda of a keyboard and mouse... I can't seem to get sc-controller to work...
Everytime i open scc-daemon.exe i get these messages:
[I] Daemon Starting SC Controller Daemon v0.4.5... [I] Daemon Created control socket C:\Users\xxx\AppData\Roaming\scc\daemon.socket [I] Daemon Initializing drivers... [D] Mapper Creating virtual devices... [d] Mapper Gamepad: <ViGEm x360 Controller 0x0110baf0> [d] Mapper Mouse: <Winapi mouse device 0x0127ea68> [d] Mapper keyboard: <Winapi keyboard device 0x0127eb98> [I] Daemon Activated default profile 'C:\Users\xxx\Downloads\sc-controller-0.4.9.4-win32-pre-release\share\default_profiles\Desktop.sccprofile' [E] USB Failed to open device 10 on bus 2: No such device (it may have been disconnected) [E] sc_by_cable Failed to open '/win32/usb/2/a' [I] Daemon Ready.
Does Steam have to be running? Because when i exit Steam the controller goes into Lizard mode and is just kinda of a keyboard and mouse... I can't seem to get sc-controller to work...
No, running Steam will conflict with sc-controller.
I was having the same problem as rusagent and it took me a few hours to figure out but I realized that the problem might be that the sc-controller folder is not in the OS drive. My OS drive is C: but sc-controller was located in the D: drive. So I moved the folder to the C: drive and the problem was fixed!
You should add a warning that says the sc-controller folder should be in the OS drive. I'm using Windows 10, by the way.
Nevermind... It stopped working again for some reason... The problem isn't the folder location. It's something else.
Edit: And now it's working again... I'm not completely sure what did it but I'm pretty sure it was because I launched sc-controller, turned off emulation, and then manually launched sc-daemon.exe. But now, I don't have to do all that because now it just automatically works when I launch sc-controller. Maybe doing all that fixed something. It's even working when I launch sc-controller from my other hard drives; it doesn't have to be my OS drive.
Can confirm that this isn't working when wired, or that there's something wrong.
... and also, if we don't find a way to disable Lizard Mode all might be useless. Maybe if it won't conflict with Steam, then we could technically create a nulled config and load it up when we use SC Controller.
... and also, if we don't find a way to disable Lizard Mode all might be useless. Maybe if it won't conflict with Steam, then we could technically create a nulled config and load it up when we use SC Controller.
sc-controller disables lizard mode right after it gains access to steam controller, so once I manage to find reason why it can't get access to wired controller, that should be solved as well.
I have a bug that prevents me from opening the "Right Pad" window whenever there's anything set to it. It's openable if there's nothing set to it yet but as soon as I save any sort of binding to it. It's unable to be opened. Is that only happening to me?
New release added, should be fixing all bugs mentioned so far with exception of wired SC issues.
Just tested the new release and no matter what button I click on I get this error
Exception AttributeError: "Parameter instance has no attribute '_cparam'" in <object repr() failed> ignored
Traceback (most recent call last):
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/gui/controller_widget.py", line 64, in on_click
self.app.show_editor(self.id)
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/gui/app.py", line 384, in show_editor
ae = self.choose_editor(action, "", id)
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/gui/binding_editor.py", line 162, in choose_editor
e = ActionEditor(self.app, self.on_action_chosen)
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/gui/action_editor.py", line 106, in __init__
self.load_components()
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/gui/action_editor.py", line 163, in load_components
self.load_component(c)
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/gui/action_editor.py", line 179, in load_component
instance = cls(self.app, self)
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/gui/ae/axis_action.py", line 45, in __init__
self.circular_axis = MouseAction(Rels.REL_WHEEL)
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/actions.py", line 169, in __init__
pars = [ Parameter(v) for v in args ]
File "C:\Users\SteamOS\Downloads\sc-controller-0.4.9.5-win32-pre-release\python/scc/actions.py", line 75, in __init__
raise TypeError("Cannot convert %s" % (repr(value),))
TypeError: Cannot convert <Rels.REL_WHEEL: 1032>
Also, I can't get my DS4 recognized at all. The config is loaded and Emulation is enabled, the ViGEm driver is showing up but when I test the output for it (in Windows' Game Controllers window) I get no output. I'm on Windows 10 64-bit v1809.
There is a WIP Windows branch but there have not been any progress in the last month. Can I expect a release anytime soon?