http://bugs.winehq.org/show_bug.cgi?id=21801
Summary: 3D Rad demo "BeltBall" (and others) crash on exit Product: Wine Version: 1.1.39 Platform: x86 URL: http://www.3drad.com/games/BeltBall%20v102.exe OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
The smallest demo from http://www.3drad.com/free-pc-games.php is the 8MB http://www.3drad.com/games/BeltBall%20v102.exe, sha1sum d8827274480b0391ad200478b2ebe26a2658166d BeltBall v102.exe Runs great on Vista. It installs fine; to run it, to get past bug 21790 by doing 'winetricks vcrun2005'.
The next problem is a crash related to d3dx9_36.D3DXAssembleShaderFromResourceW, roughly bug 12020. Work around this with 'winetricks d3dx9'.
The next problem is that full-screen mode doesn't work (bug 21791). Work around this by telling the game to run in a window.
Let the game start, then quit. It will crash after shutting down.
This affects all the demo games at that site, not just this one, but the reported error seems to vary by game.
+relay is really slow, so I had to use [HKEY_CURRENT_USER\Software\Wine\Debug] "RelayExclude"="ntdll.RtlEnterCriticalSection;ntdll.RtlLeaveCriticalSection;kernel32.48;kernel32.49;kernel32.94;kernel32.95;kernel32.96;kernel32.97;kernel32.98;RtlAllocateHeap;msvcrt.isxdigit;KERNEL32.GetProcessHeap;msvcrt.isalnum;KERNEL32.CompareStringA;msvcrt.isspace;RtlAllocateHeap;msvcrt.isxdigit;KERNEL32.GetProcessHeap;msvcrt.isalnum;KERNEL32.CompareStringA;msvcrt.isspace;msvcrt.realloc;msvcrt.isalpha;msvcrt.??3@YAXPAX@Z;msvcrt.??2@YAPAXI@Z;msvcrt.isdigit;msvcrt.malloc;msvcrt.free;ntdll.RtlFreeHeap;KERNEL32.TlsGetValue;wined3d.wined3d_mutex_lock;wined3d.wined3d_mutex_unlock;user32.PeekMessageW;KERNEL32.GetTickCount;KERNEL32.lstrlenA"
to get a log of the end. (This was arrived at by starting the game, quitting after ten seconds, analyzing the log with tail -n 10000 log | grep Call|sed 's/(.*//;s/.*Cal| sort | uniq -c | sort -n | awk '$1 > 200 {print $2}' | tr '\012' ';' && echo "" adding that to the registry key, and repeating until the game ran fast enough.)
According to the log I got, the game shuts down and all the dlls (including ntdll) detach... then for some reason the game tries to start again, and crashes very quickly.