Merge pull request #6821 from reswitched/master

NSW: fix analog sticks
This commit is contained in:
Twinaphex 2018-05-24 10:41:49 +02:00 committed by GitHub
commit 25fbcb33e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -137,10 +137,24 @@ static void switch_joypad_poll(void)
hid_controller_state_entry_t ent8 = (cont+8)->main.entries[(cont+8)->main.latest_idx]; hid_controller_state_entry_t ent8 = (cont+8)->main.entries[(cont+8)->main.latest_idx];
pad_state[0] = ent.button_state | ent8.button_state; pad_state[0] = ent.button_state | ent8.button_state;
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = ent.left_stick_x / 0x20000; int16_t lsx, lsy, rsx, rsy;
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = ent.left_stick_y / 0x20000; lsx = ent.left_stick_x;
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = ent.right_stick_x / 0x20000; lsy = ent.left_stick_y;
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = ent.right_stick_y / 0x20000; rsx = ent.right_stick_x;
rsy = ent.right_stick_y;
if(ent8.left_stick_x != 0 || ent8.left_stick_y != 0) { // handheld overrides player 1
lsx = ent8.left_stick_x;
lsy = ent8.left_stick_y;
}
if(ent8.right_stick_x != 0 || ent8.right_stick_y != 0) { // handheld overrides player 1
rsx = ent8.right_stick_x;
rsy = ent8.right_stick_y;
}
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = lsx;
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = -lsy;
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = rsx;
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = -rsy;
} }
input_device_driver_t switch_joypad = { input_device_driver_t switch_joypad = {