Page 1 of 1

Aimtrak gun at PS4 FPS games with T2 (inmersive play)

PostPosted: Wed Jan 02, 2019 3:15 pm
by Eux
Hi all. I´m absolutely new at this. So I´m sorry if this is not the right place to make this question (I looked for aimtrak or any other IR device posts... and no way, just wiimote IR based).

What I have:
Aimtrak is an IR device (similar to old lightguns) based on USB conection (a sensorbar and a gun - both usb - gun is 4 meter usb cable and usb sensorbar just as power suply). In a PC, emulates an usb mouse.
https://www.ultimarc.com/aimtrak.html

What I want:
Conect it to my titan two and playing ps4 FPS games (such as COD, fortnite or zombie army...), shooting with my IR gun to screen.

What I got:
I could connect my IR gun to my T2, both to PS4, but just move as a joystick (and what I want is to move the hud)

What I need:
Suggestions?. I´m new at this and no idea about programming scripts. Please help, any idea is apreciated.

Re: Aimtrak gun at PS4 FPS games with T2 (inmersive play)

PostPosted: Wed Jan 02, 2019 3:24 pm
by J2Kbr
Welcome to our forums.

Please capture the USB descriptors of your lightgun controller, so I can check the compatibility with the Titan Two.

On Gtuner IV, with the Titan Two connected to computer, go to top menu Tools -> "Fetch Descriptors ...". Now plug the controller, to any port on the Titan Two. The descriptors will show in the window, click on the button "Copy Descriptors" and post here. Thank you.

Re: Aimtrak gun at PS4 FPS games with T2 (inmersive play)

PostPosted: Thu Jan 03, 2019 1:08 am
by Eux
First of all, thanks for your fast answer.

Here are the results:

[USB DESCRIPTOR]
12 01 00 02 00 00 00 08 09 D2 01 16 A4 00 05 05 03 01 09 02 54 00 03 01 02 80 FA 09 04 00 00 01 03 00 00 02 09 21 11 01 00 01 22 21 00 07 05 81 03 08 00 0A 09 04 01 00 01 03 00 00 02 09 21 11 01 00 01 22 3A 00 07 05 82 03 14 00 0A 09 04 02 00 01 03 00 00 01 09 21 11 01 00 01 22 47 00 07 05 83 03 08 00 0A

[STRING 5 DESCRIPTOR]
00 00 00 02 00 00 02 01 80 06 03 05 04 09 00 12
12 03 55 00 6C 00 74 00 69 00 6D 00 61 00 72 00 63 00

[STRING 5 DESCRIPTOR]
00 00 00 02 00 00 02 01 80 06 03 05 04 09 00 12
12 03 55 00 6C 00 74 00 69 00 6D 00 61 00 72 00 63 00

[STRING 3 DESCRIPTOR]
00 00 00 02 00 00 02 01 80 06 03 03 04 09 00 04
04 03 39 00

[INTERFACE 0 HID DESCRIPTOR]
00 00 00 02 00 00 02 01 81 06 22 00 00 00 00 21
05 01 09 00 A1 01 05 09 19 01 29 20 15 00 25 01 95 20 75 01 81 02 05 08 09 4B 95 20 75 01 91 20 C0

[INTERFACE 1 HID DESCRIPTOR]
00 00 00 02 00 00 02 01 81 06 22 00 00 01 00 3A
05 01 09 04 A1 01 09 01 A1 00 05 01 09 30 09 31 16 00 00 26 FF 0F 36 00 F8 46 FF 07 65 00 75 10 95 02 81 02 C0 05 09 19 01 29 08 15 00 25 01 35 00 45 01 95 08 75 01 81 02 C0

[INTERFACE 2 HID DESCRIPTOR]
00 00 00 02 00 00 02 01 81 06 22 00 00 02 00 47
05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 03 15 00 25 01 95 03 75 01 81 02 95 01 75 05 81 01 05 01 09 30 09 31 16 00 00 26 FF 0F 36 00 00 46 FF 0F 66 00 00 75 10 95 02 81 62 05 FF 09 02 95 03 75 08 81 01 C0 C0

:whistling: are them good news? thanks again :smile0203:

Re: Aimtrak gun at PS4 FPS games with T2 (inmersive play)

PostPosted: Fri Jan 04, 2019 2:53 pm
by J2Kbr
Thank you. I will be checking on Jan 7th, when I will be back to office from vacation. ;)

Re: Aimtrak gun at PS4 FPS games with T2 (inmersive play)

PostPosted: Tue Jan 08, 2019 8:35 pm
by Eux
Hi again. I hope you had a great vacation time.
Any idea about descriptors numbers? No hurry
Thanks in advance.

Re: Aimtrak gun at PS4 FPS games with T2 (inmersive play)

PostPosted: Wed Jan 09, 2019 9:20 am
by J2Kbr
Here is 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
09 D2        idVendor: D209
01 16        idProduct: 1601
A4 00        bcdDevice: 0.A4
05           iManufacturer: 5
05           iProduct: 5
03           iSerialNumber: 3
01           bNumConfigurations: 1

09           bLength: 9
02           bDescriptorType: 2 - CONFIGURATION
54 00        wTotalLength: 84
03           bNumInterfaces: 3
01           bConfigurationValue: 1
02           iConfiguration: 2
80           bmAttributes: 128 (Bus Powered)
FA           MaxPower: 500mA

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)
02             iInterface: 2

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

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

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

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

07               bLength: 7
05               bDescriptorType: 5 - ENDPOINT
82               bEndpointAddress: 2 IN
03               bmAttributes: 3 (Interrupt, None, Data)
14 00            wMaxPacketSize: 20
0A               bInterval: 10

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

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

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

[STRING 5 DESCRIPTOR]
Ultimarc

[STRING 5 DESCRIPTOR]
Ultimarc

[STRING 3 DESCRIPTOR]
9

[INTERFACE 0 HID DESCRIPTOR]
05 01        (GLOBAL) USAGE_PAGE         0x0001 Generic Desktop Page
09 00        (LOCAL)  USAGE              0x00010000 Undefined
A1 01        (MAIN)   COLLECTION         0x01 Application (Usage=0x00010000: Page=Generic Desktop Page, Usage=Undefined, Type=)
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 20          (LOCAL)  USAGE_MAXIMUM      0x00090020 Button 32 (MULTI=Selector, On/Off, Momentary, or One Shot)
15 00          (GLOBAL) LOGICAL_MINIMUM    0x00 (0)
25 01          (GLOBAL) LOGICAL_MAXIMUM    0x01 (1)
95 20          (GLOBAL) REPORT_COUNT       0x20 (32) Number of fields
75 01          (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
81 02          (MAIN)   INPUT              0x00000002 (32 fields x 1 bit) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
05 08          (GLOBAL) USAGE_PAGE         0x0008 LED Indicator Page
09 4B          (LOCAL)  USAGE              0x0008004B Generic Indicator (OOC=On/Off Control)
95 20          (GLOBAL) REPORT_COUNT       0x20 (32) Number of fields
75 01          (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
91 20          (MAIN)   OUTPUT             0x00000020 (32 fields x 1 bit) 0=Data 0=Array 0=Absolute 0=NoWrap 0=Linear 1=NoPrefState 0=NoNull 0=NonVolatile 0=Bitmap
C0           (MAIN)   END_COLLECTION     Application

[INTERFACE 1 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)
05 01            (GLOBAL) USAGE_PAGE         0x0001 Generic Desktop Page
09 30            (LOCAL)  USAGE              0x00010030 X (DV=Dynamic Value)
09 31            (LOCAL)  USAGE              0x00010031 Y (DV=Dynamic Value)
16 0000          (GLOBAL) LOGICAL_MINIMUM    0x0000 (0)
26 FF0F          (GLOBAL) LOGICAL_MAXIMUM    0x0FFF (4095)
36 00F8          (GLOBAL) PHYSICAL_MINIMUM   0xF800 (-2048)
46 FF07          (GLOBAL) PHYSICAL_MAXIMUM   0x07FF (2047)
65 00            (GLOBAL) UNIT               0x00000000 No unit (0=None)
75 10            (GLOBAL) REPORT_SIZE        0x10 (16) Number of bits per field
95 02            (GLOBAL) REPORT_COUNT       0x02 (2) Number of fields
81 02            (MAIN)   INPUT              0x00000002 (2 fields x 16 bits) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
C0             (MAIN)   END_COLLECTION     Physical
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 08          (LOCAL)  USAGE_MAXIMUM      0x00090008 Button 8 (MULTI=Selector, On/Off, Momentary, or One Shot)
15 00          (GLOBAL) LOGICAL_MINIMUM    0x00 (0)
25 01          (GLOBAL) LOGICAL_MAXIMUM    0x01 (1)
35 00          (GLOBAL) PHYSICAL_MINIMUM   0x00 (0)
45 01          (GLOBAL) PHYSICAL_MAXIMUM   0x01 (1)
95 08          (GLOBAL) REPORT_COUNT       0x08 (8) Number of fields
75 01          (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
81 02          (MAIN)   INPUT              0x00000002 (8 fields x 1 bit) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
C0           (MAIN)   END_COLLECTION     Application

[INTERFACE 2 HID DESCRIPTOR]
05 01        (GLOBAL) USAGE_PAGE         0x0001 Generic Desktop Page
09 02        (LOCAL)  USAGE              0x00010002 Mouse (CA=Application Collection)
A1 01        (MAIN)   COLLECTION         0x01 Application (Usage=0x00010002: Page=Generic Desktop Page, Usage=Mouse, 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)
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 03            (LOCAL)  USAGE_MAXIMUM      0x00090003 Button 3 Tertiary (MULTI=Selector, On/Off, Momentary, or One Shot)
15 00            (GLOBAL) LOGICAL_MINIMUM    0x00 (0)
25 01            (GLOBAL) LOGICAL_MAXIMUM    0x01 (1)
95 03            (GLOBAL) REPORT_COUNT       0x03 (3) Number of fields
75 01            (GLOBAL) REPORT_SIZE        0x01 (1) Number of bits per field
81 02            (MAIN)   INPUT              0x00000002 (3 fields x 1 bit) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 0=PrefState 0=NoNull 0=NonVolatile 0=Bitmap
95 01            (GLOBAL) REPORT_COUNT       0x01 (1) Number of fields
75 05            (GLOBAL) REPORT_SIZE        0x05 (5) Number of bits per field
81 01            (MAIN)   INPUT              0x00000001 (1 field x 5 bits) 1=Constant 0=Array 0=Absolute 0=Ignored 0=Ignored 0=PrefState 0=NoNull
05 01            (GLOBAL) USAGE_PAGE         0x0001 Generic Desktop Page
09 30            (LOCAL)  USAGE              0x00010030 X (DV=Dynamic Value)
09 31            (LOCAL)  USAGE              0x00010031 Y (DV=Dynamic Value)
16 0000          (GLOBAL) LOGICAL_MINIMUM    0x0000 (0)
26 FF0F          (GLOBAL) LOGICAL_MAXIMUM    0x0FFF (4095)
36 0000          (GLOBAL) PHYSICAL_MINIMUM   0x0000 (0)
46 FF0F          (GLOBAL) PHYSICAL_MAXIMUM   0x0FFF (4095)
66 0000          (GLOBAL) UNIT               0x00000000 No unit (0=None)
75 10            (GLOBAL) REPORT_SIZE        0x10 (16) Number of bits per field
95 02            (GLOBAL) REPORT_COUNT       0x02 (2) Number of fields
81 62            (MAIN)   INPUT              0x00000062 (2 fields x 16 bits) 0=Data 1=Variable 0=Absolute 0=NoWrap 0=Linear 1=NoPrefState 1=Null 0=NonVolatile 0=Bitmap
05 FF            (GLOBAL) USAGE_PAGE         0x00FF Reserved
09 02            (LOCAL)  USAGE              0x00FF0002 
95 03            (GLOBAL) REPORT_COUNT       0x03 (3) Number of fields
75 08            (GLOBAL) REPORT_SIZE        0x08 (8) Number of bits per field
81 01            (MAIN)   INPUT              0x00000001 (3 fields x 8 bits) 1=Constant 0=Array 0=Absolute 0=Ignored 0=Ignored 0=PrefState 0=NoNull
C0             (MAIN)   END_COLLECTION     Physical
C0           (MAIN)   END_COLLECTION     Application

There are a Joystick and a Mouse interface, both seems to be 100% compatible with the Titan Two. :smile0517:

I believe all we need to do is create a script to convert the inputs according your needs. Please give more details on what you meant by "what I want is to move the hud". Thanks.