diff --git a/griffin/griffin.c b/griffin/griffin.c index 14ceac4d33..8dfa7310fa 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -702,7 +702,9 @@ INPUT #include "../input/drivers_joypad/wiiu/pad_functions.c" #elif defined(_XBOX) #include "../input/drivers/xdk_xinput_input.c" +#ifdef _XBOX1 #include "../input/drivers_joypad/xdk_joypad.c" +#endif #elif defined(XENON) #include "../input/drivers/xenon360_input.c" #elif defined(ANDROID) diff --git a/input/drivers_joypad/xdk_joypad.c b/input/drivers_joypad/xdk_joypad.c index c784a4c565..f3eb766691 100644 --- a/input/drivers_joypad/xdk_joypad.c +++ b/input/drivers_joypad/xdk_joypad.c @@ -28,21 +28,17 @@ typedef struct } xinput_joypad_state; static xinput_joypad_state g_xinput_states[DEFAULT_MAX_PADS]; - -#ifdef _XBOX1 static HANDLE gamepads[DEFAULT_MAX_PADS]; -#endif - -static const char* const XBOX_CONTROLLER_NAMES[4] = -{ - "XInput Controller (User 1)", - "XInput Controller (User 2)", - "XInput Controller (User 3)", - "XInput Controller (User 4)" -}; static const char *xdk_joypad_name(unsigned pad) { + static const char* const XBOX_CONTROLLER_NAMES[4] = + { + "XInput Controller (User 1)", + "XInput Controller (User 2)", + "XInput Controller (User 3)", + "XInput Controller (User 4)" + }; return XBOX_CONTROLLER_NAMES[pad]; } @@ -59,37 +55,10 @@ static void xdk_joypad_autodetect_add(unsigned autoconf_pad) static bool xdk_joypad_init(void *data) { -#ifdef _XBOX1 XInitDevices(0, NULL); -#else - unsigned autoconf_pad; - for (autoconf_pad = 0; autoconf_pad < MAX_USERS; autoconf_pad++) - xdk_joypad_autodetect_add(autoconf_pad); -#endif - - (void)data; - return true; } -#ifndef _XBOX1 -/* Buttons are provided by XInput as bits of a uint16. - * Map from rarch button index (0..10) to a mask to bitwise-& the buttons against. - * dpad is handled seperately. */ -static const uint16_t button_index_to_bitmap_code[] = { - XINPUT_GAMEPAD_A, - XINPUT_GAMEPAD_B, - XINPUT_GAMEPAD_X, - XINPUT_GAMEPAD_Y, - XINPUT_GAMEPAD_LEFT_SHOULDER, - XINPUT_GAMEPAD_RIGHT_SHOULDER, - XINPUT_GAMEPAD_START, - XINPUT_GAMEPAD_BACK, - XINPUT_GAMEPAD_LEFT_THUMB, - XINPUT_GAMEPAD_RIGHT_THUMB -}; -#endif - static int16_t xdk_joypad_button_state( XINPUT_GAMEPAD *pad, uint16_t btn_word, @@ -116,7 +85,6 @@ static int16_t xdk_joypad_button_state( } else { -#ifdef _XBOX1 switch (joykey) { case RETRO_DEVICE_ID_JOYPAD_A: @@ -146,10 +114,6 @@ static int16_t xdk_joypad_button_state( default: break; } -#else - if (joykey < 10) - return (btn_word & button_index_to_bitmap_code[joykey]); -#endif } return 0; } @@ -175,13 +139,13 @@ static int16_t xdk_joypad_axis_state(XINPUT_GAMEPAD *pad, if (AXIS_NEG_GET(joyaxis) <= 3) { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; + axis = AXIS_NEG_GET(joyaxis); + is_neg = true; } else if (AXIS_POS_GET(joyaxis) <= 5) { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; + axis = AXIS_POS_GET(joyaxis); + is_pos = true; } else return 0; @@ -200,16 +164,6 @@ static int16_t xdk_joypad_axis_state(XINPUT_GAMEPAD *pad, case 3: val = pad->sThumbRY; break; - case 4: -#ifdef _XBOX360 - val = pad->bLeftTrigger * 32767 / 255; -#endif - break; /* map 0..255 to 0..32767 */ - case 5: -#ifdef _XBOX360 - val = pad->bRightTrigger * 32767 / 255; -#endif - break; } if (is_neg && val > 0) @@ -271,7 +225,6 @@ static int16_t xdk_joypad_state( static void xdk_joypad_poll(void) { unsigned port; -#if defined(_XBOX1) DWORD dwInsertions, dwRemovals; #ifdef __cplusplus @@ -282,12 +235,10 @@ static void xdk_joypad_poll(void) XGetDeviceChanges(XDEVICE_TYPE_GAMEPAD, (PDWORD)&dwInsertions, (PDWORD)&dwRemovals); -#endif #endif for (port = 0; port < DEFAULT_MAX_PADS; port++) { -#if defined(_XBOX1) bool device_removed = false; bool device_inserted = false; @@ -335,17 +286,12 @@ static void xdk_joypad_poll(void) * the device handle will be NULL. */ if (XInputPoll(gamepads[port]) != ERROR_SUCCESS) continue; -#endif memset(&g_xinput_states[port], 0, sizeof(xinput_joypad_state)); g_xinput_states[port].connected = ! (XInputGetState( -#ifdef _XBOX1 gamepads[port] -#else - port -#endif , &g_xinput_states[port].xstate) == ERROR_DEVICE_NOT_CONNECTED); } } @@ -362,11 +308,9 @@ static void xdk_joypad_destroy(void) for (i = 0; i < DEFAULT_MAX_PADS; i++) { memset(&g_xinput_states[i], 0, sizeof(xinput_joypad_state)); -#if defined(_XBOX1) if (gamepads[i]) XInputClose(gamepads[i]); gamepads[i] = 0; -#endif } } diff --git a/input/drivers_joypad/xinput_joypad.c b/input/drivers_joypad/xinput_joypad.c index d2a338b3c7..600e69d8fd 100644 --- a/input/drivers_joypad/xinput_joypad.c +++ b/input/drivers_joypad/xinput_joypad.c @@ -101,8 +101,11 @@ static const uint16_t button_index_to_bitmap_code[] = { XINPUT_GAMEPAD_START, XINPUT_GAMEPAD_BACK, XINPUT_GAMEPAD_LEFT_THUMB, - XINPUT_GAMEPAD_RIGHT_THUMB, + XINPUT_GAMEPAD_RIGHT_THUMB +#ifndef _XBOX + , XINPUT_GAMEPAD_GUIDE +#endif }; static INLINE int pad_index_to_xuser_index(unsigned pad) diff --git a/input/drivers_joypad/xinput_joypad.h b/input/drivers_joypad/xinput_joypad.h index 72eb9f8f66..9fd0be5d5f 100644 --- a/input/drivers_joypad/xinput_joypad.h +++ b/input/drivers_joypad/xinput_joypad.h @@ -30,7 +30,7 @@ * Official and mingw xinput headers have different include guards. * Windows 10 API version doesn't have an include guard at all and just uses #pragma once instead */ -#if ((!_XINPUT_H_) && (!__WINE_XINPUT_H)) && !defined(__WINRT__) +#if ((!_XINPUT_H_) && (!__WINE_XINPUT_H)) && !defined(__WINRT__) && !defined(_XBOX) #define XINPUT_GAMEPAD_DPAD_UP 0x0001 #define XINPUT_GAMEPAD_DPAD_DOWN 0x0002 diff --git a/pkg/msvc/RetroArch-360/RetroArch-360.vcxproj b/pkg/msvc/RetroArch-360/RetroArch-360.vcxproj index 9380e72872..b8277ef9d9 100644 --- a/pkg/msvc/RetroArch-360/RetroArch-360.vcxproj +++ b/pkg/msvc/RetroArch-360/RetroArch-360.vcxproj @@ -113,7 +113,7 @@ true false MultiThreadedDebug - _DEBUG;_XBOX;HAVE_XINPUT2;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_NETWORKING;HAVE_NETWORKING;HAVE_SOCKET_LEGACY;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN + _DEBUG;_XBOX;HAVE_XINPUT;HAVE_XINPUT2;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_NETWORKING;HAVE_NETWORKING;HAVE_SOCKET_LEGACY;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN Callcap $(SolutionDir)\..\..\libretro-common\include\compat\zlib;$(SolutionDir)\..\..\libretro-common\include;$(SolutionDir)\..\..\deps;$(SolutionDir)\..\..\deps\stb;$(SolutionDir)\..\..\;%(AdditionalIncludeDirectories) @@ -152,7 +152,7 @@ AnalyzeOnly false MultiThreadedDebug - _DEBUG;_XBOX;%(PreprocessorDefinitions);HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN + _DEBUG;_XBOX;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN Callcap $(SolutionDir)\..\..\libretro-common\include\compat\zlib;$(SolutionDir)\..\..\libretro-common\include;$(SolutionDir)\..\..\deps;$(SolutionDir)\..\..\deps\stb;$(SolutionDir)\..\..\;%(AdditionalIncludeDirectories) @@ -192,7 +192,7 @@ Size false MultiThreaded - NDEBUG;_XBOX;PROFILE;%(PreprocessorDefinitions);HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN + NDEBUG;_XBOX;PROFILE;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN Callcap $(SolutionDir)\..\..\libretro-common\include\compat\zlib;$(SolutionDir)\..\..\libretro-common\include;$(SolutionDir)\..\..\deps;$(SolutionDir)\..\..\deps\stb;$(SolutionDir)\..\..\;%(AdditionalIncludeDirectories) @@ -237,7 +237,7 @@ Size false MultiThreaded - NDEBUG;_XBOX;PROFILE;FASTCAP;%(PreprocessorDefinitions);HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN + NDEBUG;_XBOX;PROFILE;FASTCAP;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN $(SolutionDir)\..\..\libretro-common\include\compat\zlib;$(SolutionDir)\..\..\libretro-common\include;$(SolutionDir)\..\..\deps;$(SolutionDir)\..\..\deps\stb;$(SolutionDir)\..\..\;%(AdditionalIncludeDirectories) @@ -279,7 +279,7 @@ false false MultiThreaded - NDEBUG;_XBOX;%(PreprocessorDefinitions);HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE=1;HAVE_NETWORKING;HAVE_SOCKET_LEGACY;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN + NDEBUG;_XBOX;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE=1;HAVE_NETWORKING;HAVE_SOCKET_LEGACY;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN $(SolutionDir)\..\..\libretro-common\include\compat\zlib;$(SolutionDir)\..\..\libretro-common\include;$(SolutionDir)\..\..\deps;$(SolutionDir)\..\..\deps\stb;$(SolutionDir)\..\..\;%(AdditionalIncludeDirectories) @@ -321,7 +321,7 @@ false false MultiThreaded - NDEBUG;_XBOX;LTCG;%(PreprocessorDefinitions);HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_NETWORKING;HAVE_SOCKET_LEGACY;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN + NDEBUG;_XBOX;LTCG;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;_CRT_SECURE_NO_WARNINGS;RARCH_CONSOLE;HAVE_MENU;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_NETWORKING;HAVE_SOCKET_LEGACY;HAVE_ZLIB;HAVE_RARCH_EXEC;D3DCOMPILE_USEVOIDS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_HLSL;HAVE_CC_RESAMPLER;HAVE_D3D9;HAVE_D3D;RARCH_INTERNAL;_XBOX360;HAVE_XAUDIO;HAVE_RPNG;HAVE_RJPEG;HAVE_THREADS;HAVE_FILTERS_BUILTIN $(SolutionDir)\..\..\libretro-common\include\compat\zlib;$(SolutionDir)\..\..\libretro-common\include;$(SolutionDir)\..\..\deps;$(SolutionDir)\..\..\deps\stb;$(SolutionDir)\..\..\;%(AdditionalIncludeDirectories) diff --git a/retroarch.c b/retroarch.c index 8836ec5592..d6633b4dee 100644 --- a/retroarch.c +++ b/retroarch.c @@ -807,7 +807,7 @@ static input_device_driver_t *joypad_drivers[] = { #ifdef WIIU &wiiu_joypad, #endif -#ifdef _XBOX +#ifdef _XBOX1 &xdk_joypad, #endif #if defined(ORBIS)