diff --git a/rpcs3/Emu/Cell/lv2/sys_spu.cpp b/rpcs3/Emu/Cell/lv2/sys_spu.cpp index 081e41b4e2..a075e29c3b 100644 --- a/rpcs3/Emu/Cell/lv2/sys_spu.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_spu.cpp @@ -203,7 +203,7 @@ error_code sys_spu_thread_initialize(vm::ptr thread, u32 group_id, u32 spu_ group->threads[spu_num] = std::move(spu); group->args[spu_num] = {arg->arg1, arg->arg2, arg->arg3, arg->arg4}; - group->imgs[spu_num] = img; + group->imgs[spu_num] = *img; if (++group->init == group->num) { @@ -345,9 +345,9 @@ error_code sys_spu_thread_group_start(ppu_thread& ppu, u32 id) auto& args = group->args[thread->index]; auto& img = group->imgs[thread->index]; - img->deploy(thread->offset); + img.deploy(thread->offset); - thread->pc = img->entry_point; + thread->pc = img.entry_point; thread->cpu_init(); thread->gpr[3] = v128::from64(0, args[0]); thread->gpr[4] = v128::from64(0, args[1]); diff --git a/rpcs3/Emu/Cell/lv2/sys_spu.h b/rpcs3/Emu/Cell/lv2/sys_spu.h index a7a3da3dd4..882c0bb702 100644 --- a/rpcs3/Emu/Cell/lv2/sys_spu.h +++ b/rpcs3/Emu/Cell/lv2/sys_spu.h @@ -153,7 +153,7 @@ struct lv2_spu_group cond_variable cv; // used to signal waiting PPU thread std::array, 256> threads; // SPU Threads - std::array, 256> imgs; // SPU Images + std::array imgs; // SPU Images std::array, 256> args; // SPU Thread Arguments std::weak_ptr ep_run; // port for SYS_SPU_THREAD_GROUP_EVENT_RUN events