Syniurge / ShieldControllerWinDriver

HIDUSB lower filter driver for NVIDIA Shield Controller
70 stars 15 forks source link

controller does not work after going from test mode back to regular mode back to test mode #6

Closed goldenfett closed 7 years ago

goldenfett commented 7 years ago

I actually got the controller to work last night then i turned off test mode in windows and it didn't allow the driver to run. I changed test mode back to where it was originally (because the unsigned driver wouldn't work with test mode off in windows). And it gives me code 10. Anything that I can do. I entered these commands

bcdedit -set TESTSIGNING OFF bcdedit -set NOINTEGRITYCHECKS OFF

i did the opposite and put on for both of those. and it still doesen't work :(. Any help would be greatly appreciated and I thank you for doing this work! Thanks

goldenfett commented 7 years ago

So i turned off secure boot in UEFI/BIOS. How would I add a test certificate?

On Thu, May 4, 2017 at 9:03 AM, mirh notifications@github.com wrote:

Most likely you have to add test certificate to driver OR you have secure boot enabled and windows is kindly telling you to fuck off

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Syniurge/ShieldControllerWinDriver/issues/6#issuecomment-299231126, or mute the thread https://github.com/notifications/unsubscribe-auth/AKZR2G2OUu3XmxEmLFI7Z72HkK3YVFyLks5r2fbIgaJpZM4NQr0Y .

mirh commented 7 years ago

Ok, seems like code 10 has nothing to do with signing. Given a reboot triggered it, I wouldn't say it's a hardware problem.. More likely your windows (let me guess, 10?) going stupid. Try to full reboot, uninstall and reinstall the driver.

goldenfett commented 7 years ago

Tried that hehe. Thank you for your assistance. I want to help your project. If i paypal'd you the 260 dollars to make your driver windows-legit would this make it easier for you to get this out to the masses?

On Fri, May 5, 2017 at 4:44 AM, mirh notifications@github.com wrote:

Ok, seems http://www.osronline.com/showThread.CFM?link=278845 like https://communities.intel.com/thread/110632#451088 code 10 has nothing to do with signing. Given a reboot triggered it, I wouldn't say it's a hardware problem.. More likely your windows (let me guess, 10?) going stupid. Try to full https://arduino.stackexchange.com/a/8643 reboot, uninstall and reinstall the driver.

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Syniurge/ShieldControllerWinDriver/issues/6#issuecomment-299443968, or mute the thread https://github.com/notifications/unsubscribe-auth/AKZR2Ir64GZJl6WQDrQwpe1OHfaz3Gxcks5r2wuNgaJpZM4NQr0Y .

mirh commented 7 years ago

It's not mine :s

Also, @Syniurge seems quite MIA atm, so I wouldn't really know. ... ...

dear @nefarius, this driver seems pretty basic. Is it any possibility before doomsday you'll find some time to port/make this fit your grand state of affairs?

nefarius commented 7 years ago

image

mirh commented 7 years ago

Because I know you and HID minidrivers are like bread and nutella. πŸ˜…

nefarius commented 7 years ago

You know me too damn well by now; I've already forked the repo :rofl:

mirh commented 7 years ago

lols

@goldenfett feel free to donate to https://www.patreon.com/nefarius ^^

goldenfett commented 7 years ago

Oh I definitely will so we can get this driver recognized because windows creator edition is kicking my azz hehe Sent from my iPhone

On May 5, 2017, at 12:25 PM, mirh notifications@github.com wrote:

lol

@goldenfett feel free to donate to https://www.patreon.com/nefarius ^^

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

Syniurge commented 7 years ago

What's even happening here? :wink:

Hi, I'm still around, but most of my Github activity is on a fork which why it doesn't show up.

Thanks for your offer @goldenfett, it would certainly help some users to not have to bother with switching testsigning on. But @nefarius seems to have quite a lot of drivers going too, and I'd be perfectly okay with "Nefarius Software Solutions" signing my driver if this can avoid having to buy two code signing certificates. Besides the Shield controller is much more niche than DualShocks.

Anyway I don't think your error is related to signing, I couldn't replicate it. Could you post screenshots of the device manager showing the Shield controller, with "Display -> Device by connection" on? (showing the device hierarchy and the error code)

goldenfett commented 7 years ago

Here is a screenshot of my device manager. And the error code http://i.imgur.com/bJtDLJk.png

http://i.imgur.com/frlhWGK.png

Syniurge commented 7 years ago

I saw the code 10 error too while switching drivers, so try the following, it may help:

  1. Switch back to the generic "USB Input device" driver (right click on the Shield controller device, Update Driver Software.. -> Browse my computer for driver software -> Let me pick from a list of device drivers on my computer)
  2. Unplug then replug the controller
  3. Switch to the "NVIDIA SHIELD Controller" driver
  4. Unplug then replug the controller again
mirh commented 7 years ago

Besides the Shield controller is much more niche than DualShocks.

Well, unless you also want to wire the controller mic, jack and touchpad (which wouldn't be bad though πŸ˜†), just replacing HID isn't all that complex/different/rocket science.

In other news, did you see the effort to make it work over wifi? https://github.com/devmapal/nvidia-shield-controller-driver

goldenfett commented 7 years ago

Trying it right now hmmm and I get the same error. What do you mean by switch to the driver. Do I install it right before because I already installed the inf.

Sent from my iPhone

On May 5, 2017, at 2:04 PM, Elie Morisse notifications@github.com wrote:

I saw the code 10 error too while switching drivers, so this may help, try the following:

Switch back to the generic "USB Input device" driver (right click on the Shield controller device, Update Driver Software.. -> Browse my computer for driver software -> Let me pick from a list of device drivers on my computer) Unplug then replug the controller Switch to the "NVIDIA SHIELD Controller" driver Unplug then replug the controller again β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

Syniurge commented 7 years ago

Trying it right now hmmm and I get the same error. What do you mean by switch to the driver. Do I install it right before because I already installed the inf.

Same way you selected the generic driver (right click on the Shield controller device, Update Driver Software.. -> Browse my computer for driver software -> Let me pick from a list of device drivers on my computer), but in the list choose "NVIDIA SHIELD Controller" instead of "USB Input device".

If this didn't work, could you paste your C:\Windows\INF\setupapi.dev.log file somewhere, for example on https://pastebin.com/?

goldenfett commented 7 years ago

@Syniurge I want to say thank you for your help and great service to humanity good sir. i couldn't post the entire thing on pastebin so i went through that file to find things relating to my nvidia shield controller.

[Device Install (DiShowUpdateDevice) - USB\VID_0955&PID_7214\5&521A615&0&2] Section start 2017/05/05 23:30:32.163 cmd: "C:\WINDOWS\system32\mmc.exe" C:\WINDOWS\system32\devmgmt.msc dvi: {DIF_UPDATEDRIVER_UI} 23:36:00.858 dvi: Using exported function 'WdfCoInstaller' in module 'C:\WINDOWS\system32\WdfCoInstaller01009.dll'. dvi: CoInstaller 1 == WdfCoInstaller01009.dll,WdfCoInstaller dvi: CoInstaller 1: Enter 23:36:00.862 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:00.862 dvi: Default installer: Exit dvi: {DIF_UPDATEDRIVER_UI - exit(0xe000020e)} 23:36:00.863 ndv: {Update Driver Software Wizard - USB\VID_0955&PID_7214\5&521A615&0&2} dvi: {DIF_SELECTDEVICE} 23:36:11.813 dvi: CoInstaller 1: Enter 23:36:11.814 dvi: CoInstaller 1: Exit dvi: {DIF_SELECTDEVICE - exit(0xe000020e)} 23:36:11.816 ndv: Driver package 'C:\WINDOWS\System32\DriverStore\FileRepository\nvshldctrl.inf_amd64_a777df2098692b9d\nvshldctrl.inf' is already imported. sto: {Setup Import Driver Package: C:\WINDOWS\INF\oem10.inf} 23:36:20.590 sto: Driver package already imported as 'oem10.inf'. !!! inf: Section [sourcedisksfiles] is defined multiple times. Code = 1209, Line = 18 !!! inf: Section [destinationdirs] is defined multiple times. Code = 1209, Line = 24 sto: {Setup Import Driver Package - exit (0x00000000)} 23:36:20.592 dvi: Searching for hardware ID(s): dvi: usb\vid_0955&pid_7214&rev_0525 dvi: usb\vid_0955&pid_7214 dvi: Searching for compatible ID(s): dvi: usb\class_03&subclass_00&prot_00 dvi: usb\class_03&subclass_00 dvi: usb\class_03 dvi: Class GUID of device changed to: {745a17a0-74d3-11d0-b6fe-00a0c90f57da}. dvi: {DIF_DESTROYPRIVATEDATA} 23:36:20.595 dvi: CoInstaller 1: Enter 23:36:20.595 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.596 dvi: Default installer: Exit dvi: {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)} 23:36:20.596 dvi: {Plug and Play Service: Device Install for USB\VID_0955&PID_7214\5&521A615&0&2} dvi: Driver INF Path: C:\WINDOWS\INF\oem10.inf dvi: Driver Node Name: nvshldctrl.inf:c14ce884b551b540:nvshldctrl.Inst:20.13.41.563:usb\vid_0955&pid_7210, dvi: Driver Store Path: C:\WINDOWS\System32\DriverStore\FileRepository\nvshldctrl.inf_amd64_a777df2098692b9d\nvshldctrl.inf dvi: Searching for hardware ID(s): dvi: usb\vid_0955&pid_7214&rev_0525 dvi: usb\vid_0955&pid_7214 dvi: Searching for compatible ID(s): dvi: usb\class_03&subclass_00&prot_00 dvi: usb\class_03&subclass_00 dvi: usb\class_03 dvi: Class GUID of device changed to: {745a17a0-74d3-11d0-b6fe-00a0c90f57da}. dvi: {Core Device Install} 23:36:20.615 ! pol: Selected driver node does not match this device (force-install) dvi: {Install Device - USB\VID_0955&PID_7214\5&521A615&0&2} 23:36:20.616 dvi: Parent device: USB\ROOT_HUB30\4&1148bc98&0&0 ! dvi: Unable to determine matching device ID for oem10.inf. Error = 0xE0000228 ! dvi: Unable to configure device, falling back to standard device installation. dvi: {DIF_ALLOW_INSTALL} 23:36:20.618 dvi: Using exported function 'WdfCoInstaller' in module 'C:\WINDOWS\system32\WdfCoInstaller01009.dll'. dvi: CoInstaller 1 == WdfCoInstaller01009.dll,WdfCoInstaller dvi: CoInstaller 1: Enter 23:36:20.622 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.622 dvi: Default installer: Exit dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 23:36:20.623 dvi: {DIF_INSTALLDEVICEFILES} 23:36:20.623 dvi: CoInstaller 1: Enter 23:36:20.624 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.624 dvi: Default installer: Exit dvi: {DIF_INSTALLDEVICEFILES - exit(0x00000000)} 23:36:20.626 flq: File 'C:\WINDOWS\system32\DRIVERS\nvshldctrl.sys' pruned from copy. flq: File 'C:\WINDOWS\system32\WdfCoInstaller01009.dll' pruned from copy. dvi: {DIF_REGISTER_COINSTALLERS} 23:36:20.654 dvi: Reset Device: Resetting device configuration. 23:36:20.655 dvi: Reset Device: Resetting device configuration completed. 23:36:20.656 dvi: CoInstaller 1: Enter 23:36:20.656 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.656 dvi: {DIF_DESTROYPRIVATEDATA} 23:36:20.657 dvi: CoInstaller 1: Enter 23:36:20.657 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.658 dvi: Default installer: Exit dvi: {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)} 23:36:20.658 dvi: Default installer: Exit dvi: {DIF_REGISTER_COINSTALLERS - exit(0x00000000)} 23:36:20.659 dvi: {DIF_INSTALLINTERFACES} 23:36:20.659 dvi: Using exported function 'WdfCoInstaller' in module 'C:\WINDOWS\system32\WdfCoInstaller01009.dll'. dvi: CoInstaller 1 == WdfCoInstaller01009.dll,WdfCoInstaller dvi: CoInstaller 1: Enter 23:36:20.660 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.660 dvi: Default installer: Exit dvi: {DIF_INSTALLINTERFACES - exit(0x00000000)} 23:36:20.661 dvi: {DIF_INSTALLDEVICE} 23:36:20.661 dvi: CoInstaller 1: Enter 23:36:20.661 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.668 dvi: {Install DEVICE} dvi: {Writing Device Properties} dvi: Strong Name=oem10.inf:c14ce884b551b540:nvshldctrl.Inst:20.13.41.563:usb\vid_0955&pid_7210 dvi: {Writing Device Properties - Complete} inf: AddService=nvshldctrl,,nvshldctrl_Service_Inst, (nvshldctrl.inf line 49) dvi: Add Service: Modified existing service 'nvshldctrl'. inf: AddService=HidUsb,0x000001fa,HidUsb_AddService (nvshldctrl.inf line 50) dvi: Add Service: Modified existing service 'HidUsb'. dvi: {Install DEVICE exit (0x00000000)} dvi: Install Device: Configuring device class. 23:36:20.674 dvi: Install Device: Configuring device class completed. 23:36:20.675 dvi: Install Device: Starting device. 23:36:20.675 dvi: Install Device: Starting device completed. 23:36:20.908 !!! dvi: Device not started: Device has problem: 0x0a (CM_PROB_FAILED_START), problem status: 0xc000009c. dvi: Default installer: Exit dvi: CoInstaller 1: Enter (Post Processing) 23:36:20.909 dvi: CoInstaller 1: Exit (Post Processing) dvi: {DIF_INSTALLDEVICE - exit(0x00000000)} 23:36:20.915 dvi: {DIF_NEWDEVICEWIZARD_FINISHINSTALL} 23:36:20.915 dvi: CoInstaller 1: Enter 23:36:20.915 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.916 dvi: Default installer: Exit dvi: {DIF_NEWDEVICEWIZARD_FINISHINSTALL - exit(0xe000020e)} 23:36:20.916 ! dvi: Queueing up error report since device has a PnP problem... dvi: {Install Device - exit(0x00000000)} 23:36:20.984 dvi: {Core Device Install - exit(0x00000000)} 23:36:20.984 dvi: {DIF_DESTROYPRIVATEDATA} 23:36:20.984 dvi: CoInstaller 1: Enter 23:36:20.985 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.985 dvi: Default installer: Exit dvi: {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)} 23:36:20.985 ump: {Plug and Play Service: Device Install exit(00000000)} ndv: {Install Related Drivers} 23:36:20.989 ndv: {Install Related Drivers: exit(0x00000000)} 23:36:20.990 dvi: {DIF_NEWDEVICEWIZARD_FINISHINSTALL} 23:36:20.996 dvi: Using exported function 'WdfCoInstaller' in module 'C:\WINDOWS\system32\WdfCoInstaller01009.dll'. dvi: CoInstaller 1 == WdfCoInstaller01009.dll,WdfCoInstaller dvi: CoInstaller 1: Enter 23:36:20.997 dvi: CoInstaller 1: Exit dvi: Default installer: Enter 23:36:20.997 dvi: Default installer: Exit dvi: {DIF_NEWDEVICEWIZARD_FINISHINSTALL - exit(0xe000020e)} 23:36:20.997 ndv: {Update Driver Software Wizard exit(00000000)} <<< Section end 2017/05/05 23:36:24.244 <<< [Exit status: SUCCESS]

[Device Install (DiShowUpdateDevice) - USB\VID_0955&PID_7214\5&521A615&0&2] Section start 2017/05/05 23:36:00.856 cmd: "C:\WINDOWS\system32\mmc.exe" C:\WINDOWS\system32\devmgmt.msc

hopefully i copy and pasted the right stuff

nefarius commented 7 years ago

Here you go. @mirh hopefully this was fast enough πŸ˜‰ Beware it's untested since I don't own the hardware.

goldenfett commented 7 years ago

wow awesome the driver is signed now. I still have the same error message :(. I have no idea what the issue could be

On Sat, May 6, 2017 at 8:53 AM, Benjamin HΓΆglinger <notifications@github.com

wrote:

Here you go. https://github.com/nefarius/ShieldControllerWinDriver/releases/tag/v1.0.0.0 @mirh https://github.com/mirh hopefully this was fast enough πŸ˜‰ Beware it's untested since I don't own the hardware.

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Syniurge/ShieldControllerWinDriver/issues/6#issuecomment-299648601, or mute the thread https://github.com/notifications/unsubscribe-auth/AKZR2NreY79Lhxta-KThWKCJyTf0jAa4ks5r3JeWgaJpZM4NQr0Y .

nefarius commented 7 years ago

Just attach the setupapi.dev.log file here instead of pasting, it ruins the formatting and is impossible to read.

Syniurge commented 7 years ago

@goldenfett so the issue is that your controller is the new Shield controller (different Product ID). I had no idea if the driver would still be compatible, it would have if the HID reports remained the same but your error confirms that this isn't the case.

If you want to help get the new controllers supported, you need to provide me its HID report descriptor, extracted for example with BusDog: https://github.com/djpnewton/busdog

The HID Report Descriptor is the longest Hex value (should be around 268 bytes) that should show up at the top of the "Trace" tab:

busdog hid descriptor

Then paste the descriptor and the previous line here, you should have something like: Id Type Time Length Hex Ascii 30 In (USB URB Function: 8) 0.001751 34 09 02 22 00 01 01 00 80 fa 09 04 00 00 01 03 00 00 0e 09 21 11 01 00 01 22 f1 00 07 05 81 03 40 00 02 .."................!...."......@.. 30 In (USB URB Function: 8) 0.010250 241 05 01 15 00 09 05 a1 01 85 01 05 09 15 00 25 01 75 01 95 0a 09 01 09 02 09 04 09 05 09 07 09 08 09 0e 09 0f 09 09 09 0c 81 02 05 0c 95 06 09 e2 09 e9 09 ea 09 30 0a 24 02 0a 23 02 81 02 05 01 09 39 25 07 35 00 46 0e 01 65 14 75 04 95 01 81 02 81 03 09 01 a1 00 75 10 95 04 15 00 26 ff ff 35 00 46 ff ff 09 30 09 31 09 32 09 35 81 02 05 02 95 02 09 c5 09 c4 81 02 c0 a1 01 19 01 29 03 26 ff ff 95 03 75 10 91 02 c0 c0 05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01 29 03 25 01 75 01 95 03 81 02 05 09 09 05 95 01 81 02 75 04 81 01 05 01 09 30 09 31 15 81 25 7f 75 10 95 02 81 06 c0 c0 06 de ff 09 01 a1 01 05 ff 19 01 29 40 85 fd 15 00 25 ff 95 40 75 08 81 02 c0 06 de ff 09 03 a1 01 19 01 29 40 85 fc 95 40 75 08 b1 02 c0 ..............%.u....................................0.$..#......9%.5.F..e.u...........u.....&..5.F...0.1.2.5.................).&....u.....................).%.u.............u......0.1..%u..................)@....%..@u.............)@...@u....

Syniurge commented 7 years ago

@nefarius NICE! I will direct new users towards your release in the README if you're okay with that (with of course a warning that I cannot vouch for your trustworthiness but that you seem like a decent guy :D). Thanks for doing this!

mirh commented 7 years ago

Here you go. @mirh hopefully this was fast enough

Too bad I haven't the hardware πŸ˜‚ I guess like you could add Elie to authorized collaborators and call it a day? :p Or he could do viceversa, I wouldn't know

nefarius commented 7 years ago

@Syniurge I respect your trust in me. It's my way of giving back to the community and if it helps yet another developer I'm happy πŸ˜„ I made a few adjustments already; should I create a pull request or would you like to keep things "separate"?

Also note that I also included my name in the version information so users can see that it's a build by a third-party (me) so you're not responsible for my fuck-ups (if any). Hope that's ok with you.

nefarius commented 7 years ago

@mirh good idea, I had no idea about this feature.

goldenfett commented 7 years ago

Tell me if I did it wrong @Syniurge. Ur a godsend dood

27 In (USB URB Function: 8) 0.000000 18 12 01 00 02 e0 01 01 40 55 09 14 72 25 05 01 02 00 01 .......@U..r%.....
27 In (USB URB Function: 8) 0.000759 9 09 02 22 00 01 01 00 c0 00 .."......
27 In (USB URB Function: 8) 0.000335 34 09 02 22 00 01 01 00 c0 00 09 04 00 00 01 03 00 00 00 09 21 11 01 00 01 22 0e 01 07 05 81 03 40 00 01 .."................!...."......@..
27 In (USB URB Function: 8) 0.006298 270 05 01 09 05 a1 01 85 01 75 01 95 08 81 01 05 01 75 08 95 01 25 07 46 3b 01 65 14 09 39 81 42 65 00 05 09 15 00 25 01 09 01 09 02 09 04 09 05 09 07 09 08 09 0e 09 0f 09 0c 09 1e 09 1d 09 1c 75 01 95 0c 81 02 95 04 81 03 05 02 09 c5 09 c4 75 10 95 02 15 00 26 ff ff 35 00 46 ff ff 81 02 05 01 75 10 95 04 15 00 26 ff ff 35 00 46 ff ff a1 00 09 30 09 31 09 32 09 35 81 02 c0 05 0c 25 01 0a 23 02 0a 24 02 0a 21 02 75 01 95 03 81 02 75 05 95 01 81 03 05 0c 09 01 a1 01 15 00 25 01 09 e9 09 ea 75 01 95 02 81 02 95 01 81 03 09 cd 95 01 81 02 95 04 81 03 c0 75 08 95 0e 81 01 06 00 ff 09 01 a1 01 15 00 26 ff 00 09 01 85 04 75 08 95 20 91 02 09 01 85 03 75 08 95 20 81 02 c0 06 00 ff 09 01 a1 01 15 00 26 ff 00 09 01 85 fd 75 10 95 74 81 02 c0 06 00 ff 09 01 a1 01 15 00 26 ff 00 09 01 85 0a 75 08 95 20 81 02 c0 c0 ........u.......u...%.F;.e..9.Be.....%.........................u...............u.....&..5.F......u.....&..5.F.....0.1.2.5.....%..#..$..!.u.....u.............%.....u....................u..............&......u.. ......u.. ............&......u..t............&......u.. ....

goldenfett commented 7 years ago

Here it is in image form the hex version: http://imgur.com/C2FibbF

and ascii expanded http://imgur.com/nFlBDmC

@Syniurge tell me if you need any more information. thanks again

mirh commented 7 years ago

A pastebin or a simple text file perhaps? ._.

goldenfett commented 7 years ago

@mirh https://pastebin.com/Rn2s2i68. sorry im a github noob lol @syniurge here is the paste bin sorry extra newby here lol

Syniurge commented 7 years ago

@goldenfett it's perfect thanks. So the new controller model is pretty different HID-wise, however there's nothing inside the HID report descriptor that prevents it from begin detected out-of-the-box as a gamepad by DirectInput (i.e it doesn't suffer from the original issue my driver was trying to fix), I just tried with vhidmini2 and it's being listed, buttons and axis are detected. So.. isn't the gamepad already working without my driver (except for rumble and the volume touchpad)? Is it detected by x360ce?

@nefarius please make a PR, your changes would be nice to merge.

goldenfett commented 7 years ago

@Syniurge I don't believe that the controller is being detected by x360ce. The driver when being installed still gives the error. It still is being detected as a gamepad.

Syniurge commented 7 years ago

Sorry I forgot to specify: you need to uninstall the Shield controller driver first (right-click in the device manager -> Uninstall device, tick Uninstall the driver software for this device before accepting -> Unplug -> Replug the controller), so the generic Microsoft driver takes over. Don't use my driver at all.

Here's my "virtual 2017 shield controller" being detected in x360ce: virtual hid device 2017 shield controller

Your controller should be detected too, and the descriptor appears standard so x360ce should at least pick buttons and axis.

goldenfett commented 7 years ago

So I downloaded that emulator. And all of the "HID gamepad properties" function. I just don't know why it wont work in any games or for anything. What should I do @Syniurge. Any more diagnostics I should send you?

Syniurge commented 7 years ago

Good news then, the new Shield controller model doesn't seem to need a custom driver, most of its functionality already works with the default Microsoft driver (except rumble).

I just don't know why it wont work in any games or for anything.

That's because you need x360ce. Today's world of PC game controllers can be a bit confusing, but nowadays for standard gamepads x360ce is a requirement, because most modern PC games rely on Xinput and have bad or no support for DirectInput.

Learn to use x360ce, and your Shield controller should work. Basically:

You should hear a bip at the game startup indicating that x360ce has kicked in, and then your gamepad should come to life.

I've googled a bit and indeed a few people report that the 2017 controller works with the generic Microsoft driver. So all I can offer is adding rumble support at some point.

goldenfett commented 7 years ago

The issue that I have with x360ce is that it wont let me specfically bind the z and y axis (if i try and bind one it overwrites the other). Idk what to do sorry if im being annoying @Syniurge. I really appreciate your help

goldenfett commented 7 years ago

One last question: Does NVIDIA have a windows 10 fix. Because now I have a GTX 1080 and i was wondering if I could get the driver through the companys means?

mirh commented 7 years ago

The issue that I have with x360ce is that it wont let me specfically bind the z and y axis (if i try and bind one it overwrites the other)

Try to use half-axis

Syniurge commented 7 years ago

One last question: Does NVIDIA have a windows 10 fix. Because now I have a GTX 1080 and i was wondering if I could get the driver through the companys means?

Well this is where you should have checked first :grin: , because yes, NVIDIA does provide a Xinput driver bundled with Geforce Experience, that is usable only by owners of NVIDIA graphics cards. And that driver supports vibration, touchpad, etc.

My driver is meant primarily for people with AMD or Intel graphics cards. Until I released it 9 months ago the gamepad was unusable for us (I had mine for 1 year, utterly useless until I took the time to investigate). For some history: https://forums.geforce.com/default/topic/775777/wired-pc-support-for-shield-controller/

With Geforce Experience you do not need x360ce since it already provides Xinput support.

Idk what to do sorry if im being annoying @Syniurge. I really appreciate your help

Not at all, this cleared a lot of things for me. I was under the impression from reading the Shield tablet forum that the new controller needed Geforce Experience too to become usable, and some people were asking whether my driver supported the new model or not (the Product ID changed, and noone AFAIK tried to force the driver like you did). Now I have the answers, and I have the HID report descriptor so I can implement rumble support (and perhaps some other tweaks, for ex. my guess is that the triggers probably aren't being detected like on the old model) for AMD users.

goldenfett commented 7 years ago

@Syniurge I'm glad to have helped. I have GeForce Experience but it seems that the controller is still unrecognized/or I haven't found the correct drivers. Thanks!

goldenfett commented 7 years ago

I know I must sound stupid but I can't figure out how to get Nvidia's driver working/where to find it ugggggh. usually im not this bad lol

goldenfett commented 7 years ago

So i uninstalled and reinstalled geforce experience and nada. idk whats wrong. could i be using a low bandwith micro usb cable or something along those lines?

goldenfett commented 7 years ago

nevermind it started working all of the sudden???? hopefully I didn't annoy you too much lol

Syniurge commented 7 years ago

All good then, closing the issue.