http://bugs.winehq.org/show_bug.cgi?id=15074
Summary: System Shock 2: randomly disappearing sound (esp. when loading level) Product: Wine Version: CVS/GIT Platform: PC URL: http://www.download.com/System-Shock-2-demo/3000-7539_4- 10031250.html OS/Version: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: directx-dsound AssignedTo: wine-bugs@winehq.org ReportedBy: alexd4@inbox.lv CC: m.b.lankhorst@gmail.com
In recent builds sound started disapppearing randomly in SS2 (retail version 2.3). It's semi-random but with a reasonable consistence it can be produced by entering-quitting menu (from the actual game level) or when going into "loading zones" between levels.
This isn't occuring in wine-1.1.2. I did a regression test and got this:
2cd620802a3a7a1011a89c301270737ac1a1cfe5 is first bad commit commit 2cd620802a3a7a1011a89c301270737ac1a1cfe5 Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Fri Aug 8 20:50:02 2008 +0200
winealsa.drv: Add ability to recover from underruns to directsound driver.
Fixes handling of buffer underruns that might still occur.
Makes sense to me, because the moments when the bug occurs are the mostl likely to cause a CPU-load spike and buffer underruns. After reverting the patch, I don't get the problem any more in current git.
There is a demo for the game, I added it to URL, but, unfortunately, the problem is not as readily reproducible there as it is with full retail version, for unknown reason (sound does seem to disappear sometimes after going to and from menu / sound settings).
http://bugs.winehq.org/show_bug.cgi?id=15074
--- Comment #1 from Alexander Dorofeyev alexd4@inbox.lv 2008-08-30 13:49:42 --- Update about demo: actually it IS reproducible there, but for some reason not when the very first loading happens. But I just reproduced it 2 out of 2 times by going to the first mission. Steps to reproduce:
Start a New game You spawn in the "recruitment facility", go forward to the lift up Enter the recruitment facility building Enter door to the right ("advanced training") Skip all training sections and go to the door to the left Enter the "Navy" shuttle bay door --Loading screen-- You appear on the VonBraun ship. At this moment sound disappeared.
http://bugs.winehq.org/show_bug.cgi?id=15074
--- Comment #2 from Austin English austinenglish@gmail.com 2008-08-31 00:18:56 --- A +alsa trace would probably help...
http://bugs.winehq.org/show_bug.cgi?id=15074
--- Comment #3 from Alexander Dorofeyev alexd4@inbox.lv 2008-08-31 06:59:20 --- The actual debug channel for that file seems to be dsalsa. I'll try to get a log. I did notice a suspicious detail when messing with debug outputs. During normal operation, "writepos" appears to always be in front of "playpos", which makes sense as buffer should be filled in front of play position. E.g.:
err:dsalsa:IDsDriverBufferImpl_GetPosition hw_pptr=0x000002f0, hw_wptr=0x00001510 playpos=3008, writepos=21568 err:dsalsa:IDsDriverBufferImpl_GetPosition hw_pptr=0x000004cf, hw_wptr=0x000016f0 playpos=4924, writepos=23488 err:dsalsa:IDsDriverBufferImpl_GetPosition hw_pptr=0x000006af, hw_wptr=0x000018cf playpos=6844, writepos=25404
But after the sound disappears, writepos is trailing playpos, e.g.:
err:dsalsa:IDsDriverBufferImpl_GetPosition hw_pptr=0x0000031f, hw_wptr=0x00000140 playpos=3196, writepos=1280 err:dsalsa:IDsDriverBufferImpl_GetPosition hw_pptr=0x000004ff, hw_wptr=0x0000031f playpos=5116, writepos=3196 err:dsalsa:IDsDriverBufferImpl_GetPosition hw_pptr=0x000006df, hw_wptr=0x000004ff playpos=7036, writepos=5116
Maybe that's the problem.
http://bugs.winehq.org/show_bug.cgi?id=15074
--- Comment #4 from Alexander Dorofeyev alexd4@inbox.lv 2008-08-31 07:05:41 --- Created an attachment (id=15760) --> (http://bugs.winehq.org/attachment.cgi?id=15760) +dsalsa log
+dsalsa log. Program terminated by CTRL+C shortly after level finished loading and the sound went off.
http://bugs.winehq.org/show_bug.cgi?id=15074
Alexander Dorofeyev alexd4@inbox.lv changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #5 from Alexander Dorofeyev alexd4@inbox.lv 2008-09-04 09:31:14 --- Can't reproduce in current git. I guess this one did it:
commit 6e90756307bfd5aa6ce2207f9419dabd26f46ec6 Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Thu Sep 4 12:07:37 2008 +0200
winealsa.drv/dsound: Handle underruns better.
Thanks Maarten! :)
http://bugs.winehq.org/show_bug.cgi?id=15074
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org 2008-09-05 10:39:42 --- Closing bugs fixed in 1.1.4.
http://bugs.winehq.org/show_bug.cgi?id=15074
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified