diff --git a/config.def.h b/config.def.h index 22350ae7f1..8348e6868e 100644 --- a/config.def.h +++ b/config.def.h @@ -899,6 +899,71 @@ static const struct retro_keybind retro_keybinds_1[] = { { true, RARCH_MENU_TOGGLE, RETRO_LBL_MENU_TOGGLE, RETROK_F1, NO_BTN, 0, AXIS_NONE }, }; +/* Menu */ + +static const struct retro_keybind retro_keybinds_menu[] = { + /* | RetroPad button | desc | keyboard key | js btn | js axis | */ + { true, RETRO_DEVICE_ID_JOYPAD_B, RETRO_LBL_JOYPAD_B, RETROK_BACKSPACE, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_Y, RETRO_LBL_JOYPAD_Y, RETROK_a, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_SELECT, RETRO_LBL_JOYPAD_SELECT, RETROK_RSHIFT, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_START, RETRO_LBL_JOYPAD_START, RETROK_SPACE, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_UP, RETRO_LBL_JOYPAD_UP, RETROK_UP, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_DOWN, RETRO_LBL_JOYPAD_DOWN, RETROK_DOWN, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_LEFT, RETRO_LBL_JOYPAD_LEFT, RETROK_LEFT, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_RIGHT, RETRO_LBL_JOYPAD_RIGHT, RETROK_RIGHT, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_A, RETRO_LBL_JOYPAD_A, RETROK_RETURN, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_X, RETRO_LBL_JOYPAD_X, RETROK_s, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_L, RETRO_LBL_JOYPAD_L, RETROK_q, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_R, RETRO_LBL_JOYPAD_R, RETROK_w, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_L2, RETRO_LBL_JOYPAD_L2, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_R2, RETRO_LBL_JOYPAD_R2, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_L3, RETRO_LBL_JOYPAD_L3, RETROK_UNKNOWN, NO_BTN, 0, AXIS_NONE }, + { true, RETRO_DEVICE_ID_JOYPAD_R3, RETRO_LBL_JOYPAD_R3, RETROK_UNKNOWN, NO_BTN, 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_UNKNOWN, 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_MUTE, RETRO_LBL_MUTE, RETROK_F9, NO_BTN, 0, AXIS_NONE }, + { true, RARCH_OSK, RETRO_LBL_OSK, RETROK_F12, 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_DISK_PREV, RETRO_LBL_DISK_PREV, 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_F1, NO_BTN, 0, AXIS_NONE }, +}; + /* Users 2 to MAX_USERS */ static const struct retro_keybind retro_keybinds_rest[] = { /* | RetroPad button | desc | keyboard key | js btn | js axis | */ diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 6c7a123a68..1f3b1bb117 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -26,6 +26,7 @@ #include "menu_navigation.h" #include "menu_shader.h" +#include "../config.def.h" #include "../content.h" #include "../configuration.h" #include "../dynamic.h" @@ -244,6 +245,8 @@ static void menu_driver_toggle(bool latch) runloop_ctl(RUNLOOP_CTL_SET_FRAME_TIME_LAST, NULL); } + memcpy(settings->input.binds[0], retro_keybinds_menu, + sizeof(retro_keybinds_1)); } else { @@ -259,6 +262,8 @@ static void menu_driver_toggle(bool latch) /* Restore libretro keyboard callback. */ if (key_event && frontend_key_event) *key_event = *frontend_key_event; + memcpy(settings->input.binds[0], retro_keybinds_1, + sizeof(retro_keybinds_1)); } }