mirror of
https://github.com/marcriera/ddgo-controller-docs.git
synced 2025-04-20 10:39:28 +02:00
51 lines
2.5 KiB
Markdown
51 lines
2.5 KiB
Markdown
---
|
|
title: "Train Mascon (Sony PlayStation 2)"
|
|
---
|
|
|
|
{{% controller-page "cotm02001" %}}
|
|
|
|
This controller has one handle (5 power notches and 8+emergency brake notches), a D-Pad and 7 buttons (Select, Start, A, B, C, Close, ATS). The A button can distinguish between "soft" and "hard" presses. In addition, the controller has four lamps: doors, ATS, 45 and 15.
|
|
|
|
Internally, it is a HID device with a vendor-specific class. The reported data depends on the notch cartridge inserted.
|
|
|
|
| | |
|
|
|-----------------------------|-------------------------------------------|
|
|
| **Product name** | *Unavailable* |
|
|
| **Manufacturer** | *Unavailable* |
|
|
| **Vendor ID** | 0x1C06 |
|
|
| **Product ID** | 0x77A7 |
|
|
| **Serial number** | *Unavailable* |
|
|
| **USB standard descriptor** | *Unavailable* |
|
|
| **HID report descriptor** | Not provided |
|
|
|
|
### Input
|
|
|
|
The controller sends reports to the host (PS2) formed by 4 bytes:
|
|
|
|
| Byte 1 | Byte 2 | Byte 3 | Byte 4 |
|
|
|:------:|:---------------:|:---------:|:---------:|
|
|
| 0x01 | Reverser+handle | Buttons 1 | Buttons 2 |
|
|
|
|
The reverser+handle byte combines two values representing the state of the reverser and the power/brake handle. The handle notch is represented sequentially starting from **0x1** (Emergency), brake notches from highest to lowest, *N* and power notches from lowest to highest.
|
|
|
|
| Forward | Neutral | Backwards |
|
|
|:-------:|:-------:|:---------:|
|
|
| 0x2X | 0x0X | 0x1X |
|
|
|
|
The first 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. A bitmask can be used to retrieve the buttons.
|
|
|
|
| Button 1 | Button 2 | Button 3 | Button 4 | Button 5 | Button 6 |
|
|
|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
|
|
| ATS | Close | A (soft) | A (hard) | B | C |
|
|
|
|
The second button byte also uses six bits to represent the state of the physical buttons.
|
|
|
|
| Button 1 | Button 2 | Button 3 | Button 4 | Button 5 | Button 6 |
|
|
|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
|
|
| START | SELECT | UP | DOWN | LEFT | RIGHT |
|
|
|
|
### Output
|
|
|
|
No details are known regarding internal functioning.
|
|
|
|
|