diff --git a/Densha de GO! (PS1-PS2)/ZuikiToPS1.gpc b/Densha de GO! (PS1-PS2)/ZuikiToPS1.gpc new file mode 100755 index 0000000..2a9a5f7 --- /dev/null +++ b/Densha de GO! (PS1-PS2)/ZuikiToPS1.gpc @@ -0,0 +1,180 @@ +// Script to use a Zuiki Switch controller with Densha de GO! games for the PS1/PS2 on emulators or real hardware +// Written by Marc Riera, 2022 + +// D-Pad is mapped to left stick and X is mapped to L3 for use with for use with PS2 cheats: +https://marcriera.github.io/ddgo-controller-docs/adapters/#playstation-2-cheat-codes-for-playstation-1-controllers + +unmap HID_XINPUT_1; +unmap PS4_PS; +remap PS4_RX -> PS4_LX; +remap PS4_RY -> PS4_LY; +unmap PS4_RX; +unmap PS4_RY; + +main { + + // Teal light + set_led(LED_1, 1); + set_led(LED_2, 0); + set_led(LED_3, 1); + + + // X button + if (get_val(HID_BUTTON_14) == 100) { + set_val(PS4_L3, 100); + } + + // D-Pad + if (get_val(HID_BUTTON_10) == 100) { // UP + set_val(PS4_RY, -100); + } + if (get_val(HID_BUTTON_11) == 100) { // DOWN + set_val(PS4_RY, 100); + } + if (get_val(HID_BUTTON_12) == 100) { // LEFT + set_val(PS4_RX, -100); + } + if (get_val(HID_BUTTON_13) == 100) { // RIGHT + set_val(PS4_RX, 100); + } + + // Handle + if (get_val(HID_STICK_2_Y) == -100) { // EB + set_val(PS4_L1, 0); + set_val(PS4_L2, 0); + set_val(PS4_R1, 0); + set_val(PS4_R2, 0); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -96) { // B8 + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 0); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -85) { // B7 + set_val(PS4_L1, 100); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 0); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -74) { // B6 + set_val(PS4_L1, 0); + set_val(PS4_L2, 0); + set_val(PS4_R1, 0); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -63) { // B5 + set_val(PS4_L1, 100); + set_val(PS4_L2, 0); + set_val(PS4_R1, 0); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -52) { // B4 + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 0); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -42) { // B3 + set_val(PS4_L1, 100); + set_val(PS4_L2, 100); + set_val(PS4_R1, 0); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -31) { // B2 + set_val(PS4_L1, 0); + set_val(PS4_L2, 0); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == -20) { // B1 + set_val(PS4_L1, 100); + set_val(PS4_L2, 0); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == 0) { // N + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == 24) { // P1 + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 0); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 100); + } + if (get_val(HID_STICK_2_Y) == 43) { // P2 + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 0); + set_val(PS4_RIGHT, 100); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == 61) { // P3 + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 0); + set_val(PS4_TRIANGLE, 100); + } + if (get_val(HID_STICK_2_Y) == 80) { // P4 + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 100); + set_val(PS4_RIGHT, 0); + set_val(PS4_TRIANGLE, 0); + } + if (get_val(HID_STICK_2_Y) == 100) { // P5 + set_val(PS4_L1, 0); + set_val(PS4_L2, 100); + set_val(PS4_R1, 100); + set_val(PS4_R2, 100); + set_val(PS4_LEFT, 0); + set_val(PS4_RIGHT, 0); + set_val(PS4_TRIANGLE, 100); + } + + set_val(PS4_UP, 100); + set_val(PS4_DOWN, 100); +} diff --git a/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_103-T1.gpc b/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_103-T1.gpc index 31b0872..ea0dc69 100755 --- a/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_103-T1.gpc +++ b/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_103-T1.gpc @@ -1,4 +1,5 @@ // Script to use PS1/N64/SS/DC Densha de GO! controllers with Densha de GO! Hashirou Yamanote Sen (PS4/Switch) +// Written by Marc Riera, 2021 // Based on the code by EddieLau for the Titan Two: https://github.com/tylau0/DenGo/blob/main/DenshaDeGoPS1ToPS4MayFlash.gpc // Requires enabling advanced controls (analog pressure + non-step) diff --git a/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_General-T1.gpc b/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_General-T1.gpc index 4937b87..07ceace 100755 --- a/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_General-T1.gpc +++ b/Densha de GO! Hashirou Yamanote Sen (PS4)/DenshaDeGoPS1ToPS4_General-T1.gpc @@ -1,4 +1,5 @@ // Script to use PS1/N64/SS/DC Densha de GO! controllers with Densha de GO! Hashirou Yamanote Sen (PS4/Switch) +// Written by Marc Riera, 2021 // Based on the code by EddieLau for the Titan Two: https://github.com/tylau0/DenGo/blob/main/DenshaDeGoPS1ToPS4MayFlash.gpc // Requires enabling advanced controls (analog pressure + non-step) diff --git a/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_103-T1.gpc b/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_103-T1.gpc index 5ee906a..3735199 100755 --- a/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_103-T1.gpc +++ b/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_103-T1.gpc @@ -1,4 +1,5 @@ // Script to use PS1/N64/SS/DC Densha de GO! controllers with Densha de GO! Hashirou Yamanote Sen (PS4/Switch) +// Written by Marc Riera, 2021 // Based on the code by EddieLau for the Titan Two: https://github.com/tylau0/DenGo/blob/main/DenshaDeGoPS1ToPS4MayFlash.gpc // Requires enabling advanced controls (analog pressure + non-step) diff --git a/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_General-T1.gpc b/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_General-T1.gpc index 8d3b0dd..547bd7a 100755 --- a/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_General-T1.gpc +++ b/Densha de GO! Hashirou Yamanote Sen (Switch)/DenshaDeGoPS1ToSwitch_General-T1.gpc @@ -1,4 +1,5 @@ // Script to use PS1/N64/SS/DC Densha de GO! controllers with Densha de GO! Hashirou Yamanote Sen (PS4/Switch) +// Written by Marc Riera, 2021 // Based on the code by EddieLau for the Titan Two: https://github.com/tylau0/DenGo/blob/main/DenshaDeGoPS1ToPS4MayFlash.gpc // Requires enabling advanced controls (analog pressure + non-step) diff --git a/README.md b/README.md index 52c8145..3eb1a22 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,9 @@ Hold **START** to use **A**, **B**, **C** and **SELECT** as a D-pad and navigate - **DenshaDeGoPS1ToSwitch_103-T1.gpc**: to connect PS1 controllers to a Switch. For use with the 103 series train. Hold **START** to use **A**, **B**, **C** and **SELECT** as a D-pad and navigate game menus. + +**Densha de GO! (PS1-PS2)** + +- **ZuikiToPS1.gpc**: to connect a Zuiki Switch controller to a real PS1/PS2 (via adapter/PADEMU) or emulator. + +The **D-Pad** is mapped to the **left stick** and **X** is mapped to **L3** for use with [PS2 cheats](https://marcriera.github.io/ddgo-controller-docs/adapters/#playstation-2-cheat-codes-for-playstation-1-controllers).