From 54d2ac9f43bc64a84c73f70f78b208b7b689b3bd Mon Sep 17 00:00:00 2001 From: p-sam Date: Fri, 1 Oct 2021 08:25:57 +0000 Subject: [PATCH] libnx: Splitted Joycons button mapping - Minus/Plus is always Plus when splitted (JOYPAD_START) - StickR/StickL is always StickL when splitted (JOYPAD_L3) --- input/drivers_joypad/switch_joypad.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index da7e79fe5b..1c37258b40 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -331,7 +331,11 @@ static void switch_joypad_poll(void) button_state[i] |= (uint16_t)HidNpadButton_L; if (pad_button & HidNpadButton_LeftSR) button_state[i] |= (uint16_t)HidNpadButton_R; - + if (pad_button & HidNpadButton_StickL) + button_state[i] |= (uint16_t)HidNpadButton_StickL; + if (pad_button & HidNpadButton_Minus) + button_state[i] |= (uint16_t)HidNpadButton_Plus; + analog_state[i][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = -stick_left_state.y; analog_state[i][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = -stick_left_state.x; } else if (hidGetNpadDeviceType((HidNpadIdType)i) & HidDeviceTypeBits_JoyRight) { @@ -349,7 +353,9 @@ static void switch_joypad_poll(void) button_state[i] |= (uint16_t)HidNpadButton_R; if (pad_button & HidNpadButton_StickR) button_state[i] |= (uint16_t)HidNpadButton_StickL; - + if (pad_button & HidNpadButton_Plus) + button_state[i] |= (uint16_t)HidNpadButton_Plus; + /* Throw JoyRight state into retro left analog */ analog_state[i][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = stick_right_state.y; analog_state[i][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = stick_right_state.x;