--- title: "Classic controllers - Technical details" weight: 1 hidden: true --- 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](https://sites.google.com/site/consoleprotocols/home/nintendo-joy-bus-documentation/n64-specific/train-controller)). ## 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.