Megadrum + Guitar Hero World tour

Discussions of any related software

Moderator: Related software moderators

Re: Megadrum + Guitar Hero World tour

Postby shwems » Fri Aug 14, 2009 5:53 am

that why i hope the team here will find a way to play GH with the mega drum, to a last obtain 5 lanes ...
btw, the Rubis solution include to buy a game controller, solution that i don't want (because that need to buy the drum controller :( )

Is it really impossible to "map" and convert signal of the megadrum brain ? (i am not really sure how it work)

regards
shwems
 
Posts: 11
Joined: Fri Aug 07, 2009 1:40 pm

Re: Megadrum + Guitar Hero World tour

Postby speterman » Fri Aug 14, 2009 6:07 am

Rubis wrote:I got my drums for $30 new.


Is it possible, Here in Spain this is totally impossible I think.

Coming back with the main topic:

I think modifying the PIC firmware of the MIDI-OVER-USB is the cheaper solution (near to 0 cost if you own a MD, of course). But if you prefer having a separate board (Remember that this is a software related topic for MD), the schematic is almost done if you copy the synthex midi to usb part.
That´s to say, One midi-in connector -> PIC -> USB connector (with "a few" components more).

It is quite easy to extend the functions of the pic to manage two interfaces at the same time (in this case, one audio-midi and one hid), that´s called composite usb device. (Right now, the midi-over-usb is already a composite usb device since you need to implement two interfaces).

I´m sorry but I only have xbox drum so I can´t help with the key mapping (or hid-reports).
PS3 drums are USB or Bluetooth? both have hid classes but I only have experiece sniffing usb busses.

Don´t fight about witch drumkit is better, mapping should be with the controller with more lanes.

Is here someone with the PS3 drumkit? I can send one software that catches usb bus data and should be the first step to reach, I guess, so We can have de hid-reports ready to test.
speterman
 
Posts: 30
Joined: Mon May 11, 2009 12:42 pm
Location: Logroño, Spain

Re: Megadrum + Guitar Hero World tour

Postby Rubis » Fri Aug 14, 2009 7:45 am

Rock Band has more lanes: the four pads, the kick, and the 3 optional cymbals. That is 8 distinct inputs the game can understand. The cymbals are understood as different from the pads. The game just doesn't have a dedicated path for them. It plays different sounds for a green cymbal than the green pad.

GHWT only has the five pads + the kick = 6 distinct inputs.

But as I said before, it doesn't even matter. Once we get the basic framework, I imagine it would be trivial to adapt it to the other game.

speterman wrote:
Rubis wrote:I got my drums for $30 new.

Is it possible, Here in Spain this is totally impossible I think.

I found it on ebay with free shipping. I don't think they would ship to Spain though. I also got two guitars and the game for $35 from the same ebay store.
speterman wrote:Is here someone with the PS3 drumkit? I can send one software that catches usb bus data and should be the first step to reach, I guess, so We can have de hid-reports ready to test.

I can help test, but I've never tried sniffing USB. What software should I use? I have access to Linux (preferred, I run openSUSE 11.0) and Windows XP.
Rubis
 
Posts: 132
Joined: Mon Feb 16, 2009 5:08 pm

Re: Megadrum + Guitar Hero World tour

Postby speterman » Fri Aug 14, 2009 8:24 am

Rubis wrote:I imagine it would be trivial to adapt it to the other game.

Yes, it is trivial as the only change is the mapping of midi notes to hid-reports.

There is a free 15 day evaluation usb protocol analyzer that can extract the info that we need.

http://www.sysnucleus.com/usbtrace_download.html

You can download the software for winxp, and download the hid Download Device Class Decoders at bottom too (shows hid info in a human readable format ).

In linux I only know how to extract the usb descriptors for the drumkit (The most important thing that we need because defines the device). As root:
Code: Select all
lsusb -vvv

Then copy only the info regarding the drumkit.
This info can be extracted by the windows software too.

With the usb analyzer you should be able to view the drumkit, and, whenever you press a pad in the drumkit you should see a new hid-report coming from the device.

I can test the functionality with my atmel arm7 developpemnt board (based on a at91sam7s64) because I already have hid devices implemented. Switching the code to PIC should be easy as far as I know that Microchip provides hid examples.
speterman
 
Posts: 30
Joined: Mon May 11, 2009 12:42 pm
Location: Logroño, Spain

Re: Megadrum + Guitar Hero World tour

Postby der Papst » Fri Aug 14, 2009 9:38 am

BTW: How should we design the configuration (which midi-note is linked to which HID-Signal)?
The best place would be in the source for the µC, but so every user must program the controller and hack the source...
der Papst
 
Posts: 30
Joined: Thu Aug 06, 2009 1:50 pm

Re: Megadrum + Guitar Hero World tour

Postby speterman » Fri Aug 14, 2009 10:24 am

der Papst wrote:BTW: How should we design the configuration (which midi-note is linked to which HID-Signal)?
The best place would be in the source for the µC, but so every user must program the controller and hack the source...

There are several options:

for a first version, I suppose that using standard midi notes (GM drummap) we can use snare note for snare-hid-signal, and all other pads configured as standard GM notes. (If you want head and rim hit the same snare hid-signal, you only have to set snare head & rim with the same snare note!.

If we can reach this, a second option can be developped. Usually, hid devices are only input devices, but the usb hid class permits sending data to the hid device (usually to configure the device). In fact, there are examples on how to program a PIC from a PC using a bootloader based on a hid device.

I think that in this moment, the most important thing is to get the full usb descriptors for the PS3/PC drumkit and hid-reports with all the posible values of the pads/HH/crash/pedal.

As it appears that no PIC developper is interested in this little proyect, so I will try to develop it in a couple of weeks (I have no time just now) using Microchip hid examples. But for this I need the info about the drumkit!
speterman
 
Posts: 30
Joined: Mon May 11, 2009 12:42 pm
Location: Logroño, Spain

Re: Megadrum + Guitar Hero World tour

Postby Rubis » Fri Aug 14, 2009 2:03 pm

Here is the dmesg output when I plug in the Rock Band dongle:
Code: Select all
usb 4-2.1.3: new full speed USB device using ehci_hcd and address 10
usb 4-2.1.3: configuration #1 chosen from 1 choice
input: Licensed by Sony Computer Entertainment America Harmonix Drum kit for PlayStation�3 as /devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.1/4-2.1.3/4-2.1.3:1.0/input/input9
input,hidraw3: USB HID v1.11 Gamepad [Licensed by Sony Computer Entertainment America Harmonix Drum kit for PlayStation�3] on usb-0000:00:1d.7-2.1.3
usb 4-2.1.3: New USB device found, idVendor=12ba, idProduct=0210
usb 4-2.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-2.1.3: Product: Harmonix Drum kit for PlayStation�3
usb 4-2.1.3: Manufacturer: Licensed by Sony Computer Entertainment America

And here is the lsusb -vvv
Code: Select all
Bus 004 Device 010: ID 12ba:0210 Licensed by Sony Computer Entertainment America Harmonix Drum Kit for PlayStation(R)3
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x12ba Licensed by Sony Computer Entertainment America
  idProduct          0x0210 Harmonix Drum Kit for PlayStation(R)3
  bcdDevice            2.00
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     137
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
cannot read device status, Operation not permitted (1)


And for the GHWT:
dmesg:
Code: Select all
usb 4-2.1.3: new full speed USB device using ehci_hcd and address 11
usb 4-2.1.3: configuration #1 chosen from 1 choice
input: RedOctane MIDI Drum GuitarHero for Playstation (R) 3 as /devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.1/4-2.1.3/4-2.1.3:1.0/input/input10
input,hidraw3: USB HID v1.10 Gamepad [RedOctane MIDI Drum GuitarHero for Playstation (R) 3] on usb-0000:00:1d.7-2.1.3
usb 4-2.1.3: New USB device found, idVendor=12ba, idProduct=0120
usb 4-2.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-2.1.3: Product: GuitarHero for Playstation (R) 3
usb 4-2.1.3: Manufacturer: RedOctane MIDI Drum

And lsusb -vvv
Code: Select all
Bus 004 Device 011: ID 12ba:0120 Licensed by Sony Computer Entertainment America
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x12ba Licensed by Sony Computer Entertainment America
  idProduct          0x0120
  bcdDevice            1.08
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower               50mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     137
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
cannot read device status, Operation not permitted (1)


For the USBTrace, do you want me to just save a log of me hitting pads?
Rubis
 
Posts: 132
Joined: Mon Feb 16, 2009 5:08 pm

Re: Megadrum + Guitar Hero World tour

Postby speterman » Fri Aug 14, 2009 4:50 pm

Great work Rubis!

Rubis wrote:For the USBTrace, do you want me to just save a log of me hitting pads?


Yes, don´t mind if you save as defult usbtrace format or you export it to html for instance (maybe is better to get usbtrace format to decode hid easily).

I am concerned with "Report Descriptors: ** UNAVAILABLE **" message.
Are you running lsusb with root? It´s strange, but doesn´t mind too much, with right-clicking the device under usbtrace you can export all this info, maybe this one can get the report-descriptor.

it seems to emulate a hid-gamepad, so, I´m pretty sure that under control panel->game devices->"The drumkit usb-device-gamepad", you can see what buttons & axis activates each pad. Can you test it? velocity info should be catched by axis movement and pad hits should be emulated as buttons, I think.

Do you have both drumkits? and a Megadrum? :shock: Lucky man!
speterman
 
Posts: 30
Joined: Mon May 11, 2009 12:42 pm
Location: Logroño, Spain

Re: Megadrum + Guitar Hero World tour

Postby elrules » Fri Aug 14, 2009 9:53 pm

NOW, this topic is really getting interesting. Thanks speterman and Rubis.

I am looking forward to seeing some progress on this, as I also would like to use my kit for those games. (I am right now addicted to guitar hero with the guitar, but would love to use the drums)

PD: Do you know which accesories do I need for playing guitar hero world tour, guitar hero metallica and rock band? I already have a guitar that I can use with guitar hero 1,2 and 3. But when I start Guitar Hero Metallica (for example) it asks me to plug something. Do I need (mandatory) a microphone or something like that to play that game? Could someone tell me what exactly I need to play that game? (Note: I already have a guitar hero 2 guitar and microphones of the SingStar, and a megadrum kit ;) )
elrules
 
Posts: 629
Joined: Thu Nov 29, 2007 4:51 pm
Location: Murcia, Spain, Europe, The World

Re: Megadrum + Guitar Hero World tour

Postby jman 31 » Sat Aug 15, 2009 12:09 am

I am on vacation right now, but I agree. This is definitely getting interesting. When I get home I will see if I can contribute in some way.
jman 31
 
Posts: 536
Joined: Thu Jul 10, 2008 10:51 pm
Location: USA

PreviousNext

Return to Related Software

Who is online

Users browsing this forum: Google [Bot] and 25 guests