This temporary project allows you to connect your Nintendo Switch 2 Joy-Con to a Windows PC using BLE and vJoy.
-
Clone this repository :
git clone https://github.com/Logan-Gaillard/Joy2Win.git cd Joy2Win -
Install Python dependencies :
pip install bleak pyvjoy pynput -
Install vJoy : https://sourceforge.net/projects/vjoystick/
-
Configure vJoy :
- Open "Configure vJoy"
- Select controller 1
- Set 24 buttons or higher
- Restart your computer
-
Copy the
config-exemple.inifile, rename it toconfig.ini, and edit it according to your needs. -
Run the script in the Joy2Win directory (wherever you cloned it):
python main.py
-
Follow the instructions displayed when the script starts.
-
Confirm that the controller is connected. - Search in Windows for "Set up USB game controllers". - You should see "vJoy Device" there.
Your Joy-Con 2 controllers are now connected to your Windows computer.
To connect your controller for use with Steam games, In Steam, navigate to Settings > Controller > Begin Setup.
If you're using Both Joy-Cons, you can quickly configure every button (inlcuding the C button and the SL/SR buttons) by first copying the below:
a:b4,b:b5,x:b6,y:b7,dpleft:b9,dpright:b8,dpup:b10,dpdown:b11,leftx:a0,lefty:a1,leftstick:b18,rightx:a3,righty:a4,rightstick:b19,leftshoulder:b2,lefttrigger:b0,rightshoulder:b3,righttrigger:b1,back:b13,start:b12,misc1:b21,misc3:b22,guide:b20,paddle1:b14,paddle2:b16,paddle3:b15,paddle4:b17,
Then during Setup, select Paste from Clipboard.
(If you've already set up your controller, then Paste from Clipboard can be found under Settings > Controller > (your JoyCon 2 pair) > Test Device Inputs.)
If successful, it should look like this:
The Capture button will be identified as "M1", the C button will be identified as "M2", and the SL/SR buttons on each JoyCon will be identified as "L4"/"L5"/"R4"/"R5".
Note: There are other options under Settings > Controller that you can enable / explore, like:
- Use Nintendo Button Layout
- Universal Face Button Glyphs (to match Nintendo's UI)
- Test Device Inputs
- Select usage type and Joy-Con orientation (single or paired, horizontal or vertical (only for single joycon))
- Player LED indicator support (By default, player 1)
- Vibration feedback when Joy-Con is successfully connected.
- Use motion sensor with DSU server (For emulators)
- Automatic mouse control
Why is this project temporary ?
Currently, Joy-Con 2 controllers only work on Windows. Other operating systems are not supported due to how the controllers communicate. (Due to Joy-Con 2 communication protocol ?)
On this project's Discord's server somes people work hard to figure out how Switch 2 controllers communicate.
Warning
!! This Discord's server is not part of this project, so no help will be provided there !!
For questions or issues, please contact octokling on Discord or by Issues.
Note
I am not a Bluetooth communication expert. I have been helped multiple times to understand how it works.
Made by Octokling
Helped by :
- narr_the_reg
- ndeadly