diff --git a/libretro/libretro.cpp b/libretro/libretro.cpp index b8c4e0db993e..3b2f10317ec1 100644 --- a/libretro/libretro.cpp +++ b/libretro/libretro.cpp @@ -1437,10 +1437,11 @@ namespace Libretro void EmuThreadStart() { EmuThreadState state = emuThreadState; - if (state == EmuThreadState::RUNNING || state == EmuThreadState::START_REQUESTED || emuThread.joinable()) + bool wasPaused = state == EmuThreadState::PAUSED; + + if (state == EmuThreadState::RUNNING || state == EmuThreadState::START_REQUESTED || (emuThread.joinable() && !wasPaused)) return; - bool wasPaused = state == EmuThreadState::PAUSED; emuThreadState = EmuThreadState::START_REQUESTED; if (!wasPaused)