Add DGOC-44U documentation

This commit is contained in:
Marc Riera Irigoyen 2021-02-18 19:34:07 +01:00
parent 14d17345ac
commit 1ba46147b1
2 changed files with 76 additions and 2 deletions

View file

@ -10,9 +10,45 @@ The information in this section applies to the following controllers:
- TCPP-20012: two-handle controller "Type 2", purple skeleton (Sony PlayStation 2)
- TCPP-20014: Ryojōhen controller (Sony PlayStation 2)
### DGC-255/DGOC-44U
### DGC-255
No details are available regarding internal functioning.
This controller shares most of its behaviour with DGOC-44U, but internal details need to be confirmed.
### DGOC-44U
This controller is a HID-compliant joystick with two axes and six buttons. You can find its HID descriptor [here](descriptor_dgoc44u.txt).
| | |
|-------------------|-----------------------------|
| **Product name** | `電車でGO! コントローラ USB版` |
| **Manufacturer** | `TAITO` |
| **Vendor ID** | `0x0AE4` |
| **Product ID** | `0x0003` |
| **Serial number** | `TCPP20009` |
The controller sends reports to the host (PC) formed by 6 bytes:
| Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 |
|:------:|:------:|:------:|:-------:|:------:|:------:|
| Brake | Power | Null | Buttons | Null | Null |
The values for the brake notch byte are the following. There are 5 unmarked positions between **B8** and **Emergency**, but unlike classic controllers, they are all report the value for **Emergency**.
| Released | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | Emergency | Transition |
|:--------:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:---------:|:----------:|
| 0x79 | 0x8A | 0x94 | 0x9A | 0xA2 | 0xA8 | 0xAF | 0xB2 | 0xB5 | 0xB9 | 0xFF |
The values for the power notch byte are listed below.
| N | B1 | B2 | B3 | B4 | B5 | Transition |
|:----:|:----:|:----:|:----:|:----:|:----:|:----------:|
| 0x81 | 0x6D | 0x54 | 0x3F | 0x21 | 0x00 | 0xFF |
The button byte uses six bits to represent the state of the physical buttons. **0** means that the button is released and **1** that it is pressed.
| Button 1 | Button 2 | Button 3 | Button 4 | Button 5 | Button 6 |
|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
| B | A | C | D | SELECT | START |
### DRC-184/DYC-288
@ -29,3 +65,7 @@ No details are available regarding internal functioning.
### TCPP-20014
No details are available regarding internal functioning.
## Acknowledgements
Big thanks to [GMMan](https://github.com/GMMan), who has provided the internal details of the DGOC-44U.

View file

@ -0,0 +1,34 @@
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x04, // Usage (Joystick)
0xA1, 0x01, // Collection (Application)
0x09, 0x01, // Usage (Pointer)
0xA1, 0x00, // Collection (Physical)
0x09, 0x30, // Usage (X)
0x09, 0x31, // Usage (Y)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x75, 0x08, // Report Size (8)
0x95, 0x02, // Report Count (2)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0, // End Collection
0x75, 0x08, // Report Size (8)
0x95, 0x01, // Report Count (1)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x09, // Usage Page (Button)
0x19, 0x01, // Usage Minimum (0x01)
0x29, 0x06, // Usage Maximum (0x06)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x35, 0x00, // Physical Minimum (0)
0x45, 0x01, // Physical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x06, // Report Count (6)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x02, // Report Count (2)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x08, // Report Size (8)
0x95, 0x02, // Report Count (2)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0, // End Collection
// 63 bytes