[Wine] Page fault and then a hang. Any ideas?

dk wineforum-user at winehq.org
Sun May 29 23:15:08 CDT 2011


Hi everyone!

I need some help with a page fault that occurs in Phantasy Star Online: Blue Burst. 

The annoying thing is that the page fault seems to cause the game to hang  so the debug log is limited (I have to forcibly terminate the program with System Monitor).

Here's what I do have:


Code:
fixme:imm:ImmDisableIME (0): stub
fixme:imm:ImeHandleNotify WM_IME_NOTIFY:IMN_SETCOMPOSITIONWINDOW
fixme:imm:NotifyIME IMC_SETCANDIDATEPOS
fixme:imm:ImeHandleNotify WM_IME_NOTIFY:IMN_SETCANDIDATEPOS
fixme:wininet:INET_QueryOption INTERNET_OPTION_PER_CONNECTION_OPTION stub
fixme:wininet:INET_QueryOption Unhandled dwOption 4
fixme:wininet:INET_QueryOption Unhandled dwOption 5
fixme:win:EnumDisplayDevicesW ((null),0,0xd6e2cc,0x00000000), stub!
fixme:d3d:swapchain_init Add OpenGL context recreation support to context_validate_onscreen_formats
fixme:d3d:wined3d_swapchain_set_gamma_ramp Ignoring flags 0x1.
fixme:wininet:CommitUrlCacheEntryInternal entry already in cache - don't know what to do!
fixme:d3d8:ValidatePixelShader (0xc69350 (nil) 1 0xd6e388): stub
wine: Unhandled page fault on read access to 0x00000004 at address 0x7bc472f0 (thread 0024), starting debugger...
err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main process heap section" wait timed out in thread 0021, blocked by 0024, retrying (60 sec)



It doesn't tell me very much other than a page fault occurred and the start of the hang (RtlpWaitForCriticalSection?). I'd like to know what I can do to get more useful information out of this crash.

For reference the dll's the game imports are:

Code:
advapi32.dll 
d3d8.dll 
dinput8.dll 
dsound.dll 
gdi32.dll 
imm32.dll 
kernel32.dll 
shell32.dll 
snmpapi.dll 
user32.dll 
winmm.dll 
ws2_32.dll 
wsock32.dll




The current theory is that the page fault is caused by Wine's Direct3D implementation. Specifically d3d8.dll based primarily on the fact that the game hangs at the same spot when run under VirtualBox (where most of the other dlls are all native). The rendering glitches that occur (when under Linux) when moving an open window across the window containing the hung game also seems to support that it's a  graphics rendering issue.

The point where the game hangs is during a loading screen immediately after selecting a character to play. On a working Windows machine the loading screen usually takes about 7-8 seconds when afterwards you are presented with a ship/lobby selection menu. The background of that menu is actually the full 3D lobby level which your character will be taken to once a ship and lobby are selected. The loading between that menu and  appearing in the lobby is less than a second so I'm pretty sure all of the assets (3D geometry, textures, sounds) are loaded during that long 7-8 second wait. The point at where the game crashes (and hangs) appears to be exactly at the point where the loading screen switches to the ship/lobby menu. There has been 3D that has worked in the game before but it's been limited (character models over a static background) The 3D background of the lobby is much more involved and similar to the levels later in the game. (lighting, effects, etc..)

That last paragraph was mainly to describe the context of when the error occurs for people that may not have tried the game before.

The server that the game connects to has been released as open source. That, in addition to the fact that the game had modest requirements (being released in 2004) makes this a great candidate to get running under Wine. The current page fault is a big problem that's preventing us from making progress so if you have any suggestions they would be greatly appreciated!

Thanks for reading!







More information about the wine-users mailing list