http://bugs.winehq.org/show_bug.cgi?id=28616
Bug #: 28616 Summary: Plants vs Zombies: no music Product: Wine Version: 1.3.29 Platform: x86 URL: http://www.fileplanet.com/199524/190000/fileinfo/Plant s-vs-Zombies-Demo OS/Version: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: directx-dsound AssignedTo: wine-bugs@winehq.org ReportedBy: gyebro69@gmail.com CC: aeikum@codeweavers.com Classification: Unclassified Regression SHA1: e786998daff4ad49521a4c9c39c172ddcdcad82a
Created attachment 36766 --> http://bugs.winehq.org/attachment.cgi?id=36766 plain terminal output
Background music is not playing in Plants vs. Zombies, only sound effects can be heard. Can be reproduced in the demo too: music should be playing during the initial loading stage as well as in mid-game.
This is due to
e786998daff4ad49521a4c9c39c172ddcdcad82a is the first bad commit commit e786998daff4ad49521a4c9c39c172ddcdcad82a Author: Andrew Eikum aeikum@codeweavers.com Date: Tue Sep 27 08:51:07 2011 -0500
dsound: Reimplement rendering devices on mmdevapi.
:040000 040000 53407fdfd9131c99d768c90eeda5dadc66a63abb af37caec04c5e8abedfd395abcd88a16e71a3b85 M dlls
wine-1.3.29-245-g895b48e Fedora 15 x86 Alsa 1.0.24 Kernel 2.6.40.6-0.fc15.i686.PAE Pulseaudio is not running
http://bugs.winehq.org/show_bug.cgi?id=28616
--- Comment #1 from GyB gyebro69@gmail.com 2011-10-08 02:07:47 CDT --- Created attachment 36767 --> http://bugs.winehq.org/attachment.cgi?id=36767 7zipped +tid,+winmm,+mmdevapi,+dsound,+alsa,+midi log (uncompressed 12 MB)
The log was created by launching the game and waiting until the main menu appears.
http://bugs.winehq.org/show_bug.cgi?id=28616
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, regression
http://bugs.winehq.org/show_bug.cgi?id=28616
--- Comment #2 from Andrew Eikum aeikum@codeweavers.com 2011-10-20 10:23:41 CDT --- Created attachment 37022 --> http://bugs.winehq.org/attachment.cgi?id=37022 dsound: Always enumerate the default device first
The problem was PvZ chooses the first device given by DirectSoundEnumerate() as its music output device, instead of using DSDEVID_DefaultPlayback as it probably wants. On MMDevAPI-enabled Windows versions, the first device given to the DSEnumerate() callback is actually the default device. You can swap around the default device on Windows and confirm that by re-running the dsound tests.
Anyways, here's a patch which makes the first device given to the callback be the default one. It fixes this bug for me.
http://bugs.winehq.org/show_bug.cgi?id=28616
--- Comment #3 from GyB gyebro69@gmail.com 2011-10-20 13:40:07 CDT --- (In reply to comment #2)
Created attachment 37022 [details] dsound: Always enumerate the default device first
The problem was PvZ chooses the first device given by DirectSoundEnumerate() as its music output device, instead of using DSDEVID_DefaultPlayback as it probably wants. On MMDevAPI-enabled Windows versions, the first device given to the DSEnumerate() callback is actually the default device. You can swap around the default device on Windows and confirm that by re-running the dsound tests.
Anyways, here's a patch which makes the first device given to the callback be the default one. It fixes this bug for me.
I couldn't apply the patch neither on the current git (wine-1.3.30-293-g7fa15c5) nor on 1.3.30:
patching file dlls/dsound/dsound_main.c patching file dlls/dsound/tests/dsound8.c Hunk #3 succeeded at 943 with fuzz 2 (offset -109 lines). Hunk #4 FAILED at 1135. 1 out of 4 hunks FAILED -- saving rejects to file dlls/dsound/tests/dsound8.c.rej
http://bugs.winehq.org/show_bug.cgi?id=28616
--- Comment #4 from Andrew Eikum aeikum@codeweavers.com 2011-10-20 13:47:47 CDT --- I'm sorry, that patch was built on top of the patch currently in the wine-patches queue. It should apply after today's commit round, assuming that patch gets in. In any case, those patch failures are just in the tests, so you should be able to build and test dsound anyway.
http://bugs.winehq.org/show_bug.cgi?id=28616
--- Comment #5 from GyB gyebro69@gmail.com 2011-10-20 13:55:56 CDT --- (In reply to comment #4)
I'm sorry, that patch was built on top of the patch currently in the wine-patches queue. It should apply after today's commit round, assuming that patch gets in. In any case, those patch failures are just in the tests, so you should be able to build and test dsound anyway.
Ah...indeed. I compiled the source of wine-1.3.30-293-g7fa15c5 without the tests, and now I can confirm that the patch fixes the problem: music works again in PvZ.
http://bugs.winehq.org/show_bug.cgi?id=28616
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |chemacg@gmail.com
--- Comment #6 from Andrew Eikum aeikum@codeweavers.com 2011-10-20 14:03:16 CDT --- *** Bug 28728 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=28616
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |c8c6cc97bcaab5441ea200041bb | |7cc99c4ba01fb Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #7 from Andrew Eikum aeikum@codeweavers.com 2011-10-21 11:03:11 CDT --- Fixed by c8c6cc97bcaab5441ea200041bb7cc99c4ba01fb. Thanks everyone for reporting & testing.
http://bugs.winehq.org/show_bug.cgi?id=28616
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org 2011-10-21 13:49:25 CDT --- Closing bugs fixed in 1.3.31.
http://bugs.winehq.org/show_bug.cgi?id=28616
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |josh+wine@iswifter.net
--- Comment #9 from Austin English austinenglish@gmail.com 2011-10-22 12:19:01 CDT --- *** Bug 28833 has been marked as a duplicate of this bug. ***