From 87797e117e7e4282139a6826d41d2c93fb16a859 Mon Sep 17 00:00:00 2001 From: Eladash Date: Thu, 13 Oct 2022 20:39:39 +0300 Subject: [PATCH] sys_spu: Some more fixes of wait flag misuse --- rpcs3/Emu/Cell/lv2/sys_spu.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rpcs3/Emu/Cell/lv2/sys_spu.cpp b/rpcs3/Emu/Cell/lv2/sys_spu.cpp index a1ed1f4558..2b30ee4f05 100644 --- a/rpcs3/Emu/Cell/lv2/sys_spu.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_spu.cpp @@ -2260,6 +2260,7 @@ error_code sys_raw_spu_create(ppu_thread& ppu, vm::ptr id, vm::ptr at spu_thread::g_raw_spu_id[index] = idm::last_id(); + ppu.check_state(); *id = index; return CELL_OK; @@ -2465,6 +2466,7 @@ error_code raw_spu_create_interrupt_tag(u32 id, u32 class_id, u32 /*hwthread*/, if (tag) { + cpu_thread::get_current()->check_state(); *intrtag = tag; return CELL_OK; } @@ -2634,6 +2636,7 @@ error_code raw_spu_read_puint_mb(u32 id, vm::ptr value) return CELL_ESRCH; } + cpu_thread::get_current()->check_state(); *value = thread->ch_out_intr_mbox.pop(); return CELL_OK; @@ -2705,6 +2708,7 @@ error_code raw_spu_get_spu_cfg(u32 id, vm::ptr value) return CELL_ESRCH; } + cpu_thread::get_current()->check_state(); *value = static_cast(thread->snr_config); return CELL_OK;