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)