From 4e5df9d378f38b0dc4a60f33a66859fa3fd69681 Mon Sep 17 00:00:00 2001 From: "fabio.olimpieri" Date: Sat, 26 Oct 2013 11:02:46 +0000 Subject: [PATCH] Fixe Gamecube controller support and L/R triggers of Wii classic --- SDL/src/joystick/wii/SDL_sysjoystick.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/SDL/src/joystick/wii/SDL_sysjoystick.c b/SDL/src/joystick/wii/SDL_sysjoystick.c index 001e59a..fb7c693 100644 --- a/SDL/src/joystick/wii/SDL_sysjoystick.c +++ b/SDL/src/joystick/wii/SDL_sysjoystick.c @@ -376,16 +376,16 @@ static void _HandleWiiJoystickUpdate(SDL_Joystick* joystick) SDL_PrivateJoystickAxis(joystick, 3, -(axis << 8)); prev_state->wiimote.classicR_stickY = axis; } - axis = exp.classic.r_shoulder; + axis = exp.classic.r_shoulder*255; if(prev_state->wiimote.classic_triggerR != axis) { - SDL_PrivateJoystickAxis(joystick, 4, axis << 8); + SDL_PrivateJoystickAxis(joystick, 4, axis << 7); prev_state->wiimote.classic_triggerR = axis; } - axis = exp.classic.l_shoulder; + axis = exp.classic.l_shoulder*255; if(prev_state->wiimote.classic_triggerL != axis) { - SDL_PrivateJoystickAxis(joystick, 5, axis << 8); + SDL_PrivateJoystickAxis(joystick, 5, axis << 7); prev_state->wiimote.classic_triggerL = axis; } } @@ -462,45 +462,45 @@ static void _HandleGCJoystickUpdate(SDL_Joystick* joystick) (buttons & sdl_buttons_gc[i]) ? SDL_PRESSED : SDL_RELEASED); } prev_state->gamecube.prev_buttons = buttons; - axis = PAD_StickX(joystick->index); + axis = PAD_StickX(joystick->index-4); if(prev_state->gamecube.stickX != axis) { SDL_PrivateJoystickAxis(joystick, 0, axis << 8); prev_state->gamecube.stickX = axis; } - axis = PAD_StickY(joystick->index); + axis = PAD_StickY(joystick->index-4); if(prev_state->gamecube.stickY != axis) { SDL_PrivateJoystickAxis(joystick, 1, (-axis) << 8); prev_state->gamecube.stickY = axis; } - axis = PAD_SubStickX(joystick->index); + axis = PAD_SubStickX(joystick->index-4); if(prev_state->gamecube.substickX != axis) { SDL_PrivateJoystickAxis(joystick, 2, axis << 8); prev_state->gamecube.substickX = axis; } - axis = PAD_SubStickY(joystick->index); + axis = PAD_SubStickY(joystick->index-4); if(prev_state->gamecube.substickY != axis) { - SDL_PrivateJoystickAxis(joystick, 3, axis << 8); + SDL_PrivateJoystickAxis(joystick, 3, (-axis) << 8); prev_state->gamecube.substickY = axis; } - axis = PAD_TriggerL(joystick->index); + axis = PAD_TriggerL(joystick->index-4); if(prev_state->gamecube.triggerL != axis) { - SDL_PrivateJoystickAxis(joystick, 4, axis << 8); + SDL_PrivateJoystickAxis(joystick, 4, axis << 7); prev_state->gamecube.triggerL = axis; } - axis = PAD_TriggerR(joystick->index); + axis = PAD_TriggerR(joystick->index-4); if(prev_state->gamecube.triggerR != axis) { - SDL_PrivateJoystickAxis(joystick, 5, axis << 8); + SDL_PrivateJoystickAxis(joystick, 5, axis << 7); prev_state->gamecube.triggerR = axis; } }