jackun / USBqemu-wheel

PCSX2 usb plugin for wheels and increasingly more stuff
The Unlicense
121 stars 21 forks source link

Feature Request: Support For Rock Band drums #18

Closed InlineData closed 5 years ago

InlineData commented 5 years ago

Hello Jackun,

I was wondering if you would be interested in adding support for a drums device type in this plugin for Rock Band drums. I have searched a while to see if any plugin supports drum input so I could play them on PCSX2 but have come up short. This leaves games like Rock Band with perfect emulation but unable to play all of its features since you cannot select to play drums without having a drum controller. It would be nice to have something similar to your Pad/Wheel device type except for drums where a Device API for DInput or Raw Input could be selected. I think that I wouldn't be the only one who would be interested in such a feature. In my search I have come across many others asking the same question. There might be other communities as well that might benefit from such a feature. The Guitar Hero community comes to mind off the top of my head.

Thank you for your time and consideration in this feature request.

Sincerely, InlineData

P.S. Thank you for your wonderful support of Logitech USB Mic. It works great in Rock Band.

jackun commented 5 years ago

Can you dump its usb descriptors? I made a little utility, idk how well it works. On windows the drum controller probably needs to have WinUSB driver installed https://zadig.akeo.ie/

Or boot to linux live cd.

InlineData commented 5 years ago

Thank you for getting back to me so quickly.

Unfortunately I don't own any PS2 Rock Band Drums specifically. I do however have the WII drums for Rock Band. I don't know how helpful they would be to you but I dumped the usb descriptors anyway just in case.

After converting the device drive from HIDUSB to WinUSB as recommended your utility provided me this output:

0) 04b4:0901
1) 8086:8c31
2) 1038:1378
3) 1bad:0005
4) 04b4:0510
5) 8087:8000
6) 0a5c:21e8
7) 8087:8008
8) 8086:8c2d
9) 8086:8c26
Select device, enter number: 3
Device descriptor: 1201000200000040ad1b0500001001020001
String descriptor 0:
        'Licensed by Nintendo of America '
        42034c006900630065006e0073006500640020006200790020004e0069006e00740065006e0064006f0020006f006600200041006d00650072006900630061002000
String descriptor 1:
        'Harmonix Drum Controller for Nintendo Wii'
        54034800610072006d006f006e006900780020004400720075006d00200043006f006e00740072006f006c006c0065007200200066006f00720020004e0069006e00740065006e0064006f002000570069006900
String descriptor 2:
        'Љ'
        04030904
Config descriptor 1: 0902290001010080320904000002030000000921110100012289000705020340000a0705810340000a
bNumInterfaces: 1
bInterfaceNumber 0, bInterfaceClass 3
        HID report descriptor: 05010905a10115002501350045017501950d05091901290d81029503810105012507463b017504950165140939814265009501810126ff0046ff0009300931093209357508950481020600ff0920092109220923092409250926092709280929092a092b950c81020a21269508b1020a2126910226ff0346ff03092c092d092e092f751095048102c0

Press enter to exit

Very sorry once again that I don't own any PS2 Rock Band drums. I will keep an eye out for them and pick them up if I see something within my budget. Thanks again for all your help.

Sincerely, InlineData

jackun commented 5 years ago

It would be better to get the descriptors off the PS2 drums and some USB traffic capture would be useful too as there's probably gonna be some vendor-defined data structures like the Wii's you posted. But there seem to be many DIY midi projects on the 'net, maybe someone got something useful posted already.

But looking at the prices of the drum kits.. jeez :smile: (salivating over fanatec clubsport..)

If you haven't, uninstall the WinUSB driver from Device Manager and check the "Delete the driver" so you can use it normally again (if anything supports it).

InlineData commented 5 years ago

Oh okay. I thought it might be the case. I will try look around the net and check and see if someone already has some information on this already.

Yeah unfortunately the online market really jacks up the prices... I was going to check around my local used game stores and see if I have better luck. Usually they have better prices since they are motivated to get rid of them since they take up so much space. Lol yeah, if you were to get one of these drum sets would probably put your fanatec clubsport plans out the window for a bit. Of course I don't expect you to get one. I'm the person who requested the feature I should get it. It might just be a little while if that's okay. I originally decided to make this feature request gambling that the WII drums would be similar enough to get good info off of or the off chance you might already have a PS2 drum kit or someone will see this issue will provide the necessary info. I figured I can't win if I didn't play :P

Thank you I uninstalled the driver and it works normally.

I will get back to you if I find anything on the net or manage to get my hands on a reasonably priced PS2 drum set. Thanks again.

jackun commented 5 years ago

OK, seems the games just check the VID/PID luckily. I got it so far that Rock Band and Rock Band 2 detect the drum kit ( VID_0x12BA&PID_0x0210 Harmonix Drum Kit for PlayStation(R)3) but I have no idea about the report data format. Passing random data to it, it keeps selecting/canceling in the menu so it seems to work :smile:

E: found drum pad/bass buttons and start/select, seems to work.

InlineData commented 5 years ago

Oh that's excellent!!!! Thanks for trying despite not having a drum kit! Glad that it recognizes it! And you found the drum pad/bass buttons? o.0 you are amazing!!!

P.S I will still keep on searching for any information and drums in my local area. Sorry I haven't had any luck so far.

jackun commented 5 years ago

Ok, so do the Wii drums work in windows as a controller? Like can you map the buttons in wheel configuration dialog?

Sheeeet, needs an usb hub too for 4 player action :smile:

InlineData commented 5 years ago

Sorry I took so long.

Yes the Wii drums work in windows as a regular controller. I believe it is mapped as DInput. Before contacting you I actually tried to map the drums to a race wheel just to see if it would work with rock band lol 😆. Your plugin mapped the input fine but Rock Band wouldn't recognize the race wheel. I figured it was worth trying though just in case 😛

Yee it needs a usb hub. I actually have your plugin working with LilyPad to get the Microphone working with 2 guitars (I tested). This actually requires using some multitap settings from LilyPad. All together you need the microphone a dual shock 2 controller (for vocalist controls) 2 guitars and drum mapped to play with all players for this game... After this plugin was complete I was actually thinking on making a tutorial and putting it up onto YouTube to show people how to get a completely functioning version (all players supported) of Rock Band working on PCSX2 so other people can enjoy! It is so unfortunate that this game hasn't been ported to PC. I believe once this plugin is hopefully done PCSX2 will be the only emulator on windows to fully support Rock Band.

Anyway, I decided to include a screenshot from your plugin showing it working receiving input from my Wii drums...

DInput Summery from your plugin (just in case)

Wii Drum Layout:

Button on Wii Drums -> Button on your plugin
A: -1/0/0/394 -> CROSS / A
B: -1/0/0/395 -> CIRCLE / B
1: -1/0/0/393 -> SQUARE / X
2: -1/0/0/396 -> TRIANGLE / Y

+: -1/0/0/402 -> START
-: -1/0/0/401 -> SELECT

red drum pad: -1/0/0/395 -> L2
yellow drum pad: -1/0/0/396 -> L1 / L
blue drum pad: -1/0/0/393 -> R1 / R
green drum pad: -1/0/0/394 -> R2

bass drum pedal: -1/0/0/397 -> BRAKE

I noticed some of the buttons on the drums are the same as the pads on the drums. That is interesting. I did it twice to make sure I wasn't tapping a button accidentally. I guess that is just the way it is. Next time I get a chance I will try playing the game by pressing the buttons instead of hitting the drum pads see if it works lol. screenshot 4648

jackun commented 5 years ago

Try this https://ci.appveyor.com/api/buildjobs/cwvc1oh36qtvnayr/artifacts/build%2FUSBqemu-wheel-0.7.4-2-2019-02-18-6818e5fb-Release.zip

Bass drum is orange.

InlineData commented 5 years ago

I just tested it out. It works 100%!!! I think there is absolutely no problems with the way it functions. It also works with all the other instruments fine too!! Thank you so much!!! 😃

jackun commented 5 years ago

Unless I've broken something in the meanwhile, should be in 0.8.0

isaacdlp commented 1 month ago

Hi there! Tried the "Rock Band Drum Kit" in PCSX2 2.0.2 using an XBox Guitar Hero Drum Kit and it works (AWESOME) with a small issue: the bass drum can be mapped with LeftShoulder, but there is no way to map the extra Orange Cymbal (RightShoulder) - the GH drum has an extra orange cymbal as compared to the RB drum kit. Is there any way to provide support to the full GH drum kit? Thanks in advance and congratulations for your amazing work with PCSX2... such a great emulator!