https://bugs.winehq.org/show_bug.cgi?id=39337
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW URL| |http://www.clubic.com/telec | |harger-le-fichier-1965-0-de | |mo-jouable.html CC| |focht@gmx.net Component|-unknown |directx-d3d Summary|Legacy of Kain: Soul Reaver |Legacy of Kain: Soul Reaver |- game crashes at start |crashes at intro video when | |being run in desktop | |resolution > 640x480 Ever confirmed|0 |1
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming. This seems to be an old ddraw based game.
There is a launch dialog which allows to select game resolution from a number of available desktop resolutions.
Trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Eidos Interactive/Soul Reaver Demo
$ WINEDEBUG=+tid,+seh,+relay,+snoop wine ./kain2.exe >>log.txt 2>&1 ... 0029:RET winstr.Streamer_InitStreaming() retval=00000000 ret=10002148 ... 0029:RET winplay.Player_InitMoviePlayback() retval=00000000 ret=0047db27 0029:CALL winplay.Player_StartTimer(01e41360) ret=0047db3e 0029:Call KERNEL32.QueryPerformanceCounter(0033f700) ret=10002e1f 0029:Ret KERNEL32.QueryPerformanceCounter() retval=00000001 ret=10002e1f 0029:Call KERNEL32.QueryPerformanceCounter(0033f700) ret=10002e1f 0029:Ret KERNEL32.QueryPerformanceCounter() retval=00000001 ret=10002e1f 0029:Call KERNEL32.SetPriorityClass(ffffffff,00000080) ret=10001fb7 0029:Ret KERNEL32.SetPriorityClass() retval=00000001 ret=10001fb7 0029:RET winplay.Player_StartTimer() retval=00000000 ret=0047db3e 0029:CALL winplay.Player_BlankScreen(00000000,00000000,00000400,00000300) ret=0047db7e 0029:Call wined3d.wined3d_mutex_lock() ret=7ea0a7fd 0029:Ret wined3d.wined3d_mutex_lock() retval=00000000 ret=7ea0a7fd 0029:Call wined3d.wined3d_mutex_unlock() ret=7ea0a893 0029:Ret wined3d.wined3d_mutex_unlock() retval=00000000 ret=7ea0a893 0029:Call wined3d.wined3d_mutex_lock() ret=7ea039cb 0029:Ret wined3d.wined3d_mutex_lock() retval=00000000 ret=7ea039cb 0029:Call wined3d.wined3d_surface_map(00172ff8,0033f5cc,00000000,00000000) ret=7ea03ae4 0029:Ret wined3d.wined3d_surface_map() retval=00000000 ret=7ea03ae4 0029:Call user32.SetRect(00147e80,00000000,00000000,00000280,000001e0) ret=7ea03bb6 0029:Ret user32.SetRect() retval=00000001 ret=7ea03bb6 0029:Call wined3d.wined3d_mutex_unlock() ret=7ea03ce3 0029:Ret wined3d.wined3d_mutex_unlock() retval=00000000 ret=7ea03ce3 0029:trace:seh:raise_exception code=c0000005 flags=0 addr=0x10002d51 ip=10002d51 tid=0029 0029:trace:seh:raise_exception info[0]=00000001 0029:trace:seh:raise_exception info[1]=033af000 0029:trace:seh:raise_exception eax=00000000 ebx=00000300 ecx=000001e2 edx=00000117 esi=00000400 edi=000005d2 0029:trace:seh:raise_exception ebp=033aea30 esp=0033f700 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010206 0029:trace:seh:call_stack_handlers calling handler at 0x4dbe68 code=c0000005 flags=0 0029:Call KERNEL32.OutputDebugStringA(004f5658 "Oops. Crash.\n") ret=00477c66 --- snip ---
Regardless of initial virtual desktop resolution and selected resolution from the launcher dialog, it switches to 640x480 16bpp for video playback. Unfortunately it uses the desktop resolution for blanking the screen. With resolutions being > 640x480 this writes past the allocated surface/buffer, causing page fault.
The following works around (or any lower resolution available):
--- snip --- $ wine explorer /desktop=foo,640x480 ./kain2.exe --- snip ---
The game will switch to desired resolution selected from launch dialog after playing the intro video in 640x480.
Regards