Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Unofficial Controllers #419

Open
OkamiTakahashi opened this issue Jun 10, 2020 · 107 comments
Open

Support for Unofficial Controllers #419

OkamiTakahashi opened this issue Jun 10, 2020 · 107 comments
Labels
enhancement New feature or request

Comments

@OkamiTakahashi
Copy link

I have a couple of wired USB Nintendo Switch pro controllers, but no way of using them with Cemu. They can be used by my Steam account, but Cemu doesn't detect them at all, nor does BetterJoy. Well, a previous nightly of BetterJoy did when I tried to add controllers, but nothing happened. Now with the current build I can't even attempt that. The locate feature doesn't even function for these.

I'm sorry if this sounds rude, but is it REALLY too much to ask for PROPER support for these kinds of USB Switch pro controllers? I swear, it says there's USB support ON the page, but judging from my own experience, this is not the case at all; the controllers are very clearly plugged in, but not detected by this program. For the record, my controllers are made by PowerA and PDP- two are typical looking pro controllers with a Zelda motif, and one is a pro controller in the shape of a GCN controller- also with a Zelda motif. I'm attaching images of them at the bottom for reference. As someone continuing their file on BOTW from console and beta-testing a big mod pack in development, I wanted to use a natural-feeling controller rather than the Xbox 360 controller which, while nice and comfortable, didn't sit right with me while using Cemu, and is out of action currently.

6250912_sd

wiredsmashpadpro_20-_203-4_right_link

@OkamiTakahashi OkamiTakahashi added the enhancement New feature or request label Jun 10, 2020
@Davidobot
Copy link
Owner

They're not official pro controllers, so yes, it is quite hard for me to add support without having physical access to them.

@OkamiTakahashi
Copy link
Author

So, apparently third party officially licensed pro controllers don't count as official pro controllers then? That's a shame, considering the computer recognizes it and other programs on said computer.. Guess I'll just go back to using an Xbox 360 one, once I can procure a new bluetooth receiver for mine.

@Davidobot
Copy link
Owner

@OkamiTakahashi If you're willing, I can send you a small program that will extract the necessary info I need about the controllers (hardware IDs) and if you're willing to test, then we can get somewhere?

@Davidobot
Copy link
Owner

BetterJoy_Test_Ver.zip
Plug in your controllers, run this and send me the block of text from the console that looks like

-- COPY ME --
Vendor: 1406; Product: 8201;
-- COPY ME END --

@DebornMC
Copy link

I tried the same, but:

''HidGuardian is enabled.
-- COPY ME --
-- COPY ME END --
Starting server on 127.0.0.1:26760
All systems go''

@DebornMC
Copy link

If you're willing to help me too, that would be very much appreciated.

@Davidobot
Copy link
Owner

Okay, I'll post an updated version to try things tomorrow.

@DebornMC
Copy link

Thank you!

@Davidobot
Copy link
Owner

BetterJoy_Test_Ver.zip
Here's another version to try. This will list all your connected devices.

If you've used HidGuardian before, go to http://localhost:26762/ and clear out device, then restart your PC. Plug in your controller and then run the test version, pasting the results of the COPY ME here.

@DebornMC
Copy link

DebornMC commented Jun 12, 2020

Thanks, I think it worked!
-- COPY ME -- Name: Gaming KB Vendor: 9610 Product: 58 Name: USB Keyboard Vendor: 6785 Product: 8212 Name: G203 Prodigy Gaming Mouse Vendor: 1133 Product: 49284 Name: G203 Prodigy Gaming Mouse Vendor: 1133 Product: 49284 Name: G203 Prodigy Gaming Mouse Vendor: 1133 Product: 49284 Name: G203 Prodigy Gaming Mouse Vendor: 1133 Product: 49284 Name: G203 Prodigy Gaming Mouse Vendor: 1133 Product: 49284 Name: Gaming KB Vendor: 9610 Product: 58 Name: Gaming KB Vendor: 9610 Product: 58 Name: Faceoff Deluxe+ Audio Wired Controller for Nintendo Switch Vendor: 3695 Product: 388 Name: Gaming KB Vendor: 9610 Product: 58 Name: Vendor: 1133 Product: 49713 Name: G203 Prodigy Gaming Mouse Vendor: 1133 Product: 49284 Name: Vendor: 1133 Product: 49714 Name: Gaming KB Vendor: 9610 Product: 58 Name: USB Keyboard Vendor: 6785 Product: 8212 Name: USB Keyboard Vendor: 6785 Product: 8212 Name: USB Keyboard Vendor: 6785 Product: 8212 -- COPY ME END --

@DebornMC
Copy link

DebornMC commented Jun 12, 2020

Name: Faceoff Deluxe+ Audio Wired Controller for Nintendo Switch Vendor: 3695 Product: 388
(its this i think)

@zhangbo8418
Copy link

I also try. Haha. . .
-- COPY ME --
Name: Broadcom Bluetooth Wireless Mouse Vendor: 2652 Product: 1
Name: Broadcom Bluetooth Wireless Mouse Vendor: 2652 Product: 1
Name: Broadcom Bluetooth Wireless Mouse Vendor: 2652 Product: 1
Name: XiaoMi Bluetooth Wireless GameController Vendor: 10007 Product: 12612
Name: Vendor: 1133 Product: 45083
Name: Vendor: 1133 Product: 45083
Name: Vendor: 1133 Product: 45083
-- COPY ME END --

@zhangbo8418
Copy link

Nintendo Wireless Gamepad
HID{00001124-0000-1000-8000-00805F9B34FB}_VID&0002057E_PID&2009

GoerTek Corp. XiaoMi Bluetooth Wireless GameController
HID{00001124-0000-1000-8000-00805F9B34FB}_VID&00022717_PID&3144

@Davidobot
Copy link
Owner

BetterJoy_3rdP_Test.zip
Cool, here's an experimental version. Basically, plug in your controllers. Click the "Add Controllers" button. Then from "All Devices" select your controller and click the -> button. Then click on the controller in the "Switch Controllers" menu and set its type. Click apply. Tell me what happens.

@DebornMC
Copy link

DebornMC commented Jun 12, 2020

when i click add controllers: See the end of this message for details on invoking
`just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at BetterJoyForCemu._3rdPartyControllers.ContainsText(ListBox a, String manu) in C:\Users\Grigor\source\repos\BetterJoy\BetterJoyForCemu\3rdPartyControllers.cs:line 92
at BetterJoyForCemu._3rdPartyControllers.RefreshControllerList() in C:\Users\Grigor\source\repos\BetterJoy\BetterJoyForCemu\3rdPartyControllers.cs:line 106
at BetterJoyForCemu._3rdPartyControllers..ctor() in C:\Users\Grigor\source\repos\BetterJoy\BetterJoyForCemu\3rdPartyControllers.cs:line 78
at BetterJoyForCemu.MainForm.btn_open3rdP_Click(Object sender, EventArgs e) in C:\Users\Grigor\source\repos\BetterJoy\BetterJoyForCemu\MainForm.cs:line 231
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4180.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

BetterJoyForCemu
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/kaide/Documents/Desktop/BetterJoy-master/BetterJoyForCemu.exe

System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4001.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll

System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4180.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4150.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

System.ServiceProcess
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.ServiceProcess/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.dll

System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll

WindowsInput
Assembly Version: 6.1.1.0
Win32 Version: 6.1.1.0
CodeBase: file:///C:/Users/kaide/Documents/Desktop/BetterJoy-master/WindowsInput.DLL

Nefarius.ViGEm.Client
Assembly Version: 1.16.150.0
Win32 Version: 1.16.150
CodeBase: file:///C:/Users/kaide/Documents/Desktop/BetterJoy-master/Nefarius.ViGEm.Client.DLL

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.`

@Davidobot
Copy link
Owner

@DebornMC interesting, you seem to have some funky connected devices then, that don't have a name identifier attached.
BetterJoy_3rdP_Test2.zip
Try this

@DebornMC
Copy link

Thanks a lot! It works but I have to refresh it often to get it to work. Getting this error a lot:
`See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.OutOfMemoryException: List box contains too many items.
at System.Windows.Forms.ListBox.NativeAdd(Object item)
at System.Windows.Forms.ListBox.OnHandleCreated(EventArgs e)
at System.Windows.Forms.Control.WmCreate(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ListBox.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4180.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

BetterJoyForCemu
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/kaide/Documents/Desktop/BetterJoy-master/BetterJoyForCemu.exe

System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4001.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll

System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4180.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4150.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

System.ServiceProcess
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.ServiceProcess/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.dll

System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll

WindowsInput
Assembly Version: 6.1.1.0
Win32 Version: 6.1.1.0
CodeBase: file:///C:/Users/kaide/Documents/Desktop/BetterJoy-master/WindowsInput.DLL

Nefarius.ViGEm.Client
Assembly Version: 1.16.150.0
Win32 Version: 1.16.150
CodeBase: file:///C:/Users/kaide/Documents/Desktop/BetterJoy-master/Nefarius.ViGEm.Client.DLL

WindowsBase
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4180.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.`

@Davidobot
Copy link
Owner

Davidobot commented Jun 12, 2020

@DebornMC What kind of devices to your PC? You seem to have some odd ones in there.

Bear with me guys, it's really hard to develop for hardware you don't have access to, so I need people to test a bunch of versions.

BetterJoy_3rdP_Test3.zip
Here's another one that should solve the memory overflow you experienced and should allow for USB.

@DebornMC
Copy link

Thanks I'll try right now

@DebornMC
Copy link

Same error, but it doesn't work anymore, no inputs

@Davidobot
Copy link
Owner

Can you please think what kind of dodgy USB things you have connected? This sort of behaviour isn't normal.

Do you use HIDGuardian? If you do, disable it for now. (clearing the affected devices)

@DebornMC
Copy link

Only a drive, keyboard, mouse and controller.

@DebornMC
Copy link

I do use HIDGuardian yes

@Davidobot
Copy link
Owner

Could you take a screenshot of your "Add Controllers" window?

@DebornMC
Copy link

Alright, also i uninstalled HIDGuardian for now

@DebornMC
Copy link

image

@thanghn90
Copy link

I'm having a similar issue, my third party joycons keep showing up as a pro controller but are anything but

Try this build. Also don't forget to change NonOriginalController config to "DefaultCalibration". You can either edit the config file or directly type DefaultCalibration in the Non Original Controller text field of the user interface. Credit: @maxill1
#646 (comment)

@Markore91
Copy link

Third party also here, PDP wireless switch controller aka "afterglow when connected" is read as an xbox controller, it seems like it won't recognize it, what should I do?

@Markore91
Copy link

There is another issue that the driver is dropping when I go wireless it says he controller is low battery and then it just drops. It clearly isn't after 6 hours of charge. There seems to be no way to fix it. The drivers are total garbage and don't even appear as PDP drivers on my system. It's always saying there are issues with the drive. And apparently nobody on the internet has a specific video about it. PDP doesn't answer to mails, and you don't even get a notification or troubleshooting. It's an utter mess of a device and doesn't seem to work with anything like Yuzu.

@Seasabor
Copy link

i've tried using the test versions above but when I run the program it remains minimized to my taskbar

@matemato
Copy link

matemato commented Jan 25, 2022

Does it work for anyone that have their controller connected via USB? When I connect it via USB, my list of "All devices" when I click "Add controllers" is empty. Meanwhile windows does detect it as "Afterglow Wireless Deluxe Controller".

I have a Faceoff Wireless Deluxe Controller.

@thanghn90
Copy link

@matemato if your USB-connected controller is already recognized as an xbox controller (or xinput, you can check by going to https://gamepad-tester.com), then betterjoyforcemu won't be able to do anything (especially if you're looking for the gyro function).

@matemato
Copy link

@thanghn90

It is recognized as:

Brez naslova

So what are alternatives to using betterjoyforcemu? Will I be able to use this controller at all for example yuzu or steam?

@thanghn90
Copy link

@matemato I never had any luck with 3rd party controller being able to get recognized as official switch pro controller when connected to PC via USB (UNLESS you can eat the cost of a Magic NS usb dongle). Last time I know, you need to connect your controller to your PC via bluetooth, and if it is recognized as a "pro controller", then you may have a chance to use it with betterjoyforcemu. Did you try connecting your controller to your PC via bluetooth and then start betterjoyforcemu?

@matemato
Copy link

@thanghn90 nope, I don't have bluetooth on my PC, sadly. I guess I could try it on my laptop and check it out.

@matemato
Copy link

@thanghn90 I tried it on my laptop with bluetooth and it does get recognized. Maybe I'll invest into a bluetooth adapter for my PC. Thanks for your response.

@dcard228
Copy link

this is all the info i can get and it came from the config file

Afterglow Deluxe+ Audio Wired Controller|392|3695|1

im not getting anything from the program itself

@BenjaminHalko
Copy link

I tried using my joy cons but the stick was stuck at the top right!

Output:

Vendor: 1406; Product: 8198;
Left Joy-Con connected.
Vendor: 1406; Product: 8199;
Right Joy-Con connected.

@thanghn90
Copy link

@BenjaminHalko : that's what happened to me when I didn't change BetterJoyForCemu.exe.Config to set "NonOriginalController" to value="DefaultCalibration". Make sure you close betterjoyforcemu first, then change the config file (using any text editor like notepad or note++), and then start betterjoyforcemu again. Also, make sure the two joycon icons are vertical (i.e. they're recognized as a single pair, not as two separate joycons, which will appear with two horizontal joycon icons). See here: #646 (comment)

@BenjaminHalko
Copy link

@thanghn90 I tried that and it just showed up as 2 pro controllers.

@thanghn90
Copy link

@BenjaminHalko : what I did to set my joycons as one single x-input controller is:

  1. Click on Add controller button:
    image

  2. Select your joycons' items on the left and click the "->" button to move them to the right, then change the "Type" so that the left joycon is the left joycon, and the right joycon is the right one (I'm not sure, you may want to pair them via bluetooth in the correct order: left one first, followed by right one):

image

  1. After that, close betterjoyforcemu and reopen it. Then, LEFT CLICK on one of the joycon's icon to turn them to vertically oriented:
    image
    If they're horizontal, it means they act as two separate controllers. At least that's what it appears in my case.

  2. If you haven't done it yet, make sure to modify the config file to set "NonOriginalController" to value="DefaultCalibration". You may need to close and reopen betterjoyforcemu for it to take effect.

@BenjaminHalko
Copy link

@thanghn90 For me my controllers automatically get located by betterjoy when loading and don't appear in the add controller spot.

@thanghn90
Copy link

@BenjaminHalko : are you using betterjoyforcemu version 53a0a2 as mentioned in this post? #646 (comment)
And what happen when you left-click on one of the controller's icon? Does it change to a different type (like a joycon), or no change at all?
image

@balrog687
Copy link

Hi
I have the same issues, 3rd party controller is recognized but does not register any keystroke.
image

Hid Guardian is enabled, but no device is hidden, Here the hardware Ids

Nintendo Wireless Gamepad
HID{00001124-0000-1000-8000-00805F9B34FB}_VID&0002057E_PID&2009

Unknown Controller (XBOX 360 For Windows)
HID\VID_045E&PID_028E&IG_00

On test version I get the following device list

HidGuardian is enabled.
Pro controller connected.
Using factory stick calibration data.
Using factory stick calibration data.
Starting poll thread.
Starting server on 127.0.0.1:26760
-- COPY ME --
blah bla... other stuff
Name: Controller (XBOX 360 For Windows) Vendor: 1118 Product: 654
Name: Wireless Gamepad Vendor: 1406 Product: 8201
-- COPY ME END --
All systems go

Is there anything more I can do? besides sharing these hardware IDs?

@matheusluisz
Copy link

Hello!

I bought a controller com Aliexpress model MG26z which has gyro.
When connecting with the wireless adaptor or using usb, it works with no flaw, but only as a Xbox 360 Controller.
So I paired with bluetooth and then betterjoy recognized it as a 3rd party controller (with chinese words that even google translate didn't help me to understand).
However it's not working, it appears to have 2 controllers at the same time, one of them disconnecting everytime and the other one make weird actions when the buttons are pressed (like opening one drive, navegating as it was a random keyboard presses.
HidGuardian seems to be working fine, as well HidHide.

image
image
image

How could I proceed to find a solution for this case?
Is there a different bluetooth controller driver to install? Or maybe try a different method?
When connected to bluetooth the controller doesn't work on CEMU or in any game/emulator and the closest I got it from working was with betterjoy.

To windows it is recognized as "GamePadPlus V3" under the section "keyboard, mouse or pen"
image

Any suggestions would be nice to hear!
Thanks!

@thanghn90
Copy link

@matheusluisz normally to connect the wireless controller to betterjoy4cemu via bluetooth, the controllers need to be recognized either as a pro controller or a joy con. I don't have the MG26z, but as far as I know, there might be multiple modes of bluetooth connection for these 3rd party controllers (e.g. hit X+Home vs A+Home may both get into bluetooth pairing mode, but one is for nintendo switch pairing, and the other is for Android pairing). You need to make sure you are connecting this MG26z via bluetooth to your PC exactly the same way you connect it to an actual nintendo switch, so it would appear as a "pro controller" in your bluetooth list. This information is usually available in your controller's manual.
Also, the flaky connection (i.e. disconnect and reconnect constantly) might be due to low battery. I had one controller that I could not pair it with my PC's bluetooth the day before, and after I charged it overnight, it suddenly worked. Go figure...
Try it and let us know if you find out something new.

@kevlugli
Copy link

kevlugli commented Jun 5, 2022

Hi! I have a 3rd party controller for the switch and I've got a strange behavior.
It gets recognized and I can even "locate" it, but no button press, axis movement or any input is registered.
I debugged a little and tried a few things, some proposed here: set as 3rd party, forcing handling it as an usb device, disabling some subcommands, etc
Also, I read dekuNukem's repo, and got some understanding of how it works.
Debugging I noticed that in the function ReceiveRaw, most of the time variable ret is set to 0 (timeout?), and when it's not, the response is a 0x21. It seems to me that it nevers get to x30 mode, althought the 0x3 subcommand gets the expected response.
An example of the response I get on ReceiveRaw:
RawResponse ID 0x21. Data: 0xB9 A0 00 00 00 00 08 7F 00 08 7F 00 80 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
No matter what buttons I press, the bytes regarding them are always 00.
Lastly, I got quite a few Duplicate timestamp enqueued
I'd appreciate any help or direction.
Thanks for the amazing work

@zdpdsg
Copy link

zdpdsg commented Jun 15, 2022

image
DUALSHOCK 3 - ScpToolkit - BetterJoy(×) - Ryujinx or yuzu
I want motion control in Ryujinx or yuzu.

BetterJoy_3rdP_Test4 can recognizes ps3 controller, but can't connect.
BetterJoy_v7.1 can't recognizes ps3 controller.

BetterJoy_Test_Ver
-- COPY ME --
Name: USB Gaming Mouse Vendor: 4119 Product: 32771
Name: USB Gaming Mouse Vendor: 4119 Product: 32771
Name: USB Gaming Mouse Vendor: 4119 Product: 32771
Name: USB Gaming Mouse Vendor: 4119 Product: 32771
Name: USB Gaming Mouse Vendor: 4119 Product: 32771
Name: USB Keyboard Vendor: 1133 Product: 49958
Name: USB Gaming Mouse Vendor: 4119 Product: 32771
Name: Controller (XBOX 360 For Windows) Vendor: 1118 Product: 654
Name: USB Keyboard Vendor: 1133 Product: 49958
Name: USB Keyboard Vendor: 1133 Product: 49958
Name: USB Keyboard Vendor: 1133 Product: 49958
-- COPY ME END --

@Hgamer999
Copy link

@Davidobot I have found a program called x360ce that can detect any controller including my third party joycons and make them seem like they are xbox 360 controllers. However, unfortunately this app does not let you make use of motion controls and rumble like better joy. Maybe you could take a look at this program and build upon yours using the controller detection part of the app? I would love to see the third party controllers issue with better joy solved once and for all! Thanks for your dedication!

@cabiamdos
Copy link

cabiamdos commented Dec 27, 2022

Hello, I have the same problem. When I try to connect the device throw bluetooth it always stop on "starting poll thread" and the icon never turns green, only gray. And the USB never works, when I plug it throw USB it doesn't detect anything but it will work directly without any drivers in my case throw USB (xInput):
image

HidGuardian is enabled.
Pro controller connected.
Using factory stick calibration data.
Using factory stick calibration data.
Starting poll thread.
Starting server on 127.0.0.1:26760
-- COPY ME --
Name: Virtual Multitouch Device Vendor: 255 Product: 47820
Name: Controller (XBOX 360 For Windows) Vendor: 1118 Product: 654
Name: HIDI2C Device Vendor: 1267 Product: 12521
Name: Wireless Gamepad Vendor: 1406 Product: 8201
Name: USB Gaming Mouse Vendor: 1241 Product: 41174
Name: USB Gaming Mouse Vendor: 1241 Product: 41174
Name: Vendor: 0 Product: 0
Name: USB Gaming Mouse Vendor: 1241 Product: 41174
Name: HIDI2C Device Vendor: 1267 Product: 12521
Name: HIDI2C Device Vendor: 1267 Product: 12521
Name: USB Gaming Mouse Vendor: 1241 Product: 41174
Name: Virtual Multitouch Device Vendor: 255 Product: 47820
Name: Virtual Multitouch Device Vendor: 255 Product: 47820
Name: Virtual Multitouch Device Vendor: 255 Product: 47820
Name: Virtual Multitouch Device Vendor: 255 Product: 47820
Name: Virtual Multitouch Device Vendor: 255 Product: 47820
-- COPY ME END --

@Na99ets
Copy link

Na99ets commented Jan 29, 2023

Снимок экрана 2023-01-29 в 22 16 27

wtf what is this password?

@nilsheidorn
Copy link

nilsheidorn commented May 25, 2023

Hi!
Okay, i am also trying to use a wired (USB) Pro controller clone on yuzu & cemu.
I Try a "Subsonic" branded Pro COntroller that is supposed to have Gyro sensors.
This one:

https://community.citra-emu.org/t/is-gyroscope-of-the-subsonic-works-on-yuzu/649808

When plugged in to a W11 machine with Betterjoy 7.1 it seems to identify as "Pro Controller" first, sometimes i even see a green icon in Betterjoy.
Then there is a kind of USB Reset and then the Controller identifies as "XBOX 360" Controller --> No more green icon.
It seems to go into a loop then.

As the Controller has 4 LED's where i can see its "Emulation status" i can also visually see that it is changing its behavior.
Similar thing if i leave out Betterjoy but just start Yuzu, also the COntroller goes from "Pro" mode to "XBOX360" mode.
It is full yusable as XBOX360 COntroller in yuzu or cemu but i bought it to finally have motion sensor support.

So i wonder:

  1. Any way to get this to work with motion sensor in yuzu with or without BetterJoy?
  2. If not, would a wired original Nintendo Pro Controller safely do the job
  3. If not is wired generall unstable and a wireless pro Controller (Clone or original) should safely do the job?
    Thanks for help!

Nils

EDIT:

its weird.
The very same controller immediatly gets to XBOX360 mode if connected to one Notebook but to Pro Controller mode on another notebook.

On the Notebook where it goes directly to XBOX360 mode i can not get anywhere with BetterJoy.

On the notebook where it is in Pro Controller mode initially i can "Add Controller" using the "Pro Controller" listing and then sometimes it shows up green but soon there is a kind of loop and it gets white.

If i leave out betterjoy completely and start cemu or yuzu while controller is in Pro mode there is a kind of USB reset and controller goes over to XBOX360 mode making it a NOGO for motion sensors.

Grrr. WEIRD.

EDIT2: okay mostly talking to myself but who knows if this helps someone else :-)
--> Reaon why on one Notebook the "Pro Controller" immediatly changes to XBOX360 is because "Steam" is running there on Autostart.

So Standard behavior of the Joypad seems to be "Pro Conrtroller". It even identifies itself as Nintendo with correct USB VID / PID as far as i can see (legally doubtful i believe).

So any kind of USB restting / "touching" seems to bring it into XBOX360 mode. (Also if i run HIDGuardian which seems to also "touch" the VID / PID of a native Nintendo Pro Controller)

That is probably something that is not the fault of BetterJoy or yuzu and can not be remidied.

Any different opinion / advice? Any idea if a native Pro Controller does not do and would work (i actually prefer wired). Or "cheapest possible" alternatiove that will work with yuzu & Motion Controller?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests