diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 0000000..6b992ec --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,32 @@ +name: github pages + +on: + push: + branches: + - main # Set a branch to deploy + pull_request: + +jobs: + deploy: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: 'latest' + # extended: true + + - name: Build + run: hugo --minify + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./public diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c2927ad --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/relearn"] + path = themes/relearn + url = https://github.com/McShelby/hugo-theme-relearn.git diff --git a/README.md b/README.md deleted file mode 100644 index a38072e..0000000 --- a/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Densha de GO! controller documentation - -Here you will find a collection of technical information for the various controllers of the Densha de GO! series of games. The information has been gathered from my actual experience and the references at the end of the document. - -## Table of contents - -- [Classic console controllers](classic/README.md) -- [Serial port controllers](serial/README.md) -- [USB controllers](usb/README.md) -- [Nintendo Wii controllers](wii/README.md) -- [Standalone controllers](standalone/README.md) -- [Software compatibility (WIP)](compatibility/README.md) -- [Adapters and hacks](adapters/README.md) - -## GitHub repository - -This documentation is stored in a [GitHub repository](https://github.com/MarcRiera/ddgo-controller-docs). Contributions are more than welcome! - -## References - -- General information: -- Microsoft Windows: -- Microsoft Windows: -- Nintendo 64: -- Sega Dreamcast: diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..00e77bd --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..2eb6577 --- /dev/null +++ b/config.toml @@ -0,0 +1,17 @@ +baseURL = "https://marcriera.github.io/ddgo-controller-docs" +languageCode = "en-us" +title = "Densha de GO! controller documentation" +theme = "relearn" + +[params] +disableSearch = true +themeVariant = [ "relearn-light", "relearn-dark" ] +collapsibleMenu = true +disableLandingPageButton = true +disableShortcutsTitle=true + +[[menu.shortcuts]] +name = " GitHub repo" +identifier = "ds" +url = "https://github.com/MarcRiera/ddgo-controller-docs" +weight = 1 diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..fc885b2 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,3 @@ +# Welcome! + +Here you will find a collection of technical information for the various controllers of the Densha de GO! series of games. The information has been gathered from my actual experience and the references mentioned on this site. diff --git a/content/acknowledgements/_index.md b/content/acknowledgements/_index.md new file mode 100644 index 0000000..142add8 --- /dev/null +++ b/content/acknowledgements/_index.md @@ -0,0 +1,7 @@ +--- +title: "Acknowledgements" +weight: 9 +--- + +- [GMMan](https://github.com/GMMan), who has provided the internal details of the DGOC-44U and has conducted extensive research on the Densha de GO! Plug and Play. +- [TheYamanote](https://twitter.com/The_Yamanote), who has helped with the TCPP-20009. diff --git a/adapters/README.md b/content/adapters/_index.md similarity index 82% rename from adapters/README.md rename to content/adapters/_index.md index 6b8d92b..ec9c0d1 100644 --- a/adapters/README.md +++ b/content/adapters/_index.md @@ -1,12 +1,15 @@ -## Adapters and hacks +--- +title: "Adapters and hacks" +weight: 3 +--- Besides the official compatibility, it is possible to use unofficial adapters, tools and hacks to use controllers with games which is unsupported officially. -### Converter tool by Autotraintas +## Converter tool by Autotraintas [Autotraintas](https://autotraintas.hariko.com) has created a tool that makes it possible to use nearly any Densha de GO! controller with the PC versions of the games. This includes the classic console controllers (USB adapter required) and the USB controllers for the PlayStation 2. The tool patches the game memory on the fly to reflect the input from the controller. -### PlayStation 2 cheat codes for PlayStation controllers +## PlayStation 2 cheat codes for PlayStation controllers While **Densha de GO! 3** and **Densha de GO! Shinkansen** officially support the original (non-USB) PlayStation controllers, other games are only compatible with USB controllers. Via cheat codes, it is possible to use the original PlayStation controllers on real hardware, either with retail discs or via OPL. @@ -17,19 +20,19 @@ The codes emulate a Type 2 controller. You will need to connect the controller a Each game requires a specific cheat code: -- [Densha de GO! Ryojouhen](controller-cheat_ryojouhen.txt) -- [Densha de GO! Professional 2](controller-cheat_pro2.txt) -- [Densha de GO! Professional 2 (Taito Best)](controller-cheat_pro2best.txt) -- [Densha de GO! Final](controller-cheat_final.txt) +- [Densha de GO! Ryojouhen](cheats/controller-cheat_ryojouhen.txt) +- [Densha de GO! Professional 2](cheats/controller-cheat_pro2.txt) +- [Densha de GO! Professional 2 (Taito Best)](cheats/controller-cheat_pro2best.txt) +- [Densha de GO! Final](cheats/controller-cheat_final.txt) There are also cheat codes available for games in the **Train Simulator** series, emulating a Multi Train Controller (MTC): -- [Train Simulator: Midosuji Line](controller-cheat_midosuji.txt) -- [Train Simulator + Densha de GO!](controller-cheat_tsddgo.txt) +- [Train Simulator: Midosuji Line](cheats/controller-cheat_midosuji.txt) +- [Train Simulator + Densha de GO!](cheats/controller-cheat_tsddgo.txt) For retail discs, the codes can be loaded with [ps2rd](https://github.com/mlafeldt/ps2rd) or [Cheat Device](https://github.com/root670/CheatDevicePS2). If you are using OPL, it already includes ps2rd and you just need to copy the codes and enable cheats. -### Input plugins for BVE Trainsim/OpenBVE +## Input plugins for BVE Trainsim/OpenBVE BVE Trainsim and OpenBVE both support **input plugins**, which allow expanding the controllers compatible with the program. diff --git a/adapters/controller-cheat_final.txt b/content/adapters/cheats/controller-cheat_final.txt similarity index 100% rename from adapters/controller-cheat_final.txt rename to content/adapters/cheats/controller-cheat_final.txt diff --git a/adapters/controller-cheat_midosuji.txt b/content/adapters/cheats/controller-cheat_midosuji.txt similarity index 100% rename from adapters/controller-cheat_midosuji.txt rename to content/adapters/cheats/controller-cheat_midosuji.txt diff --git a/adapters/controller-cheat_pro2.txt b/content/adapters/cheats/controller-cheat_pro2.txt similarity index 100% rename from adapters/controller-cheat_pro2.txt rename to content/adapters/cheats/controller-cheat_pro2.txt diff --git a/adapters/controller-cheat_pro2best.txt b/content/adapters/cheats/controller-cheat_pro2best.txt similarity index 100% rename from adapters/controller-cheat_pro2best.txt rename to content/adapters/cheats/controller-cheat_pro2best.txt diff --git a/adapters/controller-cheat_ryojouhen.txt b/content/adapters/cheats/controller-cheat_ryojouhen.txt similarity index 100% rename from adapters/controller-cheat_ryojouhen.txt rename to content/adapters/cheats/controller-cheat_ryojouhen.txt diff --git a/adapters/controller-cheat_tsddgo.txt b/content/adapters/cheats/controller-cheat_tsddgo.txt similarity index 100% rename from adapters/controller-cheat_tsddgo.txt rename to content/adapters/cheats/controller-cheat_tsddgo.txt diff --git a/compatibility/README.md b/content/compatibility/_index.md similarity index 99% rename from compatibility/README.md rename to content/compatibility/_index.md index be0f67c..11bb2f8 100644 --- a/compatibility/README.md +++ b/content/compatibility/_index.md @@ -1,4 +1,7 @@ -## Software compatibility (WIP) +--- +title: "Software compatibility (WIP)" +weight: 2 +--- The following table lists the compatibility between each controller (first row) and each software (first column). Additional software compatible with the controllers is also listed. The column for the Multi Train Controller (MTC) specifies the supported cassettes. Scroll to the right to see the full table. diff --git a/content/models/_index.md b/content/models/_index.md new file mode 100644 index 0000000..5649e05 --- /dev/null +++ b/content/models/_index.md @@ -0,0 +1,4 @@ +--- +title: "Models" +weight: 1 +--- diff --git a/classic/README.md b/content/models/classic/_index.md similarity index 88% rename from classic/README.md rename to content/models/classic/_index.md index 505c83b..459feee 100644 --- a/classic/README.md +++ b/content/models/classic/_index.md @@ -1,18 +1,21 @@ -## Classic console controllers +--- +title: "Classic consoles" +weight: 1 +--- The information in this section applies to the following controllers: -- SLPH-00051: two-handle controller (Sony PlayStation) -- TC-5175290: two-handle controller (Sega Saturn) -- TCPP-20001: single-handle controller (Sony PlayStation) -- TCPP-20002: gamepad controller (Sony PlayStation) -- TCPP-20003: two-handle controller (Nintendo 64) -- TCPP-20004: two-handle controller (Sega Dreamcast) -- TCPP-20008: two-handle controller, golden (Sony PlayStation) +- **SLPH-00051:** two-handle controller (Sony PlayStation) +- **TC-5175290:** two-handle controller (Sega Saturn) +- **TCPP-20001:** single-handle controller (Sony PlayStation) +- **TCPP-20002:** gamepad controller (Sony PlayStation) +- **TCPP-20003:** two-handle controller (Nintendo 64) +- **TCPP-20004:** two-handle controller (Sega Dreamcast) +- **TCPP-20008:** two-handle controller, golden (Sony PlayStation) These controllers all have five physical buttons (**SELECT**, **START**, **A**, **B**, **C**) and two handles (with the TCPP-20001 combining them into one). Internally, they 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 +## Power handle bit usage The power handle uses a combination of three bits (buttons) to represent each notch. When using the TCPP-20001 controller, the equivalent of **N** is reported for power whenever a brake notch is applied. @@ -26,7 +29,7 @@ The power handle uses a combination of three bits (buttons) to represent each no | P5 | X | - | - | | Transition | - | - | - | -### Brake handle bit usage +## Brake handle bit usage The brake handle uses a combination of four bits (buttons) to represent each notch. When using the TCPP-20001 controller, the equivalent of **Released** is reported for brake whenever a power notch is applied. @@ -51,7 +54,7 @@ The brake handle uses a combination of four bits (buttons) to represent each not The unmarked positions can be found between **B8** and **Emergency** and produce no click when moving the handle. When using the TCPP-20001 or the TCPP-20002, only the first and fourth unmarked positions are available. -### Button mapping to a standard controller +## 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: @@ -72,6 +75,6 @@ Because they use the same data bytes, the input between a Densha de GO! controll This is useful when using a USB adapter to read the controller input from a PC. -### PlayStation-specific information +## PlayStation-specific information The controllers report the same data amount and structure as a standard digital PlayStation controller. UP and DOWN are pressed permanently. The games detect the controllers with these two buttons, as it is an impossible combination with a standard digital controller. diff --git a/content/models/serial/_index.md b/content/models/serial/_index.md new file mode 100644 index 0000000..50eaa1c --- /dev/null +++ b/content/models/serial/_index.md @@ -0,0 +1,10 @@ +--- +title: "Serial port" +weight: 2 +--- + +The information in this section applies to the following controllers: + +- **DGOC-44:** two-handle controller (Microsoft Windows) + +This is the original controller for the Microsoft Windows releases. No details are available regarding internal functioning. diff --git a/content/models/standalone/_index.md b/content/models/standalone/_index.md new file mode 100644 index 0000000..827e189 --- /dev/null +++ b/content/models/standalone/_index.md @@ -0,0 +1,14 @@ +--- +title: "Standalone" +weight: 5 +--- + +The information in this section applies to the following controllers: + +- **Densha de GO! Plug and Play** + +This controller is different from traditional controllers in the sense that it contains the game (an improved version of *Densha de GO! Final*) and does not connect to a PC or console. Externally, it looks similar to a TCPP-20009, except it does not include a pedal connection. Internally, it contains an ARM board running Linux. It requires a micro USB cable for power and a HDMI cable for video output. + +The micro USB port supports USB OTG with a powered adapter and is used by Taito to install software updates. + +It is possible to update the Linux kernel on the board to enable USB gadget mode and emulate traditional controllers, such as the [DGOC-44U](/models/usb/#dgoc-44u). This makes it possible to control other software. You can find more information [here](https://github.com/GMMan/dengo-plug-and-play-controller). diff --git a/usb/README.md b/content/models/usb/_index.md similarity index 92% rename from usb/README.md rename to content/models/usb/_index.md index 597aa72..500705f 100644 --- a/usb/README.md +++ b/content/models/usb/_index.md @@ -1,16 +1,19 @@ -## USB controllers +--- +title: "USB" +weight: 3 +--- The information in this section applies to the following controllers: -- DGC-255: one-handle controller (Microsoft Windows) -- DGOC-44U: two-handle controller (Microsoft Windows) -- DRC-184/DYC-288: Ryojōhen controller (Microsoft Windows) -- TCPP-20009: two-handle controller "Type 2" (Sony PlayStation 2) -- TCPP-20011: Shinkansen controller (Sony PlayStation 2) -- TCPP-20012: two-handle controller "Type 2", purple skeleton (Sony PlayStation 2) -- TCPP-20014: Ryojōhen controller (Sony PlayStation 2) -- MTC: Multi Train Controller (Sony PlayStation 2) -- ZKNS-001: one-handle controller (Nintendo Switch) +- **DGC-255:** one-handle controller (Microsoft Windows) +- **DGOC-44U:** two-handle controller (Microsoft Windows) +- **DRC-184/DYC-288:** Ryojōhen controller (Microsoft Windows) +- **TCPP-20009:** two-handle controller "Type 2" (Sony PlayStation 2) +- **TCPP-20011:** Shinkansen controller (Sony PlayStation 2) +- **TCPP-20012:** two-handle controller "Type 2", purple skeleton (Sony PlayStation 2) +- **TCPP-20014:** Ryojōhen controller (Sony PlayStation 2) +- **MTC:** Multi Train Controller (Sony PlayStation 2) +- **ZKNS-001:** one-handle controller (Nintendo Switch) ### DGC-255 @@ -34,7 +37,7 @@ Internally, it is a HID-compliant joystick with two axes and 6 buttons (the hand | **Product ID** | 0x0003 | | **Serial number** | TCPP20009 | | **USB standard descriptor** | Unavailable | -| **HID report descriptor** | [Link](dgoc44u_hid-report-descriptor.txt) | +| **HID report descriptor** | [Link](descriptors/dgoc44u_hid-report-descriptor.txt) | The controller sends reports to the host (PC) formed by 6 bytes: @@ -77,7 +80,7 @@ Internally, it is a HID device with a vendor-specific class. | **Vendor ID** | 0x0AE4 | | **Product ID** | 0x0004 | | **Serial number** | TCPP20010 | -| **USB standard descriptor** | [Link](tcpp20009_standard-descriptor.txt) | +| **USB standard descriptor** | [Link](descriptors/tcpp20009_standard-descriptor.txt) | | **HID report descriptor** | Unavailable | #### Input @@ -148,7 +151,7 @@ Internally, it is a HID device with a vendor-specific class. | **Vendor ID** | 0x0AE4 | | **Product ID** | 0x0005 | | **Serial number** | TCPP20011 | -| **USB standard descriptor** | [Link](tcpp20011_standard-descriptor.txt) | +| **USB standard descriptor** | [Link](descriptors/tcpp20011_standard-descriptor.txt) | | **HID report descriptor** | Unavailable | #### Input @@ -225,7 +228,7 @@ Internally, it is a HID device with a vendor-specific class. | **Vendor ID** | 0x0AE4 | | **Product ID** | 0x0007 | | **Serial number** | TCPP20014 | -| **USB standard descriptor** | [Link](tcpp20014_standard-descriptor.txt) | +| **USB standard descriptor** | [Link](descriptors/tcpp20014_standard-descriptor.txt) | | **HID report descriptor** | Unavailable | #### Input @@ -289,16 +292,11 @@ Internally, it is a HID-compliant joystick mimicking a Nintendo Switch Pro Contr | **Vendor ID** | 0x0F0D | | **Product ID** | 0x00C1 | | **Serial number** | *None* | -| **USB standard descriptor** | [Link](zkns001_standard-descriptor.txt) | -| **HID report descriptor** | [Link](zkns001_hid-report-descriptor.txt) | +| **USB standard descriptor** | [Link](descriptors/zkns001_standard-descriptor.txt) | +| **HID report descriptor** | [Link](descriptors/zkns001_hid-report-descriptor.txt) | The power/brake handle notches are reported in the Y axis of the left stick. There are no transition values between notches. In addition, when the handle is set to **Emergency**, **ZL** is pressed. | Emergency | B8 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | N | P1 | P2 | P3 | P4 | P5 | |:---------:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| | 0x00 | 0x05 | 0x13 | 0x20 | 0x2E | 0x3C | 0x49 | 0x57 | 0x65 | 0x80 | 0x9F | 0xB7 | 0xCE | 0xE6 | 0xFF | - -## Acknowledgements - -- [GMMan](https://github.com/GMMan), who has provided the internal details of the DGOC-44U. -- [TheYamanote](https://twitter.com/The_Yamanote), who has helped with the TCPP-20009. diff --git a/usb/dgoc44u_hid-report-descriptor.txt b/content/models/usb/descriptors/dgoc44u_hid-report-descriptor.txt similarity index 100% rename from usb/dgoc44u_hid-report-descriptor.txt rename to content/models/usb/descriptors/dgoc44u_hid-report-descriptor.txt diff --git a/usb/tcpp20009_standard-descriptor.txt b/content/models/usb/descriptors/tcpp20009_standard-descriptor.txt similarity index 100% rename from usb/tcpp20009_standard-descriptor.txt rename to content/models/usb/descriptors/tcpp20009_standard-descriptor.txt diff --git a/usb/tcpp20011_standard-descriptor.txt b/content/models/usb/descriptors/tcpp20011_standard-descriptor.txt similarity index 100% rename from usb/tcpp20011_standard-descriptor.txt rename to content/models/usb/descriptors/tcpp20011_standard-descriptor.txt diff --git a/usb/tcpp20014_standard-descriptor.txt b/content/models/usb/descriptors/tcpp20014_standard-descriptor.txt similarity index 100% rename from usb/tcpp20014_standard-descriptor.txt rename to content/models/usb/descriptors/tcpp20014_standard-descriptor.txt diff --git a/usb/zkns001_hid-report-descriptor.txt b/content/models/usb/descriptors/zkns001_hid-report-descriptor.txt similarity index 100% rename from usb/zkns001_hid-report-descriptor.txt rename to content/models/usb/descriptors/zkns001_hid-report-descriptor.txt diff --git a/usb/zkns001_standard-descriptor.txt b/content/models/usb/descriptors/zkns001_standard-descriptor.txt similarity index 100% rename from usb/zkns001_standard-descriptor.txt rename to content/models/usb/descriptors/zkns001_standard-descriptor.txt diff --git a/wii/README.md b/content/models/wii/_index.md similarity index 86% rename from wii/README.md rename to content/models/wii/_index.md index 03eed05..e5d1246 100644 --- a/wii/README.md +++ b/content/models/wii/_index.md @@ -1,7 +1,10 @@ -## Nintendo Wii controllers +--- +title: "Nintendo Wii" +weight: 4 +--- The information in this section applies to the following controllers: -- TCPP-20017: Shinkansen controller +- **TCPP-20017:** Shinkansen controller This controller is similar externally to the PlayStation 2 version of the Shinkansen controller. However, the screen has been replaced by a sticker and there is no pedal, so the only functioning parts are the handles, the buttons and the door lamp. In addition, instead of USB, it connects to a Wiimote using its extension port, like other accessories made for the console. No details are available regarding internal functioning. diff --git a/content/references/_index.md b/content/references/_index.md new file mode 100644 index 0000000..f1ffa18 --- /dev/null +++ b/content/references/_index.md @@ -0,0 +1,10 @@ +--- +title: "References" +weight: 10 +--- + +- General information: +- Microsoft Windows: +- Microsoft Windows: +- Nintendo 64: +- Sega Dreamcast: diff --git a/layouts/partials/logo.html b/layouts/partials/logo.html new file mode 100644 index 0000000..5c10236 --- /dev/null +++ b/layouts/partials/logo.html @@ -0,0 +1,33 @@ + + diff --git a/serial/README.md b/serial/README.md deleted file mode 100644 index 3c2cee9..0000000 --- a/serial/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## Serial port controllers - -The information in this section applies to the following controllers: - -- DGOC-44: two-handle controller (Microsoft Windows) - -This is the original controller released for the Microsoft Windows releases. No details are available regarding internal functioning. diff --git a/standalone/README.md b/standalone/README.md deleted file mode 100644 index bd75eff..0000000 --- a/standalone/README.md +++ /dev/null @@ -1,15 +0,0 @@ -## Standalone controllers - -The information in this section applies to the following controllers: - -- Densha de GO! Plug and Play - -This controller is different from traditional controllers in the sense that it contains the game (an improved version of Densha de GO! Final) and does not connect to a PC or console. Externally, it looks similar to a TCPP-20009, except it does not include a pedal connection. Internally, it contains an ARM board running Linux. It requires a micro USB cable for power and a HDMI cable for video output. - -The micro USB port supports USB OTG with a powered adapter and is used by Taito to install software updates. - -It is possible to update the Linux kernel on the board to enable USB gadget mode and emulate traditional controllers, such as the DGOC-44U. This makes it possible to control other software. You can find more information [here](https://github.com/GMMan/dengo-plug-and-play-controller). - -## Acknowledgements - -Big thanks to [GMMan](https://github.com/GMMan), who has done research on this controller and developed several software modifications. diff --git a/static/images/logo_big.png b/static/images/logo_big.png new file mode 100644 index 0000000..69af4c0 Binary files /dev/null and b/static/images/logo_big.png differ diff --git a/themes/relearn b/themes/relearn new file mode 160000 index 0000000..7da9dfa --- /dev/null +++ b/themes/relearn @@ -0,0 +1 @@ +Subproject commit 7da9dfa4e9aa990583d4dc0fedae2484c59c918e