diff --git a/input/input_luts.c b/input/input_luts.c index b024684134..cc971657ff 100644 --- a/input/input_luts.c +++ b/input/input_luts.c @@ -16,6 +16,10 @@ * If not, see . */ +#ifdef _XBOX +#include +#endif + #include #include "input_luts.h" @@ -56,6 +60,41 @@ uint64_t ssnes_platform_keybind_lut[SSNES_LAST_PLATFORM_KEY] = { CTRL_UP_MASK | CTRL_RSTICK_UP_MASK, CTRL_DOWN_MASK | CTRL_RSTICK_DOWN_MASK, }; +#elif defined(_XBOX) +uint64_t ssnes_platform_keybind_lut[SSNES_LAST_PLATFORM_KEY] = { + XINPUT_GAMEPAD_B, + XINPUT_GAMEPAD_A, + XINPUT_GAMEPAD_Y, + XINPUT_GAMEPAD_X, + XINPUT_GAMEPAD_DPAD_UP, + XINPUT_GAMEPAD_DPAD_DOWN, + XINPUT_GAMEPAD_DPAD_LEFT, + XINPUT_GAMEPAD_DPAD_RIGHT, + XINPUT_GAMEPAD_BACK, + XINPUT_GAMEPAD_START, + XINPUT_GAMEPAD_LEFT_SHOULDER, + XINPUT_GAMEPAD_LEFT_TRIGGER, + XINPUT_GAMEPAD_LEFT_THUMB, + XINPUT_GAMEPAD_RIGHT_SHOULDER, + XINPUT_GAMEPAD_RIGHT_TRIGGER, + XINPUT_GAMEPAD_RIGHT_THUMB, + XINPUT_GAMEPAD_LSTICK_LEFT_MASK, + XINPUT_GAMEPAD_LSTICK_RIGHT_MASK, + XINPUT_GAMEPAD_LSTICK_UP_MASK, + XINPUT_GAMEPAD_LSTICK_DOWN_MASK, + XINPUT_GAMEPAD_DPAD_LEFT | XINPUT_GAMEPAD_LSTICK_LEFT_MASK, + XINPUT_GAMEPAD_DPAD_RIGHT | XINPUT_GAMEPAD_LSTICK_RIGHT_MASK, + XINPUT_GAMEPAD_DPAD_UP | XINPUT_GAMEPAD_LSTICK_UP_MASK, + XINPUT_GAMEPAD_DPAD_DOWN | XINPUT_GAMEPAD_LSTICK_DOWN_MASK, + XINPUT_GAMEPAD_RSTICK_LEFT_MASK, + XINPUT_GAMEPAD_RSTICK_RIGHT_MASK, + XINPUT_GAMEPAD_RSTICK_UP_MASK, + XINPUT_GAMEPAD_RSTICK_DOWN_MASK, + XINPUT_GAMEPAD_DPAD_LEFT | XINPUT_GAMEPAD_RSTICK_LEFT_MASK, + XINPUT_GAMEPAD_DPAD_RIGHT | XINPUT_GAMEPAD_RSTICK_RIGHT_MASK, + XINPUT_GAMEPAD_DPAD_UP | XINPUT_GAMEPAD_RSTICK_UP_MASK, + XINPUT_GAMEPAD_DPAD_DOWN | XINPUT_GAMEPAD_RSTICK_DOWN_MASK, +}; #endif struct platform_bind @@ -100,6 +139,40 @@ static const struct platform_bind platform_keys[] = { { CTRL_DOWN_MASK | CTRL_RSTICK_DOWN_MASK, "RStick D-Pad Down" }, }; #elif defined(_XBOX) +static const struct platform_bind platform_keys[] = { + { XINPUT_GAMEPAD_B, "B button" }, + { XINPUT_GAMEPAD_A, "A button" }, + { XINPUT_GAMEPAD_Y, "Y button" }, + { XINPUT_GAMEPAD_X, "X button" }, + { XINPUT_GAMEPAD_DPAD_UP, "D-Pad Up" }, + { XINPUT_GAMEPAD_DPAD_DOWN, "D-Pad Down" }, + { XINPUT_GAMEPAD_DPAD_LEFT, "D-Pad Left" }, + { XINPUT_GAMEPAD_DPAD_RIGHT, "D-Pad Right" }, + { XINPUT_GAMEPAD_BACK, "Back button" }, + { XINPUT_GAMEPAD_START, "Start button" }, + { XINPUT_GAMEPAD_LEFT_SHOULDER, "Left Shoulder" }, + { XINPUT_GAMEPAD_LEFT_TRIGGER, "Left Trigger" }, + { XINPUT_GAMEPAD_LEFT_THUMB, "Left Thumb" }, + { XINPUT_GAMEPAD_RIGHT_SHOULDER, "Right Shoulder" }, + { XINPUT_GAMEPAD_RIGHT_TRIGGER, "Right Trigger" }, + { XINPUT_GAMEPAD_RIGHT_THUMB, "Right Thumb" }, + { XINPUT_GAMEPAD_LSTICK_LEFT_MASK, "LStick Left" }, + { XINPUT_GAMEPAD_LSTICK_RIGHT_MASK, "LStick Right" }, + { XINPUT_GAMEPAD_LSTICK_UP_MASK, "LStick Up" }, + { XINPUT_GAMEPAD_LSTICK_DOWN_MASK, "LStick Down" }, + { XINPUT_GAMEPAD_DPAD_LEFT | XINPUT_GAMEPAD_LSTICK_LEFT_MASK, "LStick D-Pad Left" }, + { XINPUT_GAMEPAD_DPAD_RIGHT | XINPUT_GAMEPAD_LSTICK_RIGHT_MASK, "LStick D-Pad Right" }, + { XINPUT_GAMEPAD_DPAD_UP | XINPUT_GAMEPAD_LSTICK_UP_MASK, "LStick D-Pad Up" }, + { XINPUT_GAMEPAD_DPAD_DOWN | XINPUT_GAMEPAD_LSTICK_DOWN_MASK, "LStick D-Pad Down" }, + { XINPUT_GAMEPAD_RSTICK_LEFT_MASK, "RStick Left" }, + { XINPUT_GAMEPAD_RSTICK_RIGHT_MASK, "RStick Right" }, + { XINPUT_GAMEPAD_RSTICK_UP_MASK, "RStick Up" }, + { XINPUT_GAMEPAD_RSTICK_DOWN_MASK, "RStick Down" }, + { XINPUT_GAMEPAD_DPAD_LEFT | XINPUT_GAMEPAD_RSTICK_LEFT_MASK, "RStick D-Pad Left" }, + { XINPUT_GAMEPAD_DPAD_RIGHT | XINPUT_GAMEPAD_RSTICK_RIGHT_MASK, "RStick D-Pad Right" }, + { XINPUT_GAMEPAD_DPAD_UP | XINPUT_GAMEPAD_RSTICK_UP_MASK, "RStick D-Pad Up" }, + { XINPUT_GAMEPAD_DPAD_DOWN | XINPUT_GAMEPAD_RSTICK_DOWN_MASK, "RStick D-Pad Down" }, +}; #endif uint64_t ssnes_input_find_previous_platform_key(uint64_t joykey) diff --git a/input/input_luts.h b/input/input_luts.h index 72c74a81e1..42a9c104ef 100644 --- a/input/input_luts.h +++ b/input/input_luts.h @@ -65,6 +65,45 @@ enum ps3_device_id }; #elif defined(_XBOX) +#include "../360/xdk360_input.h" + +enum xdk360_device_id +{ + XDK360_DEVICE_ID_JOYPAD_B = 0, + XDK360_DEVICE_ID_JOYPAD_A, + XDK360_DEVICE_ID_JOYPAD_Y, + XDK360_DEVICE_ID_JOYPAD_X, + XDK360_DEVICE_ID_JOYPAD_UP, + XDK360_DEVICE_ID_JOYPAD_DOWN, + XDK360_DEVICE_ID_JOYPAD_LEFT, + XDK360_DEVICE_ID_JOYPAD_RIGHT, + XDK360_DEVICE_ID_JOYPAD_BACK, + XDK360_DEVICE_ID_JOYPAD_START, + XDK360_DEVICE_ID_JOYPAD_LB, + XDK360_DEVICE_ID_JOYPAD_LEFT_TRIGGER, + XDK360_DEVICE_ID_LSTICK_THUMB, + XDK360_DEVICE_ID_JOYPAD_RB, + XDK360_DEVICE_ID_JOYPAD_RIGHT_TRIGGER, + XDK360_DEVICE_ID_RSTICK_THUMB, + XDK360_DEVICE_ID_LSTICK_LEFT, + XDK360_DEVICE_ID_LSTICK_RIGHT, + XDK360_DEVICE_ID_LSTICK_UP, + XDK360_DEVICE_ID_LSTICK_DOWN, + XDK360_DEVICE_ID_LSTICK_LEFT_DPAD, + XDK360_DEVICE_ID_LSTICK_RIGHT_DPAD, + XDK360_DEVICE_ID_LSTICK_UP_DPAD, + XDK360_DEVICE_ID_LSTICK_DOWN_DPAD, + XDK360_DEVICE_ID_RSTICK_LEFT, + XDK360_DEVICE_ID_RSTICK_RIGHT, + XDK360_DEVICE_ID_RSTICK_UP, + XDK360_DEVICE_ID_RSTICK_DOWN, + XDK360_DEVICE_ID_RSTICK_LEFT_DPAD, + XDK360_DEVICE_ID_RSTICK_RIGHT_DPAD, + XDK360_DEVICE_ID_RSTICK_UP_DPAD, + XDK360_DEVICE_ID_RSTICK_DOWN_DPAD, + + SSNES_LAST_PLATFORM_KEY +}; #endif extern uint64_t ssnes_default_keybind_lut[SSNES_FIRST_META_KEY]; diff --git a/msvc-360/SSNES-360/SSNES-360.vcxproj b/msvc-360/SSNES-360/SSNES-360.vcxproj index 6f459668b2..4a859ffc5b 100644 --- a/msvc-360/SSNES-360/SSNES-360.vcxproj +++ b/msvc-360/SSNES-360/SSNES-360.vcxproj @@ -376,6 +376,7 @@ + diff --git a/msvc-360/SSNES-360/SSNES-360.vcxproj.filters b/msvc-360/SSNES-360/SSNES-360.vcxproj.filters index 949ca58b12..2b85e2a8e9 100644 --- a/msvc-360/SSNES-360/SSNES-360.vcxproj.filters +++ b/msvc-360/SSNES-360/SSNES-360.vcxproj.filters @@ -36,6 +36,9 @@ {60603fec-c1c0-4562-8573-b1dc3af0ee40} + + {b19dc1de-69d4-4501-87ef-b8ee4a7795c5} + @@ -143,6 +146,9 @@ Source Files\console\szlib + + Source Files\input +