diff --git a/rpcs3/Emu/SysCalls/Modules.cpp b/rpcs3/Emu/SysCalls/Modules.cpp index b2ec9f4b87..c3e8002554 100644 --- a/rpcs3/Emu/SysCalls/Modules.cpp +++ b/rpcs3/Emu/SysCalls/Modules.cpp @@ -177,13 +177,16 @@ void fix_import(Module* module, u32 func, u32 addr) { using namespace PPU_instr; - vm::write32(addr + 0x0, LIS(11, func >> 16)); /* lis r11, (func_id >> 16) */ - vm::write32(addr + 0x4, ORI(11, 11, func & 0xffff)); /* ori r11, (func_id & 0xffff) */ - vm::write32(addr + 0x8, NOP()); - vm::write32(addr + 0x10, BLR()); - vm::write32(addr + 0x14, SC(2)); - vm::write32(addr + 0x18, NOP()); - vm::write32(addr + 0x20, NOP()); + vm::ptr& ptr = (vm::ptr&)addr; + + *ptr++ = LIS(11, func >> 16); + *ptr++ = ORI(11, 11, func & 0xffff); + *ptr++ = NOP(); + ++ptr; + *ptr++ = SC(2); + *ptr++ = BLR(); + *ptr++ = NOP(); + *ptr++ = NOP(); module->Load(func); }