Add 103 series scripts and D-pad support
This commit is contained in:
parent
203d845fff
commit
6b829894aa
5 changed files with 665 additions and 36 deletions
105
DenshaDeGoPS1ToPS4-T1.gpc → DenshaDeGoPS1ToPS4_103-T1.gpc
Normal file → Executable file
105
DenshaDeGoPS1ToPS4-T1.gpc → DenshaDeGoPS1ToPS4_103-T1.gpc
Normal file → Executable file
|
@ -3,9 +3,13 @@
|
|||
// 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)
|
||||
|
||||
// Holding START enables the use of buttons as a D-Pad (to navigate menus)
|
||||
|
||||
|
||||
// Adjust the following values to the input indices from your adapter
|
||||
|
||||
define DPAD_UP = HID_BUTTON_10;
|
||||
define DPAD_DOWN = HID_BUTTON_11;
|
||||
define DPAD_LEFT = HID_BUTTON_12;
|
||||
define DPAD_RIGHT = HID_BUTTON_13;
|
||||
|
||||
|
@ -35,72 +39,81 @@ remap BUTTON_L2 -> PS4_L2;
|
|||
remap HID_STICK_2_X -> PS4_LX;
|
||||
remap HID_STICK_2_Y -> PS4_LY;
|
||||
remap HID_STICK_1_X -> PS4_RX;
|
||||
remap DPAD_UP -> PS4_UP;
|
||||
remap DPAD_DOWN -> PS4_DOWN;
|
||||
remap DPAD_LEFT -> PS4_LEFT;
|
||||
remap DPAD_RIGHT -> PS4_RIGHT;
|
||||
|
||||
int LAST_PS4_RX = 0;
|
||||
int LAST_PS4_LX = 0;
|
||||
int LAST_PS4_LY = 0;
|
||||
int LAST_PS4_L2 = 0;
|
||||
|
||||
int DPAD_MODE = 0;
|
||||
int START_HOLD = 0;
|
||||
|
||||
main {
|
||||
|
||||
// Green light
|
||||
set_led(LED_1, 0);
|
||||
set_led(LED_2, 0);
|
||||
set_led(LED_3, 1);
|
||||
// Green light
|
||||
set_led(LED_1, 0);
|
||||
set_led(LED_2, 0);
|
||||
set_led(LED_3, 1);
|
||||
|
||||
toggle_dpad_mode();
|
||||
|
||||
// Brake
|
||||
if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // EB
|
||||
LAST_PS4_RX = 100;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 100;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B8
|
||||
LAST_PS4_RX = 100;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B7
|
||||
LAST_PS4_RX = 90;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -90;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B6
|
||||
LAST_PS4_RX = 80;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -80;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B5
|
||||
LAST_PS4_RX = 70;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -70
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B4
|
||||
LAST_PS4_RX = 60;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -60;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B3
|
||||
LAST_PS4_RX = 50;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -50;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B2
|
||||
LAST_PS4_RX = 40;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -40;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B1
|
||||
LAST_PS4_RX = 30;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -30;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B0
|
||||
|
@ -114,14 +127,14 @@ main {
|
|||
if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P5
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -100;
|
||||
LAST_PS4_LY = 100;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P4
|
||||
if (LAST_PS4_LY >= 70) {
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -85;
|
||||
LAST_PS4_LY = 85;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else { // P0 for adapters which don't support simultaneous DPAD presses
|
||||
|
@ -134,19 +147,19 @@ main {
|
|||
else if (get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P3
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -70;
|
||||
LAST_PS4_LY = 70;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P2
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -50;
|
||||
LAST_PS4_LY = 50;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P1
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -30;
|
||||
LAST_PS4_LY = 30;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P0
|
||||
|
@ -162,6 +175,62 @@ main {
|
|||
set_val(PS4_L2, LAST_PS4_L2);
|
||||
|
||||
clear_input();
|
||||
|
||||
// Press SELECT+START to use buttons as D-pad
|
||||
if (DPAD_MODE == 1) {
|
||||
if (get_val(BUTTON_SELECT)) {
|
||||
set_val(PS4_UP, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CROSS)) {
|
||||
set_val(PS4_DOWN, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_DOWN, 0);
|
||||
}
|
||||
if (get_val(BUTTON_SQUARE)) {
|
||||
set_val(PS4_LEFT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_LEFT, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CIRCLE)) {
|
||||
set_val(PS4_RIGHT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
set_val(BUTTON_SELECT, 0);
|
||||
set_val(BUTTON_SQUARE, 0);
|
||||
set_val(BUTTON_CIRCLE, 0);
|
||||
set_val(BUTTON_CROSS, 0);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
set_val(PS4_DOWN, 0);
|
||||
set_val(PS4_LEFT, 0);
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
}
|
||||
|
||||
function toggle_dpad_mode() { // Toggle D-Pad mode
|
||||
if (get_val(BUTTON_START)) {
|
||||
START_HOLD = START_HOLD + 1;
|
||||
}
|
||||
else {
|
||||
START_HOLD = 0;
|
||||
}
|
||||
|
||||
if (START_HOLD > 15) {
|
||||
set_val(BUTTON_START, 0);
|
||||
DPAD_MODE = 1;
|
||||
}
|
||||
else {
|
||||
DPAD_MODE = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function clear_input() { // Clear unwanted input
|
241
DenshaDeGoPS1ToPS4_General-T1.gpc
Executable file
241
DenshaDeGoPS1ToPS4_General-T1.gpc
Executable file
|
@ -0,0 +1,241 @@
|
|||
// Script to use PS1/N64/SS/DC Densha de GO! controllers with Densha de GO! Hashirou Yamanote Sen (PS4/Switch)
|
||||
|
||||
// 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)
|
||||
|
||||
// Holding START enables the use of buttons as a D-Pad (to navigate menus)
|
||||
|
||||
|
||||
// Adjust the following values to the input indices from your adapter
|
||||
|
||||
define DPAD_UP = HID_BUTTON_10;
|
||||
define DPAD_DOWN = HID_BUTTON_11;
|
||||
define DPAD_LEFT = HID_BUTTON_12;
|
||||
define DPAD_RIGHT = HID_BUTTON_13;
|
||||
|
||||
define BUTTON_SELECT = HID_BUTTON_2;
|
||||
define BUTTON_START = HID_BUTTON_3;
|
||||
|
||||
define BUTTON_R1 = HID_BUTTON_4;
|
||||
define BUTTON_R2 = HID_BUTTON_5;
|
||||
define BUTTON_L1 = HID_BUTTON_7;
|
||||
define BUTTON_L2 = HID_BUTTON_8;
|
||||
|
||||
define BUTTON_TRIANGLE = HID_BUTTON_14;
|
||||
define BUTTON_SQUARE = HID_BUTTON_15;
|
||||
define BUTTON_CIRCLE = HID_BUTTON_16;
|
||||
define BUTTON_CROSS = HID_BUTTON_17;
|
||||
|
||||
|
||||
// Do not modify anything from here on
|
||||
|
||||
unmap ALL_REMAPS;
|
||||
remap BUTTON_SELECT -> PS4_TRIANGLE;
|
||||
remap BUTTON_START -> PS4_OPTIONS;
|
||||
remap BUTTON_SQUARE -> PS4_SQUARE;
|
||||
remap BUTTON_CIRCLE -> PS4_CIRCLE;
|
||||
remap BUTTON_CROSS -> PS4_CROSS;
|
||||
remap BUTTON_L2 -> PS4_L2;
|
||||
remap HID_STICK_2_X -> PS4_LX;
|
||||
remap HID_STICK_2_Y -> PS4_LY;
|
||||
remap HID_STICK_1_X -> PS4_RX;
|
||||
remap DPAD_UP -> PS4_UP;
|
||||
remap DPAD_DOWN -> PS4_DOWN;
|
||||
remap DPAD_LEFT -> PS4_LEFT;
|
||||
remap DPAD_RIGHT -> PS4_RIGHT;
|
||||
|
||||
int LAST_PS4_RX = 0;
|
||||
int LAST_PS4_LX = 0;
|
||||
int LAST_PS4_LY = 0;
|
||||
int LAST_PS4_L2 = 0;
|
||||
|
||||
int DPAD_MODE = 0;
|
||||
int START_HOLD = 0;
|
||||
|
||||
main {
|
||||
|
||||
// Green light
|
||||
set_led(LED_1, 0);
|
||||
set_led(LED_2, 0);
|
||||
set_led(LED_3, 1);
|
||||
|
||||
toggle_dpad_mode();
|
||||
|
||||
// Brake
|
||||
if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // EB
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_L2 = 100;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B8
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B7
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -90;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B6
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -80;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B5
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -70;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B4
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -60;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B3
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -50;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B2
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -40;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B1
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -30;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B0
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
|
||||
// Power
|
||||
if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P5
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 100;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P4
|
||||
if (LAST_PS4_LY >= 70) {
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 85;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else { // P0 for adapters which don't support simultaneous DPAD presses
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
}
|
||||
else if (get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P3
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 70;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P2
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 50;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P1
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 30;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P0
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
|
||||
set_val(PS4_RX, LAST_PS4_RX);
|
||||
set_val(PS4_LX, LAST_PS4_LX);
|
||||
set_val(PS4_LY, LAST_PS4_LY);
|
||||
set_val(PS4_L2, LAST_PS4_L2);
|
||||
|
||||
clear_input();
|
||||
|
||||
// Press SELECT+START to use buttons as D-pad
|
||||
if (DPAD_MODE == 1) {
|
||||
if (get_val(BUTTON_SELECT)) {
|
||||
set_val(PS4_UP, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CROSS)) {
|
||||
set_val(PS4_DOWN, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_DOWN, 0);
|
||||
}
|
||||
if (get_val(BUTTON_SQUARE)) {
|
||||
set_val(PS4_LEFT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_LEFT, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CIRCLE)) {
|
||||
set_val(PS4_RIGHT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
set_val(BUTTON_SELECT, 0);
|
||||
set_val(BUTTON_SQUARE, 0);
|
||||
set_val(BUTTON_CIRCLE, 0);
|
||||
set_val(BUTTON_CROSS, 0);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
set_val(PS4_DOWN, 0);
|
||||
set_val(PS4_LEFT, 0);
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
}
|
||||
|
||||
function toggle_dpad_mode() { // Toggle D-Pad mode
|
||||
if (get_val(BUTTON_START)) {
|
||||
START_HOLD = START_HOLD + 1;
|
||||
}
|
||||
else {
|
||||
START_HOLD = 0;
|
||||
}
|
||||
|
||||
if (START_HOLD > 15) {
|
||||
set_val(BUTTON_START, 0);
|
||||
DPAD_MODE = 1;
|
||||
}
|
||||
else {
|
||||
DPAD_MODE = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function clear_input() { // Clear unwanted input
|
||||
set_val(PS4_L1, 0);
|
||||
set_val(PS4_R1, 0);
|
||||
set_val(PS4_R2, 0);
|
||||
return;
|
||||
}
|
105
DenshaDeGoPS1ToSwitch-T1.gpc → DenshaDeGoPS1ToSwitch_103-T1.gpc
Normal file → Executable file
105
DenshaDeGoPS1ToSwitch-T1.gpc → DenshaDeGoPS1ToSwitch_103-T1.gpc
Normal file → Executable file
|
@ -3,9 +3,13 @@
|
|||
// 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)
|
||||
|
||||
// Holding START enables the use of buttons as a D-Pad (to navigate menus)
|
||||
|
||||
|
||||
// Adjust the following values to the input indices from your adapter
|
||||
|
||||
define DPAD_UP = HID_BUTTON_10;
|
||||
define DPAD_DOWN = HID_BUTTON_11;
|
||||
define DPAD_LEFT = HID_BUTTON_12;
|
||||
define DPAD_RIGHT = HID_BUTTON_13;
|
||||
|
||||
|
@ -35,72 +39,81 @@ remap BUTTON_L2 -> PS4_L2;
|
|||
remap HID_STICK_2_X -> PS4_LX;
|
||||
remap HID_STICK_2_Y -> PS4_LY;
|
||||
remap HID_STICK_1_X -> PS4_RX;
|
||||
remap DPAD_UP -> PS4_UP;
|
||||
remap DPAD_DOWN -> PS4_DOWN;
|
||||
remap DPAD_LEFT -> PS4_LEFT;
|
||||
remap DPAD_RIGHT -> PS4_RIGHT;
|
||||
|
||||
int LAST_PS4_RX = 0;
|
||||
int LAST_PS4_LX = 0;
|
||||
int LAST_PS4_LY = 0;
|
||||
int LAST_PS4_L2 = 0;
|
||||
|
||||
int DPAD_MODE = 0;
|
||||
int START_HOLD = 0;
|
||||
|
||||
main {
|
||||
|
||||
// Green light
|
||||
set_led(LED_1, 0);
|
||||
set_led(LED_2, 0);
|
||||
set_led(LED_3, 1);
|
||||
// Green light
|
||||
set_led(LED_1, 0);
|
||||
set_led(LED_2, 0);
|
||||
set_led(LED_3, 1);
|
||||
|
||||
toggle_dpad_mode();
|
||||
|
||||
// Brake
|
||||
if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // EB
|
||||
LAST_PS4_RX = 100;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 100;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B8
|
||||
LAST_PS4_RX = 100;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B7
|
||||
LAST_PS4_RX = 85;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -85;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B6
|
||||
LAST_PS4_RX = 75;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -75;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B5
|
||||
LAST_PS4_RX = 70;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -70
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B4
|
||||
LAST_PS4_RX = 60;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -60;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B3
|
||||
LAST_PS4_RX = 50;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -50;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B2
|
||||
LAST_PS4_RX = 40;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -40;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B1
|
||||
LAST_PS4_RX = 30;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -30;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B0
|
||||
|
@ -114,14 +127,14 @@ main {
|
|||
if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P5
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -100;
|
||||
LAST_PS4_LY = 100;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P4
|
||||
if (LAST_PS4_LY >= 70) {
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -85;
|
||||
LAST_PS4_LY = 85;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else { // P0 for adapters which don't support simultaneous DPAD presses
|
||||
|
@ -134,19 +147,19 @@ main {
|
|||
else if (get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P3
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -70;
|
||||
LAST_PS4_LY = 70;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P2
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -50;
|
||||
LAST_PS4_LY = 50;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P1
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = -30;
|
||||
LAST_PS4_LY = 30;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P0
|
||||
|
@ -162,6 +175,62 @@ main {
|
|||
set_val(PS4_L2, LAST_PS4_L2);
|
||||
|
||||
clear_input();
|
||||
|
||||
// Press SELECT+START to use buttons as D-pad
|
||||
if (DPAD_MODE == 1) {
|
||||
if (get_val(BUTTON_SELECT)) {
|
||||
set_val(PS4_UP, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CROSS)) {
|
||||
set_val(PS4_DOWN, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_DOWN, 0);
|
||||
}
|
||||
if (get_val(BUTTON_SQUARE)) {
|
||||
set_val(PS4_LEFT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_LEFT, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CIRCLE)) {
|
||||
set_val(PS4_RIGHT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
set_val(BUTTON_SELECT, 0);
|
||||
set_val(BUTTON_SQUARE, 0);
|
||||
set_val(BUTTON_CIRCLE, 0);
|
||||
set_val(BUTTON_CROSS, 0);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
set_val(PS4_DOWN, 0);
|
||||
set_val(PS4_LEFT, 0);
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
}
|
||||
|
||||
function toggle_dpad_mode() { // Toggle D-Pad mode
|
||||
if (get_val(BUTTON_START)) {
|
||||
START_HOLD = START_HOLD + 1;
|
||||
}
|
||||
else {
|
||||
START_HOLD = 0;
|
||||
}
|
||||
|
||||
if (START_HOLD > 15) {
|
||||
set_val(BUTTON_START, 0);
|
||||
DPAD_MODE = 1;
|
||||
}
|
||||
else {
|
||||
DPAD_MODE = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function clear_input() { // Clear unwanted input
|
241
DenshaDeGoPS1ToSwitch_General-T1.gpc
Executable file
241
DenshaDeGoPS1ToSwitch_General-T1.gpc
Executable file
|
@ -0,0 +1,241 @@
|
|||
// Script to use PS1/N64/SS/DC Densha de GO! controllers with Densha de GO! Hashirou Yamanote Sen (PS4/Switch)
|
||||
|
||||
// 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)
|
||||
|
||||
// Holding START enables the use of buttons as a D-Pad (to navigate menus)
|
||||
|
||||
|
||||
// Adjust the following values to the input indices from your adapter
|
||||
|
||||
define DPAD_UP = HID_BUTTON_10;
|
||||
define DPAD_DOWN = HID_BUTTON_11;
|
||||
define DPAD_LEFT = HID_BUTTON_12;
|
||||
define DPAD_RIGHT = HID_BUTTON_13;
|
||||
|
||||
define BUTTON_SELECT = HID_BUTTON_2;
|
||||
define BUTTON_START = HID_BUTTON_3;
|
||||
|
||||
define BUTTON_R1 = HID_BUTTON_4;
|
||||
define BUTTON_R2 = HID_BUTTON_5;
|
||||
define BUTTON_L1 = HID_BUTTON_7;
|
||||
define BUTTON_L2 = HID_BUTTON_8;
|
||||
|
||||
define BUTTON_TRIANGLE = HID_BUTTON_14;
|
||||
define BUTTON_SQUARE = HID_BUTTON_15;
|
||||
define BUTTON_CIRCLE = HID_BUTTON_16;
|
||||
define BUTTON_CROSS = HID_BUTTON_17;
|
||||
|
||||
|
||||
// Do not modify anything from here on
|
||||
|
||||
unmap ALL_REMAPS;
|
||||
remap BUTTON_SELECT -> PS4_TRIANGLE;
|
||||
remap BUTTON_START -> PS4_OPTIONS;
|
||||
remap BUTTON_SQUARE -> PS4_SQUARE;
|
||||
remap BUTTON_CIRCLE -> PS4_CIRCLE;
|
||||
remap BUTTON_CROSS -> PS4_CROSS;
|
||||
remap BUTTON_L2 -> PS4_L2;
|
||||
remap HID_STICK_2_X -> PS4_LX;
|
||||
remap HID_STICK_2_Y -> PS4_LY;
|
||||
remap HID_STICK_1_X -> PS4_RX;
|
||||
remap DPAD_UP -> PS4_UP;
|
||||
remap DPAD_DOWN -> PS4_DOWN;
|
||||
remap DPAD_LEFT -> PS4_LEFT;
|
||||
remap DPAD_RIGHT -> PS4_RIGHT;
|
||||
|
||||
int LAST_PS4_RX = 0;
|
||||
int LAST_PS4_LX = 0;
|
||||
int LAST_PS4_LY = 0;
|
||||
int LAST_PS4_L2 = 0;
|
||||
|
||||
int DPAD_MODE = 0;
|
||||
int START_HOLD = 0;
|
||||
|
||||
main {
|
||||
|
||||
// Green light
|
||||
set_led(LED_1, 0);
|
||||
set_led(LED_2, 0);
|
||||
set_led(LED_3, 1);
|
||||
|
||||
toggle_dpad_mode();
|
||||
|
||||
// Brake
|
||||
if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // EB
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_L2 = 100;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B8
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -100;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && !get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B7
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -85;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B6
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -75;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B5
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -70;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B4
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -60;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && get_val(BUTTON_L2) && !get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B3
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -50;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B2
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -40;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_L1) && !get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B1
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = -30;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_L1) && get_val(BUTTON_L2) && get_val(BUTTON_R1) && get_val(BUTTON_R2) && LAST_PS4_LY <= 0) { // B0
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
|
||||
// Power
|
||||
if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P5
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 100;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P4
|
||||
if (LAST_PS4_LY >= 70) {
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 85;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else { // P0 for adapters which don't support simultaneous DPAD presses
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
}
|
||||
else if (get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && !get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P3
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 70;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P2
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 50;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (get_val(BUTTON_TRIANGLE) && !get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P1
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 30;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
else if (!get_val(BUTTON_TRIANGLE) && get_val(DPAD_LEFT) && get_val(DPAD_RIGHT) && LAST_PS4_LY >= 0) { // P0
|
||||
LAST_PS4_RX = 0;
|
||||
LAST_PS4_LX = 0;
|
||||
LAST_PS4_LY = 0;
|
||||
LAST_PS4_L2 = 0;
|
||||
}
|
||||
|
||||
set_val(PS4_RX, LAST_PS4_RX);
|
||||
set_val(PS4_LX, LAST_PS4_LX);
|
||||
set_val(PS4_LY, LAST_PS4_LY);
|
||||
set_val(PS4_L2, LAST_PS4_L2);
|
||||
|
||||
clear_input();
|
||||
|
||||
// Press SELECT+START to use buttons as D-pad
|
||||
if (DPAD_MODE == 1) {
|
||||
if (get_val(BUTTON_SELECT)) {
|
||||
set_val(PS4_UP, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CROSS)) {
|
||||
set_val(PS4_DOWN, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_DOWN, 0);
|
||||
}
|
||||
if (get_val(BUTTON_SQUARE)) {
|
||||
set_val(PS4_LEFT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_LEFT, 0);
|
||||
}
|
||||
if (get_val(BUTTON_CIRCLE)) {
|
||||
set_val(PS4_RIGHT, 100);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
set_val(BUTTON_SELECT, 0);
|
||||
set_val(BUTTON_SQUARE, 0);
|
||||
set_val(BUTTON_CIRCLE, 0);
|
||||
set_val(BUTTON_CROSS, 0);
|
||||
}
|
||||
else {
|
||||
set_val(PS4_UP, 0);
|
||||
set_val(PS4_DOWN, 0);
|
||||
set_val(PS4_LEFT, 0);
|
||||
set_val(PS4_RIGHT, 0);
|
||||
}
|
||||
}
|
||||
|
||||
function toggle_dpad_mode() { // Toggle D-Pad mode
|
||||
if (get_val(BUTTON_START)) {
|
||||
START_HOLD = START_HOLD + 1;
|
||||
}
|
||||
else {
|
||||
START_HOLD = 0;
|
||||
}
|
||||
|
||||
if (START_HOLD > 15) {
|
||||
set_val(BUTTON_START, 0);
|
||||
DPAD_MODE = 1;
|
||||
}
|
||||
else {
|
||||
DPAD_MODE = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function clear_input() { // Clear unwanted input
|
||||
set_val(PS4_L1, 0);
|
||||
set_val(PS4_R1, 0);
|
||||
set_val(PS4_R2, 0);
|
||||
return;
|
||||
}
|
|
@ -1,3 +1,12 @@
|
|||
# Densha de GO! scripts for the Titan One
|
||||
|
||||
This repository contains GPC scripts for the Titan One to use several controllers with the PS4/Switch game "Densha de GO! Hashirou Yamanote Sen".
|
||||
|
||||
There are four scripts:
|
||||
|
||||
- **DenshaDeGoPS1ToPS4_General-T1.gpc**: to connect PS1 controllers to a PS4. For use with all trains except 103 series.
|
||||
- **DenshaDeGoPS1ToPS4_103-T1.gpc**: to connect PS1 controllers to a PS4. For use with the 103 series train.
|
||||
- **DenshaDeGoPS1ToSwitch_General-T1.gpc**: to connect PS1 controllers to a Switch. For use with all trains except 103 series.
|
||||
- **DenshaDeGoPS1ToSwitch_103-T1.gpc**: to connect PS1 controllers to a Switch. For use with the 103 series train.
|
||||
|
||||
All scripts support holding **START** to use **A**, **B**, **C** and **SELECT** as a D-pad and navigate game menus.
|
||||
|
|
Loading…
Add table
Reference in a new issue