# Train Mascon (Sony PlayStation 2)

## Overview

| Name | Train Mascon (Sony PlayStation 2)
Release date | October 31, 2002
Serial code | COTM-02001
Notes |

## Supported software (WIP)

Software | Support | Notes
--- | --- | ---
Train Simulator + Densha de GO!: Tokyu Line (Sony PlayStation 2) | Native |
Train Simulator Real: THE Keihin Electric Express Railway (Sony PlayStation 2) | Native |
Train Simulator: Keisei, Toei Asakusa, Keikyu Lines (Sony PlayStation 2) | Native |
Train Simulator: Midosuji Line (Sony PlayStation 2) | Native |

## Technical details

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.