Rubis wrote:The PS3 drums should work on the PS2.
Ok, I have seen The original drumkit for GHWT on a online shop and tells that works with PS2/3, but in the game shop I usually go they told me that PS3 & PS2 drumkits are different (they have no idea!, I suppose).
I thought It should work because the original usb device descriptor that Rubis provided tells that the drumkit is an USB 1.0 compilant device! strange for a new device as USB 1.0 standard is more than 10 years old. But PS2 only have support to this 1.0 definition so... it seems to be done this way to keep compatibility with PS2.
I´m in bussiness travel during at least 2 days and I have no access to my dev board, but I have been reading the HID 1.10 pdf document and I'm sure that I have at least two usb requests missing in the code.
The HID report for GHWT is the same as RB and is:
- Code: Select all
Usage Page (Generic Desktop) 05 01
Usage (Game Pad) 09 05
Collection (Application) A1 01
Logical Minimum (0) 15 00
Logical Maximum (1) 25 01
Physical Minimum (0) 35 00
Physical Maximum (1) 45 01
Report Size (1) 75 01
Report Count (13) 95 0D
Usage Page (Button) 05 09
Usage Minimum (Button 1) 19 01
Usage Maximum (Button 13) 29 0D
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 IN 13 bits : BUTTONS
Report Count (3) 95 03
Input (Cnst,Ary,Abs) 81 01 IN 3 bits: PADDING BUTTONS
Usage Page (Generic Desktop) 05 01
Logical Maximum (7) 25 07
Physical Maximum (315) 46 3B 01
Report Size (4) 75 04
Report Count (1) 95 01
Unit (Eng Rot: Degree) 65 14
Usage (Hat Switch) 09 39
Input (Data,Var,Abs,NWrp,Lin,Pref,Null,Bit) 81 42 IN 4 bits HAT SWITCH
Unit (None) 65 00
Report Count (1) 95 01
Input (Cnst,Ary,Abs) 81 01 IN 4 bits PADDING HAT
Logical Maximum (255) 26 FF 00
Physical Maximum (255) 46 FF 00
Usage (X) 09 30
Usage (Y) 09 31
Usage (Z) 09 32
Usage (Rz) 09 35
Report Size (8) 75 08
Report Count (4) 95 04
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 IN 4 Bytes AXIS
Usage Page (Vendor-Defined 1) 06 00 FF
Usage (Vendor-Defined 32) 09 20
Usage (Vendor-Defined 33) 09 21
Usage (Vendor-Defined 34) 09 22
Usage (Vendor-Defined 35) 09 23
Usage (Vendor-Defined 36) 09 24
Usage (Vendor-Defined 37) 09 25
Usage (Vendor-Defined 38) 09 26
Usage (Vendor-Defined 39) 09 27
Usage (Vendor-Defined 40) 09 28
Usage (Vendor-Defined 41) 09 29
Usage (Vendor-Defined 42) 09 2A
Usage (Vendor-Defined 43) 09 2B
Report Count (12) 95 0C
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 IN 12 Bytes VD
Usage (Vendor-Defined 9761) 0A 21 26
Report Count (8) 95 08
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) B1 02 FEATURE 8 bytes VD
Usage (Vendor-Defined 9761) 0A 21 26
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02 OUTPUT 8 bytes VD
Logical Maximum (1023) 26 FF 03
Physical Maximum (1023) 46 FF 03
Usage (Vendor-Defined 44) 09 2C
Usage (Vendor-Defined 45) 09 2D
Usage (Vendor-Defined 46) 09 2E
Usage (Vendor-Defined 47) 09 2F
Report Size (16) 75 10
Report Count (4) 95 04
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 IN 8 bytes VD
End Collection C0
At the right I point the direction of the report (IN: pic->PS3 ; OUT: PS3->pic), the size of the field, and the real usage. In total, IN reports are 27 bytes lenght & OUT ones 8 bytes.
I forgot that the hid report includes a features report (8 bytes), and I have not implement this one.
But maybe if I remove the feature & output report from the HID descriptor the Host (PSx) will not ask for it!, I should test it...
I will try to test all this stuff when i´ll back!