Bump to 8 players max. Futureproofing a bit.
This commit is contained in:
parent
18c259e19a
commit
0cb2436a59
|
@ -67,7 +67,7 @@
|
||||||
#include "360/msvc_compat.h"
|
#include "360/msvc_compat.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MAX_PLAYERS 7
|
#define MAX_PLAYERS 8
|
||||||
|
|
||||||
enum ssnes_shader_type
|
enum ssnes_shader_type
|
||||||
{
|
{
|
||||||
|
|
|
@ -190,6 +190,7 @@ static bool video_ext_frame(void *data, const void *frame, unsigned width, unsig
|
||||||
|
|
||||||
static void *setup_input(ext_t *ext, const ssnes_input_driver_t *driver)
|
static void *setup_input(ext_t *ext, const ssnes_input_driver_t *driver)
|
||||||
{
|
{
|
||||||
|
// TODO: Change external API to allow more players. Do be done in next major ABI break.
|
||||||
int joypad_index[5];
|
int joypad_index[5];
|
||||||
for (unsigned i = 0; i < 5; i++)
|
for (unsigned i = 0; i < 5; i++)
|
||||||
joypad_index[i] = g_settings.input.joypad_map[i] < 0 ? -1 : g_settings.input.joypad_map[i];
|
joypad_index[i] = g_settings.input.joypad_map[i] < 0 ? -1 : g_settings.input.joypad_map[i];
|
||||||
|
|
19
settings.c
19
settings.c
|
@ -212,11 +212,11 @@ void config_set_defaults(void)
|
||||||
ssnes_assert(sizeof(g_settings.input.binds[0]) >= sizeof(snes_keybinds_1));
|
ssnes_assert(sizeof(g_settings.input.binds[0]) >= sizeof(snes_keybinds_1));
|
||||||
ssnes_assert(sizeof(g_settings.input.binds[1]) >= sizeof(snes_keybinds_rest));
|
ssnes_assert(sizeof(g_settings.input.binds[1]) >= sizeof(snes_keybinds_rest));
|
||||||
memcpy(g_settings.input.binds[0], snes_keybinds_1, sizeof(snes_keybinds_1));
|
memcpy(g_settings.input.binds[0], snes_keybinds_1, sizeof(snes_keybinds_1));
|
||||||
for (unsigned i = 1; i < 5; i++)
|
for (unsigned i = 1; i < MAX_PLAYERS; i++)
|
||||||
memcpy(g_settings.input.binds[i], snes_keybinds_rest, sizeof(snes_keybinds_rest));
|
memcpy(g_settings.input.binds[i], snes_keybinds_rest, sizeof(snes_keybinds_rest));
|
||||||
|
|
||||||
// Verify that binds are in proper order.
|
// Verify that binds are in proper order.
|
||||||
for (unsigned i = 0; i < 5; i++)
|
for (unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||||
for (unsigned j = 0; j < SSNES_BIND_LIST_END; j++)
|
for (unsigned j = 0; j < SSNES_BIND_LIST_END; j++)
|
||||||
if (g_settings.input.binds[i][j].valid)
|
if (g_settings.input.binds[i][j].valid)
|
||||||
ssnes_assert(j == g_settings.input.binds[i][j].id);
|
ssnes_assert(j == g_settings.input.binds[i][j].id);
|
||||||
|
@ -418,11 +418,13 @@ bool config_load_file(const char *path)
|
||||||
|
|
||||||
CONFIG_GET_FLOAT(input.axis_threshold, "input_axis_threshold");
|
CONFIG_GET_FLOAT(input.axis_threshold, "input_axis_threshold");
|
||||||
CONFIG_GET_BOOL(input.netplay_client_swap_input, "netplay_client_swap_input");
|
CONFIG_GET_BOOL(input.netplay_client_swap_input, "netplay_client_swap_input");
|
||||||
CONFIG_GET_INT(input.joypad_map[0], "input_player1_joypad_index");
|
|
||||||
CONFIG_GET_INT(input.joypad_map[1], "input_player2_joypad_index");
|
for (unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||||
CONFIG_GET_INT(input.joypad_map[2], "input_player3_joypad_index");
|
{
|
||||||
CONFIG_GET_INT(input.joypad_map[3], "input_player4_joypad_index");
|
char buf[64];
|
||||||
CONFIG_GET_INT(input.joypad_map[4], "input_player5_joypad_index");
|
snprintf(buf, sizeof(buf), "input_player%u_joypad_index", i);
|
||||||
|
CONFIG_GET_INT(input.joypad_map[i], buf);
|
||||||
|
}
|
||||||
|
|
||||||
// Audio settings.
|
// Audio settings.
|
||||||
CONFIG_GET_BOOL(audio.enable, "audio_enable");
|
CONFIG_GET_BOOL(audio.enable, "audio_enable");
|
||||||
|
@ -563,6 +565,9 @@ static const struct bind_map bind_maps[MAX_PLAYERS][SSNES_BIND_LIST_END] = {
|
||||||
DECL_PLAYER(3),
|
DECL_PLAYER(3),
|
||||||
DECL_PLAYER(4),
|
DECL_PLAYER(4),
|
||||||
DECL_PLAYER(5),
|
DECL_PLAYER(5),
|
||||||
|
DECL_PLAYER(6),
|
||||||
|
DECL_PLAYER(7),
|
||||||
|
DECL_PLAYER(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
struct key_map
|
struct key_map
|
||||||
|
|
|
@ -168,6 +168,10 @@
|
||||||
# input_player3_joypad_index = 2
|
# input_player3_joypad_index = 2
|
||||||
# input_player4_joypad_index = 3
|
# input_player4_joypad_index = 3
|
||||||
# input_player5_joypad_index = 4
|
# input_player5_joypad_index = 4
|
||||||
|
# Player 6-8 is not directly expected by libsnes API, but we'll futureproof it.
|
||||||
|
# input_player6_joypad_index = 5
|
||||||
|
# input_player7_joypad_index = 6
|
||||||
|
# input_player8_joypad_index = 7
|
||||||
|
|
||||||
# Joypad buttons.
|
# Joypad buttons.
|
||||||
# Figure these out by using SSNES-Phoenix or ssnes-joyconfig.
|
# Figure these out by using SSNES-Phoenix or ssnes-joyconfig.
|
||||||
|
@ -194,7 +198,7 @@
|
||||||
# input_player1_up_axis =
|
# input_player1_up_axis =
|
||||||
# input_player1_down_axis =
|
# input_player1_down_axis =
|
||||||
|
|
||||||
# This goes all the way to player 5 (*_player2_*, *_player3_*, etc), but omitted for clarity.
|
# This goes all the way to player 8 (*_player2_*, *_player3_*, etc), but omitted for clarity.
|
||||||
|
|
||||||
# Toggles fullscreen.
|
# Toggles fullscreen.
|
||||||
# input_toggle_fullscreen = f
|
# input_toggle_fullscreen = f
|
||||||
|
|
Loading…
Reference in New Issue