diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp index b6d0dd1d1a..83b3cfa794 100644 --- a/Source/Core/Core/Core.cpp +++ b/Source/Core/Core/Core.cpp @@ -289,15 +289,6 @@ void Stop() // - Hammertime! g_video_backend->Video_ExitLoop(); } - - if (_CoreParameter.bWii) - Wiimote::ResetAllWiimotes(); - - ResetRumble(); - -#ifdef USE_MEMORYWATCHER - s_memory_watcher.reset(); -#endif } void DeclareAsCPUThread() @@ -374,6 +365,10 @@ static void CpuThread(const std::optional& savestate_path, bool del // Enter CPU run loop. When we leave it - we are done. CPU::Run(); +#ifdef USE_MEMORYWATCHER + s_memory_watcher.reset(); +#endif + s_is_started = false; if (_CoreParameter.bFastmem) @@ -533,7 +528,12 @@ static void EmuThread(std::unique_ptr boot, WindowSystemInfo wsi return; if (init_wiimotes) + { + Wiimote::ResetAllWiimotes(); Wiimote::Shutdown(); + } + + ResetRumble(); Keyboard::Shutdown(); Pad::Shutdown();