diff --git a/frontend/menu/rmenu_settings.c b/frontend/menu/rmenu_settings.c
index 27b1fe5cf1..5dfef6a6ee 100644
--- a/frontend/menu/rmenu_settings.c
+++ b/frontend/menu/rmenu_settings.c
@@ -375,6 +375,9 @@ void rmenu_settings_create_menu_item_label(char * str, unsigned setting, size_t
case S_LBL_SAVE_STATE_SLOT:
snprintf(str, size, "Save State #%d", g_extern.state_slot);
break;
+ case S_LBL_REWIND_GRANULARITY:
+ snprintf(str, size, "Rewind granularity: %d", g_settings.rewind_granularity);
+ break;
case S_LBL_ZIP_EXTRACT:
if (g_extern.lifecycle_mode_state & (1ULL << MODE_UNZIP_TO_CURDIR))
snprintf(str, size, "INFO - Unzip Mode: Current dir.");
diff --git a/frontend/menu/rmenu_settings.h b/frontend/menu/rmenu_settings.h
index 339243ee02..74e9d49398 100644
--- a/frontend/menu/rmenu_settings.h
+++ b/frontend/menu/rmenu_settings.h
@@ -106,6 +106,7 @@ enum
S_LBL_LOAD_STATE_SLOT,
S_LBL_SAVE_STATE_SLOT,
S_LBL_ZIP_EXTRACT,
+ S_LBL_REWIND_GRANULARITY,
};
void rmenu_settings_set(unsigned setting);
diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp
index 08a177e5f0..d717fc4aaf 100644
--- a/frontend/menu/rmenu_xui.cpp
+++ b/frontend/menu/rmenu_xui.cpp
@@ -399,6 +399,8 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer);
rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer));
m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer);
+ rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer));
+ m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer);
return 0;
}
@@ -423,6 +425,12 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break;
+ case SETTING_EMU_REWIND_GRANULARITY:
+ g_settings.rewind_granularity++;
+
+ rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer));
+ m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer);
+ break;
case SETTING_EMU_SHOW_INFO_MSG:
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_INFO_DRAW);
@@ -525,6 +533,13 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break;
+ case SETTING_EMU_REWIND_GRANULARITY:
+ if (g_settings.rewind_granularity > 1)
+ g_settings.rewind_granularity--;
+
+ rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer));
+ m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer);
+ break;
case SETTING_EMU_SHOW_INFO_MSG:
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_INFO_DRAW);
@@ -626,6 +641,12 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
break;
+ case SETTING_EMU_REWIND_GRANULARITY:
+ g_settings.rewind_granularity++;
+
+ rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer));
+ m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer);
+ break;
case SETTING_SCALE_FACTOR:
if(device_ptr->fbo_inited)
{
diff --git a/frontend/menu/rmenu_xui.h b/frontend/menu/rmenu_xui.h
index a3f955c218..a9ed6900f2 100644
--- a/frontend/menu/rmenu_xui.h
+++ b/frontend/menu/rmenu_xui.h
@@ -23,6 +23,7 @@
enum
{
SETTING_EMU_REWIND_ENABLED = 0,
+ SETTING_EMU_REWIND_GRANULARITY,
SETTING_EMU_SHOW_INFO_MSG,
SETTING_EMU_SHOW_DEBUG_INFO_MSG,
SETTING_EMU_MENUS,
diff --git a/media/360/hd/rarch_settings.xui b/media/360/hd/rarch_settings.xui
index afbf60e396..76aef42630 100644
--- a/media/360/hd/rarch_settings.xui
+++ b/media/360/hd/rarch_settings.xui
@@ -31,6 +31,7 @@
383.040009
44.880005,64.959991,0.000000
Rewind:
+Rewind granularity:
Info messages:
Debug info messages:
Menus:
diff --git a/media/360/sd/rarch_settings.xui b/media/360/sd/rarch_settings.xui
index 8119579c43..a3d6ca95fc 100644
--- a/media/360/sd/rarch_settings.xui
+++ b/media/360/sd/rarch_settings.xui
@@ -31,6 +31,7 @@
232.720001
44.880005,64.959991,0.000000
Rewind:
+Rewind granularity:
Info messages:
Debug info messages:
Menus: