diff --git a/console/rgui/rgui.c b/console/rgui/rgui.c index a7268edf58..eb95da089c 100644 --- a/console/rgui/rgui.c +++ b/console/rgui/rgui.c @@ -423,6 +423,12 @@ static void render_text(rgui_handle_t *rgui) break; } break; + case RGUI_SETTINGS_SRAM_DIR: + snprintf(type_str, sizeof(type_str), g_extern.console.main_wrap.state.default_sram_dir.enable ? "ON" : "OFF"); + break; + case RGUI_SETTINGS_STATE_DIR: + snprintf(type_str, sizeof(type_str), g_extern.console.main_wrap.state.default_savestate_dir.enable ? "ON" : "OFF"); + break; case RGUI_SETTINGS_DEBUG_TEXT: snprintf(type_str, sizeof(type_str), g_extern.console.rmenu.state.msg_fps.enable ? "ON" : "OFF"); break; @@ -681,6 +687,18 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t else if (action == RGUI_ACTION_RIGHT && g_extern.file_state.zip_extract_mode < LAST_ZIP_EXTRACT) g_extern.file_state.zip_extract_mode++; break; + case RGUI_SETTINGS_SRAM_DIR: + if (action == RGUI_ACTION_START || action == RGUI_ACTION_LEFT) + g_extern.console.main_wrap.state.default_sram_dir.enable = false; + else if (action == RGUI_ACTION_RIGHT) + g_extern.console.main_wrap.state.default_sram_dir.enable = true; + break; + case RGUI_SETTINGS_STATE_DIR: + if (action == RGUI_ACTION_START || action == RGUI_ACTION_LEFT) + g_extern.console.main_wrap.state.default_savestate_dir.enable = false; + else if (action == RGUI_ACTION_RIGHT) + g_extern.console.main_wrap.state.default_savestate_dir.enable = true; + break; case RGUI_SETTINGS_DEBUG_TEXT: if (action == RGUI_ACTION_START || action == RGUI_ACTION_LEFT) g_extern.console.rmenu.state.msg_fps.enable = false; @@ -788,6 +806,8 @@ static void rgui_settings_populate_entries(rgui_handle_t *rgui) RGUI_MENU_ITEM("Mute Audio", RGUI_SETTINGS_AUDIO_MUTE); RGUI_MENU_ITEM("Audio Control Rate", RGUI_SETTINGS_AUDIO_CONTROL_RATE); RGUI_MENU_ITEM("Zip Extract Directory", RGUI_SETTINGS_ZIP_EXTRACT); + RGUI_MENU_ITEM("SRAM Saves in \"sram\" Dir", RGUI_SETTINGS_SRAM_DIR); + RGUI_MENU_ITEM("State Saves in \"state\" Dir", RGUI_SETTINGS_STATE_DIR); RGUI_MENU_ITEM("Core", RGUI_SETTINGS_CORE); RGUI_MENU_ITEM("Controller #1 Config", RGUI_SETTINGS_CONTROLLER_1); RGUI_MENU_ITEM("Controller #2 Config", RGUI_SETTINGS_CONTROLLER_2); diff --git a/console/rgui/rgui.h b/console/rgui/rgui.h index faf652e225..633130cefb 100644 --- a/console/rgui/rgui.h +++ b/console/rgui/rgui.h @@ -53,6 +53,8 @@ typedef enum RGUI_SETTINGS_AUDIO_MUTE, RGUI_SETTINGS_AUDIO_CONTROL_RATE, RGUI_SETTINGS_ZIP_EXTRACT, + RGUI_SETTINGS_SRAM_DIR, + RGUI_SETTINGS_STATE_DIR, RGUI_SETTINGS_CORE, RGUI_SETTINGS_CONTROLLER_1, RGUI_SETTINGS_CONTROLLER_2, diff --git a/gx/gx_input.c b/gx/gx_input.c index c394b08f9d..839be9ee24 100644 --- a/gx/gx_input.c +++ b/gx/gx_input.c @@ -462,30 +462,35 @@ static bool gx_input_key_pressed(void *data, int key) switch (key) { case RARCH_QUIT_KEY: - if(IS_TIMER_EXPIRED(0)) - { - uint64_t goto_menu_pressed = pad_state[0] & (GX_WIIMOTE_HOME + if(IS_TIMER_EXPIRED(0)) + { + uint64_t goto_menu_pressed = pad_state[0] & (GX_WIIMOTE_HOME #ifdef HW_RVL | GX_CLASSIC_HOME #endif - ); - uint64_t quit_rarch = pad_state[0] & GX_QUIT_KEY; - bool retval = false; - g_extern.console.rmenu.state.rmenu.enable = ((quit_rarch || goto_menu_pressed)); + ); + uint64_t quit_rarch = pad_state[0] & GX_QUIT_KEY; + bool retval = false; + g_extern.console.rmenu.state.rmenu.enable = ((quit_rarch || goto_menu_pressed)); - if(g_extern.console.rmenu.state.rmenu.enable) - { - g_extern.console.rmenu.mode = MODE_MENU; - g_extern.console.rmenu.state.ingame_menu.enable = true; - SET_TIMER_EXPIRATION(0, 30); + if(g_extern.console.rmenu.state.rmenu.enable) + { + g_extern.console.rmenu.mode = MODE_MENU; + g_extern.console.rmenu.state.ingame_menu.enable = true; + SET_TIMER_EXPIRATION(0, 30); + } + + if(quit_rarch) + g_extern.console.rmenu.mode = MODE_EXIT; + + retval = g_extern.console.rmenu.state.rmenu.enable; + return retval; } - - if(quit_rarch) - g_extern.console.rmenu.mode = MODE_EXIT; - - retval = g_extern.console.rmenu.state.rmenu.enable; - return retval; - } + return false; + break; + case RARCH_RMENU_QUICKMENU_TOGGLE: + return pad_state[0] & GX_WIIMOTE_HOME; + break; default: return false; }