http://bugs.winehq.org/show_bug.cgi?id=3771
Summary: Grim Fandango sound buffer underruns (+ crashes) Product: Wine Version: 0.9 Platform: Other OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-directx-dsound AssignedTo: wine-bugs@winehq.org ReportedBy: darkvater@operamail.com
Specs: AMD 1.3GHz with 1024MB SDRAM, SUSE9.3, NVidia FX5600, 7676 drivers.
During gameplay I get a LOT of fixme/warning messages such as: err:dsound:DSOUND_MixOne underrun on sound buffer 0x40434cf0 fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=18432 < p rimary_done=19600)
Usually the game also crashes randomly when too many of these pile up (I think that's when it happens), and also on game-exit. Running a winedgb on the process gives me:
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=18432 < primary_done=19600) err:dsound:DSOUND_MixOne underrun on sound buffer 0x404142d8 err:dsound:DSOUND_MixOne underrun on sound buffer 0x404142d8 First chance exception: page fault on read access to 0x458cfd2c in 32-bit code (0x00473c87). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:00473c87 ESP:406cfd50 EBP:00000001 EFLAGS:00010206( - 00 - RIP1) EAX:46fecbcd EBX:458d082e ECX:00000000 EDX:0000000a ESI:0000000a EDI:458cfd2c Stack dump: 0x406cfd50: 469d564c 45031c1c 00001464 469d751c 0x406cfd60: 00473a6e 00474c03 458d003c 46fec8c4 0x406cfd70: 00001987 469d7528 0048674d 469d751c 0x406cfd80: 45031c1c 469d564c 469d5538 008a4540 0x406cfd90: 00000000 004aa2bd 469d751c 469d5538 0x406cfda0: 469d552c 00000000 468a2428 004aa5c8 Backtrace: =>1 0x00473c87 in grimfandango (+0x73c87) (0x00000001) 2 0x00000000 (0x00000000) 0x00473c87: movb 0x0(%edi),%dl Wine-dbg>
When I am quitting the game manually; eg no crashes wine crashes nonetheless giving: err:dsound:DSOUND_MixOne underrun on sound buffer 0x4040f8a0 First chance exception: page fault on read access to 0x00000008 in 32-bit code (0x417db951). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:417db951 ESP:406cf69c EBP:406cf6ec EFLAGS:00010246( - 00 -RIZP1) EAX:00000000 EBX:417f36ac ECX:00000000 EDX:403fe820 ESI:00000030 EDI:00000003 Stack dump: 0x406cf69c: 401a0513 40360000 00000000 41836ba4 0x406cf6ac: 00000000 41836ba4 00000000 417d118e 0x406cf6bc: 417d0f4a 41818cbb 40360000 00000002 0x406cf6cc: 403fe838 00000001 008476f4 403fe650 0x406cf6dc: 00000001 00000001 00000030 00000003 0x406cf6ec: 00000000 004c0fe8 403fe820 00000000 Backtrace: =>1 0x417db951 in dsound (+0x1b951) (0x406cf6ec) 2 0x004c0fe8 in grimfandango (+0xc0fe8) (0x00000000) 0x417db951: movl 0x8(%eax),%edi Wine-dbg>
And that's all. I am running in software mode because 3D accelerated OpenGL is just slow as hell. Probably: err:ddraw:set_render_state Unhandled dwRenderStateType D3DRENDERSTATE_MONOENABLE (0000000b) value : 00000000 ! Warning : application does direct locking of ZBuffer - expect slowdowns on many GL implementations :-) has something to do with it. I tried running with sound turned off (winecfg) but then I can't even start GrimFandango. In the console I get: fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16 fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or DDBLT_ASYNC: can 't handle right now. fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x403e74f0)->(0x1005c,00000051) fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x403e74f0)->(0x1005c,00000011) fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x403e74f0)->(0x1005c,00000008) fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x403e74f0)->(0x1005c,00000011) fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16 and the game pops up: "Please make sure you are not running any other DirectX apps that make exclusive control of your hardware".
So I'm kinda dead here. Cedega has the same problems; only there 3D seems a tiny bit faster.