Pandora's Box dual arcade sticks to PS4/Switch console setup

GPC2 script programming for Titan Two. Code examples, questions, requests.

Re: Pandora's Box dual arcade sticks to PS4/Switch console s

Postby J2Kbr » Thu Jun 21, 2018 3:45 pm

For reference here are the descriptors decoded:
Code: Select all
[USB DESCRIPTOR]
12           bLength: 18
01           bDescriptorType: 1 - DEVICE
00 02        bcdUSB: 2.00
00           bDeviceClass: 0 (00)
00           bDeviceSubClass: 0 (00)
00           bDeviceProtocol: 0 (00)
08           bMaxPacketSize0: 8
C0 16        idVendor: 16C0
E0 05        idProduct: 05E0
00 01        bcdDevice: 1.00
01           iManufacturer: 1
02           iProduct: 2
00           iSerialNumber: 0
01           bNumConfigurations: 1

09           bLength: 9
02           bDescriptorType: 2 - CONFIGURATION
22 00        wTotalLength: 34
01           bNumInterfaces: 1
01           bConfigurationValue: 1
00           iConfiguration: 0
80           bmAttributes: 128 (Bus Powered)
0A           MaxPower: 20mA

09             bLength: 9
04             bDescriptorType: 4 - INTERFACE
00             bInterfaceNumber: 0
00             bAlternateSetting: 0
01             bNumEndpoints: 1
03             bInterfaceClass: 3 (03)
00             bInterfaceSubClass: 0 (00)
00             bInterfaceProtocol: 0 (00)
00             iInterface: 0

09               bLength: 9
21               bDescriptorType: 33 - HID
11 01            bcdHID: 1.11
00               bCountryCode: 0
01               bNumDescriptors: 1
22               bDescriptorType: 34
70 00            wDescriptorLength: 112

07               bLength: 7
05               bDescriptorType: 5 - ENDPOINT
81               bEndpointAddress: 1 IN
03               bmAttributes: 3 (Interrupt, None, Data)
08 00            wMaxPacketSize: 8
0A               bInterval: 10

[STRING 1 DESCRIPTOR]
3H Dual Arcade

[STRING 2 DESCRIPTOR]
3H Dual Arcade

[INTERFACE 0 HID DESCRIPTOR]
05 01        (GLOBAL) USAGE_PAGE         0x0001 Generic Desktop Page
09 04        (LOCAL)  USAGE              0x00010004 Joystick (CA=Application Collection)
A1 01        (MAIN)   COLLECTION         0x01 Application (Usage=0x00010004: Page=Generic Desktop Page, Usage=Joystick, Type=CA)
09 01          (LOCAL)  USAGE              0x00010001 Pointer (CP=Physical Collection)
A1 00          (MAIN)   COLLECTION         0x00 Physical (Usage=0x00010001: Page=Generic Desktop Page, Usage=Pointer, Type=CP)
85 01            (GLOBAL) REPORT_ID          0x01 (1)
09 30            (LOCAL)  USAGE              0x00010030 X (DV=Dynamic Value)
09 31            (LOCAL)  USAGE              0x00010031 Y (DV=Dynamic Value)
15 FF            (GLOBAL) LOGICAL_MINIMUM    0xFF (-1)
25 01            (GLOBAL) LOGICAL_MAXIMUM    0x01 (1)
75 02            (GLOBAL) REPORT_SIZE        0x02 (2) Number of bits per field
95 02            (GLOBAL) REPORT_COUNT       0x02 (2) Number of fields
81 02            (MAIN)   INPUT              0x00000002 (2 fields x 2 bits) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
75 01            (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
95 04            (GLOBAL) REPORT_COUNT       0x04 (4) Number of fields
81 03            (MAIN)   INPUT              0x00000003 (4 fields x 1 bit) 1=Constant 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
05 09            (GLOBAL) USAGE_PAGE         0x0009 Button Page
19 01            (LOCAL)  USAGE_MINIMUM      0x00090001 Button 1 Primary/trigger (MULTI=Selector, On/Off, Momentary, or One Shot)
29 0C            (LOCAL)  USAGE_MAXIMUM      0x0009000C Button 12 (MULTI=Selector, On/Off, Momentary, or One Shot)
15 00            (GLOBAL) LOGICAL_MINIMUM    0x00 (0)
25 01            (GLOBAL) LOGICAL_MAXIMUM    0x01 (1)
75 01            (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
95 0C            (GLOBAL) REPORT_COUNT       0x0C (12) Number of fields
81 02            (MAIN)   INPUT              0x00000002 (12 fields x 1 bit) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
75 01            (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
95 04            (GLOBAL) REPORT_COUNT       0x04 (4) Number of fields
81 03            (MAIN)   INPUT              0x00000003 (4 fields x 1 bit) 1=Constant 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
C0             (MAIN)   END_COLLECTION     Physical
C0           (MAIN)   END_COLLECTION     Application

05 01        (GLOBAL) USAGE_PAGE         0x0001 Generic Desktop Page
09 04        (LOCAL)  USAGE              0x00010004 Joystick (CA=Application Collection)
A1 01        (MAIN)   COLLECTION         0x01 Application (Usage=0x00010004: Page=Generic Desktop Page, Usage=Joystick, Type=CA)
09 01          (LOCAL)  USAGE              0x00010001 Pointer (CP=Physical Collection)
A1 00          (MAIN)   COLLECTION         0x00 Physical (Usage=0x00010001: Page=Generic Desktop Page, Usage=Pointer, Type=CP)
85 02            (GLOBAL) REPORT_ID          0x02 (2)
09 30            (LOCAL)  USAGE              0x00010030 X (DV=Dynamic Value)
09 31            (LOCAL)  USAGE              0x00010031 Y (DV=Dynamic Value)
15 FF            (GLOBAL) LOGICAL_MINIMUM    0xFF (-1)
25 01            (GLOBAL) LOGICAL_MAXIMUM    0x01 (1)
75 02            (GLOBAL) REPORT_SIZE        0x02 (2) Number of bits per field
95 02            (GLOBAL) REPORT_COUNT       0x02 (2) Number of fields
81 02            (MAIN)   INPUT              0x00000002 (2 fields x 2 bits) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
75 01            (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
95 04            (GLOBAL) REPORT_COUNT       0x04 (4) Number of fields
81 03            (MAIN)   INPUT              0x00000003 (4 fields x 1 bit) 1=Constant 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
05 09            (GLOBAL) USAGE_PAGE         0x0009 Button Page
19 01            (LOCAL)  USAGE_MINIMUM      0x00090001 Button 1 Primary/trigger (MULTI=Selector, On/Off, Momentary, or One Shot)
29 0C            (LOCAL)  USAGE_MAXIMUM      0x0009000C Button 12 (MULTI=Selector, On/Off, Momentary, or One Shot)
15 00            (GLOBAL) LOGICAL_MINIMUM    0x00 (0)
25 01            (GLOBAL) LOGICAL_MAXIMUM    0x01 (1)
75 01            (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
95 0C            (GLOBAL) REPORT_COUNT       0x0C (12) Number of fields
81 02            (MAIN)   INPUT              0x00000002 (12 fields x 1 bit) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
75 01            (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
95 04            (GLOBAL) REPORT_COUNT       0x04 (4) Number of fields
81 03            (MAIN)   INPUT              0x00000003 (4 fields x 1 bit) 1=Constant 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
C0             (MAIN)   END_COLLECTION     Physical
C0           (MAIN)   END_COLLECTION     Application

As you can see there are two HID report descriptors, possible one for each arcade stick. The issue here is both share the same USB interface, differentiating only by the Report ID. In addition to that, the HID descriptors are very similar, causing the inputs to overlap. Unfortunately at current implementation the Titan Two does not offers means to differentiate one from another and the inputs from both will be merged into a single data structure.

We have planned to implement in the future the ability to access HID reports directly via script, which then could used in this case.
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Re: Pandora's Box dual arcade sticks to PS4/Switch console s

Postby Xz3ViER » Fri Apr 10, 2020 12:49 am

I need help on this cause i wanted to use my Pandoras box 5 dual controller
on my tekken 7 game on pc but the controller wont work
the drivers only recognized 1 controller which is 3A game controller
and the properties option wont work im running tekken 7 on windows 7 thanks
User avatar
Xz3ViER
Private
Private
 
Posts: 1
Joined: Fri Apr 10, 2020 12:46 am

Re: Pandora's Box dual arcade sticks to PS4/Switch console s

Postby J2Kbr » Sun Apr 12, 2020 12:25 pm

Xz3ViER wrote:I need help on this cause i wanted to use my Pandoras box 5 dual controller on my tekken 7 game on pc but the controller wont work the drivers only recognized 1 controller which is 3A game controller and the properties option wont work im running tekken 7 on windows 7 thanks

Please note the Titan Two is capable to recognize inputs from multiple controller. however, it has a single output (one player). The inputs from all connected controllers are merged into a single output. If more users will play on the same console/PC, a Titan Two device is needed for each one.
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Previous

Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 91 guests