From 613777afdea3d491b5121a97906c3669357f5bb4 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Fri, 21 May 2021 16:48:39 +0300 Subject: [PATCH] vm_native: try to workaround another bug (Win32) Resize sparse file gradually. --- rpcs3/util/vm_native.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/rpcs3/util/vm_native.cpp b/rpcs3/util/vm_native.cpp index 00af16f1e8..2a769efc52 100644 --- a/rpcs3/util/vm_native.cpp +++ b/rpcs3/util/vm_native.cpp @@ -375,7 +375,17 @@ namespace utils MessageBoxW(0, L"Failed to initialize sparse file.", L"RPCS3", MB_ICONERROR); } - ensure(f.trunc(m_size)); + if (f.size() != m_size) + { + // Resize the file gradually (bug workaround) + for (usz i = 0; i < m_size / (1024 * 1024 * 256); i++) + { + ensure(f.trunc((i + 1) * (1024 * 1024 * 256))); + } + + ensure(f.trunc(m_size)); + } + m_handle = ensure(::CreateFileMappingW(f.get_handle(), nullptr, PAGE_READWRITE, 0, 0, nullptr)); #else if (!storage.empty())