From c0eb4965f22e4775cb30f7d2345119b5982601a3 Mon Sep 17 00:00:00 2001 From: eladash Date: Tue, 20 Nov 2018 16:58:41 +0200 Subject: [PATCH] mmapper_allocate_memory improvement Added cases 0 for allocation granularity size, alike sys_memory_allocate, the alignment of this case is 1mb. --- rpcs3/Emu/Cell/lv2/sys_mmapper.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/Cell/lv2/sys_mmapper.cpp b/rpcs3/Emu/Cell/lv2/sys_mmapper.cpp index b4f5a2ac50..633d6ae43b 100644 --- a/rpcs3/Emu/Cell/lv2/sys_mmapper.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_mmapper.cpp @@ -77,6 +77,7 @@ error_code sys_mmapper_allocate_shared_memory(u64 unk, u32 size, u64 flags, vm:: // Check page granularity switch (flags & SYS_MEMORY_PAGE_SIZE_MASK) { + case 0: case SYS_MEMORY_PAGE_SIZE_1M: { if (size % 0x100000) @@ -112,7 +113,7 @@ error_code sys_mmapper_allocate_shared_memory(u64 unk, u32 size, u64 flags, vm:: } // Generate a new mem ID - *mem_id = idm::make(size, flags & SYS_MEMORY_PAGE_SIZE_1M ? 0x100000 : 0x10000, flags, dct); + *mem_id = idm::make(size, flags & SYS_MEMORY_PAGE_SIZE_64K ? 0x10000 : 0x100000, flags, dct); return CELL_OK; } @@ -124,6 +125,7 @@ error_code sys_mmapper_allocate_shared_memory_from_container(u64 unk, u32 size, // Check page granularity. switch (flags & SYS_MEMORY_PAGE_SIZE_MASK) { + case 0: case SYS_MEMORY_PAGE_SIZE_1M: { if (size % 0x100000) @@ -172,7 +174,7 @@ error_code sys_mmapper_allocate_shared_memory_from_container(u64 unk, u32 size, } // Generate a new mem ID - *mem_id = idm::make(size, flags & SYS_MEMORY_PAGE_SIZE_1M ? 0x100000 : 0x10000, flags, ct.ptr); + *mem_id = idm::make(size, flags & SYS_MEMORY_PAGE_SIZE_64K ? 0x10000 : 0x100000, flags, ct.ptr); return CELL_OK; }