diff --git a/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.cpp b/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.cpp index 23e84922bb..e7993cd422 100644 --- a/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.cpp +++ b/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.cpp @@ -58,7 +58,6 @@ int sys_spu_image_open(mem_ptr_t img, u32 path_addr) img->entry_point = entry; img->segs_addr = 0x0; img->nsegs = 0; - img->_img_offs = g_spu_offset; return CELL_OK; } @@ -96,7 +95,7 @@ int sys_spu_thread_initialize(mem32_t thread, u32 group, u32 spu_num, mem_ptr_t< return CELL_EBUSY; } - u32 ls_entry = img->entry_point - img->_img_offs; + u32 ls_entry = img->entry_point - g_spu_offset; std::string name = Memory.ReadString(attr->name_addr, attr->name_len).mb_str(); u64 a1 = arg->arg1; u64 a2 = arg->arg2; @@ -105,11 +104,10 @@ int sys_spu_thread_initialize(mem32_t thread, u32 group, u32 spu_num, mem_ptr_t< CPUThread& new_thread = Emu.GetCPU().AddThread(CPU_THREAD_SPU); //copy SPU image: - g_spu_alloc_size = 256 * 1024; - g_spu_offset = Memory.MainMem.Alloc(g_spu_alloc_size); - memcpy(Memory + g_spu_offset, Memory + img->_img_offs, g_spu_alloc_size); + u32 spu_offset = Memory.MainMem.Alloc(256 * 1024); + memcpy(Memory + spu_offset, Memory + g_spu_offset, 256 * 1024); //initialize from new place: - new_thread.SetOffset(g_spu_offset); + new_thread.SetOffset(spu_offset); new_thread.SetEntry(ls_entry); new_thread.SetName(name); new_thread.SetArg(0, a1); diff --git a/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.h b/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.h index eed7d1eb15..4d6515a5f2 100644 --- a/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.h +++ b/rpcs3/Emu/SysCalls/lv2/SC_SPU_Thread.h @@ -29,5 +29,4 @@ struct sys_spu_image be_t entry_point; be_t segs_addr; be_t nsegs; - u64 _img_offs; };