Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sega Seamic Controller - Required for Seaman 2 #44

Open
seta-san opened this issue Jul 29, 2020 · 6 comments
Open

Sega Seamic Controller - Required for Seaman 2 #44

seta-san opened this issue Jul 29, 2020 · 6 comments

Comments

@seta-san
Copy link

seta-san commented Jul 29, 2020

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
Copy link
Author

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
Copy link
Author

/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
Copy link
Owner

jackun commented Aug 22, 2020

@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
Copy link
Author

seta-san commented Aug 23, 2020

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
Copy link
Owner

jackun commented Aug 23, 2020

Eh, pushing current WIP state 709ee68
No special configuration, mic is configured through singstar :P
Steering is X axis and Y is throttle

@seta-san
Copy link
Author

seta-san commented Sep 2, 2020

20200902_142029
20200902_142102
20200902_142117

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants