diff --git a/src/core/core.cpp b/src/core/core.cpp index 6d7f7d009..0132e24bd 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -511,8 +511,6 @@ System::ResultStatus System::Init(Frontend::EmuWindow& emu_window, Kernel::MemoryMode memory_mode, u32 num_cores) { LOG_DEBUG(HW_Memory, "initialized OK"); - is_powered_on = true; - memory = std::make_unique(*this); timing = std::make_unique(num_cores, Settings::values.cpu_clock_percentage.GetValue(), @@ -596,6 +594,8 @@ System::ResultStatus System::Init(Frontend::EmuWindow& emu_window, LOG_DEBUG(Core, "Initialized OK"); + is_powered_on = true; + return ResultStatus::Success; } @@ -689,6 +689,9 @@ void System::RegisterImageInterface(std::shared_ptr im void System::Shutdown(bool is_deserializing) { + // Shutdown emulation session + is_powered_on = false; + gpu.reset(); if (!is_deserializing) { lle_modules.clear(); @@ -722,9 +725,6 @@ void System::Shutdown(bool is_deserializing) { SetInfoLEDColor({}); LOG_DEBUG(Core, "Shutdown OK"); - - // Shutdown emulation session - is_powered_on = false; } void System::Reset() {