Connecting Joycon's to PC Tutorial (With Analog Support!)

Discussion in 'Switch - Console, Accessories and Hardware' started by NoThisIsStupider, May 19, 2017.

  1. NoThisIsStupider
    OP

    NoThisIsStupider GBAtemp Regular

    Member
    127
    49
    Dec 6, 2015
    Canada
    Alright, gonna try my hand at guide writing. As of yesterday it came to my attention a man named mfosse made a driver for Windows that allows you to connect Joycons to your computer and use them with FULL ANALOG SUPPORT. Considering before the analog sticks were just mapped to dpads, this is a pretty big breakthrough that went relatively unnoticed. So here we go:

    I made a video version of this guide! I'll reupload this with updates when they are needed. Not in it for the views. Check it out here:
    Warning: Spoilers inside!

    IMPORTANT NOTE: PAIRING JOYCONS VIA BLUETOOTH
    Just to make sure nobody messes this up, I'm gonna jot down how to pair the joycons with bluetooth. Note that this is written for Windows 10, however it should work for Win8 as well. Windows 7 should be able to work with the Joycons, but I'm not sure if you need a different bluetooth stack.

    To pair: On each Joycon, there is a small sync button, located directly beside the lights that blink. Press this button once quickly to turn the Joycon off, then press and hold it until the lights start flashing. Open the windows 8/10 bluetooth menu, and pair both "Joycon (R)" and "Joycon (L)", order does not matter. If you pair them with a different computer, or they just don't seem to be working, try removing them from the bluetooth menu, then pairing them again. That's it. Guide continues normally below:
    Warning: Spoilers inside!

    • Download the repo as a zip, and extract to somewhere on your computer the contents of:
    • \JoyCon-Driver-master\joycon-driver\build\Win32\Release\
    • The guide splits here slightly, depending on if you want separate/single joycons or both combined into one controller.
    • If you want to use a single joycon or want to use them separately, connect the joycons via bluetooth, run the exe, and uncheck combined mode.
    • If you want combined, just connect both joycons, run the Joycon-Driver and leave the settings at the default
    • One more thing. If you want xInput, which will let you use the Joycons for any game that supports the 360 controller, it's quite simple to set that up.
    • Download xOutput.
    • Extract the contents of the zip to somewhere on your computer.
    • Run the SCPdriver installer.
    • Once that has finished up, restart your computer and then simply run XOutput. Disable any controllers that aren't vJoy, and if there's more than 1 vJoy option, you want the topmost vJoy, this is assuming you are using combined joycons. If separate, keep both vJoy entries enabled.
    • Click the settings gear and set all the options to what I've found works for a combined Joycon setup, in the image below.
    • Warning: Spoilers inside!
    • I haven't actually found the binds you need for separate joycons, they will be slightly different for the right and left ones. If you want to do it yourself, you can use the monitor vJoy applet in the start menu's vJoy folder to show you what button does what.
    Troubleshooting

    I'm going to collect solutions to problems here. This is what I've run into so far:

    It says it can't connect to vJoy or something similar.
    If you get this, make sure you have your vJoy updated, and check that everything about your settings matches the above pictures in the spoiler. Otherwise, make sure nothing else is using the driver, as that will also cause issues.

    It says can't find VCRuntime140D OR Shows Error Code 0xc000007b

    This is very likely going to happen to you, as the only solution I've found thus far is a bit stupid. Basically go download Visual Studio Community edition, you need the debug C++ redistributes, which are only able to be downloaded through visual studio. If somebody finds a better solution to this, do let me know.
    As it turns out, you can just get your vcruntime140.dll from C:\Windows\System32 and copy it (not move!) over to the joycon-driver folder, then rename the copy vcruntime140d.dll, and it should work.
    Edit: If after doing this the program crashes, try getting the vcruntime140.dll from C:\Windows\SysWOW64 instead, move it into the joycon-driver folder, and rename it vcruntime140d.dll.

    It says can't find Ucrtbased or something similar
    This one seems to need the visual studio install, not sure if there is a workaround for this one.

    Y Axis on sticks is reversed
    This seems to be a bug in the code. This can be solved by following the XOutput part of the guide (it accounts for this), or if you really need dInput (what vJoy uses by default), you could use something like UCR.

    I clicked on the github and the developer already wrote a guide in the readme. Why did you make another one?
    The guide in the github isn't quite as simple and friendly to people who aren't power users. I aimed this guide more towards that crowd, and also added some things like this troubleshooting section and the xOutput part of the guide.

    There's a memory leak!
    If your getting a memory leak, so far the only cause I've found is if you're using the Toshiba Bluetooth stack, after I reverted back to MS, mine stopped, so I wouldn't recommend Toshiba stack unless you have 64GB of ram or something.

    There's lots of lag!
    That's usually caused by interference from your computer, one thing to try is a fork of the driver you can find in a issue thread on the github, it apparently fixes the lag. If that doesn't work, try getting a USB Male to Female cord, and/or a new large bluetooth dongle. The problem directly below is also common with this issue, but not always. EDIT: Also try this fork of the driver: https://github.com/HollyJean/JoyCon-Driver, I've heard it can help, but if the problem remains, the info from before the edit may be what you need.

    Only one Joycon seems to be working!
    First off, make sure you used custom.bat or combine.bat, or the Joycons will be in different vJoy devices. If they're both in vJoy device 1, but you can only see inputs from one of them, chances are you have a low end bluetooth dongle and it doesn't like having more than one device connected. The solution is the same as the problem directly above, Male to Female USB, and/or a new bluetooth dongle.

    Windows wants a code to pair the Joycons!
    This can be fixed by pairing from the "Add a device" menu in Devices and Printers. If you don't know how to get to Devices and Printers, it's in the control panel, should be easy to find once you open the control panel.
     
    Last edited by NoThisIsStupider, Sep 24, 2017


  2. whimsicott0107

    whimsicott0107 Newbie

    Newcomer
    3
    0
    Nov 12, 2016
    It say i'm missing ucrtbased.dll too, any solution?
    Edit: solved with windows 10 sdk (:
     
    Last edited by whimsicott0107, May 19, 2017
  3. cros107

    cros107 Advanced Member

    Newcomer
    50
    8
    Apr 3, 2016
    I'm getting the error "Unable to read from joycon, disconnecting" and I'm unable to use the joycon. What do I do?
     
  4. NoThisIsStupider
    OP

    NoThisIsStupider GBAtemp Regular

    Member
    127
    49
    Dec 6, 2015
    Canada
    I get that message when I disconnect a Joycon without closing the program. What Bluetooth stack are you using? Toshiba doesn't seem to work, (EDIT: Hm, it does seem to work on my desktop, but not my laptop, MS BT works on both though) (EDIT2: So after using Toshiba stack with it for awhile, it seems to have a memory leak, but ONLY if you use the Toshiba stack, MS stack works fine, so yeah, don't use Toshiba) you should use the default windows 8/10 bluetooth stack, I'll go test a couple others now actually, see if there's an alternative to MS BT stack and Toshiba.
     
    Last edited by NoThisIsStupider, May 21, 2017
  5. cros107

    cros107 Advanced Member

    Newcomer
    50
    8
    Apr 3, 2016
    I'm using whatever came with my Lenovo Yoga, which I assume to be the default Win 8 stack.

    Also, as for the DLLs that people are missing, I just downloaded them off the internet and put them in the folder with the exe. No need to install VS.

    Edit: I tried again, and it's working now! Would you happen to know how I use the combined controller and analog support with project64?
     
    Last edited by cros107, May 21, 2017
  6. Xabring

    Xabring GBAtemp Fan

    Member
    318
    134
    Nov 21, 2013
    Mexico
    Somewhere, Earth.
    Why they don't STICK THIS!!!! this is all I needed to play No manĀ“s sky with joy!!!! and I don't care of the CONS!!! :P
     
  7. NoThisIsStupider
    OP

    NoThisIsStupider GBAtemp Regular

    Member
    127
    49
    Dec 6, 2015
    Canada
    I wouldn't recommend downloading DLLs off the internet, that's how you get a virus or get a program that doesn't work correctly, in this case it's fine though, if it works.

    As for PJ64, if your using the latest (2.3 I believe?) you can just configure the controller and use XInput (sidenote: make sure you have XOutput set up), if an older version such as 1.6, you'll need to download the latest N-Rage input plugin (comes with 2.3), which can be found through google, and stick it in the plugins folder in the directory that PJ64 is in. From there just open controller settings, check the Xinput box, and configure it.
     
  8. mordorer

    mordorer Advanced Member

    Newcomer
    83
    54
    Jan 17, 2015
    Italy
    worked also with the PRO switch gamepad. thank you
     
  9. StarGazerTom

    StarGazerTom GBAtemp Advanced Fan

    Member
    858
    578
    Feb 2, 2015
    Nice that it all works now, just wish it was all in 1 program/driver rather than having to install multiple pieces of software. Still waiting for that.
     
  10. NoThisIsStupider
    OP

    NoThisIsStupider GBAtemp Regular

    Member
    127
    49
    Dec 6, 2015
    Canada
    An installer will come out that combines vJoy, XOutput, and the driver itself into one package, heck if I knew how to make installers I could whip something up. One thing I could do is make a little batch script to load everything at once, would require putting everything in the same folder though.
     
  11. thegamingbox

    thegamingbox Newbie

    Newcomer
    5
    0
    May 25, 2017
    Canada
    cant seem to get the joycon driver to work

    [​IMG]
     
  12. NoThisIsStupider
    OP

    NoThisIsStupider GBAtemp Regular

    Member
    127
    49
    Dec 6, 2015
    Canada
    From a quick google of the error it looks like something .NET related, try updating your .NET framework stuff, it's going to be one of the first results on google.
     
  13. thegamingbox

    thegamingbox Newbie

    Newcomer
    5
    0
    May 25, 2017
    Canada
    i did that
     
  14. forerofore

    forerofore Member

    Newcomer
    16
    7
    May 1, 2011
    Colombia
    you used the wrong VCRuntime140.dll to make VCRuntime140D.dll. you should delete the one you copied and grab the other one (there is a 32 bit and a 64bit version of the same file) (one is in system32 and the other one is in syswow64)

    the error shows up because you tried to run a 32 bit program with a 64 bit dll
     
  15. thegamingbox

    thegamingbox Newbie

    Newcomer
    5
    0
    May 25, 2017
    Canada
    well i got the program to work, but now i cant get both joycons to stay connected to pc
     
  16. NoThisIsStupider
    OP

    NoThisIsStupider GBAtemp Regular

    Member
    127
    49
    Dec 6, 2015
    Canada
    Oh really? I'll add that to the op.
    Sounds like a bluetooth dongle issue, one thing you can try is to connect them, then go into the device manager, right click the joycons, and click uninstall driver. After a little while they will show up in the bluetooth menu again and you can remove and repair. That will fix any driver issues, I had to do that once. Otherwise, you'll likely need a new usb bluetooth dongle, they are about $10, nothing crazy.

    EDIT:
    You don't actually need the joycon-driver for the pro controller, all you need is XOutput, the pro controller already has the analog support and such.
     
    Last edited by NoThisIsStupider, May 26, 2017
  17. thegamingbox

    thegamingbox Newbie

    Newcomer
    5
    0
    May 25, 2017
    Canada
    i had bought a dongle before and using it now, but i dont know how set up xoutput or the combined bat fille
     
  18. HeRinger

    HeRinger Newbie

    Newcomer
    7
    0
    Nov 10, 2008
    United States
    Doesn't work for me. Windows say the joycons are connected, but there's no light in the controllers and no response in X360ce.
     
  19. Im kinda High Right Now

    Im kinda High Right Now Member

    Newcomer
    47
    21
    Jun 9, 2016
    United States
    Keep getting this
    [​IMG]
     
    Last edited by Im kinda High Right Now, May 26, 2017
  20. NoThisIsStupider
    OP

    NoThisIsStupider GBAtemp Regular

    Member
    127
    49
    Dec 6, 2015
    Canada
    For XOutput, it's a gui, maybe look up some youtube videos about how to set it up, i'm genuinely not sure how to explain it much better than I did in the OP. For the batch file, check the OP in a little while, I'm about to make a revision that will make some improvements to the ease of setup.

    Everytime you connect them, you seem to have to remove them from the bluetooth list and re-add them before they will work again, not exactly sure why but it usually works. Make sure you're also using the sync button on the side of the joycon, directly beside the lights. Hold that down until the lights start flashing, then pair with windows.

    Hm, not actually sure what's going on there, it seems the dll is screwed up? What program did you use to extract the driver? Can you post a picture of the folder the joycon-driver is in, perhaps? Also, i'm about to do a revision of the guide, mainly changing the driver setup, perhaps try following it again after that revision.
     
    Last edited by NoThisIsStupider, May 27, 2017