Site Login

This Months Donations

$89.56
of $500.00 goal
Server, CDN, Network, Licensing
Development Budget
Developers Beer Fund
Recent:
Rain
$2.00
Fahad
$2.00
Carlo
$5.00
m3rlinsbart
$2.00
Thank you - works great with Pokemon Desmume Emulator!
Katie
$2.00
Number of donations
15
Highest donation
$50.00
Average donation
$6.53

Razer Raiju PS4 Pro Controller Support?

2 years 11 months ago - 2 years 11 months ago #1 by Anacra
Hi! I love using Inputmapper 1.5 for my PC games. I recently bought a new PS4 controller called Razer Raiju which has 4 extra buttons (M1, M2, M3 and M4). I was wanting to know if anyone has tried this out, and see if the extra buttons can be used in macros and what not? I'm currently out of town for the holiday period, otherwise I would have tested it out myself.

www.razerzone.com/au-en/store/razer-raiju

i.imgur.com/zNGZ6jP.png
i.imgur.com/UiWeYYF.png

Please Log in or Create an account to join the conversation.

2 years 11 months ago #2 by Wobbles
Right now the controller is not supported at all, I intend to add support for the controller once I get my hands on one

Please Log in or Create an account to join the conversation.

2 years 11 months ago #3 by Anacra

Wobbles wrote: Right now the controller is not supported at all, I intend to add support for the controller once I get my hands on one


Wow, I didn't think you'd consider supporting it. Really happy with your reply. Looking forward to it :)

Please Log in or Create an account to join the conversation.

2 years 11 months ago #4 by Wobbles
Id love to support every controller, and the new framework in IM 1.6.11 makes that possible, unfortunately its still a matter of getting my hands on one though to write the wrapper for it and $200 is a hefty expense

Please Log in or Create an account to join the conversation.

2 years 11 months ago #5 by Anacra
Yeah, the price is pretty steep. I do have the USBview log for the controller though; perhaps it can help?

P.S. - Not sure how to hide this code text so it doesn't make for a long post. Couldn't find some sort of spoiler tag.


[Port5]  :  USB Composite Device



Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            20
Companion Hub Symbolic Link Name: USB#ROOT_HUB30#4&290d1841&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no


Device Power State:               PowerDeviceD0


       ---===>Device Information<===---
English product name: "Razer RAIJU"


ConnectionStatus:                  
Current Config Value:              0x01  -> Device Bus Speed: Full (is not SuperSpeed or higher capable)
Device Address:                    0x06
Open Pipes:                           2


          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0x00  -> This is an Interface Class Defined Device
bDeviceSubClass:                   0x00
bDeviceProtocol:                   0x00
bMaxPacketSize0:                   0x40 = (64) Bytes
idVendor:                        0x1532 = Razer (Asia-Pacific) Pte Ltd.
idProduct:                       0x1000
bcdDevice:                       0x0100
iManufacturer:                     0x01
     English (United States)  "Razer"
iProduct:                          0x02
     English (United States)  "Razer RAIJU"
iSerialNumber:                     0x03
     English (United States)  "PM1647C01500613"
bNumConfigurations:                0x01


          ---===>Open Pipes<===---


          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x05


          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x04  -> Direction: OUT - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x05


       ---===>Full Configuration Descriptor<===---


          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x00E1  -> Validated
bNumInterfaces:                    0x04
bConfigurationValue:               0x01
iConfiguration:                    0x00
bmAttributes:                      0xA0  -> Bus Powered
  -> Remote Wakeup
MaxPower:                          0xFA = 500 mA


          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x01  -> Audio Control Interface SubClass
bInterfaceProtocol:                0x00
iInterface:                        0x00


          ===>Audio Control Interface Header Descriptor<===
bLength:                           0x0A
bDescriptorType:                   0x24
bDescriptorSubtype:                0x01
bcdADC:                          0x0100
wTotalLength:                    0x0047
bInCollection:                     0x02
baInterfaceNr[1]:                  0x01
baInterfaceNr[2]:                  0x02


          ===>Audio Control Input Terminal Descriptor<===
bLength:                           0x0C
bDescriptorType:                   0x24
bDescriptorSubtype:                0x02
bTerminalID:                       0x01
wTerminalType:                   0x0101 (USB streaming)
bAssocTerminal:                    0x06
bNrChannels:                       0x02
wChannelConfig:                  0x0003
iChannelNames:                     0x00
iTerminal:                         0x00


          ===>Audio Control Feature Unit Descriptor<===
bLength:                           0x0A
bDescriptorType:                   0x24
bDescriptorSubtype:                0x06
bUnitID:                           0x02
bSourceID:                         0x01
bControlSize:                      0x01
bmaControls[0]:                    03 
bmaControls[1]:                    00 
bmaControls[2]:                    00 
iFeature:                          0x00


          ===>Audio Control Output Terminal Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x24
bDescriptorSubtype:                0x03
bTerminalID:                       0x03
wTerminalType:                   0x0402 (Headset)
bAssocTerminal:                    0x04
bSourceID:                         0x02
iTerminal:                         0x00


          ===>Audio Control Input Terminal Descriptor<===
bLength:                           0x0C
bDescriptorType:                   0x24
bDescriptorSubtype:                0x02
bTerminalID:                       0x04
wTerminalType:                   0x0402 (Headset)
bAssocTerminal:                    0x03
bNrChannels:                       0x01
wChannelConfig:                  0x0000
iChannelNames:                     0x00
iTerminal:                         0x00


          ===>Audio Control Feature Unit Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x24
bDescriptorSubtype:                0x06
bUnitID:                           0x05
bSourceID:                         0x04
bControlSize:                      0x01
bmaControls[0]:                    03 
bmaControls[1]:                    00 
iFeature:                          0x00


          ===>Audio Control Output Terminal Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x24
bDescriptorSubtype:                0x03
bTerminalID:                       0x06
wTerminalType:                   0x0101 (USB streaming)
bAssocTerminal:                    0x01
bSourceID:                         0x05
iTerminal:                         0x00


          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x01
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x00
iInterface:                        0x00


          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x01
bAlternateSetting:                 0x01
bNumEndpoints:                     0x01
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x00
iInterface:                        0x00


          ===>Audio Streaming Class Specific Interface Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x24
bDescriptorSubtype:                0x01
bTerminalLink:                     0x01
bDelay:                            0x01
wFormatTag:                      0x0001 (PCM)


          ===>Audio Streaming Format Type Descriptor<===
bLength:                           0x0B
bDescriptorType:                   0x24
bDescriptorSubtype:                0x02
bFormatType:                       0x01
bNrChannels:                       0x02
bSubframeSize:                     0x02
bBitResolution:                    0x10
bSamFreqType:                      0x01
tSamFreq[1]:                   0x00BB80 (48000 Hz)


          ===>Endpoint Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x05
bEndpointAddress:                  0x03  -> Direction: OUT - EndpointID: 3
bmAttributes:                      0x09  -> Isochronous Transfer Type, Synchronization Type = Adaptive, Usage Type = Data Endpoint
wMaxPacketSize:                  0x00C4 = 0xC4 bytes
wInterval:                       0x0001
bSyncAddress:                      0x00


          ===>Audio Streaming Class Specific Audio Data Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x25
bDescriptorSubtype:                0x01
bmAttributes:                      0x00
bLockDelayUnits:                   0x00
wLockDelay:                      0x0000


          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x02
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x00
iInterface:                        0x00


          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x02
bAlternateSetting:                 0x01
bNumEndpoints:                     0x01
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface SubClass
bInterfaceProtocol:                0x00
iInterface:                        0x00


          ===>Audio Streaming Class Specific Interface Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x24
bDescriptorSubtype:                0x01
bTerminalLink:                     0x06
bDelay:                            0x01
wFormatTag:                      0x0001 (PCM)


          ===>Audio Streaming Format Type Descriptor<===
bLength:                           0x0B
bDescriptorType:                   0x24
bDescriptorSubtype:                0x02
bFormatType:                       0x01
bNrChannels:                       0x01
bSubframeSize:                     0x02
bBitResolution:                    0x10
bSamFreqType:                      0x01
tSamFreq[1]:                   0x003E80 (16000 Hz)


          ===>Endpoint Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x05
bEndpointAddress:                  0x83  -> Direction: IN - EndpointID: 3
bmAttributes:                      0x05  -> Isochronous Transfer Type, Synchronization Type = Asynchronous, Usage Type = Data Endpoint
wMaxPacketSize:                  0x0062 = 0x62 bytes
wInterval:                       0x0001
bSyncAddress:                      0x00


          ===>Audio Streaming Class Specific Audio Data Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x25
bDescriptorSubtype:                0x01
bmAttributes:                      0x00
bLockDelayUnits:                   0x00
wLockDelay:                      0x0000


          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x03
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x03  -> HID Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x00
iInterface:                        0x00


          ===>HID Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x21
bcdHID:                          0x0111
bCountryCode:                      0x00
bNumDescriptors:                   0x01
bDescriptorType:                   0x22 (Report Descriptor)
wDescriptorLength:               0x00AB


          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x05


          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x04  -> Direction: OUT - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0040 = 0x40 bytes
bInterval:                         0x05

Please Log in or Create an account to join the conversation.

2 years 11 months ago #6 by Wobbles
The actual HID packet data is what I need to decode

Please Log in or Create an account to join the conversation.

2 years 11 months ago #7 by Anacra
Okay, no problem. I have no idea what HID is, so will leave it till you get the controller.

Please Log in or Create an account to join the conversation.

1 year 1 month ago #8 by Bob
(Sorry for bumping such an old thread. I'd PM you but I suspect my account age is preventing me from doing so.)

I should be able to capture any HID packet data you need if you give me some basic pointers. I have a background in tech but haven't worked on something like this before.

Inputmapper support for this controller would be the finishing touch to my setup.

Please Log in or Create an account to join the conversation.

1 year 1 month ago #9 by Wobbles
This should help you do what is needed

Please Log in or Create an account to join the conversation.

1 year 1 month ago #10 by Bob
Thanks for the quick reply!

I'm almost done with this except for a single track pad entry that I can't figure out. I've found the X-axis byte, the Y-axis byte, and a counter byte for how often the pad was touched. But there is one more byte that touching the track pad triggers in which I can't discover a pattern. Do you have any idea what this fourth byte might represent? AFAIK the track pad doesn't support varying degrees of pressure and it doesn't seem to be related to the movement speed of the finger either.

Please Log in or Create an account to join the conversation.

Powered by Kunena Forum