jackun / USBqemu-wheel

PCSX2 usb plugin for wheels and increasingly more stuff
The Unlicense
116 stars 21 forks source link

Sega Seamic Controller - Required for Seaman 2 #44

Open seta-san opened 3 years ago

seta-san commented 3 years ago

320px-SeamicController_PS2

Information for device ASCII Mic/Joy-stick (VID=0x0B49 PID=0x0644):

ERROR: Descriptor has errors!

Connection Information:

Device current bus speed: FullSpeed Device supports USB 1.1 specification Device supports USB 2.0 specification Device address: 0x0015 Current configuration value: 0x01 Number of open pipes: 1

Device Descriptor:

0x12 bLength 0x01 bDescriptorType 0x0110 bcdUSB 0x00 bDeviceClass
0x00 bDeviceSubClass
0x00 bDeviceProtocol
0x08 bMaxPacketSize0 (8 bytes) 0x0B49 idVendor 0x0644 idProduct 0x0100 bcdDevice 0x01 iManufacturer "ASCII CORPORATION" 0x02 iProduct "ASCII Mic/Joy-stick" 0x00 iSerialNumber 0x01 bNumConfigurations

Configuration Descriptor:

0x09 bLength 0x02 bDescriptorType 0x0086 wTotalLength (134 bytes) 0x03 bNumInterfaces 0x01 bConfigurationValue 0x00 iConfiguration 0x80 bmAttributes (Bus-powered Device) 0x31 bMaxPower (98 mA)

Interface Descriptor:

0x09 bLength 0x04 bDescriptorType 0x00 bInterfaceNumber 0x00 bAlternateSetting 0x00 bNumEndPoints 0x01 bInterfaceClass (Audio Device Class) 0x01 bInterfaceSubClass (Audio Control Interface) 0x00 bInterfaceProtocol (Audio Protocol undefined) 0x00 iInterface

AC Interface Header Descriptor:

0x09 bLength 0x24 bDescriptorType 0x01 bDescriptorSubtype 0x0100 bcdADC 0x0026 wTotalLength (38 bytes) 0x01 bInCollection 0x01 baInterfaceNr(1)

AC Input Terminal Descriptor:

0x0C bLength 0x24 bDescriptorType 0x02 bDescriptorSubtype 0x01 bTerminalID 0x0201 wTerminalType (Microphone) 0x02 bAssocTerminal 0x01 bNrChannels (1 channels) 0x0000 wChannelConfig 0x00 iChannelNames 0x00 iTerminal

AC Output Terminal Descriptor:

0x09 bLength 0x24 bDescriptorType 0x03 bDescriptorSubtype 0x02 bTerminalID 0x0101 wTerminalType (USB Streaming) 0x01 bAssocTerminal 0x03 bSourceID 0x00 iTerminal

AC Feature Unit Descriptor:

0x08 bLength 0x24 bDescriptorType 0x06 bDescriptorSubtype 0x03 bUnitID 0x01 bSourceID 0x01 bControlSize bmaControls: 0x03 Channel(0) - Mute / Volume 0x00 iFeature

Interface Descriptor:

0x09 bLength 0x04 bDescriptorType 0x01 bInterfaceNumber 0x00 bAlternateSetting 0x00 bNumEndPoints 0x01 bInterfaceClass (Audio Device Class) 0x02 bInterfaceSubClass (Audio Streaming Interface) 0x00 bInterfaceProtocol (Audio Protocol undefined) 0x00 iInterface

Interface Descriptor:

0x09 bLength 0x04 bDescriptorType 0x01 bInterfaceNumber 0x01 bAlternateSetting 0x01 bNumEndPoints 0x01 bInterfaceClass (Audio Device Class) 0x02 bInterfaceSubClass (Audio Streaming Interface) 0x00 bInterfaceProtocol (Audio Protocol undefined) 0x00 iInterface

AS Interface Descriptor:

0x07 bLength 0x24 bDescriptorType 0x01 bDescriptorSubtype 0x02 bTerminalLink 0x01 bDelay 0x0001 wFormatTag (PCM)

AS Format Type 1 Descriptor:

0x0E bLength 0x24 bDescriptorType 0x02 bDescriptorSubtype 0x01 bFormatType (FORMAT_TYPE_1) 0x01 bNrChannels (1 channels) 0x02 bSubframeSize 0x10 bBitResolution (16 bits per sample) 0x02 bSamFreqType (Discrete sampling frequencies) 0x001F40 tSamFreq(1) (8000 Hz) 0x002B11 tSamFreq(2) (11025 Hz)

Endpoint Descriptor (Audio/MIDI 1.0):

0x07 bLength 0x05 bDescriptorType *** ERROR: Invalid descriptor length 0x07 Hex dump: 0x07 0x05 0x81 0x01 0x64 0x00 0x01

AS Isochronous Data Endpoint Descriptor:

0x07 bLength 0x25 bDescriptorType 0x01 bDescriptorSubtype 0x01 bmAttributes (Sampling Frequency) 0x00 bLockDelayUnits (undefined) 0x0000 wLockDelay

Interface Descriptor:

0x09 bLength 0x04 bDescriptorType 0x02 bInterfaceNumber 0x00 bAlternateSetting 0x01 bNumEndPoints 0x03 bInterfaceClass (Human Interface Device Class) 0x00 bInterfaceSubClass
0x00 bInterfaceProtocol
0x00 iInterface

HID Descriptor:

0x09 bLength 0x21 bDescriptorType 0x0100 bcdHID 0x00 bCountryCode 0x01 bNumDescriptors 0x22 bDescriptorType (Report descriptor) 0x0062 bDescriptorLength

Endpoint Descriptor:

0x07 bLength 0x05 bDescriptorType 0x82 bEndpointAddress (IN endpoint 2) 0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data) 0x0008 wMaxPacketSize (1 x 8 bytes) 0x0A bInterval (10 frames)

Microsoft OS Descriptor is not available. Error code: 0x0000001F

String Descriptor Table

Index LANGID String 0x00 0x0000 0x0409 0x01 0x0409 "ASCII CORPORATION" 0x02 0x0409 "ASCII Mic/Joy-stick"


Connection path for device: USB xHCI Compliant Host Controller Root Hub ASCII Mic/Joy-stick (VID=0x0B49 PID=0x0644) Port: 5

Running on: Windows 10 or greater (Build Version 19042)

Brought to you by TDD v2.15.0, Jun 8 2020, 17:18:07

seta-san commented 3 years ago

Bus 002 Device 013: ID 0b49:0644 ASCII Corp. ASCII Mic/Joy-stick Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0b49 ASCII Corp. idProduct 0x0644 bcdDevice 1.00 iManufacturer 1 ASCII CORPORATION iProduct 2 ASCII Mic/Joy-stick iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0086 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 98mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0026 bInCollection 1 baInterfaceNr(0) 1 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 2 bNrChannels 1 wChannelConfig 0x0000 iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 1 bSourceID 3 iTerminal 0 AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 3 bSourceID 1 bControlSize 1 bmaControls(0) 0x03 Mute Control Volume Control iFeature 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 14 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 1 bSubframeSize 2 bBitResolution 16 bSamFreqType 2 Discrete tSamFreq[ 0] 8000 tSamFreq[ 1] 11025 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0064 1x 100 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 0 Undefined wLockDelay 0x0000 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 98 Report Descriptor: (length is 98) Item(Global): Usage Page, data= [ 0x01 ] 1 Generic Desktop Controls Item(Local ): Usage, data= [ 0x04 ] 4 Joystick Item(Main ): Collection, data= [ 0x01 ] 1 Application Item(Local ): Usage, data= [ 0x01 ] 1 Pointer Item(Main ): Collection, data= [ 0x00 ] 0 Physical Item(Global): Report Count, data= [ 0x03 ] 3 Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255 Item(Global): Physical Minimum, data= [ 0x00 ] 0 Item(Global): Physical Maximum, data= [ 0xff 0x00 ] 255 Item(Global): Unit, data= [ 0x00 0x00 ] 0 System: None, Unit: (None) Item(Global): Usage Page, data= [ 0x01 ] 1 Generic Desktop Controls Item(Local ): Usage, data= [ 0x30 ] 48 Direction-X Item(Local ): Usage, data= [ 0x31 ] 49 Direction-Y Item(Local ): Usage, data= [ 0x32 ] 50 Direction-Z Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report Count, data= [ 0x01 ] 1 Item(Global): Report Size, data= [ 0x04 ] 4 Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0x07 ] 7 Item(Global): Physical Minimum, data= [ 0x00 ] 0 Item(Global): Physical Maximum, data= [ 0x3b 0x01 ] 315 Item(Global): Unit, data= [ 0x14 0x00 ] 20 System: English Rotation, Unit: Degrees Item(Local ): Usage, data= [ 0x39 ] 57 Hat Switch Item(Main ): Input, data= [ 0x42 ] 66 Data Variable Absolute No_Wrap Linear Preferred_State Null_State Non_Volatile Bitfield Item(Global): Report Count, data= [ 0x0a ] 10 Item(Global): Report Size, data= [ 0x01 ] 1 Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0x01 ] 1 Item(Global): Physical Minimum, data= [ 0x00 ] 0 Item(Global): Physical Maximum, data= [ 0x01 ] 1 Item(Global): Unit, data= [ 0x00 0x00 ] 0 System: None, Unit: (None) Item(Global): Usage Page, data= [ 0x09 ] 9 Buttons Item(Local ): Usage Minimum, data= [ 0x01 ] 1 Button 1 (Primary) Item(Local ): Usage Maximum, data= [ 0x0a ] 10 (null) Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report Count, data= [ 0x02 ] 2 Item(Main ): Input, data= [ 0x01 ] 1 Constant Array Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report Count, data= [ 0x08 ] 8 Item(Global): Report Size, data= [ 0x01 ] 1 Item(Global): Usage Page, data= [ 0x08 ] 8 LEDs Item(Local ): Usage Minimum, data= [ 0x01 ] 1 NumLock Item(Local ): Usage Maximum, data= [ 0x08 ] 8 Do not disturb Item(Main ): Output, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): End Collection, data=none Item(Main ): End Collection, data=none Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 can't get debug descriptor: Resource temporarily unavailable Device Status: 0x0000 (Bus Powered)

seta-san commented 3 years ago

/sys/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.2/0003:0B49:0644.000D/report_descriptor 00000000 05 01 09 04 a1 01 09 01 a1 00 95 03 75 08 15 00 |............u...| 00000010 26 ff 00 35 00 46 ff 00 66 00 00 05 01 09 30 09 |&..5.F..f.....0.| 00000020 31 09 32 81 02 95 01 75 04 15 00 25 07 35 00 46 |1.2....u...%.5.F| 00000030 3b 01 66 14 00 09 39 81 42 95 0a 75 01 15 00 25 |;.f...9.B..u...%| 00000040 01 35 00 45 01 66 00 00 05 09 19 01 29 0a 81 02 |.5.E.f......)...| 00000050 95 02 81 01 95 08 75 01 05 08 19 01 29 08 91 02 |......u.....)...| 00000060 c0 c0 |..| 00000062

jackun commented 3 years ago

@seta-san check from somewhere like from windows control panel or even plugin's DInput config maybe, in what order the buttons are from 0 to 9. Looks like it has 10 buttons by hid report anyway. Also 3 axes but just one stick...

https://www.flickr.com/photos/takahashi0/3223210304 image

Also wtf is going on here :D image

seta-san commented 3 years ago

Buttons A, B C are buttons 1 2 3 in windows

buttons X Y Z are 4 5 6 L R are buttons 7 8 select is 9. start is 10

when it comes to the d pad and analog joystick it has 3 modes. off, red, and green

in OFF mode the D-Pad is the POV Hat the analog joystick is x, y axis. z-axis is not used

when in red mode the d-pad and analog joystick registers as x,y axis. POV hat and z axis are not used.

in green mode the d-pad registers as x,y axis but when pulling up and down with the analog joystick activates the z-axis. moving left to right on the analog joystick does nothing. POV Hat again not used.

i do not know what the three verticle leds at the bottom of the controller do.

jackun commented 3 years ago

Eh, pushing current WIP state https://github.com/jackun/USBqemu-wheel/commit/709ee683265bfec411c62e0fa86e5d776cb2086a No special configuration, mic is configured through singstar :P Steering is X axis and Y is throttle

seta-san commented 3 years ago

20200902_142029 20200902_142102 20200902_142117