Web demo compiled by moonlightelite. For education purpose only.
The demo boots straight into the Yamanote Diagram #1 run with the autodrive AI at the controls. Press A to take over manually (the notch/brake keys below then drive the train); press A again to hand control back to the AI. Every control below works while the run is on screen; the menu keys work on the menu screens.
| Input | Key |
|---|---|
| Power notches (detents N1–N5) | 1 2 3 4 5 |
| Neutral (N) | 0 |
| Brake step down / up (B1–B8) | [ / ] |
| Emergency brake (EB, B9) | \ or Delete |
| Input | Key |
|---|---|
| Autodrive on / off (toggle) | A |
| Framerate 60 fps locked / uncapped (toggle) | F |
| Graphics quality Normal → Good → Best (cycle) | G |
| Input | Key |
|---|---|
| Horn (hold) | X |
| View switch (cab ↔ exterior camera) | S or V |
| Doors left / right (conductor course; the driver's door-close wait) | Q / E |
| ATS acknowledge | Space (or Enter) |
The acknowledge key is accepted and recorded, but this demo has no ATS-stop surface, so pressing it changes nothing yet.
| Input | Key |
|---|---|
| Navigate | ← → ↑ ↓ |
| Confirm | Enter |
| Back / cancel | Esc |
| Input | Key |
|---|---|
| Open the pause menu | Enter |
| Move the cursor (Resume / Quit Run) | ↑ ↓ |
| Confirm (Resume unpauses; Quit Run ends the run into the result screen) | Enter |
| Cancel (= Resume) | Esc |
Keys are one pulse per press: the press that opens the menu doesn't also confirm, and a press inside a long render stall is not lost.
The demo runs with the autodrive AI so the notches/brakes are inert until you press A. The conductor course (menu row) uses 1–8 to answer the station-announcement quizzes.
This page mirrors README.md's Controls section in the
demo repo — keep the two in sync when a key changes (the source of truth is
src/main.cpp's keyboard handling).