Multi Train Controller (Sony PlayStation 2)

Overview

NameMulti Train Controller (Sony PlayStation 2)
Release dateDecember 18, 2003
Serial codeSOTP-031201
NotesReleased with 4 cartridges: P4-B7, P4-B7 (without B1), P5-B5 and P5-B8. Additional cartridges sold separately: P5-B7 and P13-B7.

Supported software

SoftwareNotes
BVE Trainsim (PC - Windows)Supported via input plugin.
Densha de GO! 3 Tsūkin-hen (Sony PlayStation 2)P5/B8 cartridge.
Densha de GO! Final (Sony PlayStation 2)P5/B8 cartridge.
Densha de GO! Professional 2 (Sony PlayStation 2)P5/B8 cartridge.
Densha de GO! Ryojōhen (Sony PlayStation 2)P5/B8 cartridge.
Densha de GO! Shinkansen San'yō Shinkansen-hen (Sony PlayStation 2)P5/B8 cartridge.
OpenBVE (PC - Multiplatform)Supported via input plugin.
Railfan: Chicago Transit Authority Brown Line (Sony PlayStation 3)P5/B8 cartridge.
Train Simulator + Densha de GO!: Tokyu Line (Sony PlayStation 2)P4/B7, P5/B5 cartridges.
Train Simulator Real: THE Keihin Electric Express Railway (Sony PlayStation 2)P5/B5 cartridge.
Train Simulator Real: THE Yamanote Line (Sony PlayStation 2)P5/B8 cartridge.
Train Simulator: Keisei, Toei Asakusa, Keikyu Lines (Sony PlayStation 2)P5/B5, P13/B7 cartridges.
Train Simulator: Kyūshū Shinkansen (Sony PlayStation 2)P5/B7, P13/B7 cartridges.
Train Simulator: Midōsuji Line (Sony PlayStation 2)P4/B2-B7, P5/B5 cartridges.

Technical details

This controller has one handle with several notch cartridges (P4/B7, P4/B2-B7, P5/B5, P5/B7, B5/B8, P13/B7), a D-Pad and 7 buttons (Select, Start, A, B, C, D, ATS). The A button can distinguish between “soft” and “hard” presses. In addition, the controller has four lamps.

Internally, it is a vendor-specific class device. The input data is compatible with HID, but the device does not provide a HID descriptor. The USB descriptors and the reported data change depending on the notch cartridge inserted.

Product nameNone
ManufacturerNone
Vendor ID0x0AE4
0x1C06 (P5/B5)
Product ID0x0101
0x77A7 (P5/B5)
0x0004 (P5/B8)
Serial numberNone
USB standard descriptorP4/B7
P4/B7 (without B1)
P5/B5
P5/B7
P5/B8
P13/B7
HID report descriptorP4/B7, P4/B2-B7, P5/B7, P13/B7 (recreated, not provided by actual device)

P5/B5 cartridge

When this cartridge is inserted, the controller emulates the Train Mascon. The buttons are mapped 1:1 except the D button, which is mapped to the Close () button.

The lamps are used as follows, from top to bottom: doors, ATS, 45 and 15.

P5/B8 cartridge

When this cartridge is inserted, the controller emulates the Two handle controller “Type 2”. The buttons are mapped 1:1 and ATS is mapped to START. The reverser is mapped to the D-pad UP and DOWN buttons.

Only the top lamp is used, for the doors.

P4/B7, P4/B2-B7, P5/B7, P13/B7 cartridges

When any of these cartridges is inserted, the controller functions similarly to the P5/B5 mode and data changes depending on the amount of notches. The specific cartridge in use can be detected by looking at the bcdDevice value from the standard USB descriptor:

CartridgebcdDevice
P4/B70x0300
P4/B2-B70x0400
P5/B70x0800
P13/B70x0A00

Input

The controller sends reports to the host (PS2) formed by 4 bytes:

Byte #Data
10x01 (fixed)
2Reverser+handle
3Buttons 1
4Buttons 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.

PositionValue
Forward0x8X
Neutral0x0X
Backward0x4X
Note

The P5/B7 and P13/B7 cartridges do not make use of the reverser and use both nibbles for the handle notch.

The first button byte uses bits to represent the state of the physical buttons. 0 means that the button is released and 1 that it is pressed.

BitPhysical Button
1ATS
2D
3A (soft)
4A (hard)
5B
6C
7Unused
8Unused

The second button byte also uses bits to represent the state of the physical buttons.

BitPhysical Button
1Start
2Select
3Up
4Down
5Left
6Right
7Unused
8Unused

Output

The controller supports receiving data via a control transfer to turn on/off the lamps. The setup packet is as follows:

DataValue
bmRequestType0x40
bRequest0x50
wValueLamp data
wIndex0x0
wLength0x0

Changing wValue controls the lamps with the logic below.

  • Door lamp: 0x0X is Off, 0x1X is On.
  • Signal lamp: 0xX0 is Off, 0xX1 is ATS, 0xX2 is 45, 0xX3 is 15.