-
Notifications
You must be signed in to change notification settings - Fork 5
Add support for the Xbox One PDP Drumkit through the USB port #11
Description
On the back of the Rock Band 4 Xbox One PDP controller, under the battery cover, is a micro USB port. There is this project on github that shows it is possible to read in the drum inputs when plugged in through the USB port. While it does recognize the inputs it's not good enough to actually play with.
https://github.com/OndrejBakan/pdp-drums/tree/master
So now I am looking into bringing it into YARG natively. I think it might work if I had a wireless receiver but I don't.
This is the device information from Unity. The vendorId and productId are the same but it shows as an HID device instead of a GameInput device.
{
"interface": "HID",
"type": "",
"product": "PDP Tablah Drum Set",
"serial": "0000000000000000",
"version": "1537",
"manufacturer": "Performance Designed Products",
"capabilities": "{\"vendorId\":3695,\"productId\":369,\"usage\":1,\"usagePage\":65280,\"inputReportSize\":33,\"outputReportSize\":33,\"featureReportSize\":0,\"elements\":[],\"collections\":[]}"
}
I tried modifying the Initialize function in XboxOneFourLaneDrumkit to recognize the input. I tried just adding the following line.
HidLayoutFinder.RegisterLayout<XboxOneFourLaneDrumkit>(0x0E6F, 0x0171);
It didn't work at first because the usage and usagePage values don't match the values the InputDeviceMatcher in Hid LayoutFinder expects. When I commented out those requirements it finds it and tries to map it but it isn't quite right. The red pad registers as the blue cymbal for instance.
That's where I am stuck. I am willing to continue messing with this but my Unity experience is basically non existent. I am not sure how the buttons are being mapped to which bytes. I would also like some guidance on properly implementing the initialization so I don't need to comment anything out.