[Bug 59209] New: Monster Truck Madness 2 takes very long when loading/leaving a race
http://bugs.winehq.org/show_bug.cgi?id=59209 Bug ID: 59209 Summary: Monster Truck Madness 2 takes very long when loading/leaving a race Product: Wine Version: 11.0-rc4 Hardware: x86-64 URL: https://archive.org/details/MonsterTruckMadness2_1020 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: winehq@mrpowergamerbr.com Regression SHA1: 5a8f7d1f745d3fb8fd48d577103ac5068d3c1746 Distribution: ArchLinux In Monster Truck Madness 2, any Wine version after 2f0401c783bb426bc520fcaae18fb2e17fb3318e takes very long to load a race (Driver Check-in -> GO) and it also takes very long to leave a race (ESC -> End Race). At this point in time, the game does not work with the current Wine version (Wine 11.0-rc4, see https://bugs.winehq.org/show_bug.cgi?id=59203), so to reproduce the bug you will need to apply this patch https://bugs.winehq.org/attachment.cgi?id=80102 to make the game actually work. While the other bug has not been fixed, I've decided to already do the work of bisecting the issue to figure out what is causing the bug. To reproduce: * Build Wine 2f0401c783bb426bc520fcaae18fb2e17fb3318e + patch * Build Wine 5a8f7d1f745d3fb8fd48d577103ac5068d3c1746 + patch * Install the game trial version with Wine * Run the game's main executable (Monsterx.EXE) with Wine 2f0401c783bb426bc520fcaae18fb2e17fb3318e + patch, pay attention to how long the game takes to load into a course or when leaving a race * Run the game's main executable (Monsterx.EXE) with Wine 5a8f7d1f745d3fb8fd48d577103ac5068d3c1746 + patch, pay attention to how long the game takes to load into a race or when leaving a race The 2f0401c783bb426bc520fcaae18fb2e17fb3318e version is how the game should take to start/end a race, while 5a8f7d1f745d3fb8fd48d577103ac5068d3c1746 takes a stupidly long time to load and leave a race. This video also demonstrates the issue. The video was made for the bug https://bugs.winehq.org/show_bug.cgi?id=59203, but you can see how the game loaded way quicker on older Wine versions compared to the new version: https://youtu.be/ESd-EBFQu68 While debugging the issue, I found out that removing the entire "if (spec->type == SPEC_WIN16)" block from the `tools/winebuild/spec32.c` fixes the slowdown. Demo Version (override the Windows Version to "Windows NT 4.0"): https://archive.org/details/MonsterTruckMadness2_1020 -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 Leonardo (MrPowerGamerBR) <winehq@mrpowergamerbr.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, regression -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 Leonardo (MrPowerGamerBR) <winehq@mrpowergamerbr.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |59203 -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 Bernhard Übelacker <bernhardu@mailbox.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu@mailbox.org --- Comment #1 from Bernhard Übelacker <bernhardu@mailbox.org> --- This wait time might be related to a 16-bit process, that gets started by Monsterx.EXE: C:\windows\syswow64\winevdm.exe --app-name C:\windows\system32\dispdib.dll C:\windows\system32\DISPDIB.DLL At least the first seems to be needed. On following runs killing that process makes the game to continue. Further inspecting the thread that starts the subprocess shows this: 1016539.057:0148:014c:Call KERNEL32.LoadModule(0064a07c "DISPDIB.DLL",0031fd40) ret=0053769e ... 1016539.057:0148:014c:trace:unixpid:CreateProcessInternalW app L"C:\\windows\\system32\\DISPDIB.DLL" cmdline L"C:\\windows\\system32\\DISPDIB.DLL " :527 ... 1016539.113:0148:014c:Ret ntdll.RtlFreeUnicodeString() retval=00000000 ret=7b6c1c3c 1016569.114:0148:014c:Ret KERNEL32.LoadModule() retval=00000021 ret=0053769e So the LoadModule call takes 30 seconds, which looks kind of intentional: 149 if (CreateProcessA( filename, cmdline, NULL, NULL, FALSE, 0, 150 params->lpEnvAddress, NULL, &startup, &info )) 151 { 152 /* Give 30 seconds to the app to come up */ 153 if (wait_input_idle) wait_input_idle( info.hProcess, 30000 ); But still not sure, maybe there is some event missing from DISPDIB to the parent process. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 --- Comment #2 from Bernhard Übelacker <bernhardu@mailbox.org> --- Because wine's dispdib.dll seems to be a stub only (and it looks suspicious this dll gets started as new process), a workaround seems to simply rename the .wine/syswow64/dispdib.dll. The first run in a new prefix always hangs here, but following runs seem to work without the 30 second break. When ending the game the Monsterx.exe hangs eating CPU, so needs to be separately killed. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 Dmitry Timoshkov <dmitry@baikal.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #3 from Dmitry Timoshkov <dmitry@baikal.ru> --- Is this fixed by b0a00f3af394e37273558273dfe6ec22c2afa776? -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 Bug 59209 depends on bug 59203, which changed state. Bug 59203 Summary: Monster Truck Madness 2 crashes with "double free detected" http://bugs.winehq.org/show_bug.cgi?id=59203 What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 Alexandre Julliard <julliard@winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |b0a00f3af394e37273558273dfe | |6ec22c2afa776 --- Comment #4 from Alexandre Julliard <julliard@winehq.org> --- Fixed. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 --- Comment #5 from Leonardo (MrPowerGamerBR) <winehq@mrpowergamerbr.com> --- Can confirm that this was fixed, thanks everyone! :) -- 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.
http://bugs.winehq.org/show_bug.cgi?id=59209 Alexandre Julliard <julliard@winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #6 from Alexandre Julliard <julliard@winehq.org> --- Closing bugs fixed in 11.0-rc5. -- 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 (1)
-
WineHQ Bugzilla