https://bugs.winehq.org/show_bug.cgi?id=12941
Sergey Isakov isakov-sl@bk.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |isakov-sl@bk.ru
--- Comment #17 from Sergey Isakov isakov-sl@bk.ru --- Confirm crash with pure wine-1.9.3. Backtrace ~~~ Unhandled exception: page fault on read access to 0x000000fc in 32-bit code (0x422f6cf3). Register dump: CS:0017 SS:001f DS:001f ES:001f FS:1007 GS:0037 EIP:422f6cf3 ESP:0033e000 EBP:0033e028 EFLAGS:00010287( R- -- I S - -P-C) EAX:0033e0d4 EBX:422f6cc9 ECX:4230fc10 EDX:000000fc ESI:0019089c EDI:0033e0d4 Stack dump: 0x0033e000: 0033e0d4 4230fc10 0033e030 0033e030 0x0033e010: 0001003c 0033e030 0033e068 41bf9bd2 0x0033e020: 422f6cc9 422f7305 0033e068 422f7316 0x0033e030: 0033e0d4 00000010 41b900d5 41bf8d7f 0x0033e040: 41c486c0 0033e060 0033e078 41bf8e6a 0x0033e050: 00790053 00740073 0033e080 41a78d10 0200: sel=1007 base=7ffc0000 limit=00000fff 32-bit rw- Backtrace: =>0 0x422f6cf3 unsafe_impl_from_IDirectDrawSurface4+0x33() in ddraw (0x0033e028) 1 0x422f7316 ddraw_surface4_AddAttachedSurface+0x25() in ddraw (0x0033e068) 0x422f6cf3 unsafe_impl_from_IDirectDrawSurface4+0x33 in ddraw: call *0x0(%edx) Modules: Module Address Debug info Name (205 modules) PE 400000- a35000 Export msif2000 PE 40001000-401bb000 Deferred libwine.1.dylib ~~~
Meanwhile with my patched wine I got the game working in Direct3d HAL mode. Screenshot attached. I notice that the game works only in virtual desktop 800x600 and options in game set to 800x600 too. AlwaysOffScreen=enabled ddr=opengl RenderingMode=backbuffer UseGLSL=disabled If I set 640x480 the game crash somewhere inside itself after successfully call to d3d_device7_SetViewport() it will not call anything in wine and just crash. May be some interface missing.
I am not sure if this is the key difference ~~~~ void CDECL wined3d_device_set_viewport(struct wined3d_device *device, const struct wined3d_view {
+ if (!device->update_state || !device->cs) { + return; + } ~~~~