diff --git a/src/core/hle/kernel/svc/svc_process_memory.cpp b/src/core/hle/kernel/svc/svc_process_memory.cpp index 3313118dfa..f856643fe8 100644 --- a/src/core/hle/kernel/svc/svc_process_memory.cpp +++ b/src/core/hle/kernel/svc/svc_process_memory.cpp @@ -200,6 +200,12 @@ Result UnmapProcessCodeMemory(Core::System& system, Handle process_handle, u64 d "size=0x{:016X}", process_handle, dst_address, src_address, size); + // Workaround for Skyline 32Bit bug + if (size == 0) { + LOG_WARNING(Kernel_SVC, "UnmapProcessCodeMemory called with size=0, bypassing for now."); + R_RETURN(ResultSuccess); + } + if (!Common::Is4KBAligned(dst_address)) { LOG_ERROR(Kernel_SVC, "dst_address is not page-aligned (dst_address=0x{:016X}).", dst_address);