Davidobot / BetterJoy

Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput
Other
3.93k stars 344 forks source link

[BUG]Knock Off Joy Cons recognized as separate Pro Controllers #646

Open SkipHarv opened 3 years ago

SkipHarv commented 3 years ago

My laptop recognizes my knock off Joy Cons correctly, but Betterjoy sees them as 2 full Pro Controllers. Won’t let me use them together properly in Yuzu.

The goal was to use them in either individual mode or in handheld mode, but neither work correctly due to how they are recognized.

maxill1 commented 3 years ago

same problem here.

I have a pair of 3rd party joycons (Joysky) and they are recognized as 2 separate Pro Controllers.

EDIT: i managed to change them via "add controllers" button (after a couple of apply -> exit -> launch of BetterJoy) but since both joycons are named "Wireless gamepad" it results in 2 Left Joycon or 2 Right Joycon.

maxill1 commented 3 years ago

Can you try this build?

This should allow you to change the controller type.

I had to change the "BetterJoyForCemu.exe.Config" file to set"NonOriginalController" to value="DefaultCalibration" (as suggested here).

BetterJoy_53a0a2.zip

thanghn90 commented 3 years ago

I came here just to say thanks to @maxill1 ! The 53a0a2 version does indeed recognize 3rd-party joycons as separate wireless gamepad (1) and (2), enabling me to set them as joycon left and joycon right separately. Also, the DefaultCalibration modification of NonOriginalController in BetterJoyForCemu.exe.Config makes the joysticks correctly calibrated (otherwise left stick will get stuck at upper right corner, and right stick's X = max and Y = 0). @Davidobot : please take a look at version 53a0a2 and see if you can incorporate this fix to the next release. Thanks!

Globetrotter129 commented 3 years ago

Can you try this build?

This should allow you to change the controller type.

I had to change the "BetterJoyForCemu.exe.Config" file to set"NonOriginalController" to value="DefaultCalibration" (as suggested here).

BetterJoy_53a0a2.zip

Apparently the program is reading it as 2 official pro controllers and then steam is seeing it as 2 xbox controllers

thanghn90 commented 3 years ago

It's reading them as 2 pro controllers If you are using version 53a0a2 as found by @maxill1 , you should be able to manually add each controller as left/right joycon, as in the following image: image The problem with the current release version of betterjoyforcemu is that it only display ONE item for both of my 3rd party left and right joycon in the left panel ("All devices") of the "Add 3rd party controllers" dialogue. The 53a0a2 version will yield two separate items, each for a joycon, in the "All devices" panel of the "Add 3rd party controllers" dialogue.

Globetrotter129 commented 3 years ago

It's reading them as 2 pro controllers If you are using version 53a0a2 as found by @maxill1 , you should be able to manually add each controller as left/right joycon, as in the following image: image The problem with the current release version of betterjoyforcemu is that it only display ONE item for both of my 3rd party left and right joycon in the left panel ("All devices") of the "Add 3rd party controllers" dialogue. The 53a0a2 version will yield two separate items, each for a joycon, in the "All devices" panel of the "Add 3rd party controllers" dialogue.

add controllers does nothing for me because it already sees the controllers as 2 official pro controllers before I can add 3rd party left and right controllers

thanghn90 commented 3 years ago

add controllers does nothing for me because it already sees the controllers as 2 official pro controllers before I can add 3rd party left and right controllers

Sorry I wasn't clear initially. Let me describe step-by-step of what I did to make it work, and ask you to redo it. If you get stuck at any step, please let us know.

  1. Make sure all betterjoyforcemu are COMPLETELY CLOSED (i.e. not running in the background under system tray or such)

  2. Download bettterjoy version 53a0a2 in the link above. Extract it. You can change the config file to make NonOriginalController value becomes "DefaultCalibration". But DO NOT run it yet. If you do, close it.

  3. Go to Windows Bluetooth Settings dialog (right click on the bluetooth icon of Windows in the system tray at the lower right corner of your screen, click "Show bluetooth Devices") image

  4. If you already paired your joycons, remove them. Just click on each of the joycon, and hit "Remove Device" button.

  5. Now, pair your joycons to your computer again, using the "Add Bluetooth Or Other Device" Button. Select Bluetooth. Windows will start scanning for bluetooth device. Then push and hold the bluetooth pairing button on your joycon. Mine is located on the SL/SR side, as a small rounded button near the led lights of the joycon. I assume you know what to do, but just want to be as detailed as possible. image image image Here is what my Window sBluetooth Settings look like after I successfully paired both of my joycons: image

  6. After you've done pairing both controllers, open betterjoyforcemu.exe inside the extracted folder of version 53a0a2. Hopefully by this time, your controllers are still connected to your computer (they may automatically disconnect after a while. If so and you can't re-pair them, simply remove them and pair them again, this time, be quick. I had to pair them again while writing this guide). Mine are also detected as two pro controllers initially. See below: image

  7. Now, click on the "Add Controllers". Here is what it look like for me initially: image

  8. Then, I click on each of the "Wireless Gamepad" on the left panel ("All Devices") of the "Add 3rd Party Controllers" dialog, and hit the "->" button to move them to the right side, also making sure to change the controller type correctly. By default, the order of the "Wireless Gamepads" are the same as the order you PAIR them to Windows in step 5 above. I paired my left joycon first, and right joycon later, so here are the configs for each: image image

  9. Click "Apply", and then "Close" the "Add 3rd Party Controllers" dialog.

  10. Most importantly: CLOSE betterjoyforcemu GUI, and REOPEN it. This is probably what you missed if you already added the controllers and see no changes. Just close and open it again. And voila! image

  11. Now, to make sure your controller types are specified correctly (i.e. left is left, right is right), click on "Locate" button on each of them and see which one vibrates. If you click on the left joycon's "Locate" button and the right start rumbling, it's reversed, and you will need to click "Add Controllers" button and change the type of joycon for each "Wireless Gamepad", Apply, Close, Close betterjoyforcemu, and open betterjoyforcemu again.

  12. If your joycons appear as split by default (i.e. the joycon icons looks horizontal like this:) image Then click on ONE of the joycon icon (the actual icon above the "Locate" button is CLICKABLE), and it will switch to the vertical joycon icon.

  13. CHECK to make sure the joycons are interpreted as a single xbox controller by doing the followings: go to Start menu, type "control panel". image Under "Hardware and Sound", click on "View Devices and Printers" image Right click on "HID-compliant controller" (Not the two Joycon L and R), choose "Game Controller Settings": image Then click on "Controller (Xbox360) for Windows" and click "Properties" button: image Start testing the controller to see if the joysticks are correctly calibrated: image Note: if at this point, the left joystick stuck at the upper left corner, you didn't change "NonOriginalController" to "DefaultCalibration". Do that, close and reopen betterjoyforcemu again.

That's how it works for me. Hopefully I'm discrete enough for you to follow. Let me know at which step you get stuck.

Globetrotter129 commented 3 years ago

add controllers does nothing for me because it already sees the controllers as 2 official pro controllers before I can add 3rd party left and right controllers

Sorry I wasn't clear initially. Let me describe step-by-step of what I did to make it work, and ask you to redo it. If you get stuck at any step, please let us know.

  1. Make sure all betterjoyforcemu are COMPLETELY CLOSED (i.e. not running in the background under system tray or such)
  2. Download bettterjoy version 53a0a2 in the link above. Extract it. You can change the config file to make NonOriginalController value becomes "DefaultCalibration". But DO NOT run it yet. If you do, close it.
  3. Go to Windows Bluetooth Settings dialog (right click on the bluetooth icon of Windows in the system tray at the lower right corner of your screen, click "Show bluetooth Devices") image
  4. If you already paired your joycons, remove them. Just click on each of the joycon, and hit "Remove Device" button.
  5. Now, pair your joycons to your computer again, using the "Add Bluetooth Or Other Device" Button. Select Bluetooth. Windows will start scanning for bluetooth device. Then push and hold the bluetooth pairing button on your joycon. Mine is located on the SL/SR side, as a small rounded button near the led lights of the joycon. I assume you know what to do, but just want to be as detailed as possible. image image image Here is what my Window sBluetooth Settings look like after I successfully paired both of my joycons: image
  6. After you've done pairing both controllers, open betterjoyforcemu.exe inside the extracted folder of version 53a0a2. Hopefully by this time, your controllers are still connected to your computer (they may automatically disconnect after a while. If so and you can't re-pair them, simply remove them and pair them again, this time, be quick. I had to pair them again while writing this guide). Mine are also detected as two pro controllers initially. See below: image
  7. Now, click on the "Add Controllers". Here is what it look like for me initially: image
  8. Then, I click on each of the "Wireless Gamepad" on the left panel ("All Devices") of the "Add 3rd Party Controllers" dialog, and hit the "->" button to move them to the right side, also making sure to change the controller type correctly. By default, the order of the "Wireless Gamepads" are the same as the order you PAIR them to Windows in step 5 above. I paired my left joycon first, and right joycon later, so here are the configs for each: image image
  9. Click "Apply", and then "Close" the "Add 3rd Party Controllers" dialog.
  10. Most importantly: CLOSE betterjoyforcemu GUI, and REOPEN it. This is probably what you missed if you already added the controllers and see no changes. Just close and open it again. And voila! image
  11. Now, to make sure your controller types are specified correctly (i.e. left is left, right is right), click on "Locate" button on each of them and see which one vibrates. If you click on the left joycon's "Locate" button and the right start rumbling, it's reversed, and you will need to click "Add Controllers" button and change the type of joycon for each "Wireless Gamepad", Apply, Close, Close betterjoyforcemu, and open betterjoyforcemu again.
  12. If your joycons appear as split by default (i.e. the joycon icons looks horizontal like this:) image Then click on ONE of the joycon icon (the actual icon above the "Locate" button is CLICKABLE), and it will switch to the vertical joycon icon.
  13. CHECK to make sure the joycons are interpreted as a single xbox controller by doing the followings: go to Start menu, type "control panel". image Under "Hardware and Sound", click on "View Devices and Printers" image Right click on "HID-compliant controller" (Not the two Joycon L and R), choose "Game Controller Settings": image Then click on "Controller (Xbox360) for Windows" and click "Properties" button: image Start testing the controller to see if the joysticks are correctly calibrated: image Note: if at this point, the left joystick stuck at the upper left corner, you didn't change "NonOriginalController" to "DefaultCalibration". Do that, close and reopen betterjoyforcemu again.

That's how it works for me. Hopefully I'm discrete enough for you to follow. Let me know at which step you get stuck.

they switch off as soon as they're pair there's no chance o

add controllers does nothing for me because it already sees the controllers as 2 official pro controllers before I can add 3rd party left and right controllers

Sorry I wasn't clear initially. Let me describe step-by-step of what I did to make it work, and ask you to redo it. If you get stuck at any step, please let us know.

  1. Make sure all betterjoyforcemu are COMPLETELY CLOSED (i.e. not running in the background under system tray or such)
  2. Download bettterjoy version 53a0a2 in the link above. Extract it. You can change the config file to make NonOriginalController value becomes "DefaultCalibration". But DO NOT run it yet. If you do, close it.
  3. Go to Windows Bluetooth Settings dialog (right click on the bluetooth icon of Windows in the system tray at the lower right corner of your screen, click "Show bluetooth Devices") image
  4. If you already paired your joycons, remove them. Just click on each of the joycon, and hit "Remove Device" button.
  5. Now, pair your joycons to your computer again, using the "Add Bluetooth Or Other Device" Button. Select Bluetooth. Windows will start scanning for bluetooth device. Then push and hold the bluetooth pairing button on your joycon. Mine is located on the SL/SR side, as a small rounded button near the led lights of the joycon. I assume you know what to do, but just want to be as detailed as possible. image image image Here is what my Window sBluetooth Settings look like after I successfully paired both of my joycons: image
  6. After you've done pairing both controllers, open betterjoyforcemu.exe inside the extracted folder of version 53a0a2. Hopefully by this time, your controllers are still connected to your computer (they may automatically disconnect after a while. If so and you can't re-pair them, simply remove them and pair them again, this time, be quick. I had to pair them again while writing this guide). Mine are also detected as two pro controllers initially. See below: image
  7. Now, click on the "Add Controllers". Here is what it look like for me initially: image
  8. Then, I click on each of the "Wireless Gamepad" on the left panel ("All Devices") of the "Add 3rd Party Controllers" dialog, and hit the "->" button to move them to the right side, also making sure to change the controller type correctly. By default, the order of the "Wireless Gamepads" are the same as the order you PAIR them to Windows in step 5 above. I paired my left joycon first, and right joycon later, so here are the configs for each: image image
  9. Click "Apply", and then "Close" the "Add 3rd Party Controllers" dialog.
  10. Most importantly: CLOSE betterjoyforcemu GUI, and REOPEN it. This is probably what you missed if you already added the controllers and see no changes. Just close and open it again. And voila! image
  11. Now, to make sure your controller types are specified correctly (i.e. left is left, right is right), click on "Locate" button on each of them and see which one vibrates. If you click on the left joycon's "Locate" button and the right start rumbling, it's reversed, and you will need to click "Add Controllers" button and change the type of joycon for each "Wireless Gamepad", Apply, Close, Close betterjoyforcemu, and open betterjoyforcemu again.
  12. If your joycons appear as split by default (i.e. the joycon icons looks horizontal like this:) image Then click on ONE of the joycon icon (the actual icon above the "Locate" button is CLICKABLE), and it will switch to the vertical joycon icon.
  13. CHECK to make sure the joycons are interpreted as a single xbox controller by doing the followings: go to Start menu, type "control panel". image Under "Hardware and Sound", click on "View Devices and Printers" image Right click on "HID-compliant controller" (Not the two Joycon L and R), choose "Game Controller Settings": image Then click on "Controller (Xbox360) for Windows" and click "Properties" button: image Start testing the controller to see if the joysticks are correctly calibrated: image Note: if at this point, the left joystick stuck at the upper left corner, you didn't change "NonOriginalController" to "DefaultCalibration". Do that, close and reopen betterjoyforcemu again.

That's how it works for me. Hopefully I'm discrete enough for you to follow. Let me know at which step you get stuck on

my controllers turn off as soon as they're paired... and you're saying I have to do this process every time.. i can't be bothered thanks for your help though.

thanghn90 commented 3 years ago

@Globetrotter129 : well, if the controller turns off right after pairing to your computer's bluetooth, then I don't think those are suitable for betterjoyforcemu (or any kinds of controller emulation at all - since the problem is bluetooth pairing, not betterjoyforcemu). I haven't encountered such a controller/joycon yet, but I do have several 3rd party pro controllers that still blinking led lights after pairing with the computer's bluetooth and assigned correct led light in betteroyforcemu, but then does nothing (no rumble, no input whatsoever). The last thing I suggest you doing is to find/buy a cheap bluetooth 4.1 dongle and try to connect your joycons again to it to see if they're still on after pairing. Otherwise, can you post a link or picture of your controllers so we all can avoid it 😃?

Globetrotter129 commented 3 years ago

@Globetrotter129 : well, if the controller turns off right after pairing to your computer's bluetooth, then I don't think those are suitable for betterjoyforcemu (or any kinds of controller emulation at all - since the problem is bluetooth pairing, not betterjoyforcemu). I haven't encountered such a controller/joycon yet, but I do have several 3rd party pro controllers that still blinking led lights after pairing with the computer's bluetooth and assigned correct led light in betteroyforcemu, but then does nothing (no rumble, no input whatsoever). The last thing I suggest you doing is to find/buy a cheap bluetooth 4.1 dongle and try to connect your joycons again to it to see if they're still on after pairing. Otherwise, can you post a link or picture of your controllers so we all can avoid it 😃?

Avoid these distinctly curved Gioteck controllers OIP