Take out messy Dpad emulation code - this will require an entire

rewrite where we come up with a solution that works the same across
console/PC/mobile
This commit is contained in:
twinaphex 2013-10-05 20:55:37 +00:00
parent 3d386286e7
commit abb829283b
18 changed files with 35 additions and 503 deletions

View File

@ -43,6 +43,7 @@ static int state_device_ids[MAX_PADS];
static uint64_t state[MAX_PADS];
static uint64_t keycode_lut[LAST_KEYCODE];
analog_t analog_state[MAX_PADS];
static unsigned dpad_emulation[MAX_PLAYERS];
struct input_pointer
{
@ -313,7 +314,7 @@ static void *android_input_init(void)
g_settings.input.binds[i][RETRO_DEVICE_ID_JOYPAD_L3].joykey = (1ULL << RETRO_DEVICE_ID_JOYPAD_L3);
g_settings.input.binds[i][RETRO_DEVICE_ID_JOYPAD_R3].joykey = (1ULL << RETRO_DEVICE_ID_JOYPAD_R3);
g_settings.input.dpad_emulation[i] = ANALOG_DPAD_LSTICK;
dpad_emulation[i] = ANALOG_DPAD_LSTICK;
}
for (i = 0; i < MAX_PLAYERS; i++)
@ -356,7 +357,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
* one for each of the 8 pads */
unsigned shift = 8 + (port * 8);
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
dpad_emulation[port] = ANALOG_DPAD_LSTICK;
// NOTE - we have to add '1' to the bit mask because
// RETRO_DEVICE_ID_JOYPAD_B is 0
@ -370,7 +371,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
strlcpy(g_settings.input.device_names[port], "Logitech Rumblepad 2",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
keycode_lut[AKEYCODE_BUTTON_2] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift);
keycode_lut[AKEYCODE_BUTTON_1] |= ((RETRO_DEVICE_ID_JOYPAD_Y+1) << shift);
keycode_lut[AKEYCODE_BUTTON_9] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift);
@ -423,7 +424,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_GAMEMID:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
strlcpy(g_settings.input.device_names[port], "GameMID",
sizeof(g_settings.input.device_names[port]));
@ -450,7 +451,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_ICONTROLPAD_HID_JOYSTICK:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
strlcpy(g_settings.input.device_names[port], "iControlPad HID Joystick profile",
sizeof(g_settings.input.device_names[port]));
@ -469,7 +470,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_ICONTROLPAD_BLUEZ_IME:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
strlcpy(g_settings.input.device_names[port], "iControlPad SPP profile (using Bluez IME)",
sizeof(g_settings.input.device_names[port]));
@ -537,7 +538,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_TOMMO_NEOGEOX_ARCADE:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
strlcpy(g_settings.input.device_names[port], "TOMMO Neogeo X Arcade",
sizeof(g_settings.input.device_names[port]));
@ -595,7 +596,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
strlcpy(g_settings.input.device_names[port], "iDroid x360",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
keycode_lut[AKEYCODE_DPAD_LEFT] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift);
@ -721,7 +722,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
strlcpy(g_settings.input.device_names[port], "Xbox",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
keycode_lut[AKEYCODE_BUTTON_MODE] |= ((RARCH_MENU_TOGGLE + 1) << shift);
keycode_lut[AKEYCODE_BACK] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift);
keycode_lut[AKEYCODE_BUTTON_SELECT] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift);
@ -740,7 +741,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
strlcpy(g_settings.input.device_names[port], "WiseGroup PlayStation2",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
keycode_lut[AKEYCODE_BUTTON_13] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
keycode_lut[AKEYCODE_BUTTON_15] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
keycode_lut[AKEYCODE_BUTTON_16] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift);
@ -844,7 +845,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
strlcpy(g_settings.input.device_names[port], "PlayStation3",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
keycode_lut[AKEYCODE_DPAD_LEFT] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift);
@ -865,7 +866,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_MOGA:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
strlcpy(g_settings.input.device_names[port], "MOGA",
sizeof(g_settings.input.device_names[port]));
@ -921,7 +922,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_JXD_S7300B:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
strlcpy(g_settings.input.device_names[port], "JXD S7300B",
sizeof(g_settings.input.device_names[port]));
@ -1089,7 +1090,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_MAYFLASH_WII_CLASSIC:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
strlcpy(g_settings.input.device_names[port], "Mayflash Wii Classic",
sizeof(g_settings.input.device_names[port]));
@ -1111,7 +1112,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
break;
case DEVICE_SZMY_POWER_DUAL_BOX_WII:
g_settings.input.device[port] = device;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
strlcpy(g_settings.input.device_names[port], "SZMy Power Dual Box Wii",
sizeof(g_settings.input.device_names[port]));
@ -1190,7 +1191,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
strlcpy(g_settings.input.device_names[port], "OUYA",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
keycode_lut[AKEYCODE_DPAD_LEFT] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift);
@ -1229,7 +1230,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
g_settings.input.device[port] = device;
strlcpy(g_settings.input.device_names[port], "Xperia Play",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
if ((zeus_second_id != -1 && (zeus_second_id == id)))
{
@ -1460,7 +1461,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
g_settings.input.device[port] = device;
strlcpy(g_settings.input.device_names[port], "NVIDIA Shield",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
keycode_lut[AKEYCODE_BUTTON_B] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift);
keycode_lut[AKEYCODE_BUTTON_A] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift);
keycode_lut[AKEYCODE_BUTTON_Y] |= ((RETRO_DEVICE_ID_JOYPAD_X+1) << shift);
@ -1475,7 +1476,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
g_settings.input.device[port] = device;
strlcpy(g_settings.input.device_names[port], "MUCH iReadGo i5",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
@ -1495,7 +1496,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
g_settings.input.device[port] = device;
strlcpy(g_settings.input.device_names[port], "Wikipad",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
dpad_emulation[port] = ANALOG_DPAD_DUALANALOG;
keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
@ -1518,7 +1519,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
g_settings.input.device[port] = device;
strlcpy(g_settings.input.device_names[port], "FC30 Gamepad",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
@ -1538,7 +1539,7 @@ static void android_input_set_keybinds(void *data, unsigned device,
g_settings.input.device[port] = device;
strlcpy(g_settings.input.device_names[port], "ccpCreations WiiUse IME",
sizeof(g_settings.input.device_names[port]));
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
dpad_emulation[port] = ANALOG_DPAD_NONE;
/* Player 1 */
keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
@ -1778,9 +1779,9 @@ static void android_input_poll(void *data)
if (source & ~(AINPUT_SOURCE_TOUCHSCREEN | AINPUT_SOURCE_MOUSE))
{
if (g_settings.input.dpad_emulation[state_id] != ANALOG_DPAD_NONE)
if (dpad_emulation[state_id] != ANALOG_DPAD_NONE)
engine_handle_dpad(event, motion_pointer, state_id, msg, sizeof(msg), source, debug_enable,
g_settings.input.dpad_emulation[state_id]);
dpad_emulation[state_id]);
}
else
{

View File

@ -276,7 +276,6 @@ static void apple_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].joykey = 23;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].joykey = 18;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].joykey = 27;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
break;
case DEVICE_SIXAXIS:
strlcpy(g_settings.input.device_names[port], "SixAxis/DualShock3",
@ -299,7 +298,6 @@ static void apple_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].joykey = 14;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].joykey = 15;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].joykey = 16;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
break;
}
}

View File

@ -716,7 +716,6 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = SCREEN_L3_GAME_BUTTON;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = SCREEN_R3_GAME_BUTTON;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = SCREEN_MENU3_GAME_BUTTON;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
controller->port = port;
port_device[port] = controller;
break;
@ -741,7 +740,6 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = KEYCODE_P & 0xFF;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
controller->port = port;
port_device[port] = controller;
break;
@ -767,7 +765,6 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = KEYCODE_TILDE;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
controller->port = port;
port_device[port] = controller;
break;
@ -792,7 +789,6 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = 0;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = 0;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = 0;
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
controller->port = port;
port_device[port] = controller;
break;
@ -818,7 +814,6 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = SCREEN_L3_GAME_BUTTON;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = SCREEN_R3_GAME_BUTTON;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = NO_BTN; //TODO: Find a good mappnig
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
controller->port = port;
port_device[port] = controller;
break;

View File

@ -448,14 +448,6 @@ static const bool input_autodetect_enable = true;
#define RETRO_DEF_JOYPAD_R2 (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)
#define RETRO_DEF_JOYPAD_L3 (1ULL << RETRO_DEVICE_ID_JOYPAD_L3)
#define RETRO_DEF_JOYPAD_R3 (1ULL << RETRO_DEVICE_ID_JOYPAD_R3)
#define RETRO_DEF_ANALOGL_DPAD_LEFT ((1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) | (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT))
#define RETRO_DEF_ANALOGL_DPAD_RIGHT ((1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) | (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT))
#define RETRO_DEF_ANALOGL_DPAD_UP ((1ULL << RETRO_DEVICE_ID_JOYPAD_UP) | (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP))
#define RETRO_DEF_ANALOGL_DPAD_DOWN ((1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) | (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN))
#define RETRO_DEF_ANALOGR_DPAD_LEFT ((1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) | (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT))
#define RETRO_DEF_ANALOGR_DPAD_RIGHT ((1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) | (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT))
#define RETRO_DEF_ANALOGR_DPAD_UP ((1ULL << RETRO_DEVICE_ID_JOYPAD_UP) | (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP))
#define RETRO_DEF_ANALOGR_DPAD_DOWN ((1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) | (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN))
#else
#define RETRO_DEF_JOYPAD_B NO_BTN
#define RETRO_DEF_JOYPAD_Y NO_BTN
@ -508,14 +500,6 @@ static const bool input_autodetect_enable = true;
#define RETRO_LBL_ANALOG_RIGHT_X_MINUS "Right Analog X -"
#define RETRO_LBL_ANALOG_RIGHT_Y_PLUS "Right Analog Y +"
#define RETRO_LBL_ANALOG_RIGHT_Y_MINUS "Right Analog Y -"
#define RETRO_LBL_ANALOG_LEFT_X_DPAD_L "Left Analog D-Pad Left"
#define RETRO_LBL_ANALOG_LEFT_X_DPAD_R "Left Analog D-Pad Right"
#define RETRO_LBL_ANALOG_LEFT_Y_DPAD_U "Left Analog D-Pad Up"
#define RETRO_LBL_ANALOG_LEFT_Y_DPAD_D "Left Analog D-Pad Down"
#define RETRO_LBL_ANALOG_RIGHT_X_DPAD_L "Right Analog D-Pad Left"
#define RETRO_LBL_ANALOG_RIGHT_X_DPAD_R "Right Analog D-Pad Right"
#define RETRO_LBL_ANALOG_RIGHT_Y_DPAD_U "Right Analog D-Pad Up"
#define RETRO_LBL_ANALOG_RIGHT_Y_DPAD_D "Right Analog D-Pad Down"
#define RETRO_LBL_FAST_FORWARD_KEY "Fast Forward"
#define RETRO_LBL_FAST_FORWARD_HOLD_KEY "Fast Forward Hold"
#define RETRO_LBL_LOAD_STATE_KEY "Load State"
@ -576,16 +560,6 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_ANALOG_RIGHT_X_MINUS, RETRO_LBL_ANALOG_RIGHT_X_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_PLUS, RETRO_LBL_ANALOG_RIGHT_Y_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_MINUS, RETRO_LBL_ANALOG_RIGHT_Y_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
#ifdef RARCH_CONSOLE
{ true, RARCH_ANALOG_LEFT_X_DPAD_LEFT, RETRO_LBL_ANALOG_LEFT_X_DPAD_L, RETROK_UNKNOWN, RETRO_DEF_ANALOGL_DPAD_LEFT, 0, AXIS_NONE },
{ true, RARCH_ANALOG_LEFT_X_DPAD_RIGHT,RETRO_LBL_ANALOG_LEFT_X_DPAD_R, RETROK_UNKNOWN, RETRO_DEF_ANALOGL_DPAD_RIGHT, 0, AXIS_NONE },
{ true, RARCH_ANALOG_LEFT_Y_DPAD_UP, RETRO_LBL_ANALOG_LEFT_Y_DPAD_U, RETROK_UNKNOWN, RETRO_DEF_ANALOGL_DPAD_UP, 0, AXIS_NONE },
{ true, RARCH_ANALOG_LEFT_Y_DPAD_DOWN, RETRO_LBL_ANALOG_LEFT_Y_DPAD_D, RETROK_UNKNOWN, RETRO_DEF_ANALOGL_DPAD_DOWN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_X_DPAD_LEFT,RETRO_LBL_ANALOG_RIGHT_X_DPAD_L, RETROK_UNKNOWN, RETRO_DEF_ANALOGR_DPAD_LEFT, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_X_DPAD_RIGHT,RETRO_LBL_ANALOG_RIGHT_X_DPAD_R,RETROK_UNKNOWN, RETRO_DEF_ANALOGR_DPAD_RIGHT, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_DPAD_UP, RETRO_LBL_ANALOG_RIGHT_Y_DPAD_U,RETROK_UNKNOWN, RETRO_DEF_ANALOGR_DPAD_UP, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_DPAD_DOWN, RETRO_LBL_ANALOG_RIGHT_Y_DPAD_D,RETROK_UNKNOWN, RETRO_DEF_ANALOGR_DPAD_DOWN, 0, AXIS_NONE },
#endif
{ true, RARCH_TURBO_ENABLE, RETRO_LBL_TURBO_ENABLE, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_FAST_FORWARD_KEY, RETRO_LBL_FAST_FORWARD_KEY, RETROK_SPACE, NO_BTN, 0, AXIS_NONE },
@ -651,16 +625,6 @@ static const struct retro_keybind retro_keybinds_rest[] = {
{ true, RARCH_ANALOG_RIGHT_X_MINUS, RETRO_LBL_ANALOG_RIGHT_X_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_PLUS, RETRO_LBL_ANALOG_RIGHT_Y_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_MINUS, RETRO_LBL_ANALOG_RIGHT_Y_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
#ifdef RARCH_CONSOLE
{ true, RARCH_ANALOG_LEFT_X_DPAD_LEFT, RETRO_LBL_ANALOG_LEFT_X_DPAD_L, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_LEFT_X_DPAD_RIGHT,RETRO_LBL_ANALOG_LEFT_X_DPAD_R, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_LEFT_Y_DPAD_UP, RETRO_LBL_ANALOG_LEFT_Y_DPAD_U, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_LEFT_Y_DPAD_DOWN, RETRO_LBL_ANALOG_LEFT_Y_DPAD_D, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_X_DPAD_LEFT,RETRO_LBL_ANALOG_RIGHT_X_DPAD_L, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_X_DPAD_RIGHT,RETRO_LBL_ANALOG_RIGHT_X_DPAD_R,RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_DPAD_UP, RETRO_LBL_ANALOG_RIGHT_Y_DPAD_U,RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ANALOG_RIGHT_Y_DPAD_DOWN, RETRO_LBL_ANALOG_RIGHT_Y_DPAD_D,RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
#endif
{ true, RARCH_TURBO_ENABLE, RETRO_LBL_TURBO_ENABLE, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE },
};

View File

@ -65,17 +65,6 @@ enum // RetroArch specific bind IDs.
RARCH_ANALOG_RIGHT_X_MINUS,
RARCH_ANALOG_RIGHT_Y_PLUS,
RARCH_ANALOG_RIGHT_Y_MINUS,
#ifdef RARCH_CONSOLE
// D-pad emulation
RARCH_ANALOG_LEFT_X_DPAD_LEFT,
RARCH_ANALOG_LEFT_X_DPAD_RIGHT,
RARCH_ANALOG_LEFT_Y_DPAD_UP,
RARCH_ANALOG_LEFT_Y_DPAD_DOWN,
RARCH_ANALOG_RIGHT_X_DPAD_LEFT,
RARCH_ANALOG_RIGHT_X_DPAD_RIGHT,
RARCH_ANALOG_RIGHT_Y_DPAD_UP,
RARCH_ANALOG_RIGHT_Y_DPAD_DOWN,
#endif
// Turbo
RARCH_TURBO_ENABLE,

View File

@ -583,16 +583,6 @@ static uint64_t rgui_input(void)
| (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT)
| (1ULL << RETRO_DEVICE_ID_JOYPAD_L)
| (1ULL << RETRO_DEVICE_ID_JOYPAD_R)
#if defined(HAVE_RMENU)
| (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP)
| (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN)
| (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT)
| (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT)
| (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP)
| (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN)
| (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT)
| (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT)
#endif
)) && !(input_state & (1ULL << RARCH_MENU_TOGGLE));
return input_state;

View File

@ -377,21 +377,6 @@ int menu_set_settings(unsigned setting, unsigned action)
unsigned keybind_action = (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS);
switch (g_settings.input.dpad_emulation[port])
{
case ANALOG_DPAD_LSTICK:
keybind_action |= (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
break;
case ANALOG_DPAD_RSTICK:
keybind_action |= (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
break;
case ANALOG_DPAD_NONE:
keybind_action |= (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
break;
default:
break;
}
driver.input->set_keybinds(driver.input_data, g_settings.input.device[port], port, 0,
keybind_action);
}
@ -465,40 +450,6 @@ int menu_set_settings(unsigned setting, unsigned action)
break;
}
case RGUI_SETTINGS_BIND_DPAD_EMULATION:
g_settings.input.dpad_emulation[port] += ANALOG_DPAD_LAST;
if (action == RGUI_ACTION_START)
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
else if (action == RGUI_ACTION_LEFT)
g_settings.input.dpad_emulation[port]--;
else if (action == RGUI_ACTION_RIGHT)
g_settings.input.dpad_emulation[port]++;
g_settings.input.dpad_emulation[port] %= ANALOG_DPAD_LAST;
if (driver.input->set_keybinds)
{
unsigned keybind_action = 0;
switch (g_settings.input.dpad_emulation[port])
{
case ANALOG_DPAD_LSTICK:
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
break;
case ANALOG_DPAD_RSTICK:
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
break;
case ANALOG_DPAD_NONE:
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
break;
default:
break;
}
if (keybind_action)
driver.input->set_keybinds(driver.input_data, g_settings.input.device[port], port, 0,
keybind_action);
}
break;
case RGUI_SETTINGS_CUSTOM_BIND_ALL:
if (action == RGUI_ACTION_OK)
{

View File

@ -648,21 +648,7 @@ static void render_text(rgui_handle_t *rgui)
break;
}
case RGUI_SETTINGS_BIND_DPAD_EMULATION:
switch (g_settings.input.dpad_emulation[port])
{
case ANALOG_DPAD_NONE:
strlcpy(type_str, "None", sizeof(type_str));
break;
case ANALOG_DPAD_LSTICK:
strlcpy(type_str, "Left Stick", sizeof(type_str));
break;
case ANALOG_DPAD_DUALANALOG:
strlcpy(type_str, "Dual Analog", sizeof(type_str));
break;
case ANALOG_DPAD_RSTICK:
strlcpy(type_str, "Right Stick", sizeof(type_str));
break;
}
strlcpy(type_str, "TODO", sizeof(type_str));
break;
case RGUI_SETTINGS_BIND_UP:
case RGUI_SETTINGS_BIND_DOWN:

View File

@ -1612,19 +1612,7 @@ static int select_setting(void *data, uint64_t action)
snprintf(setting_text, sizeof(setting_text), "%d", rgui->current_pad+1);
break;
case SETTING_DPAD_EMULATION:
strlcpy(text, "D-Pad Emulation", sizeof(text));
switch(g_settings.input.dpad_emulation[rgui->current_pad])
{
case ANALOG_DPAD_NONE:
strlcpy(setting_text, "None", sizeof(setting_text));
break;
case ANALOG_DPAD_LSTICK:
strlcpy(setting_text, "Left Stick", sizeof(setting_text));
break;
case ANALOG_DPAD_RSTICK:
strlcpy(setting_text, "Right Stick", sizeof(setting_text));
break;
}
strlcpy(text, "TODO", sizeof(text));
break;
case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_B:
case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_Y:

View File

@ -290,18 +290,6 @@ HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
static void set_dpad_emulation_label(unsigned port, char *str, size_t sizeof_str)
{
switch(g_settings.input.dpad_emulation[port])
{
case ANALOG_DPAD_NONE:
strlcpy(str, "D-Pad Emulation: None", sizeof_str);
break;
case ANALOG_DPAD_LSTICK:
strlcpy(str, "D-Pad Emulation: Left Stick", sizeof_str);
break;
case ANALOG_DPAD_RSTICK:
strlcpy(str, "D-Pad Emulation: Right Stick", sizeof_str);
break;
}
}
static void init_menulist(unsigned menu_id)
@ -391,10 +379,11 @@ static void init_menulist(unsigned menu_id)
XuiListSetText(m_menulist, i, strw_buffer);
}
set_dpad_emulation_label(rgui->current_pad, buttons[0], sizeof(buttons[0]));
mbstowcs(strw_buffer, buttons[0], sizeof(strw_buffer) / sizeof(wchar_t));
//set_dpad_emulation_label(rgui->current_pad, buttons[0], sizeof(buttons[0]));
//mbstowcs(strw_buffer, buttons[0], sizeof(strw_buffer) / sizeof(wchar_t));
XuiListInsertItems(m_menulist, keybind_end, 1);
XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer);
//XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer);
XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, L"Stub");
XuiListInsertItems(m_menulist, keybind_end + 1, 1);
XuiListSetText(m_menulist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default");
@ -625,7 +614,6 @@ HRESULT CRetroArchControls::OnControlNavigate(
switch(current_index)
{
case SETTING_CONTROLS_DPAD_EMULATION:
menu_set_settings(RGUI_SETTINGS_BIND_DPAD_EMULATION, action);
break;
case SETTING_CONTROLS_DEFAULT_ALL:
break;
@ -670,10 +658,11 @@ HRESULT CRetroArchControls::OnControlNavigate(
break;
}
set_dpad_emulation_label(rgui->current_pad, button, sizeof(button));
//set_dpad_emulation_label(rgui->current_pad, button, sizeof(button));
mbstowcs(strw_buffer, button, sizeof(strw_buffer) / sizeof(wchar_t));
XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer);
//mbstowcs(strw_buffer, button, sizeof(strw_buffer) / sizeof(wchar_t));
//XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer);
XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, L"Stub");
XuiListSetText(m_menulist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default");
return 0;
@ -1403,37 +1392,6 @@ static void rgui_free(void *data)
static void ingame_menu_resize (void)
{
XINPUT_STATE state;
XInputGetState(0, &state);
if(state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT || state.Gamepad.sThumbLX < -DEADZONE)
g_extern.console.screen.viewports.custom_vp.x -= 1;
else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT || state.Gamepad.sThumbLX > DEADZONE)
g_extern.console.screen.viewports.custom_vp.x += 1;
if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP || state.Gamepad.sThumbLY > DEADZONE)
g_extern.console.screen.viewports.custom_vp.y += 1;
else if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN || state.Gamepad.sThumbLY < -DEADZONE)
g_extern.console.screen.viewports.custom_vp.y -= 1;
if (state.Gamepad.sThumbRX < -DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB)
g_extern.console.screen.viewports.custom_vp.width -= 1;
else if (state.Gamepad.sThumbRX > DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB)
g_extern.console.screen.viewports.custom_vp.width += 1;
if (state.Gamepad.sThumbRY > DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER)
g_extern.console.screen.viewports.custom_vp.height += 1;
else if (state.Gamepad.sThumbRY < -DEADZONE || state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER)
g_extern.console.screen.viewports.custom_vp.height -= 1;
if (state.Gamepad.wButtons & XINPUT_GAMEPAD_Y)
{
g_extern.console.screen.viewports.custom_vp.x = 0;
g_extern.console.screen.viewports.custom_vp.y = 0;
g_extern.console.screen.viewports.custom_vp.width = 1280; //FIXME: hardcoded
g_extern.console.screen.viewports.custom_vp.height = 720; //FIXME: hardcoded
}
}
static int rgui_iterate(void *data, unsigned action)

View File

@ -233,7 +233,6 @@ struct settings
int joypad_map[MAX_PLAYERS];
unsigned device[MAX_PLAYERS];
char device_names[MAX_PLAYERS][64];
unsigned dpad_emulation[MAX_PLAYERS];
bool debug_enable;
bool autodetect_enable;
#ifdef ANDROID

View File

@ -322,114 +322,8 @@ static void gx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][i].id = i;
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
}
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK))
{
switch (device)
{
#ifdef HW_RVL
case DEVICE_WIIMOTE:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
break;
case DEVICE_NUNCHUK:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_UP_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_DOWN_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_LEFT_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_RIGHT_DPAD].joykey;
break;
case DEVICE_CLASSIC:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_UP_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_DOWN_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_LEFT_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_RIGHT_DPAD].joykey;
break;
#endif
case DEVICE_GAMECUBE:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_UP_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_DOWN_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_LEFT_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_RIGHT_DPAD].joykey;
break;
default:
break;
}
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK))
{
switch (device)
{
#ifdef HW_RVL
case DEVICE_WIIMOTE:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
break;
case DEVICE_NUNCHUK:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_UP_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_DOWN_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_LEFT_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_RIGHT_DPAD].joykey;
break;
case DEVICE_CLASSIC:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_UP_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_DOWN_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_LEFT_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_RIGHT_DPAD].joykey;
break;
#endif
case DEVICE_GAMECUBE:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_UP_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_DOWN_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_LEFT_DPAD].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_RIGHT_DPAD].joykey;
break;
default:
break;
}
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE))
{
switch (device)
{
#ifdef HW_RVL
case DEVICE_WIIMOTE:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
break;
case DEVICE_NUNCHUK:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
break;
case DEVICE_CLASSIC:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_RIGHT].joykey;
break;
#endif
case DEVICE_GAMECUBE:
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_RIGHT].joykey;
break;
default:
break;
}
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_GET_BIND_LABEL))
{
struct platform_bind *ret = (struct platform_bind*)data;

View File

@ -710,18 +710,6 @@ const struct input_bind_map input_config_bind_map[RARCH_BIND_LIST_END_NULL] = {
DECLARE_BIND(r_y_plus, RARCH_ANALOG_RIGHT_Y_PLUS, "Right analog Y+ (down)"),
DECLARE_BIND(r_y_minus, RARCH_ANALOG_RIGHT_Y_MINUS, "Right analog Y- (up)"),
// FIXME: Unsure what to do here.
// The D-pad emulation concept really needs a rethink ...
#ifdef RARCH_CONSOLE
DECLARE_BIND(dpad_l_x_l, RARCH_ANALOG_LEFT_X_DPAD_LEFT, "Left analog D-pad left"),
DECLARE_BIND(dpad_l_x_r, RARCH_ANALOG_LEFT_X_DPAD_RIGHT, "Left analog D-pad right"),
DECLARE_BIND(dpad_l_y_u, RARCH_ANALOG_LEFT_Y_DPAD_UP, "Left analog D-pad up"),
DECLARE_BIND(dpad_l_y_d, RARCH_ANALOG_LEFT_Y_DPAD_DOWN, "Left analog D-pad down"),
DECLARE_BIND(dpad_r_x_l, RARCH_ANALOG_RIGHT_X_DPAD_LEFT, "Right analog D-pad left"),
DECLARE_BIND(dpad_r_x_r, RARCH_ANALOG_RIGHT_X_DPAD_RIGHT, "Right analog D-pad right"),
DECLARE_BIND(dpad_r_y_u, RARCH_ANALOG_RIGHT_Y_DPAD_UP, "Right analog D-pad up"),
DECLARE_BIND(dpad_r_y_d, RARCH_ANALOG_RIGHT_Y_DPAD_DOWN, "Right analog D-pad down"),
#endif
DECLARE_BIND(turbo, RARCH_TURBO_ENABLE, "Turbo enable"),
DECLARE_META_BIND(1, toggle_fast_forward, RARCH_FAST_FORWARD_KEY, "Fast forward toggle"),

View File

@ -94,14 +94,6 @@ const struct platform_bind platform_keys[] = {
{ (1ULL << RARCH_ANALOG_RIGHT_X_MINUS), "RStick Right" },
{ (1ULL << RARCH_ANALOG_RIGHT_Y_PLUS), "RStick Up" },
{ (1ULL << RARCH_ANALOG_RIGHT_Y_MINUS), "RStick Down" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) | (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT), "LStick D-Pad Left" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) | (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT), "LStick D-Pad Right" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) | (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP), "LStick D-Pad Up" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) | (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN), "LStick D-Pad Down" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) | (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT), "RStick D-Pad Left" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) | (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT), "RStick D-Pad Right" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) | (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP), "RStick D-Pad Up" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) | (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN), "RStick D-Pad Down" },
};
static uint64_t state[MAX_PADS];
@ -123,7 +115,6 @@ static void ps3_input_poll(void *data)
if (state_tmp.len != 0)
{
uint64_t *state_cur = &state[i];
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != ANALOG_DPAD_NONE);
*state_cur = 0;
#ifdef __PSL1GHT__
*state_cur |= (state_tmp.BTN_LEFT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0;
@ -142,18 +133,6 @@ static void ps3_input_poll(void *data)
*state_cur |= (state_tmp.BTN_L1) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L) : 0;
*state_cur |= (state_tmp.BTN_R2) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_R2) : 0;
*state_cur |= (state_tmp.BTN_L2) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L2) : 0;
if (dpad_emulation)
{
*state_cur |= (state_tmp.ANA_L_H <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT) : 0;
*state_cur |= (state_tmp.ANA_L_H >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT) : 0;
*state_cur |= (state_tmp.ANA_L_V <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP) : 0;
*state_cur |= (state_tmp.ANA_L_V >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN) : 0;
*state_cur |= (state_tmp.ANA_R_H <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT) : 0;
*state_cur |= (state_tmp.ANA_R_H >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT) : 0;
*state_cur |= (state_tmp.ANA_R_V <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP) : 0;
*state_cur |= (state_tmp.ANA_R_V >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN) : 0;
}
#else
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_LEFT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_DOWN) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) : 0;
@ -171,24 +150,12 @@ static void ps3_input_poll(void *data)
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_L1) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_R2) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_R2) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_L2) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L2) : 0;
if (dpad_emulation)
{
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_LEFT_X] <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_LEFT_X] >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_LEFT_Y] <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_LEFT_Y] >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_X] <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_X] >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_Y] <= DEADZONE_LOW) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP) : 0;
*state_cur |= (state_tmp.button[CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_Y] >= DEADZONE_HIGH) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN) : 0;
}
#endif
}
}
uint64_t *state_p1 = &state[0];
uint64_t *lifecycle_state = &g_extern.lifecycle_state;
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != ANALOG_DPAD_NONE);
*lifecycle_state &= ~(
(1ULL << RARCH_FAST_FORWARD_HOLD_KEY) |
@ -200,22 +167,6 @@ static void ps3_input_poll(void *data)
(1ULL << RARCH_QUIT_KEY) |
(1ULL << RARCH_MENU_TOGGLE));
if (dpad_emulation)
{
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN)) && !(*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_FAST_FORWARD_HOLD_KEY);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_LOAD_STATE_KEY);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_SAVE_STATE_KEY);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_STATE_SLOT_PLUS);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_STATE_SLOT_MINUS);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP)) && !(*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_REWIND);
}
if ((*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_L3)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R3)))
*lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE);
@ -445,36 +396,8 @@ static void ps3_input_set_keybinds(void *data, unsigned device,
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
}
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE))
{
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK))
{
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_RIGHT].joykey;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK))
{
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_RSTICK;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_RIGHT].joykey;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_GET_BIND_LABEL))
{
struct platform_bind *ret = (struct platform_bind*)data;

View File

@ -58,19 +58,11 @@ const struct platform_bind platform_keys[] = {
{ PSP_GAMEPAD_LSTICK_RIGHT_MASK, "LStick Right" },
{ PSP_GAMEPAD_LSTICK_UP_MASK, "LStick Up" },
{ PSP_GAMEPAD_LSTICK_DOWN_MASK, "LStick Down" },
{ PSP_GAMEPAD_DPAD_LEFT | PSP_GAMEPAD_LSTICK_LEFT_MASK, "LStick D-Pad Left" },
{ PSP_GAMEPAD_DPAD_RIGHT | PSP_GAMEPAD_LSTICK_RIGHT_MASK, "LStick D-Pad Right" },
{ PSP_GAMEPAD_DPAD_UP | PSP_GAMEPAD_LSTICK_UP_MASK, "LStick D-Pad Up" },
{ PSP_GAMEPAD_DPAD_DOWN | PSP_GAMEPAD_LSTICK_DOWN_MASK, "LStick D-Pad Down" },
#ifdef SN_TARGET_PSP2
{ PSP_GAMEPAD_RSTICK_LEFT_MASK, "RStick Left" },
{ PSP_GAMEPAD_RSTICK_RIGHT_MASK, "RStick Right" },
{ PSP_GAMEPAD_RSTICK_UP_MASK, "RStick Up" },
{ PSP_GAMEPAD_RSTICK_DOWN_MASK, "RStick Down" },
{ PSP_GAMEPAD_DPAD_LEFT | PSP_GAMEPAD_RSTICK_LEFT_MASK, "RStick D-Pad Left" },
{ PSP_GAMEPAD_DPAD_RIGHT | PSP_GAMEPAD_RSTICK_RIGHT_MASK, "RStick D-Pad Right" },
{ PSP_GAMEPAD_DPAD_UP | PSP_GAMEPAD_RSTICK_UP_MASK, "RStick D-Pad Up" },
{ PSP_GAMEPAD_DPAD_DOWN | PSP_GAMEPAD_RSTICK_DOWN_MASK, "RStick D-Pad Down" },
#else
{ 0, "Unused" },
{ 0, "Unused" },
@ -158,7 +150,6 @@ static void psp_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
}
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
}
}

View File

@ -610,8 +610,6 @@ bool config_load_file(const char *path)
for (unsigned i = 0; i < MAX_PLAYERS; i++)
{
char cfg[64];
snprintf(cfg, sizeof(cfg), "input_dpad_emulation_p%u", i + 1);
CONFIG_GET_INT(input.dpad_emulation[i], cfg);
snprintf(cfg, sizeof(cfg), "input_device_p%u", i + 1);
CONFIG_GET_INT(input.device[i], cfg);
}
@ -1153,8 +1151,6 @@ bool config_save_file(const char *path)
for (unsigned i = 0; i < MAX_PLAYERS; i++)
{
char cfg[64];
snprintf(cfg, sizeof(cfg), "input_dpad_emulation_p%u", i + 1);
config_set_int(conf, cfg, g_settings.input.dpad_emulation[i]);
snprintf(cfg, sizeof(cfg), "input_device_p%u", i + 1);
config_set_int(conf, cfg, g_settings.input.device[i]);
snprintf(cfg, sizeof(cfg), "input_player%u_joypad_index", i + 1);

View File

@ -70,14 +70,6 @@ const struct platform_bind platform_keys[] = {
{ (1ULL << RARCH_ANALOG_RIGHT_X_MINUS), "RStick Right" },
{ (1ULL << RARCH_ANALOG_RIGHT_Y_PLUS), "RStick Up" },
{ (1ULL << RARCH_ANALOG_RIGHT_Y_MINUS), "RStick Down" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) | (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT), "LStick D-Pad Left" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) | (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT), "LStick D-Pad Right" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) | (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP), "LStick D-Pad Up" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) | (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN), "LStick D-Pad Down" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) | (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT), "RStick D-Pad Left" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) | (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT), "RStick D-Pad Right" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) | (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP), "RStick D-Pad Up" },
{ (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) | (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN), "RStick D-Pad Down" },
};
static void xdk_input_poll(void *data)
@ -135,7 +127,6 @@ static void xdk_input_poll(void *data)
continue;
uint64_t *state_cur = &state[i];
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != ANALOG_DPAD_NONE);
*state_cur = 0;
*state_cur |= ((state_tmp.Gamepad.bAnalogButtons[XINPUT_GAMEPAD_B]) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_A) : 0);
@ -146,17 +137,6 @@ static void xdk_input_poll(void *data)
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) : 0);
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) : 0);
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) : 0);
if (dpad_emulation)
{
*state_cur |= ((state_tmp.Gamepad.sThumbLX < -DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT): 0);
*state_cur |= ((state_tmp.Gamepad.sThumbLX > DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbLY > DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbLY < -DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRX < -DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRX > DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRY > DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRY < -DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN) : 0);
}
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_START) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_START) : 0);
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_BACK) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_SELECT) : 0);
*state_cur |= ((state_tmp.Gamepad.bAnalogButtons[XINPUT_GAMEPAD_LEFT_TRIGGER]) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L) : 0);
@ -174,7 +154,6 @@ static void xdk_input_poll(void *data)
pads_connected += (XInputGetState(i, &state_tmp) == ERROR_DEVICE_NOT_CONNECTED) ? 0 : 1;
uint64_t *state_cur = &state[i];
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != ANALOG_DPAD_NONE);
*state_cur = 0;
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_B) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_A) : 0);
@ -186,17 +165,6 @@ static void xdk_input_poll(void *data)
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) : 0);
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) : 0);
if (dpad_emulation)
{
*state_cur |= ((state_tmp.Gamepad.sThumbLX < -DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_LEFT) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbLX > DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_X_DPAD_RIGHT) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbLY > DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_UP) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbLY < -DEADZONE) ? (1ULL << RARCH_ANALOG_LEFT_Y_DPAD_DOWN) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRX < -DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRX > DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRY > DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP) : 0);
*state_cur |= ((state_tmp.Gamepad.sThumbRY < -DEADZONE) ? (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN) : 0);
}
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_START) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_START) : 0);
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_BACK) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_SELECT) : 0);
*state_cur |= ((state_tmp.Gamepad.bLeftTrigger > 128) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L) : 0);
@ -210,7 +178,6 @@ static void xdk_input_poll(void *data)
uint64_t *state_p1 = &state[0];
uint64_t *lifecycle_state = &g_extern.lifecycle_state;
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != ANALOG_DPAD_NONE);
*lifecycle_state &= ~(
(1ULL << RARCH_FAST_FORWARD_HOLD_KEY) |
@ -222,22 +189,6 @@ static void xdk_input_poll(void *data)
(1ULL << RARCH_QUIT_KEY) |
(1ULL << RARCH_MENU_TOGGLE));
if (dpad_emulation)
{
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN)) && !(*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_FAST_FORWARD_HOLD_KEY);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_LOAD_STATE_KEY);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_DOWN)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_SAVE_STATE_KEY);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_RIGHT)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_STATE_SLOT_PLUS);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_X_DPAD_LEFT)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_STATE_SLOT_MINUS);
if ((*state_p1 & (1ULL << RARCH_ANALOG_RIGHT_Y_DPAD_UP)) && !(*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2)))
*lifecycle_state |= (1ULL << RARCH_REWIND);
}
if((*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_L3)) && (*state_p1 & (1ULL << RETRO_DEVICE_ID_JOYPAD_R3)))
*lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE);
}
@ -318,35 +269,6 @@ static void xdk_input_set_keybinds(void *data, unsigned device,
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
}
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE))
{
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK))
{
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_RIGHT].joykey;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK))
{
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_RSTICK;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_UP].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_DOWN].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_LEFT].joykey;
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_RIGHT].joykey;
}
if (keybind_action & (1ULL << KEYBINDS_ACTION_GET_BIND_LABEL))

View File

@ -96,7 +96,6 @@ static void xenon360_input_set_keybinds(void *data, unsigned device,
g_settings.input.binds[port][i].id = i;
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
}
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
}
}