PPU Loader Fix removing writablity permission for RSX/SPU writable segments

This commit is contained in:
Eladash 2022-05-03 21:08:56 +03:00 committed by Ivan
parent f9a62667cf
commit 63669000ab
1 changed files with 2 additions and 2 deletions

View File

@ -1890,9 +1890,9 @@ bool ppu_load_exec(const ppu_exec_object& elf)
const u32 addr = static_cast<u32>(prog.p_vaddr); const u32 addr = static_cast<u32>(prog.p_vaddr);
const u32 size = static_cast<u32>(prog.p_memsz); const u32 size = static_cast<u32>(prog.p_memsz);
if (prog.p_type == 0x1u /* LOAD */ && prog.p_memsz && (prog.p_flags & 0x2) == 0u /* W */) if (prog.p_type == 0x1u /* LOAD */ && prog.p_memsz && (prog.p_flags & 0x022000002) == 0u /* W */)
{ {
// Set memory protection to read-only when necessary // Set memory protection to read-only when necessary (only if PPU-W, SPU-W, RSX-W are all disabled)
ensure(vm::page_protect(addr, utils::align(size, 0x1000), 0, 0, vm::page_writable)); ensure(vm::page_protect(addr, utils::align(size, 0x1000), 0, 0, vm::page_writable));
} }
} }