-
Notifications
You must be signed in to change notification settings - Fork 355
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
Power A Wireless Switch Pro controller not recognized v5 #84
Comments
Yep, Having the same issue. The PowerA 3d party Switch Pro controller isn't recognized. I also get a Unhandled exception error if I hit the Add Controller button. I'm not sure if that is related. |
Since developers are not fixing 'Add Controller', we can't use PowerA controllers in Cemu. |
I am able to use this controller in CEMU but only with DInput which means no rumble support and gyro controls. Essential for some games especially BotW. |
Solved using nonOriginal controller option. |
If anyone wants to test a proper way of adding 3rd party controllers - #419 (comment) |
Power A Wireless (only, no USB-C port) Switch controller is not trapped by BetterJoy v5
Controller works (without gyro) out-of-the-box (Both Input types per JoyToKey) but is not detected by BetterJoy, HidGuardian can successfully mask the device, and set the PID of BetterJoy, but since BetterJoy refuses to recognize the controller it does not attempt to get gyro info. (I assume also the reason ViGEm doesn't create a X-Input controller)
Shows up as:
HidGuardian:
Nintendo Wireless Gamepad
HID{00001124-0000-1000-8000-00805F9B34FB}_VID&00020000_PID&0000
Game Controllers:
Wireless Gamepad
Device Manager:
Lic Pro Controller
Device instance path
BTHENUM\DEV_000BE470085B\9&2C57BC94&0&BLUETOOTHDEVICE_000BE470085B
Hardware Ids
BTHENUM\Dev_000BE470085B
Compatible Ids
BTHENUM\GENERIC_DEVICE
Configuration Id
bth.inf:BTHENUM\GENERIC_DEVICE,BthGenericDevice.NT
Update:
Poking through the code I see why:
Program.cs:
31:private const ushort vendor_id = 0x57e;
32:private const ushort vendor_id_ = 0x057e;
Above lines select for Hardware Vendor ID of Nintendo, PowerA does not spoof Nintendo VenId, (instead leaving the field blank)?
108: IntPtr ptr = HIDapi.hid_enumerate(vendor_id, 0x0);
Above line then enumerates on the Nintendo vendor_id as defined in line 31 previously referenced.
HIDapi.hid_enumerate() is imported into HIDapi.cs here:
37:public static extern IntPtr hid_enumerate(ushort vendor_id, ushort product_id);
Where you see it takes two unsigned shorts, representing vendor and product ids respectively.
I believe the best bet to add support is to use HIDapi.hid_free_enumeration():
40:public static extern void hid_free_enumeration(IntPtr phid_device_info);
The text was updated successfully, but these errors were encountered: