[Bug 46962] New: Macromedia Director Player 4.x based games (16-bit NE) fail to run: "This program requires at least 4MB free memory to run." ( The Rock)
https://bugs.winehq.org/show_bug.cgi?id=46962 Bug ID: 46962 Summary: Macromedia Director Player 4.x based games (16-bit NE) fail to run: "This program requires at least 4MB free memory to run." (The Rock) Product: Wine Version: 4.5 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: kernel32 Assignee: wine-bugs(a)winehq.org Reporter: focht(a)gmx.net Distribution: --- Hello folks, I found a game written with Macromedia Director 4.0.4 using Internet Archive: https://archive.org/search.php?query=macromedia%20director%205&and[]=mediatype%3A%22software%22 https://archive.org/details/THEROCK_201807 -> https://archive.org/download/THEROCK_201807/THE_ROCK.zip It's a 16-bit NE Windows binary. --- snip --- $ WINEDEBUG=+seh,+relay,+globalmem wine ./THE_ROCK.EXE >>log.txt 2>&1 ... 005c:Call KERNEL.169: GETFREESPACE(0000) ret=1247:0b09 ds=1577 005c:Call KERNEL32.GlobalMemoryStatus(0087f810) ret=7e57ee80 005c:trace:globalmem:GlobalMemoryStatusEx <-- LPMEMORYSTATUSEX: dwLength 64, dwMemoryLoad 16, ullTotalPhys 3e30a3000, ullAvailPhys 3407f6000, ullTotalPageFile 5d90a2000, ullAvailPageFile 5367f5000, ullTotalVirtual fffdffff, ullAvailVirtual fffcffff 005c:trace:globalmem:GlobalMemoryStatus Length 32, MemoryLoad 16, TotalPhys ffffffff, AvailPhys ffffffff, TotalPageFile 7fffffff, AvailPageFile 7fffffff, TotalVirtual fffdffff, AvailVirtual fffcffff 005c:Ret KERNEL32.GlobalMemoryStatus() retval=000000c7 ret=7e57ee80 005c:Ret KERNEL.169: GETFREESPACE() retval=fffcffff ret=1247:0b09 ds=1577 ... 005c:Call user32.MessageBoxA(00000000,003b504e "This program requires at least 4MB free memory to run.",003b514e "Director Player 4.0",00000000) ret=f7b4a765 --- snip --- Wine source: --- snip --- 1365 /*********************************************************************** 1366 * GlobalMemoryStatus (KERNEL32.@) 1367 * Provides information about the status of the memory, so apps can tell 1368 * roughly how much they are able to allocate 1369 * 1370 * RETURNS 1371 * None 1372 */ 1373 VOID WINAPI GlobalMemoryStatus( LPMEMORYSTATUS lpBuffer ) 1374 { 1375 MEMORYSTATUSEX memstatus; 1376 OSVERSIONINFOW osver; 1377 IMAGE_NT_HEADERS *nt = RtlImageNtHeader( GetModuleHandleW(0) ); 1378 1379 /* Because GlobalMemoryStatus is identical to GlobalMemoryStatusEX save 1380 for one extra field in the struct, and the lack of a bug, we simply 1381 call GlobalMemoryStatusEx and copy the values across. */ 1382 memstatus.dwLength = sizeof(memstatus); 1383 GlobalMemoryStatusEx(&memstatus); 1384 1385 lpBuffer->dwLength = sizeof(*lpBuffer); 1386 lpBuffer->dwMemoryLoad = memstatus.dwMemoryLoad; ... 1430 /* limit page file size for really old binaries */ 1431 if (nt->OptionalHeader.MajorSubsystemVersion < 4 || 1432 nt->OptionalHeader.MajorOperatingSystemVersion < 4) 1433 { 1434 if (lpBuffer->dwTotalPageFile > MAXLONG) lpBuffer->dwTotalPageFile = MAXLONG; 1435 if (lpBuffer->dwAvailPageFile > MAXLONG) lpBuffer->dwAvailPageFile = MAXLONG; 1436 } 1437 1438 TRACE_(globalmem)("Length %u, MemoryLoad %u, TotalPhys %lx, AvailPhys %lx," 1439 " TotalPageFile %lx, AvailPageFile %lx, TotalVirtual %lx, AvailVirtual %lx\n", 1440 lpBuffer->dwLength, lpBuffer->dwMemoryLoad, lpBuffer->dwTotalPhys, 1441 lpBuffer->dwAvailPhys, lpBuffer->dwTotalPageFile, lpBuffer->dwAvailPageFile, 1442 lpBuffer->dwTotalVirtual, lpBuffer->dwAvailVirtual ); 1443 } --- snip --- "limit page file size for really old binaries" -> apparently the same has to be done for reported virtual memory size (cap at 2GB). Capping allows the game to start and show intro/gameplay sequence (until it runs out of local heap which is a different issue). NOTE: This is not the same as bug 44931 ("Macromedia Director Player 5.0/6.0 based games fail to run: "This program requires at least 3MB of free virtual memory to run" (Nine: The last Resort)") which is about capping dwAvailPageFile+dwAvailPhys <= 0x7FFFFFFF (2GB). $ sha1sum THE_ROCK.* efe3caca127562528d9496a434b1649a7c6ff46d THE_ROCK.EXE 6dc54219cf8b64d98a8a24f1bd2ebd32cefee8e8 THE_ROCK.zip $ du -sh THE_ROCK.* 2.1M THE_ROCK.EXE 984K THE_ROCK.zip $ wine --version wine-4.5-185-g17056908ac Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |https://archive.org/downloa | |d/THEROCK_201807/THE_ROCK.z | |ip Keywords| |download, win16 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 joaopa <jeremielapuree(a)yahoo.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree(a)yahoo.fr --- Comment #1 from joaopa <jeremielapuree(a)yahoo.fr> --- Looks like the bug still occurs with wine-5.18 wine THE_ROCK.EXE 0114:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION 0114:fixme:hook:SetWindowsHookEx16 System-global hooks (2) broken in Win16 0114:fixme:font:get_outline_text_metrics failed to read full_nameW for font L"Ani"! 0114:err:local:LOCAL_GetBlock not enough space in local heap 06cf for 124 bytes 0114:err:local:LOCAL_GetBlock not enough space in local heap 076f for 264 bytes 0114:err:local:LOCAL_GetBlock not enough space in local heap 06cf for 784 bytes 0114:err:local:LOCAL_GetBlock not enough space in local heap 076f for 784 bytes 0114:err:local:LOCAL_GetBlock not enough space in local heap 0777 for 344 bytes wine: Unhandled page fault on read access to FFFFFFFF at address 00002782 (thread 0114), starting debugger... Unhandled exception: page fault on read access to 0xffffffff in 16-bit code (0397:2782). -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 Le Gluon du Net <legluondunet(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |legluondunet(a)gmail.com -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 Sagawa <sagawa.aki+winebugs(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sagawa.aki+winebugs(a)gmail.c | |om -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 --- Comment #2 from Sagawa <sagawa.aki+winebugs(a)gmail.com> --- Could you close this issue? This issue is fixed by https://source.winehq.org/git/wine.git/commit/eca2bfd071ea2142f5c4126badb5bc... . -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |eca2bfd071ea2142f5c4126badb | |5bcf923a9a655 Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, this is fixed by commit https://source.winehq.org/git/wine.git/commitdiff/eca2bfd071ea2142f5c4126bad... ("krnl386.exe: Cap GetFreeSpace value to 2GB."). Thank you Sagawa-san --- snip --- $ WINEDEBUG=+seh,+relay,+globalmem wine ./THE_ROCK.EXE >>log.txt 2>&1 ... 0110:Call KERNEL.169: GETFREESPACE(0000) ret=0367:0b09 ds=0697 0110:Call KERNEL32.GlobalMemoryStatus(0141fa38) ret=00689182 0110:Call ntdll.NtGetTickCount() ret=7b02a6a1 0110:Ret ntdll.NtGetTickCount() retval=017ec36e ret=7b02a6a1 0110:Call ntdll.NtGetTickCount() ret=7b02a731 0110:Ret ntdll.NtGetTickCount() retval=017ec36e ret=7b02a731 0110:Call ntdll.NtQuerySystemInformation(00000000,0141f6cc,0000002c,00000000) ret=7b02a747 0110:Ret ntdll.NtQuerySystemInformation() retval=00000000 ret=7b02a747 0110:Call ntdll.NtQuerySystemInformation(00000002,0141f6f8,00000138,00000000) ret=7b02a76f 0110:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION 0110:Ret ntdll.NtQuerySystemInformation() retval=00000000 ret=7b02a76f 0110:Call ntdll.RtlRunOnceExecuteOnce(7b083e38,7b0502d0,00000000,00000000) ret=7b04b6c8 0110:Ret ntdll.RtlRunOnceExecuteOnce() retval=00000000 ret=7b04b6c8 0110:Call ntdll.wcscpy(0141f8e4,7b083e50 L"Service Pack 1") ret=7b050158 0110:Ret ntdll.wcscpy() retval=0141f8e4 ret=7b050158 0110:trace:globalmem:GlobalMemoryStatus Length 32, MemoryLoad 12, TotalPhys ffffffff, AvailPhys ffffffff, TotalPageFile 7fffffff, AvailPageFile 7fffffff, TotalVirtual fffdffff, AvailVirtual fffcffff 0110:Ret KERNEL32.GlobalMemoryStatus() retval=0000009f ret=00689182 0110:Ret KERNEL.169: GETFREESPACE() retval=7fffffff ret=0367:0b09 ds=0697 ... --- snip --- $ wine --version wine-6.2-320-gee4e33ed9ac Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #4 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 6.3. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 Michael Stefaniuc <mstefani(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |6.0.x -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46962 Michael Stefaniuc <mstefani(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|6.0.x |--- --- Comment #5 from Michael Stefaniuc <mstefani(a)winehq.org> --- Removing the 6.0.x milestone from bug fixes included in 6.0.1. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (2)
-
wine-bugs@winehq.org -
WineHQ Bugzilla