diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 592e5fd152..c2489676d6 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -1630,7 +1630,11 @@ game_boot_result Emulator::Load(const std::string& title_id, bool add_only, bool if ((m_force_boot || g_cfg.misc.autostart) && IsReady()) { - Run(true); + if (ppu_exec == elf_error::ok) + { + Run(true); + } + m_force_boot = false; } else if (IsPaused()) @@ -1674,14 +1678,12 @@ void Emulator::Run(bool start_playtime) ConfigureLogs(); - auto on_select = [](u32, cpu_thread& cpu) + // Run main thread + idm::check>(ppu_thread::id_base, [](cpu_thread& cpu) { cpu.state -= cpu_flag::stop; cpu.notify(); - }; - - idm::select>(on_select); - idm::select>(on_select); + }); if (g_cfg.misc.prevent_display_sleep) {