(RARCH_CONSOLE) Further Input rewrite for console ports

This commit is contained in:
Twinaphex 2012-07-25 21:02:01 +02:00
parent 4ed249fe18
commit 811abcf612
17 changed files with 219 additions and 149 deletions

View File

@ -197,6 +197,33 @@ static bool xinput_input_key_pressed(void *data, int key)
return retval;
}
static void xinput_set_default_keybind_lut(void)
{
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[XDK_DEVICE_ID_JOYPAD_A].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[XDK_DEVICE_ID_JOYPAD_X].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[XDK_DEVICE_ID_JOYPAD_BACK].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_START] = platform_keys[XDK_DEVICE_ID_JOYPAD_START].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_UP] = platform_keys[XDK_DEVICE_ID_JOYPAD_UP].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_DOWN] = platform_keys[XDK_DEVICE_ID_JOYPAD_DOWN].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_LEFT] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_RIGHT] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_A] = platform_keys[XDK_DEVICE_ID_JOYPAD_B].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_X] = platform_keys[XDK_DEVICE_ID_JOYPAD_Y].joykey;
#if defined(_XBOX1)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK_DEVICE_ID_JOYPAD_LB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK_DEVICE_ID_JOYPAD_RB].joykey;
#elif defined(_XBOX360)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[XDK_DEVICE_ID_JOYPAD_LB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[XDK_DEVICE_ID_JOYPAD_RB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey;
#endif
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L3] = platform_keys[XDK_DEVICE_ID_LSTICK_THUMB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[XDK_DEVICE_ID_RSTICK_THUMB].joykey;
}
const input_driver_t input_xinput =
{
xinput_input_init,
@ -204,5 +231,6 @@ const input_driver_t input_xinput =
xinput_input_state,
xinput_input_key_pressed,
xinput_input_free_input,
xinput_set_default_keybind_lut,
"xinput"
};

View File

@ -30,6 +30,44 @@ enum {
XINPUT_GAMEPAD_RIGHT_TRIGGER = 1 << 25
};
enum xdk_device_id
{
XDK_DEVICE_ID_JOYPAD_B = 0,
XDK_DEVICE_ID_JOYPAD_A,
XDK_DEVICE_ID_JOYPAD_Y,
XDK_DEVICE_ID_JOYPAD_X,
XDK_DEVICE_ID_JOYPAD_UP,
XDK_DEVICE_ID_JOYPAD_DOWN,
XDK_DEVICE_ID_JOYPAD_LEFT,
XDK_DEVICE_ID_JOYPAD_RIGHT,
XDK_DEVICE_ID_JOYPAD_BACK,
XDK_DEVICE_ID_JOYPAD_START,
XDK_DEVICE_ID_JOYPAD_LB,
XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER,
XDK_DEVICE_ID_LSTICK_THUMB,
XDK_DEVICE_ID_JOYPAD_RB,
XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER,
XDK_DEVICE_ID_RSTICK_THUMB,
XDK_DEVICE_ID_LSTICK_LEFT,
XDK_DEVICE_ID_LSTICK_RIGHT,
XDK_DEVICE_ID_LSTICK_UP,
XDK_DEVICE_ID_LSTICK_DOWN,
XDK_DEVICE_ID_LSTICK_LEFT_DPAD,
XDK_DEVICE_ID_LSTICK_RIGHT_DPAD,
XDK_DEVICE_ID_LSTICK_UP_DPAD,
XDK_DEVICE_ID_LSTICK_DOWN_DPAD,
XDK_DEVICE_ID_RSTICK_LEFT,
XDK_DEVICE_ID_RSTICK_RIGHT,
XDK_DEVICE_ID_RSTICK_UP,
XDK_DEVICE_ID_RSTICK_DOWN,
XDK_DEVICE_ID_RSTICK_LEFT_DPAD,
XDK_DEVICE_ID_RSTICK_RIGHT_DPAD,
XDK_DEVICE_ID_RSTICK_UP_DPAD,
XDK_DEVICE_ID_RSTICK_DOWN_DPAD,
RARCH_LAST_PLATFORM_KEY
};
#define DEADZONE (16000)
extern void xdk360_input_map_dpad_to_stick(uint32_t map_dpad_enum, uint32_t controller_id);

View File

@ -296,7 +296,7 @@ void rarch_settings_create_menu_item_label(char * str, unsigned setting, size_t
}
}
void rarch_settings_set_default (void)
void rarch_settings_set_default (const input_driver_t *input)
{
// g_settings
g_settings.rewind_enable = false;
@ -323,7 +323,7 @@ void rarch_settings_set_default (void)
g_settings.video.msg_pos_y = 0.90f;
g_settings.video.aspect_ratio = -1.0f;
rarch_input_set_controls_default();
rarch_input_set_controls_default(input);
// g_console
g_console.block_config_read = true;

View File

@ -105,7 +105,7 @@ enum
void rarch_settings_change(unsigned setting);
void rarch_settings_default(unsigned setting);
void rarch_settings_msg(unsigned setting, unsigned delay);
void rarch_settings_set_default (void);
void rarch_settings_set_default (const input_driver_t *input);
void rarch_settings_create_menu_item_label(char * str, unsigned setting, size_t size);
void rarch_settings_create_menu_item_label_w(wchar_t *strwbuf, unsigned setting, size_t size);

View File

@ -140,7 +140,7 @@ end:
dir_list_free(dir_list);
}
void rarch_configure_libretro(const char *path_prefix, const char * extension)
void rarch_configure_libretro(const input_driver_t *input, const char *path_prefix, const char * extension)
{
char full_path[1024];
snprintf(full_path, sizeof(full_path), "%sCORE%s", path_prefix, extension);
@ -148,7 +148,7 @@ void rarch_configure_libretro(const char *path_prefix, const char * extension)
bool find_libretro_file = rarch_configure_libretro_core(full_path, path_prefix, path_prefix,
default_paths.config_file, extension);
rarch_settings_set_default();
rarch_settings_set_default(input);
rarch_config_load(default_paths.config_file, path_prefix, extension, find_libretro_file);
init_libretro_sym();
}

View File

@ -18,6 +18,7 @@
#define LIBRETRO_MGMT_H__
#include "../boolean.h"
#include "../driver.h"
enum
{
@ -30,6 +31,6 @@ enum
void rarch_manage_libretro_set_first_file(char *first_file, size_t size_of_first_file, const char *libretro_path, const char * exe_ext);
bool rarch_configure_libretro_core(const char *full_path, const char *tmp_path,
const char *libretro_path, const char *config_path, const char *extension);
void rarch_configure_libretro(const char *path_prefix, const char * extension);
void rarch_configure_libretro(const input_driver_t *input, const char *path_prefix, const char * extension);
#endif

View File

@ -134,50 +134,10 @@ void rarch_input_set_default_keybinds(unsigned player)
g_settings.input.dpad_emulation[player] = DPAD_EMULATION_LSTICK;
}
void rarch_input_set_controls_default (void)
void rarch_input_set_controls_default (const input_driver_t *input)
{
#if defined(__CELLOS_LV2__)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[PS3_DEVICE_ID_JOYPAD_CROSS].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[PS3_DEVICE_ID_JOYPAD_SQUARE].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[PS3_DEVICE_ID_JOYPAD_SELECT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_START] = platform_keys[PS3_DEVICE_ID_JOYPAD_START].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_UP] = platform_keys[PS3_DEVICE_ID_JOYPAD_UP].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_DOWN] = platform_keys[PS3_DEVICE_ID_JOYPAD_DOWN].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_LEFT] = platform_keys[PS3_DEVICE_ID_JOYPAD_LEFT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_RIGHT] = platform_keys[PS3_DEVICE_ID_JOYPAD_RIGHT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_A] = platform_keys[PS3_DEVICE_ID_JOYPAD_CIRCLE].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_X] = platform_keys[PS3_DEVICE_ID_JOYPAD_TRIANGLE].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[PS3_DEVICE_ID_JOYPAD_L1].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[PS3_DEVICE_ID_JOYPAD_R1].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[PS3_DEVICE_ID_JOYPAD_R2].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[PS3_DEVICE_ID_JOYPAD_R3].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[PS3_DEVICE_ID_JOYPAD_L2].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L3] = platform_keys[PS3_DEVICE_ID_JOYPAD_L3].joykey;
#elif defined(_XBOX)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[XDK_DEVICE_ID_JOYPAD_A].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[XDK_DEVICE_ID_JOYPAD_X].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[XDK_DEVICE_ID_JOYPAD_BACK].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_START] = platform_keys[XDK_DEVICE_ID_JOYPAD_START].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_UP] = platform_keys[XDK_DEVICE_ID_JOYPAD_UP].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_DOWN] = platform_keys[XDK_DEVICE_ID_JOYPAD_DOWN].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_LEFT] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_RIGHT] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_A] = platform_keys[XDK_DEVICE_ID_JOYPAD_B].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_X] = platform_keys[XDK_DEVICE_ID_JOYPAD_Y].joykey;
#if defined(_XBOX1)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK_DEVICE_ID_JOYPAD_LB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK_DEVICE_ID_JOYPAD_RB].joykey;
#elif defined(_XBOX360)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[XDK_DEVICE_ID_JOYPAD_LB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[XDK_DEVICE_ID_JOYPAD_RB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey;
#endif
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L3] = platform_keys[XDK_DEVICE_ID_LSTICK_THUMB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[XDK_DEVICE_ID_RSTICK_THUMB].joykey;
#endif
input->set_default_keybind_lut();
for(uint32_t x = 0; x < MAX_PLAYERS; x++)
rarch_input_set_default_keybinds(x);
}

View File

@ -41,100 +41,6 @@ enum
DPAD_EMULATION_RSTICK
};
#ifdef _XBOX360
#include "../360/xinput_360_input.h"
#endif
#if defined(__CELLOS_LV2__)
#include "../ps3/ps3_input.h"
enum ps3_device_id
{
PS3_DEVICE_ID_JOYPAD_CIRCLE = 0,
PS3_DEVICE_ID_JOYPAD_CROSS,
PS3_DEVICE_ID_JOYPAD_TRIANGLE,
PS3_DEVICE_ID_JOYPAD_SQUARE,
PS3_DEVICE_ID_JOYPAD_UP,
PS3_DEVICE_ID_JOYPAD_DOWN,
PS3_DEVICE_ID_JOYPAD_LEFT,
PS3_DEVICE_ID_JOYPAD_RIGHT,
PS3_DEVICE_ID_JOYPAD_SELECT,
PS3_DEVICE_ID_JOYPAD_START,
PS3_DEVICE_ID_JOYPAD_L1,
PS3_DEVICE_ID_JOYPAD_L2,
PS3_DEVICE_ID_JOYPAD_L3,
PS3_DEVICE_ID_JOYPAD_R1,
PS3_DEVICE_ID_JOYPAD_R2,
PS3_DEVICE_ID_JOYPAD_R3,
PS3_DEVICE_ID_LSTICK_LEFT,
PS3_DEVICE_ID_LSTICK_RIGHT,
PS3_DEVICE_ID_LSTICK_UP,
PS3_DEVICE_ID_LSTICK_DOWN,
PS3_DEVICE_ID_LSTICK_LEFT_DPAD,
PS3_DEVICE_ID_LSTICK_RIGHT_DPAD,
PS3_DEVICE_ID_LSTICK_UP_DPAD,
PS3_DEVICE_ID_LSTICK_DOWN_DPAD,
PS3_DEVICE_ID_RSTICK_LEFT,
PS3_DEVICE_ID_RSTICK_RIGHT,
PS3_DEVICE_ID_RSTICK_UP,
PS3_DEVICE_ID_RSTICK_DOWN,
PS3_DEVICE_ID_RSTICK_LEFT_DPAD,
PS3_DEVICE_ID_RSTICK_RIGHT_DPAD,
PS3_DEVICE_ID_RSTICK_UP_DPAD,
PS3_DEVICE_ID_RSTICK_DOWN_DPAD,
RARCH_LAST_PLATFORM_KEY
};
#elif defined(_XBOX)
enum xdk_device_id
{
XDK_DEVICE_ID_JOYPAD_B = 0,
XDK_DEVICE_ID_JOYPAD_A,
XDK_DEVICE_ID_JOYPAD_Y,
XDK_DEVICE_ID_JOYPAD_X,
XDK_DEVICE_ID_JOYPAD_UP,
XDK_DEVICE_ID_JOYPAD_DOWN,
XDK_DEVICE_ID_JOYPAD_LEFT,
XDK_DEVICE_ID_JOYPAD_RIGHT,
XDK_DEVICE_ID_JOYPAD_BACK,
XDK_DEVICE_ID_JOYPAD_START,
XDK_DEVICE_ID_JOYPAD_LB,
XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER,
XDK_DEVICE_ID_LSTICK_THUMB,
XDK_DEVICE_ID_JOYPAD_RB,
XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER,
XDK_DEVICE_ID_RSTICK_THUMB,
XDK_DEVICE_ID_LSTICK_LEFT,
XDK_DEVICE_ID_LSTICK_RIGHT,
XDK_DEVICE_ID_LSTICK_UP,
XDK_DEVICE_ID_LSTICK_DOWN,
XDK_DEVICE_ID_LSTICK_LEFT_DPAD,
XDK_DEVICE_ID_LSTICK_RIGHT_DPAD,
XDK_DEVICE_ID_LSTICK_UP_DPAD,
XDK_DEVICE_ID_LSTICK_DOWN_DPAD,
XDK_DEVICE_ID_RSTICK_LEFT,
XDK_DEVICE_ID_RSTICK_RIGHT,
XDK_DEVICE_ID_RSTICK_UP,
XDK_DEVICE_ID_RSTICK_DOWN,
XDK_DEVICE_ID_RSTICK_LEFT_DPAD,
XDK_DEVICE_ID_RSTICK_RIGHT_DPAD,
XDK_DEVICE_ID_RSTICK_UP_DPAD,
XDK_DEVICE_ID_RSTICK_DOWN_DPAD,
RARCH_LAST_PLATFORM_KEY
};
#ifdef _XBOX1
#include "../xbox1/xinput_xbox_input.h"
#endif
#elif defined(GEKKO)
#include <ogc/pad.h>
#ifdef HW_RVL
#include <wiiuse/wpad.h>
#endif
#endif
extern uint64_t rarch_default_keybind_lut[RARCH_FIRST_META_KEY];
extern char rarch_default_libretro_keybind_name_lut[RARCH_FIRST_META_KEY][256];
@ -150,7 +56,7 @@ void rarch_input_set_default_keybinds(unsigned player);
void rarch_input_set_keybind(unsigned player, unsigned keybind_action, uint64_t default_retro_joypad_id);
void rarch_input_set_controls_default (void);
void rarch_input_set_controls_default (const input_driver_t *input);
const char *rarch_input_get_default_keybind_name (unsigned id);
#endif

View File

@ -159,6 +159,9 @@ typedef struct input_driver
int16_t (*input_state)(void *data, const struct retro_keybind **retro_keybinds, unsigned port, unsigned device, unsigned index, unsigned id);
bool (*key_pressed)(void *data, int key);
void (*free)(void *data);
#ifdef RARCH_CONSOLE
void (*set_default_keybind_lut)(void);
#endif
const char *ident;
} input_driver_t;

View File

@ -51,12 +51,17 @@ static void null_input_free(void *data)
(void)data;
}
static void null_set_default_keybind_lut(void) { }
const input_driver_t input_null = {
null_input_init,
null_input_poll,
null_input_state,
null_input_key_pressed,
null_input_free,
#ifdef RARCH_CONSOLE
null_set_default_keybind_lut,
#endif
"null",
};

View File

@ -240,10 +240,11 @@ int main(int argc, char *argv[])
get_environment_settings(argc, argv);
config_set_defaults();
input_ps3.init();
char tmp_path[PATH_MAX];
snprintf(tmp_path, sizeof(tmp_path), "%s/", default_paths.core_dir);
rarch_configure_libretro(tmp_path, default_paths.executable_extension);
rarch_configure_libretro(&input_ps3, tmp_path, default_paths.executable_extension);
#if(CELL_SDK_VERSION > 0x340000)
if (g_console.screenshots_enable)
@ -268,7 +269,6 @@ int main(int argc, char *argv[])
video_gl.start();
input_ps3.init();
#ifdef HAVE_OSKUTIL
oskutil_init(&g_console.oskutil_handle, 0);

View File

@ -470,12 +470,33 @@ static bool ps3_key_pressed(void *data, int key)
}
}
static void ps3_set_default_keybind_lut(void)
{
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[PS3_DEVICE_ID_JOYPAD_CROSS].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[PS3_DEVICE_ID_JOYPAD_SQUARE].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[PS3_DEVICE_ID_JOYPAD_SELECT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_START] = platform_keys[PS3_DEVICE_ID_JOYPAD_START].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_UP] = platform_keys[PS3_DEVICE_ID_JOYPAD_UP].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_DOWN] = platform_keys[PS3_DEVICE_ID_JOYPAD_DOWN].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_LEFT] = platform_keys[PS3_DEVICE_ID_JOYPAD_LEFT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_RIGHT] = platform_keys[PS3_DEVICE_ID_JOYPAD_RIGHT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_A] = platform_keys[PS3_DEVICE_ID_JOYPAD_CIRCLE].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_X] = platform_keys[PS3_DEVICE_ID_JOYPAD_TRIANGLE].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[PS3_DEVICE_ID_JOYPAD_L1].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[PS3_DEVICE_ID_JOYPAD_R1].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[PS3_DEVICE_ID_JOYPAD_R2].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[PS3_DEVICE_ID_JOYPAD_R3].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[PS3_DEVICE_ID_JOYPAD_L2].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L3] = platform_keys[PS3_DEVICE_ID_JOYPAD_L3].joykey;
}
const input_driver_t input_ps3 = {
.init = ps3_input_initialize,
.poll = ps3_input_poll,
.input_state = ps3_input_state,
.key_pressed = ps3_key_pressed,
.free = ps3_free_input,
.set_default_keybind_lut = ps3_set_default_keybind_lut,
.ident = "ps3",
};

View File

@ -156,6 +156,44 @@ typedef struct
CellOskDialogParam dialogParam;
} oskutil_params;
enum ps3_device_id
{
PS3_DEVICE_ID_JOYPAD_CIRCLE = 0,
PS3_DEVICE_ID_JOYPAD_CROSS,
PS3_DEVICE_ID_JOYPAD_TRIANGLE,
PS3_DEVICE_ID_JOYPAD_SQUARE,
PS3_DEVICE_ID_JOYPAD_UP,
PS3_DEVICE_ID_JOYPAD_DOWN,
PS3_DEVICE_ID_JOYPAD_LEFT,
PS3_DEVICE_ID_JOYPAD_RIGHT,
PS3_DEVICE_ID_JOYPAD_SELECT,
PS3_DEVICE_ID_JOYPAD_START,
PS3_DEVICE_ID_JOYPAD_L1,
PS3_DEVICE_ID_JOYPAD_L2,
PS3_DEVICE_ID_JOYPAD_L3,
PS3_DEVICE_ID_JOYPAD_R1,
PS3_DEVICE_ID_JOYPAD_R2,
PS3_DEVICE_ID_JOYPAD_R3,
PS3_DEVICE_ID_LSTICK_LEFT,
PS3_DEVICE_ID_LSTICK_RIGHT,
PS3_DEVICE_ID_LSTICK_UP,
PS3_DEVICE_ID_LSTICK_DOWN,
PS3_DEVICE_ID_LSTICK_LEFT_DPAD,
PS3_DEVICE_ID_LSTICK_RIGHT_DPAD,
PS3_DEVICE_ID_LSTICK_UP_DPAD,
PS3_DEVICE_ID_LSTICK_DOWN_DPAD,
PS3_DEVICE_ID_RSTICK_LEFT,
PS3_DEVICE_ID_RSTICK_RIGHT,
PS3_DEVICE_ID_RSTICK_UP,
PS3_DEVICE_ID_RSTICK_DOWN,
PS3_DEVICE_ID_RSTICK_LEFT_DPAD,
PS3_DEVICE_ID_RSTICK_RIGHT_DPAD,
PS3_DEVICE_ID_RSTICK_UP_DPAD,
PS3_DEVICE_ID_RSTICK_DOWN_DPAD,
RARCH_LAST_PLATFORM_KEY
};
void oskutil_write_message(oskutil_params *params, const wchar_t* msg);
void oskutil_write_initial_message(oskutil_params *params, const wchar_t* msg);
void oskutil_init(oskutil_params *params, unsigned int containersize);

View File

@ -188,12 +188,16 @@ static bool wii_key_pressed(void *data, int key)
}
}
static void wii_set_default_keybind_lut(void)
{
}
const input_driver_t input_wii = {
.init = wii_input_initialize,
.poll = wii_input_poll,
.input_state = wii_input_state,
.key_pressed = wii_key_pressed,
.free = wii_free_input,
.set_default_keybind_lut = wii_set_default_keybind_lut,
.ident = "wii",
};

View File

@ -191,6 +191,33 @@ static bool xinput_input_key_pressed(void *data, int key)
return retval;
}
static void xinput_set_default_keybind_lut(void)
{
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[XDK_DEVICE_ID_JOYPAD_A].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[XDK_DEVICE_ID_JOYPAD_X].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[XDK_DEVICE_ID_JOYPAD_BACK].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_START] = platform_keys[XDK_DEVICE_ID_JOYPAD_START].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_UP] = platform_keys[XDK_DEVICE_ID_JOYPAD_UP].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_DOWN] = platform_keys[XDK_DEVICE_ID_JOYPAD_DOWN].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_LEFT] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_RIGHT] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_A] = platform_keys[XDK_DEVICE_ID_JOYPAD_B].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_X] = platform_keys[XDK_DEVICE_ID_JOYPAD_Y].joykey;
#if defined(_XBOX1)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK_DEVICE_ID_JOYPAD_LB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK_DEVICE_ID_JOYPAD_RB].joykey;
#elif defined(_XBOX360)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L] = platform_keys[XDK_DEVICE_ID_JOYPAD_LB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R] = platform_keys[XDK_DEVICE_ID_JOYPAD_RB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L2] = platform_keys[XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R2] = platform_keys[XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER].joykey;
#endif
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_L3] = platform_keys[XDK_DEVICE_ID_LSTICK_THUMB].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[XDK_DEVICE_ID_RSTICK_THUMB].joykey;
}
const input_driver_t input_xinput =
{
xinput_input_init,
@ -198,5 +225,6 @@ const input_driver_t input_xinput =
xinput_input_state,
xinput_input_key_pressed,
xinput_input_free_input,
xinput_set_default_keybind_lut,
"xinput"
};

View File

@ -44,4 +44,42 @@ enum {
XINPUT1_GAMEPAD_RSTICK_DOWN_MASK = 1 << 23,
};
enum xdk_device_id
{
XDK_DEVICE_ID_JOYPAD_B = 0,
XDK_DEVICE_ID_JOYPAD_A,
XDK_DEVICE_ID_JOYPAD_Y,
XDK_DEVICE_ID_JOYPAD_X,
XDK_DEVICE_ID_JOYPAD_UP,
XDK_DEVICE_ID_JOYPAD_DOWN,
XDK_DEVICE_ID_JOYPAD_LEFT,
XDK_DEVICE_ID_JOYPAD_RIGHT,
XDK_DEVICE_ID_JOYPAD_BACK,
XDK_DEVICE_ID_JOYPAD_START,
XDK_DEVICE_ID_JOYPAD_LB,
XDK_DEVICE_ID_JOYPAD_LEFT_TRIGGER,
XDK_DEVICE_ID_LSTICK_THUMB,
XDK_DEVICE_ID_JOYPAD_RB,
XDK_DEVICE_ID_JOYPAD_RIGHT_TRIGGER,
XDK_DEVICE_ID_RSTICK_THUMB,
XDK_DEVICE_ID_LSTICK_LEFT,
XDK_DEVICE_ID_LSTICK_RIGHT,
XDK_DEVICE_ID_LSTICK_UP,
XDK_DEVICE_ID_LSTICK_DOWN,
XDK_DEVICE_ID_LSTICK_LEFT_DPAD,
XDK_DEVICE_ID_LSTICK_RIGHT_DPAD,
XDK_DEVICE_ID_LSTICK_UP_DPAD,
XDK_DEVICE_ID_LSTICK_DOWN_DPAD,
XDK_DEVICE_ID_RSTICK_LEFT,
XDK_DEVICE_ID_RSTICK_RIGHT,
XDK_DEVICE_ID_RSTICK_UP,
XDK_DEVICE_ID_RSTICK_DOWN,
XDK_DEVICE_ID_RSTICK_LEFT_DPAD,
XDK_DEVICE_ID_RSTICK_RIGHT_DPAD,
XDK_DEVICE_ID_RSTICK_UP_DPAD,
XDK_DEVICE_ID_RSTICK_DOWN_DPAD,
RARCH_LAST_PLATFORM_KEY
};
#endif

View File

@ -121,14 +121,14 @@ int main(int argc, char *argv[])
config_set_defaults();
rarch_configure_libretro(default_paths.filesystem_root_dir, default_paths.executable_extension);
input_xinput.init();
rarch_configure_libretro(&input_xinput, default_paths.filesystem_root_dir, default_paths.executable_extension);
#if defined(HAVE_D3D8) || defined(HAVE_D3D9)
video_xdk_d3d.start();
#else
video_null.start();
#endif
input_xinput.init();
rarch_input_set_default_keybind_names_for_emulator();