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;