Pro Controller supports PC without any extra software

Discussion in 'Switch - Console, Accessories and Hardware' started by xtheman, Feb 23, 2017.

  1. xtheman
    OP

    xtheman GBAtemp Guru

    Member
    5,844
    5,264
    Jan 28, 2016
    United States
    So according to this tweet the Switch Pro Controller works on PC (likely as dinput).
    I might just hunting down one in the future thanks to this feature alone.

    Edit: Video
     
    Last edited by xtheman, Feb 28, 2017
  2. osaka35

    osaka35 Instrucional Designer

    Member
    1,709
    1,202
    Nov 20, 2009
    United States
    Silent Hill
    Good news! Hopefully it'll be fine with dolphin, though those digital triggers won't work well with sunshine.
     
  3. x65943

    x65943 Resident Greekaboo, Amateur Dog Father

    Member
    2,547
    2,110
    Jun 23, 2014
    United States
    Indiana
    I'm glad that nintendo is finally realizing that their controllers will be worth more if they support pc.
     
    TheCyberQuake likes this.
  4. VinLark

    VinLark This machine kills bourgeois sentimentality.

    Member
    4,093
    4,788
    Jun 11, 2016
    Trinidad and Tobago
    4chan and other wonders of the internet
    Nice, but i'll stick with my Xbox controller, Gamecube and Wii U pro
     
  5. Xzi

    Xzi Console Hacker and PC Gamer

    Member
    3,037
    1,866
    Dec 26, 2013
    United States
    Spiraling Out
    Excellent, that makes 5 USB controllers that'll work with my PC. Two XB1, two Shield TV.
     
  6. Sketchy1

    Sketchy1 gbatemp's shadiest warez dealer

    Member
    1,492
    370
    Aug 9, 2016
    United States
    so nintendo suddenly looking @ pc?
    im actually surprised
     
  7. Yil

    Yil GBAtemp Advanced Maniac

    Member
    1,981
    592
    Feb 19, 2014
    Canada
    Well, I get 3 pc compatible controllers with the pro controller.
     
  8. xtheman
    OP

    xtheman GBAtemp Guru

    Member
    5,844
    5,264
    Jan 28, 2016
    United States
    Bump, new video
     
  9. knubie

    knubie Newbie

    Newcomer
    6
    1
    Jan 24, 2015
    United States
    Looks like the gyros and rumble don't work out of the box.

    I'd be interested in writing a custom driver for this but I have never done that before so I'm not sure where to even start.
     
  10. WiiUBricker

    WiiUBricker Insert Custom Title

    Member
    6,892
    3,915
    Sep 19, 2009
    Argentina
    Espresso
    It would be more interesting if someone can get the Joy-Cons to work on a PC.
     
  11. AlanLC

    AlanLC GBAtemp Regular

    Member
    153
    55
    Aug 18, 2014
    Brazil
    I want Gyroscopy Working
     
  12. froggestspirit

    froggestspirit D/P/Pt Demix Guy

    Member
    1,075
    528
    Jul 28, 2011
    United States
    someone did, but one joy-con per player. (could probably be worked around with a special driver or mapper).

    Nintendo is smart to make this PC compatible, as it provides no cons, and more incentive to buy one.
     
    VinLark and NutymcNuty like this.
  13. toomanyluigis

    toomanyluigis Member

    Newcomer
    12
    1
    Feb 24, 2012
    will this work on windows 7? All videos seem to show windows8/10
     
  14. knubie

    knubie Newbie

    Newcomer
    6
    1
    Jan 24, 2015
    United States
    Over the weekend I started playing around with the pro controller and was able to get the HID Report Descriptor for it:

    Code:
    0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
    0x09, 0x05,        // Usage (Game Pad)
    0xA1, 0x01,        // Collection (Application)
    0x06, 0x01, 0xFF,  //   Usage Page (Vendor Defined 0xFF01)
    0x85, 0x21,        //   Report ID (33)
    0x09, 0x21,        //   Usage (0x21)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x30,        //   Report Count (48)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x85, 0x30,        //   Report ID (48)
    0x09, 0x30,        //   Usage (0x30)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x30,        //   Report Count (48)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x85, 0x31,        //   Report ID (49)
    0x09, 0x31,        //   Usage (0x31)
    0x75, 0x08,        //   Report Size (8)
    0x96, 0x69, 0x01,  //   Report Count (361)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x85, 0x32,        //   Report ID (50)
    0x09, 0x32,        //   Usage (0x32)
    0x75, 0x08,        //   Report Size (8)
    0x96, 0x69, 0x01,  //   Report Count (361)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x85, 0x33,        //   Report ID (51)
    0x09, 0x33,        //   Usage (0x33)
    0x75, 0x08,        //   Report Size (8)
    0x96, 0x69, 0x01,  //   Report Count (361)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x85, 0x3F,        //   Report ID (63)
    0x05, 0x09,        //   Usage Page (Button)
    0x19, 0x01,        //   Usage Minimum (0x01)
    0x29, 0x10,        //   Usage Maximum (0x10)
    0x15, 0x00,        //   Logical Minimum (0)
    0x25, 0x01,        //   Logical Maximum (1)
    0x75, 0x01,        //   Report Size (1)
    0x95, 0x10,        //   Report Count (16)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x05, 0x01,        //   Usage Page (Generic Desktop Ctrls)
    0x09, 0x39,        //   Usage (Hat switch)
    0x15, 0x00,        //   Logical Minimum (0)
    0x25, 0x07,        //   Logical Maximum (7)
    0x75, 0x04,        //   Report Size (4)
    0x95, 0x01,        //   Report Count (1)
    0x81, 0x42,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
    0x05, 0x09,        //   Usage Page (Button)
    0x75, 0x04,        //   Report Size (4)
    0x95, 0x01,        //   Report Count (1)
    0x81, 0x01,        //   Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x05, 0x01,        //   Usage Page (Generic Desktop Ctrls)
    0x09, 0x30,        //   Usage (X)
    0x09, 0x31,        //   Usage (Y)
    0x09, 0x33,        //   Usage (Rx)
    0x09, 0x34,        //   Usage (Ry)
    0x16, 0x00, 0x00,  //   Logical Minimum (0)
    0x27, 0xFF, 0xFF, 0x00, 0x00,  //   Logical Maximum (65535)
    0x75, 0x10,        //   Report Size (16)
    0x95, 0x04,        //   Report Count (4)
    0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x06, 0x01, 0xFF,  //   Usage Page (Vendor Defined 0xFF01)
    0x85, 0x01,        //   Report ID (1)
    0x09, 0x01,        //   Usage (0x01)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x30,        //   Report Count (48)
    0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x85, 0x10,        //   Report ID (16)
    0x09, 0x10,        //   Usage (0x10)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x30,        //   Report Count (48)
    0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x85, 0x11,        //   Report ID (17)
    0x09, 0x11,        //   Usage (0x11)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x30,        //   Report Count (48)
    0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0x85, 0x12,        //   Report ID (18)
    0x09, 0x12,        //   Usage (0x12)
    0x75, 0x08,        //   Report Size (8)
    0x95, 0x30,        //   Report Count (48)
    0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0,              // End Collection
    
    // 170 bytes
    It looks like gyro inputs are missing (which is to be expected). Anyone have any ideas of where to go next with this?
     
    I pwned U! likes this.