diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 4e5552d2a1..d9c003b0dd 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -1273,8 +1273,14 @@ bool GMainWindow::LoadROM(const QString& filename, u64 program_id, std::size_t p std::make_unique(*this), // Web Browser }); - const Core::SystemResultStatus result{ - system->Load(*render_window, filename.toStdString(), program_id, program_index)}; + Core::SystemResultStatus result{}; + auto load_thread = std::jthread( + [this, filename, program_id, program_index](Core::SystemResultStatus& result) { + result = + system->Load(*render_window, filename.toStdString(), program_id, program_index); + }, + std::ref(result)); + load_thread.join(); const auto drd_callout = (UISettings::values.callout_flags.GetValue() & static_cast(CalloutFlag::DRDDeprecation)) == 0;