Classic controllers - Technical details
Internally, these controllers use the same protocol as a standard controller for the corresponding console and input is reported in the data bytes corresponding to buttons (where each bit reports the state of a single button). Only the regular physical buttons have dedicated bits for them; the handles combine three and four bits for the power notches and brake notches, respectively (you can find an example with the Nintendo 64 here).
Power handle bit usage
The power handle uses a combination of three bits (buttons) to represent each notch.
Position | POWER 1 | POWER 2 | POWER 3 |
---|---|---|---|
N | - | X | X |
P1 | X | - | X |
P2 | - | - | X |
P3 | X | X | - |
P4 | - | X | - |
P5 | X | - | - |
Transition | - | - | - |
Brake handle bit usage
The brake handle uses a combination of four bits (buttons) to represent each notch.
Position | BRAKE 1 | BRAKE 2 | BRAKE 3 | BRAKE 4 |
---|---|---|---|---|
Released | - | X | X | X |
B1 | X | - | X | X |
B2 | - | - | X | X |
B3 | X | X | - | X |
B4 | - | X | - | X |
B5 | X | - | - | X |
B6 | - | - | - | X |
B7 | X | X | X | - |
B8 | - | X | X | - |
Unmarked 1 | X | - | X | - |
Unmarked 2 | - | - | X | - |
Unmarked 3 | X | X | - | - |
Unmarked 4 | - | X | - | - |
Unmarked 5 | X | - | - | - |
Emergency | - | - | - | - |
Transition | X | X | X | X |
The unmarked positions can be found between B8 and Emergency and produce no click when moving the handle.
Button mapping to a standard controller
Because they use the same data bytes, the input between a Densha de GO! controller and a standard controller for each console can be matched as follows:
Densha de GO! | Nintendo 64 | Sony PlayStation 1 | Sega Dreamcast | Sega Saturn |
---|---|---|---|---|
SELECT | R | SELECT | D | ?? |
START | START | START | START | START |
A | B | SQUARE | A | A |
B | A | CROSS | ?? | B |
C | L | CIRCLE | C | C |
POWER 1 | RIGHT | TRIANGLE | Z | X |
POWER 2 | UP | LEFT | Y | Y |
POWER 3 | Z | RIGHT | X | Z |
BRAKE 1 | C RIGHT | L1 | UP | L |
BRAKE 2 | C LEFT | L2 | DOWN | R |
BRAKE 3 | C DOWN | R1 | LEFT | DOWN |
BRAKE 4 | C UP | R2 | RIGHT | LEFT |
This can be used with a USB adapter to read the controller input from a PC.