diff --git a/config.def.h b/config.def.h index 289d0c452d..a6737670b2 100644 --- a/config.def.h +++ b/config.def.h @@ -695,65 +695,65 @@ static const struct retro_keybind retro_keybinds_1[] = { #endif }; -#ifdef HW_RVL +#ifdef RARCH_CONSOLE static const struct retro_keybind retro_keybinds_menu[] = { - { true, RETRO_DEVICE_ID_JOYPAD_B, NULL, 0, GX_MENU_B, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_Y, NULL, 0, GX_MENU_Y, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_SELECT, NULL, 0, GX_MENU_SELECT, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_START, NULL, 0, GX_MENU_START, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_UP, NULL, 0, GX_MENU_UP, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_DOWN, NULL, 0, GX_MENU_DOWN, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_LEFT, NULL, 0, GX_MENU_LEFT, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_RIGHT, NULL, 0, GX_MENU_RIGHT, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_A, NULL, 0, GX_MENU_A, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_X, NULL, 0, GX_MENU_X, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_L, NULL, 0, GX_MENU_L, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_R, NULL, 0, GX_MENU_R, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_L2, NULL, 0, GX_CLASSIC_ZL_TRIGGER, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_R2, NULL, 0, GX_CLASSIC_ZR_TRIGGER, 0 }, - { true, RETRO_DEVICE_ID_JOYPAD_L3, RETRO_LBL_JOYPAD_L3, RETROK_UNKNOWN, RETRO_DEF_JOYPAD_L3, 0, AXIS_NONE }, - { true, RETRO_DEVICE_ID_JOYPAD_R3, RETRO_LBL_JOYPAD_R3, RETROK_UNKNOWN, RETRO_DEF_JOYPAD_R3, 0, AXIS_NONE }, - { true, RARCH_ANALOG_LEFT_X_PLUS, RETRO_LBL_ANALOG_LEFT_X_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_ANALOG_LEFT_X_MINUS, RETRO_LBL_ANALOG_LEFT_X_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_ANALOG_LEFT_Y_PLUS, RETRO_LBL_ANALOG_LEFT_Y_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_ANALOG_LEFT_Y_MINUS, RETRO_LBL_ANALOG_LEFT_Y_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_ANALOG_RIGHT_X_PLUS, RETRO_LBL_ANALOG_RIGHT_X_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { 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 }, + { true, RETRO_DEVICE_ID_JOYPAD_B, RETRO_LBL_JOYPAD_B, RETROK_UNKNOWN, CONSOLE_MENU_B, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_Y, RETRO_LBL_JOYPAD_Y, RETROK_UNKNOWN, CONSOLE_MENU_Y, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_SELECT, RETRO_LBL_JOYPAD_SELECT, RETROK_UNKNOWN, CONSOLE_MENU_SELECT, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_START, RETRO_LBL_JOYPAD_START, RETROK_UNKNOWN, CONSOLE_MENU_START, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_UP, RETRO_LBL_JOYPAD_UP, RETROK_UNKNOWN, CONSOLE_MENU_UP, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_DOWN, RETRO_LBL_JOYPAD_DOWN, RETROK_UNKNOWN, CONSOLE_MENU_DOWN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_LEFT, RETRO_LBL_JOYPAD_LEFT, RETROK_UNKNOWN, CONSOLE_MENU_LEFT, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_RIGHT, RETRO_LBL_JOYPAD_RIGHT, RETROK_UNKNOWN, CONSOLE_MENU_RIGHT, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_A, RETRO_LBL_JOYPAD_A, RETROK_UNKNOWN, CONSOLE_MENU_A, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_X, RETRO_LBL_JOYPAD_X, RETROK_UNKNOWN, CONSOLE_MENU_X, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_L, RETRO_LBL_JOYPAD_L, RETROK_UNKNOWN, CONSOLE_MENU_L, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_R, RETRO_LBL_JOYPAD_R, RETROK_UNKNOWN, CONSOLE_MENU_R, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_L2, RETRO_LBL_JOYPAD_L2, RETROK_UNKNOWN, CONSOLE_MENU_L2, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_R2, RETRO_LBL_JOYPAD_R2, RETROK_UNKNOWN, CONSOLE_MENU_R2, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_L3, RETRO_LBL_JOYPAD_L3, RETROK_UNKNOWN, CONSOLE_MENU_L3, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_R3, RETRO_LBL_JOYPAD_R3, RETROK_UNKNOWN, CONSOLE_MENU_R3, 0, AXIS_NONE }, + { true, RARCH_ANALOG_LEFT_X_PLUS, RETRO_LBL_ANALOG_LEFT_X_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_ANALOG_LEFT_X_MINUS, RETRO_LBL_ANALOG_LEFT_X_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_ANALOG_LEFT_Y_PLUS, RETRO_LBL_ANALOG_LEFT_Y_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_ANALOG_LEFT_Y_MINUS, RETRO_LBL_ANALOG_LEFT_Y_MINUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_ANALOG_RIGHT_X_PLUS, RETRO_LBL_ANALOG_RIGHT_X_PLUS, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { 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 }, - { 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 }, - { true, RARCH_FAST_FORWARD_HOLD_KEY, RETRO_LBL_FAST_FORWARD_HOLD_KEY,RETROK_l, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_LOAD_STATE_KEY, RETRO_LBL_LOAD_STATE_KEY, RETROK_F4, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_SAVE_STATE_KEY, RETRO_LBL_SAVE_STATE_KEY, RETROK_F2, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_FULLSCREEN_TOGGLE_KEY, RETRO_LBL_FULLSCREEN_TOGGLE_KEY,RETROK_f, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_QUIT_KEY, RETRO_LBL_QUIT_KEY, RETROK_ESCAPE, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_STATE_SLOT_PLUS, RETRO_LBL_STATE_SLOT_PLUS, RETROK_F7, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_STATE_SLOT_MINUS, RETRO_LBL_STATE_SLOT_MINUS, RETROK_F6, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_REWIND, RETRO_LBL_REWIND, RETROK_r, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_MOVIE_RECORD_TOGGLE, RETRO_LBL_MOVIE_RECORD_TOGGLE, RETROK_o, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_PAUSE_TOGGLE, RETRO_LBL_PAUSE_TOGGLE, RETROK_p, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_FRAMEADVANCE, RETRO_LBL_FRAMEADVANCE, RETROK_k, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_RESET, RETRO_LBL_RESET, RETROK_h, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_SHADER_NEXT, RETRO_LBL_SHADER_NEXT, RETROK_m, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_SHADER_PREV, RETRO_LBL_SHADER_PREV, RETROK_n, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_CHEAT_INDEX_PLUS, RETRO_LBL_CHEAT_INDEX_PLUS, RETROK_y, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_CHEAT_INDEX_MINUS, RETRO_LBL_CHEAT_INDEX_MINUS, RETROK_t, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_CHEAT_TOGGLE, RETRO_LBL_CHEAT_TOGGLE, RETROK_u, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_SCREENSHOT, RETRO_LBL_SCREENSHOT, RETROK_F8, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_DSP_CONFIG, RETRO_LBL_DSP_CONFIG, RETROK_c, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_MUTE, RETRO_LBL_MUTE, RETROK_F9, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_NETPLAY_FLIP, RETRO_LBL_NETPLAY_FLIP, RETROK_i, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_SLOWMOTION, RETRO_LBL_SLOWMOTION, RETROK_e, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_ENABLE_HOTKEY, RETRO_LBL_ENABLE_HOTKEY, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_VOLUME_UP, RETRO_LBL_VOLUME_UP, RETROK_KP_PLUS, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_VOLUME_DOWN, RETRO_LBL_VOLUME_DOWN, RETROK_KP_MINUS,NO_BTN, 0, AXIS_NONE }, - { true, RARCH_OVERLAY_NEXT, RETRO_LBL_OVERLAY_NEXT, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_DISK_EJECT_TOGGLE, RETRO_LBL_DISK_EJECT_TOGGLE, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_DISK_NEXT, RETRO_LBL_DISK_NEXT, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_GRAB_MOUSE_TOGGLE, RETRO_LBL_GRAB_MOUSE_TOGGLE, RETROK_F11, NO_BTN, 0, AXIS_NONE }, - { true, RARCH_MENU_TOGGLE, NULL, 0, GX_MENU_HOME, 0 }, + { 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 }, + { true, RARCH_FAST_FORWARD_HOLD_KEY, RETRO_LBL_FAST_FORWARD_HOLD_KEY,RETROK_l, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_LOAD_STATE_KEY, RETRO_LBL_LOAD_STATE_KEY, RETROK_F4, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_SAVE_STATE_KEY, RETRO_LBL_SAVE_STATE_KEY, RETROK_F2, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_FULLSCREEN_TOGGLE_KEY, RETRO_LBL_FULLSCREEN_TOGGLE_KEY,RETROK_f, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_QUIT_KEY, RETRO_LBL_QUIT_KEY, RETROK_ESCAPE, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_STATE_SLOT_PLUS, RETRO_LBL_STATE_SLOT_PLUS, RETROK_F7, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_STATE_SLOT_MINUS, RETRO_LBL_STATE_SLOT_MINUS, RETROK_F6, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_REWIND, RETRO_LBL_REWIND, RETROK_r, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_MOVIE_RECORD_TOGGLE, RETRO_LBL_MOVIE_RECORD_TOGGLE, RETROK_o, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_PAUSE_TOGGLE, RETRO_LBL_PAUSE_TOGGLE, RETROK_p, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_FRAMEADVANCE, RETRO_LBL_FRAMEADVANCE, RETROK_k, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_RESET, RETRO_LBL_RESET, RETROK_h, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_SHADER_NEXT, RETRO_LBL_SHADER_NEXT, RETROK_m, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_SHADER_PREV, RETRO_LBL_SHADER_PREV, RETROK_n, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_CHEAT_INDEX_PLUS, RETRO_LBL_CHEAT_INDEX_PLUS, RETROK_y, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_CHEAT_INDEX_MINUS, RETRO_LBL_CHEAT_INDEX_MINUS, RETROK_t, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_CHEAT_TOGGLE, RETRO_LBL_CHEAT_TOGGLE, RETROK_u, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_SCREENSHOT, RETRO_LBL_SCREENSHOT, RETROK_F8, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_DSP_CONFIG, RETRO_LBL_DSP_CONFIG, RETROK_c, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_MUTE, RETRO_LBL_MUTE, RETROK_F9, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_NETPLAY_FLIP, RETRO_LBL_NETPLAY_FLIP, RETROK_i, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_SLOWMOTION, RETRO_LBL_SLOWMOTION, RETROK_e, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_ENABLE_HOTKEY, RETRO_LBL_ENABLE_HOTKEY, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_VOLUME_UP, RETRO_LBL_VOLUME_UP, RETROK_KP_PLUS, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_VOLUME_DOWN, RETRO_LBL_VOLUME_DOWN, RETROK_KP_MINUS,NO_BTN, 0, AXIS_NONE }, + { true, RARCH_OVERLAY_NEXT, RETRO_LBL_OVERLAY_NEXT, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_DISK_EJECT_TOGGLE, RETRO_LBL_DISK_EJECT_TOGGLE, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_DISK_NEXT, RETRO_LBL_DISK_NEXT, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_GRAB_MOUSE_TOGGLE, RETRO_LBL_GRAB_MOUSE_TOGGLE, RETROK_F11, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_MENU_TOGGLE, RETRO_LBL_MENU_TOGGLE, RETROK_UNKNOWN, CONSOLE_MENU_HOME, 0, AXIS_NONE }, }; #endif diff --git a/driver.h b/driver.h index b3ef2232d2..c250f15eca 100644 --- a/driver.h +++ b/driver.h @@ -109,6 +109,31 @@ enum // RetroArch specific bind IDs. RARCH_BIND_LIST_END_NULL }; +#ifdef RARCH_CONSOLE +enum // Console specific menu bind IDs. +{ + CONSOLE_MENU_FIRST = 61, + CONSOLE_MENU_A = CONSOLE_MENU_FIRST, + CONSOLE_MENU_B = 62, + CONSOLE_MENU_X = 63, + CONSOLE_MENU_Y = 64, + CONSOLE_MENU_START = 65, + CONSOLE_MENU_SELECT = 66, + CONSOLE_MENU_UP = 67, + CONSOLE_MENU_DOWN = 68, + CONSOLE_MENU_LEFT = 69, + CONSOLE_MENU_RIGHT = 70, + CONSOLE_MENU_L = 71, + CONSOLE_MENU_R = 72, + CONSOLE_MENU_L2 = 73, + CONSOLE_MENU_R2 = 74, + CONSOLE_MENU_L3 = 75, + CONSOLE_MENU_R3 = 76, + CONSOLE_MENU_HOME = 77, + CONSOLE_MENU_LAST = CONSOLE_MENU_HOME, +}; +#endif + struct retro_keybind { bool valid; diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 802177646d..de3e5254cd 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -475,7 +475,7 @@ static uint64_t menu_input(void) unsigned i; uint64_t input_state = 0; -#ifdef HW_RVL +#ifdef RARCH_CONSOLE static const struct retro_keybind *binds[] = { g_settings.input.menu_binds }; #else static const struct retro_keybind *binds[] = { g_settings.input.binds[0] }; diff --git a/general.h b/general.h index 8046c4aefd..85faafdfd2 100644 --- a/general.h +++ b/general.h @@ -231,7 +231,7 @@ struct settings char joypad_driver[32]; char keyboard_layout[64]; struct retro_keybind binds[MAX_PLAYERS][RARCH_BIND_LIST_END]; -#ifdef HW_RVL +#ifdef RARCH_CONSOLE struct retro_keybind menu_binds[RARCH_BIND_LIST_END]; #endif diff --git a/gx/gx_input.c b/gx/gx_input.c index 08aaddd398..fae441fc58 100644 --- a/gx/gx_input.c +++ b/gx/gx_input.c @@ -109,32 +109,36 @@ static bool gx_menu_input_state(uint64_t joykey, uint64_t state) { switch (joykey) { - case GX_MENU_A: + case CONSOLE_MENU_A: return state & ((1ULL << GX_GC_A) | (1ULL << GX_WIIMOTE_A) | (1ULL << GX_CLASSIC_A) | (1ULL << GX_WIIMOTE_2)); - case GX_MENU_B: + case CONSOLE_MENU_B: return state & ((1ULL << GX_GC_B) | (1ULL << GX_WIIMOTE_B) | (1ULL << GX_CLASSIC_B) | (1ULL << GX_WIIMOTE_1)); - case GX_MENU_X: + case CONSOLE_MENU_X: return state & ((1ULL << GX_GC_X) | (1ULL << GX_CLASSIC_X)); - case GX_MENU_Y: + case CONSOLE_MENU_Y: return state & ((1ULL << GX_GC_Y) | (1ULL << GX_CLASSIC_Y)); - case GX_MENU_START: + case CONSOLE_MENU_START: return state & ((1ULL << GX_GC_START) | (1ULL << GX_WIIMOTE_PLUS) | (1ULL << GX_CLASSIC_PLUS)); - case GX_MENU_SELECT: + case CONSOLE_MENU_SELECT: return state & ((1ULL << GX_GC_Z_TRIGGER) | (1ULL << GX_WIIMOTE_MINUS) | (1ULL << GX_CLASSIC_MINUS)); - case GX_MENU_UP: + case CONSOLE_MENU_UP: return state & ((1ULL << GX_GC_UP) | (1ULL << GX_WIIMOTE_UP) | (1ULL << GX_CLASSIC_UP) | (1ULL << GX_NUNCHUK_UP)); - case GX_MENU_DOWN: + case CONSOLE_MENU_DOWN: return state & ((1ULL << GX_GC_DOWN) | (1ULL << GX_WIIMOTE_DOWN) | (1ULL << GX_CLASSIC_DOWN) | (1ULL << GX_NUNCHUK_DOWN)); - case GX_MENU_LEFT: + case CONSOLE_MENU_LEFT: return state & ((1ULL << GX_GC_LEFT) | (1ULL << GX_WIIMOTE_LEFT) | (1ULL << GX_CLASSIC_LEFT) | (1ULL << GX_NUNCHUK_LEFT)); - case GX_MENU_RIGHT: + case CONSOLE_MENU_RIGHT: return state & ((1ULL << GX_GC_RIGHT) | (1ULL << GX_WIIMOTE_RIGHT) | (1ULL << GX_CLASSIC_RIGHT) | (1ULL << GX_NUNCHUK_RIGHT)); - case GX_MENU_L: + case CONSOLE_MENU_L: return state & ((1ULL << GX_GC_L_TRIGGER) | (1ULL << GX_CLASSIC_L_TRIGGER)); - case GX_MENU_R: + case CONSOLE_MENU_R: return state & ((1ULL << GX_GC_R_TRIGGER) | (1ULL << GX_CLASSIC_R_TRIGGER)); - case GX_MENU_HOME: + case CONSOLE_MENU_HOME: return state & ((1ULL << GX_WIIMOTE_HOME) | (1ULL << GX_CLASSIC_HOME)); + case CONSOLE_MENU_L2: + return state & (1ULL << GX_CLASSIC_ZL_TRIGGER); + case CONSOLE_MENU_R2: + return state & (1ULL << GX_CLASSIC_ZR_TRIGGER); default: return false; } @@ -152,7 +156,7 @@ static int16_t gx_input_state(void *data, const struct retro_keybind **binds, switch (device) { case RETRO_DEVICE_JOYPAD: - if (binds[port][id].joykey >= GX_MENU_FIRST && binds[port][id].joykey <= GX_MENU_LAST) + if (binds[port][id].joykey >= CONSOLE_MENU_FIRST && binds[port][id].joykey <= CONSOLE_MENU_LAST) return gx_menu_input_state(binds[port][id].joykey, gx->pad_state[port]) ? 1 : 0; else return input_joypad_pressed(&gx_joypad, port, binds[port], id);; diff --git a/gx/gx_input.h b/gx/gx_input.h index b7888e7a3f..a49d743382 100644 --- a/gx/gx_input.h +++ b/gx/gx_input.h @@ -68,24 +68,6 @@ enum #endif GX_WIIMOTE_HOME = 49, // needed on GameCube as "fake" menu button GX_QUIT_KEY = 60, - - // special binds for the menu - GX_MENU_A = 61, - GX_MENU_B = 62, - GX_MENU_X = 63, - GX_MENU_Y = 64, - GX_MENU_START = 65, - GX_MENU_SELECT = 66, - GX_MENU_UP = 67, - GX_MENU_DOWN = 68, - GX_MENU_LEFT = 69, - GX_MENU_RIGHT = 70, - GX_MENU_L = 71, - GX_MENU_R = 72, - GX_MENU_HOME = 73, - - GX_MENU_FIRST = GX_MENU_A, - GX_MENU_LAST = GX_MENU_HOME }; enum gx_device_id diff --git a/ps3/ps3_input.c b/ps3/ps3_input.c index d3a9e9cff8..95c0450027 100644 --- a/ps3/ps3_input.c +++ b/ps3/ps3_input.c @@ -190,6 +190,49 @@ static int16_t ps3_mouse_device_state(void *data, unsigned player, unsigned id) #endif +static bool ps3_menu_input_state(uint64_t joykey, uint64_t state) +{ + switch (joykey) + { + case CONSOLE_MENU_A: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_A); + case CONSOLE_MENU_B: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_B); + case CONSOLE_MENU_X: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_X); + case CONSOLE_MENU_Y: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_Y); + case CONSOLE_MENU_START: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_START); + case CONSOLE_MENU_SELECT: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_SELECT); + case CONSOLE_MENU_UP: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_UP); + case CONSOLE_MENU_DOWN: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN); + case CONSOLE_MENU_LEFT: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT); + case CONSOLE_MENU_RIGHT: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT); + case CONSOLE_MENU_L: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_L); + case CONSOLE_MENU_R: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_R); + case CONSOLE_MENU_HOME: + return (state & (1ULL << RETRO_DEVICE_ID_JOYPAD_L3)) && (state & (1ULL << RETRO_DEVICE_ID_JOYPAD_R3)); + case CONSOLE_MENU_L2: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_L2); + case CONSOLE_MENU_R2: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_R2); + case CONSOLE_MENU_L3: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_L3); + case CONSOLE_MENU_R3: + return state & (1ULL << RETRO_DEVICE_ID_JOYPAD_R3); + default: + return false; + } +} + static int16_t ps3_input_state(void *data, const struct retro_keybind **binds, unsigned port, unsigned device, unsigned index, unsigned id) @@ -202,7 +245,10 @@ static int16_t ps3_input_state(void *data, const struct retro_keybind **binds, switch (device) { case RETRO_DEVICE_JOYPAD: - return input_joypad_pressed(&ps3_joypad, port, binds[port], id); + if (binds[port][id].joykey >= CONSOLE_MENU_FIRST && binds[port][id].joykey <= CONSOLE_MENU_LAST) + return ps3_menu_input_state(binds[port][id].joykey, ps3->pad_state[port]) ? 1 : 0; + else + return input_joypad_pressed(&ps3_joypad, port, binds[port], id); case RETRO_DEVICE_ANALOG: return input_joypad_analog(&ps3_joypad, port, index, id, binds[port]); case RETRO_DEVICE_SENSOR_ACCELEROMETER: diff --git a/settings.c b/settings.c index 15d64ad0b1..631a12a964 100644 --- a/settings.c +++ b/settings.c @@ -307,7 +307,7 @@ void config_set_defaults(void) rarch_assert(sizeof(g_settings.input.binds[0]) >= sizeof(retro_keybinds_1)); rarch_assert(sizeof(g_settings.input.binds[1]) >= sizeof(retro_keybinds_rest)); memcpy(g_settings.input.binds[0], retro_keybinds_1, sizeof(retro_keybinds_1)); -#ifdef HW_RVL +#ifdef RARCH_CONSOLE memcpy(g_settings.input.menu_binds, retro_keybinds_menu, sizeof(retro_keybinds_menu)); #endif for (i = 1; i < MAX_PLAYERS; i++)