From 70ff521a2442fb62af988a6c36e3a21f50837efd Mon Sep 17 00:00:00 2001 From: Fabian Bieler Date: Thu, 15 Mar 2007 00:22:53 +0100 Subject: [PATCH] kernel32: GlobalMemoryStatusEx: always report at least 1 byte of virtual memory even if none is available. --- dlls/kernel32/heap.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c index df6a3c680d8..4297167793a 100644 --- a/dlls/kernel32/heap.c +++ b/dlls/kernel32/heap.c @@ -1312,6 +1312,13 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex ) lpmemex->ullTotalPageFile += lpmemex->ullTotalPhys; lpmemex->ullAvailPageFile += lpmemex->ullAvailPhys; + /* Titan Quest refuses to run if TotalPageFile <= ullTotalPhys */ + if(lpmemex->ullTotalPageFile == lpmemex->ullTotalPhys) + { + lpmemex->ullTotalPhys -= 1; + lpmemex->ullAvailPhys -= 1; + } + /* FIXME: should do something for other systems */ GetSystemInfo(&si); lpmemex->ullTotalVirtual = (char*)si.lpMaximumApplicationAddress-(char*)si.lpMinimumApplicationAddress;