mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 19:20:35 +00:00
(360) Dehardcode control binds
This commit is contained in:
parent
1307648d08
commit
9969474326
44
360/main.c
44
360/main.c
@ -132,6 +132,50 @@ static void set_default_settings (void)
|
||||
g_settings.video.vsync = true;
|
||||
g_settings.video.smooth = true;
|
||||
|
||||
for(uint32_t x = 0; x < MAX_PLAYERS; x++)
|
||||
{
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_B].id = SNES_DEVICE_ID_JOYPAD_B;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_B].joykey = XINPUT_GAMEPAD_A;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_Y].id = SNES_DEVICE_ID_JOYPAD_Y;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_Y].joykey = XINPUT_GAMEPAD_X;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_SELECT].id = SNES_DEVICE_ID_JOYPAD_SELECT;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_SELECT].joykey = XINPUT_GAMEPAD_BACK;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_START].id = SNES_DEVICE_ID_JOYPAD_START;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_START].joykey = XINPUT_GAMEPAD_START;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_UP].id = SNES_DEVICE_ID_JOYPAD_UP;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_UP].joykey = XINPUT_GAMEPAD_DPAD_UP;
|
||||
//g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_UP].joyaxis = CTRL_LSTICK_UP_MASK;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_DOWN].id = SNES_DEVICE_ID_JOYPAD_DOWN;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = XINPUT_GAMEPAD_DPAD_DOWN;
|
||||
//g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_DOWN].joyaxis = CTRL_LSTICK_DOWN_MASK;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_LEFT].id = SNES_DEVICE_ID_JOYPAD_LEFT;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = XINPUT_GAMEPAD_DPAD_LEFT;
|
||||
//g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_LEFT].joyaxis = CTRL_LSTICK_LEFT_MASK;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_RIGHT].id = SNES_DEVICE_ID_JOYPAD_RIGHT;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = XINPUT_GAMEPAD_DPAD_RIGHT;
|
||||
//g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_RIGHT].joyaxis = CTRL_LSTICK_RIGHT_MASK;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_A].id = SNES_DEVICE_ID_JOYPAD_A;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_A].joykey = XINPUT_GAMEPAD_B;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_X].id = SNES_DEVICE_ID_JOYPAD_X;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_X].joykey = XINPUT_GAMEPAD_Y;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_L].id = SNES_DEVICE_ID_JOYPAD_L;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_L].joykey = XINPUT_GAMEPAD_LEFT_SHOULDER;
|
||||
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_R].id = SNES_DEVICE_ID_JOYPAD_R;
|
||||
g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_R].joykey = XINPUT_GAMEPAD_RIGHT_SHOULDER;
|
||||
}
|
||||
|
||||
|
||||
//g_console
|
||||
g_console.block_config_read = true;
|
||||
g_console.throttle_enable = true;
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "shared.h"
|
||||
|
||||
static XINPUT_STATE state[4];
|
||||
static unsigned pads_connected;
|
||||
|
||||
#define DEADZONE (16000)
|
||||
|
||||
@ -33,8 +34,13 @@ static void xdk360_input_poll(void *data)
|
||||
{
|
||||
(void)data;
|
||||
|
||||
pads_connected = 0;
|
||||
|
||||
for (unsigned i = 0; i < 4; i++)
|
||||
XInputGetState(i, &state[i]);
|
||||
{
|
||||
unsigned long retval = XInputGetState(i, &state[i]);
|
||||
pads_connected += (retval == ERROR_DEVICE_NOT_CONNECTED) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
static int16_t xdk360_input_state(void *data, const struct snes_keybind **binds,
|
||||
@ -42,61 +48,27 @@ static int16_t xdk360_input_state(void *data, const struct snes_keybind **binds,
|
||||
unsigned index, unsigned id)
|
||||
{
|
||||
(void)data;
|
||||
(void)binds;
|
||||
unsigned player;
|
||||
uint64_t button;
|
||||
|
||||
player = 0;
|
||||
|
||||
if (device != SNES_DEVICE_JOYPAD)
|
||||
return 0;
|
||||
|
||||
unsigned player = 0;
|
||||
if (port == SNES_PORT_2 && device == SNES_DEVICE_MULTITAP)
|
||||
player = index + 1;
|
||||
else if (port == SNES_PORT_2)
|
||||
player = 1;
|
||||
|
||||
// Hardcoded binds.
|
||||
uint64_t button;
|
||||
switch (id)
|
||||
if (port == SNES_PORT_2)
|
||||
{
|
||||
case SNES_DEVICE_ID_JOYPAD_A:
|
||||
button = XINPUT_GAMEPAD_B;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_B:
|
||||
button = XINPUT_GAMEPAD_A;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_X:
|
||||
button = XINPUT_GAMEPAD_Y;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_Y:
|
||||
button = XINPUT_GAMEPAD_X;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_LEFT:
|
||||
button = XINPUT_GAMEPAD_DPAD_LEFT;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_RIGHT:
|
||||
button = XINPUT_GAMEPAD_DPAD_RIGHT;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_UP:
|
||||
button = XINPUT_GAMEPAD_DPAD_UP;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_DOWN:
|
||||
button = XINPUT_GAMEPAD_DPAD_DOWN;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_START:
|
||||
button = XINPUT_GAMEPAD_START;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_SELECT:
|
||||
button = XINPUT_GAMEPAD_BACK;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_L:
|
||||
button = XINPUT_GAMEPAD_LEFT_SHOULDER;
|
||||
break;
|
||||
case SNES_DEVICE_ID_JOYPAD_R:
|
||||
button = XINPUT_GAMEPAD_RIGHT_SHOULDER;
|
||||
break;
|
||||
default:
|
||||
button = 0;
|
||||
if(pads_connected < 2)
|
||||
return 0;
|
||||
|
||||
player = 1;
|
||||
|
||||
if (device == SNES_DEVICE_MULTITAP)
|
||||
player += index;
|
||||
}
|
||||
|
||||
button = binds[player][id].joykey;
|
||||
|
||||
return (state[player].Gamepad.wButtons & button) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user