diff --git a/android/native/jni/input_android.c b/android/native/jni/input_android.c index 9517820a91..507b56e3fa 100644 --- a/android/native/jni/input_android.c +++ b/android/native/jni/input_android.c @@ -1489,6 +1489,31 @@ 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_WIKIPAD: + /* untested : D-pad/analogs */ + /* untested: L2/R2 */ + g_settings.input.device[port] = device; + strlcpy(g_settings.input.device_names[port], "Wikipad", + sizeof(g_settings.input.device_names[port])); + g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG; + + keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift); + keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift); + keycode_lut[AKEYCODE_DPAD_LEFT] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift); + keycode_lut[AKEYCODE_DPAD_RIGHT]|= ((RETRO_DEVICE_ID_JOYPAD_RIGHT+1) << shift); + + keycode_lut[AKEYCODE_BUTTON_A] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift); + keycode_lut[AKEYCODE_BUTTON_B] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift); + keycode_lut[AKEYCODE_BUTTON_X] |= ((RETRO_DEVICE_ID_JOYPAD_X+1) << shift); + keycode_lut[AKEYCODE_BUTTON_Y] |= ((RETRO_DEVICE_ID_JOYPAD_Y+1) << shift); + keycode_lut[AKEYCODE_BUTTON_L1] |= ((RETRO_DEVICE_ID_JOYPAD_L+1) << shift); + keycode_lut[AKEYCODE_BUTTON_R1] |= ((RETRO_DEVICE_ID_JOYPAD_R+1) << shift); + keycode_lut[AKEYCODE_BUTTON_THUMBL] |= ((RETRO_DEVICE_ID_JOYPAD_L3+1) << shift); + keycode_lut[AKEYCODE_BUTTON_THUMBR] |= ((RETRO_DEVICE_ID_JOYPAD_R3+1) << shift); + + keycode_lut[AKEYCODE_BUTTON_START] |= ((RETRO_DEVICE_ID_JOYPAD_START+1) << shift); + keycode_lut[AKEYCODE_BACK] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift); + break; case DEVICE_CCPCREATIONS_WIIUSE_IME: g_settings.input.device[port] = device; strlcpy(g_settings.input.device_names[port], "ccpCreations WiiUse IME", diff --git a/android/native/jni/input_autodetect.c b/android/native/jni/input_autodetect.c index d665cdd711..8ac1779ed9 100644 --- a/android/native/jni/input_autodetect.c +++ b/android/native/jni/input_autodetect.c @@ -135,6 +135,8 @@ void input_autodetect_setup(void *data, char *msg, size_t sizeof_msg, unsigned p device = DEVICE_SAITEK_RUMBLE_P480; else if (strstr(name_buf, "mtk-kpd")) device = DEVICE_MUCH_IREADGO_I5; + else if (strstr(name_buf, "Wikipad")) + device = DEVICE_WIKIPAD; else if (strstr(name_buf, "Microsoft")) { if (strstr(name_buf, "Dual Strike")) diff --git a/driver.h b/driver.h index 4a2c3045f0..991cfbb44f 100644 --- a/driver.h +++ b/driver.h @@ -272,6 +272,7 @@ enum input_devices DEVICE_HOLTEK_JC_U912F, DEVICE_NVIDIA_SHIELD, DEVICE_MUCH_IREADGO_I5, + DEVICE_WIKIPAD, #elif defined(GEKKO) DEVICE_GAMECUBE = 0, #ifdef HW_RVL