diff --git a/android/native/jni/input_android.c b/android/native/jni/input_android.c index 68b210a01c..4a189f9255 100644 --- a/android/native/jni/input_android.c +++ b/android/native/jni/input_android.c @@ -807,6 +807,23 @@ static void android_input_set_keybinds(void *data, unsigned device, keycode_lut[AKEYCODE_BUTTON_L1] |= ((RETRO_DEVICE_ID_JOYPAD_L+1) << shift); keycode_lut[AKEYCODE_BUTTON_R1] |= ((RETRO_DEVICE_ID_JOYPAD_R+1) << shift); break; + case DEVICE_SEGA_VIRTUA_STICK_HIGH_GRADE: + g_settings.input.device[port] = device; + strlcpy(g_settings.input.device_names[port], "Sega Virtua Stick", + sizeof(g_settings.input.device_names[port])); + + keycode_lut[AKEYCODE_BUTTON_A] |= ((RETRO_DEVICE_ID_JOYPAD_Y+1) << shift); + keycode_lut[AKEYCODE_BUTTON_X] |= ((RETRO_DEVICE_ID_JOYPAD_X+1) << shift); + keycode_lut[AKEYCODE_BUTTON_B] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift); + keycode_lut[AKEYCODE_BUTTON_C] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift); + keycode_lut[AKEYCODE_BUTTON_Z] |= ((RETRO_DEVICE_ID_JOYPAD_R+1) << shift); + keycode_lut[AKEYCODE_BUTTON_R1] |= ((RETRO_DEVICE_ID_JOYPAD_R2+1) << shift); + keycode_lut[AKEYCODE_BUTTON_Y] |= ((RETRO_DEVICE_ID_JOYPAD_L+1) << shift); + keycode_lut[AKEYCODE_BUTTON_L1] |= ((RETRO_DEVICE_ID_JOYPAD_L2+1) << shift); + keycode_lut[AKEYCODE_BUTTON_R2] |= ((RETRO_DEVICE_ID_JOYPAD_START+1) << shift); + keycode_lut[AKEYCODE_BUTTON_MODE] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift); + keycode_lut[AKEYCODE_BUTTON_L2] |= ((RARCH_MENU_TOGGLE+1) << shift); + break; case DEVICE_PSMOVE_NAVI: /* TODO - unfinished */ g_settings.input.device[port] = device; diff --git a/android/native/jni/input_autodetect.c b/android/native/jni/input_autodetect.c index ef0f155fff..c68a6e5c80 100644 --- a/android/native/jni/input_autodetect.c +++ b/android/native/jni/input_autodetect.c @@ -95,6 +95,8 @@ void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned device = DEVICE_LOGITECH_DUAL_ACTION; else if (strstr(name_buf, "shooter-keypad")) device = DEVICE_ICONTROLPAD_BLUEZ_IME; + else if (strstr(name_buf, "SEGA VIRTUA STICK High Grade")) + device = DEVICE_SEGA_VIRTUA_STICK_HIGH_GRADE; else if (strstr(name_buf, "TTT THT Arcade console 2P USB Play")) device = DEVICE_TTT_THT_ARCADE; else if (strstr(name_buf, "TOMMO NEOGEOX Arcade Stick")) diff --git a/driver.h b/driver.h index 2dfd58e2a4..95c5742463 100644 --- a/driver.h +++ b/driver.h @@ -250,6 +250,7 @@ enum input_devices DEVICE_NYKO_PLAYPAD_PRO, DEVICE_TOODLES_2008_CHIMP, DEVICE_MOGA, + DEVICE_SEGA_VIRTUA_STICK_HIGH_GRADE, DEVICE_CCPCREATIONS_WIIUSE_IME, DEVICE_KEYBOARD_RETROPAD, #elif defined(GEKKO)