diff --git a/src/core/system.cpp b/src/core/system.cpp index 7021b34f4..9b6b792a3 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -2368,6 +2368,11 @@ bool LoadRewindState(u32 skip_saves /*= 0*/, bool consume_state /*=true */) return true; } +bool IsRewinding() +{ + return (s_rewind_load_frequency >= 0); +} + void SetRewinding(bool enabled) { if (enabled) diff --git a/src/core/system.h b/src/core/system.h index 551a2710c..5c7a34a57 100644 --- a/src/core/system.h +++ b/src/core/system.h @@ -237,6 +237,7 @@ void CalculateRewindMemoryUsage(u32 num_saves, u64* ram_usage, u64* vram_usage); void ClearMemorySaveStates(); void UpdateMemorySaveStateSettings(); bool LoadRewindState(u32 skip_saves = 0, bool consume_state = true); +bool IsRewinding(); void SetRewinding(bool enabled); void SetRunaheadReplayFlag(); diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp index d6b2dc530..14078a7b6 100644 --- a/src/frontend-common/common_host_interface.cpp +++ b/src/frontend-common/common_host_interface.cpp @@ -2069,9 +2069,13 @@ void CommonHostInterface::SetRewindState(bool enabled) return; } - AddOSDMessage(enabled ? TranslateStdString("OSDMessage", "Rewinding...") : - TranslateStdString("OSDMessage", "Stopped rewinding."), - 5.0f); + if (!m_fullscreen_ui_enabled) + { + AddOSDMessage(enabled ? TranslateStdString("OSDMessage", "Rewinding...") : + TranslateStdString("OSDMessage", "Stopped rewinding."), + 5.0f); + } + System::SetRewinding(enabled); UpdateSpeedLimiterState(); } diff --git a/src/frontend-common/fullscreen_ui.cpp b/src/frontend-common/fullscreen_ui.cpp index 31e4cc4b8..52fdd0d98 100644 --- a/src/frontend-common/fullscreen_ui.cpp +++ b/src/frontend-common/fullscreen_ui.cpp @@ -3420,10 +3420,14 @@ void DrawStatsOverlay() DRAW_LINE(g_large_font, g_large_font->FontSize, 0.0f, IM_COL32(255, 255, 255, 255)); } - if (s_show_status_indicators && (s_host_interface->IsFastForwardEnabled() || s_host_interface->IsTurboEnabled())) + if (s_show_status_indicators) { - text.Assign(ICON_FA_FAST_FORWARD); - DRAW_LINE(g_large_font, g_large_font->FontSize * 2.0f, margin, IM_COL32(255, 255, 255, 255)); + const bool rewinding = System::IsRewinding(); + if (rewinding || s_host_interface->IsFastForwardEnabled() || s_host_interface->IsTurboEnabled()) + { + text.Assign(rewinding ? ICON_FA_FAST_BACKWARD : ICON_FA_FAST_FORWARD); + DRAW_LINE(g_large_font, g_large_font->FontSize * 2.0f, margin, IM_COL32(255, 255, 255, 255)); + } } } else if (s_show_status_indicators && state == System::State::Paused)