Fixed joypad index lookup.
This commit is contained in:
parent
3fd630e062
commit
947d2a3514
|
@ -150,19 +150,22 @@ static void *sdl_input_init(void)
|
||||||
if (g_settings.input.joypad_map[i] < 0)
|
if (g_settings.input.joypad_map[i] < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (sdl->num_joysticks > (unsigned)g_settings.input.joypad_map[i])
|
unsigned port = g_settings.input.joypad_map[i];
|
||||||
{
|
|
||||||
sdl->joysticks[i] = SDL_JoystickOpen(g_settings.input.joypad_map[i]);
|
if (sdl->num_joysticks <= port)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
sdl->joysticks[i] = SDL_JoystickOpen(port);
|
||||||
if (!sdl->joysticks[i])
|
if (!sdl->joysticks[i])
|
||||||
{
|
{
|
||||||
SSNES_ERR("Couldn't open SDL joystick #%u on SNES port %u\n", g_settings.input.joypad_map[i], i + 1);
|
SSNES_ERR("Couldn't open SDL joystick #%u on SNES port %u\n", port, i + 1);
|
||||||
free(sdl);
|
free(sdl);
|
||||||
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
|
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
SSNES_LOG("Opened Joystick: %s #%u on port %u\n",
|
SSNES_LOG("Opened Joystick: %s (#%u) on port %u\n",
|
||||||
SDL_JoystickName(g_settings.input.joypad_map[i]), g_settings.input.joypad_map[i], i + 1);
|
SDL_JoystickName(port), port, i + 1);
|
||||||
|
|
||||||
sdl->num_axes[i] = SDL_JoystickNumAxes(sdl->joysticks[i]);
|
sdl->num_axes[i] = SDL_JoystickNumAxes(sdl->joysticks[i]);
|
||||||
sdl->num_buttons[i] = SDL_JoystickNumButtons(sdl->joysticks[i]);
|
sdl->num_buttons[i] = SDL_JoystickNumButtons(sdl->joysticks[i]);
|
||||||
|
@ -170,7 +173,6 @@ static void *sdl_input_init(void)
|
||||||
SSNES_LOG("Joypad has: %u axes, %u buttons, %u hats.\n",
|
SSNES_LOG("Joypad has: %u axes, %u buttons, %u hats.\n",
|
||||||
sdl->num_axes[i], sdl->num_buttons[i], sdl->num_hats[i]);
|
sdl->num_axes[i], sdl->num_buttons[i], sdl->num_hats[i]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sdl->use_keyboard = true;
|
sdl->use_keyboard = true;
|
||||||
|
|
|
@ -418,7 +418,7 @@ bool config_load_file(const char *path)
|
||||||
for (unsigned i = 0; i < MAX_PLAYERS; i++)
|
for (unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
snprintf(buf, sizeof(buf), "input_player%u_joypad_index", i);
|
snprintf(buf, sizeof(buf), "input_player%u_joypad_index", i + 1);
|
||||||
CONFIG_GET_INT(input.joypad_map[i], buf);
|
CONFIG_GET_INT(input.joypad_map[i], buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue