http://bugs.winehq.org/show_bug.cgi?id=24326
Summary: Everquest 2 Extended crashes in DSOUND_PrimaryOpen Product: Wine Version: 1.3.2 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
On my PC, I booted into Windows, installed EQ2, booted into Ubuntu 10.04, and then did rm -rf .wine sh winetricks gecko sudo mkdir /media/win sudo mount -o ro /dev/sda1 /media/win cd ~/.wine/drive_c mkdir ProgramData cp -a "/media/win/ProgramData/Sony Online Entertainment" ProgramData cd "ProgramData/Sony Online Entertainment/Installed Games/EverQuest II Extended" wine EverQuest2.exe
This crashed fairly quickly with
Unhandled exception: page fault on read access to 0xb515e5d0 in 32-bit code (0xb515e5d0). Backtrace: =>0 0xb515e5d0 1 SetFormat+0x3a7(This=0x1fcac0, pwfx=<?>) [dlls/winealsa.drv/dsoutput.c:235] 2 SetFormat+0x3a7(This=0xb55babf9, pwfx=<?>) [dlls/winealsa.drv/dsoutput.c:235] 3 IDsDriverImpl_CreateSoundBuffer+0x192(iface=0x1fcaa8, pwfx=0x1fca38, dwFlags=<?>, dwCardAddress=0, pdwcbBufferSize=0x1fc91c, ppbBuffer=0x1fc914, ppvObj=0x1fc910) [dlls/winealsa.drv/dsoutput.c:886] 4 DSOUND_PrimaryOpen+0xa8(device=0x1fc658) [dlls/dsound/primary.c:167] 5 DSOUND_PrimaryCreate+0x3a(device=0x1fc658) [dlls/dsound/primary.c:325] 6 DirectSoundDevice_Initialize+0x744(ppDevice=0x1fc624, lpcGUID=<?>) [dlls/dsound/dsound.c:1473]
Happily, commenting out line 235 in dsoutput.c worked around the crash and let the game play:
--- a/dlls/winealsa.drv/dsoutput.c +++ b/dlls/winealsa.drv/dsoutput.c @@ -232,7 +232,7 @@ static int DSDB_CreateMMAP(IDsDriverBufferImpl* pdbi) snd_pcm_sw_params_set_start_threshold(pcm, sw_params, 0); snd_pcm_sw_params_get_boundary(sw_params, &boundary); snd_pcm_sw_params_set_stop_threshold(pcm, sw_params, boundary); - snd_pcm_sw_params_set_silence_threshold(pcm, sw_params, boundary); + //snd_pcm_sw_params_set_silence_threshold(pcm, sw_params, boundary); snd_pcm_sw_params_set_silence_size(pcm, sw_params, 0); snd_pcm_sw_params_set_avail_min(pcm, sw_params, 0); err = snd_pcm_sw_params(pcm, sw_params);
http://bugs.winehq.org/show_bug.cgi?id=24326
Raymond superquad.vortex2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |superquad.vortex2@gmail.com
--- Comment #1 from Raymond superquad.vortex2@gmail.com 2010-09-23 20:30:02 CDT --- why do dsoutput.c set start_threshold to zero ?
snd_pcm_sw_params_set_start_threshold(pcm, sw_params, 0);
http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m___s_w___params.h...
PCM is automatically started when playback frames available to PCM are >= threshold or when requested capture frames are >= threshold
http://bugs.winehq.org/show_bug.cgi?id=24326
--- Comment #2 from Raymond superquad.vortex2@gmail.com 2010-09-28 21:42:56 CDT --- it is because winealsa.drv ignore the error returned by snd_pcm_sw_params_set_silence_threshold() since silence threshold must be less than the buffer size
the boundary is larger than the buffer size
http://bugs.winehq.org/show_bug.cgi?id=24326
--- Comment #3 from Dan Kegel dank@kegel.com 2010-10-13 11:32:30 CDT --- Still present in today's git.
http://bugs.winehq.org/show_bug.cgi?id=24326
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #4 from Dan Kegel dank@kegel.com 2010-10-15 18:08:25 CDT --- Somebody sent a couple patches, http://www.winehq.org/pipermail/wine-patches/2010-October/094506.html
http://bugs.winehq.org/show_bug.cgi?id=24326
--- Comment #5 from Andrew Eikum aeikum@codeweavers.com 2011-01-10 14:54:56 CST --- Created an attachment (id=32802) --> (http://bugs.winehq.org/attachment.cgi?id=32802) winealsa.drv: Don't set silence sw parameters
This is similar to Yuriy's patches. According to comments above, it seems it should fix the problem, but I don't have EQ2 handy to test with.
http://bugs.winehq.org/show_bug.cgi?id=24326
--- Comment #6 from Dan Kegel dank@kegel.com 2011-01-10 15:43:13 CST --- Thanks, those patches seem to do the trick here.
http://bugs.winehq.org/show_bug.cgi?id=24326
--- Comment #7 from Dan Kegel dank@kegel.com 2011-06-09 16:24:12 CDT --- What happened with those patches?
http://bugs.winehq.org/show_bug.cgi?id=24326
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
--- Comment #8 from Andrew Eikum aeikum@codeweavers.com 2012-05-29 09:25:19 CDT --- This was probably solved by the MMDevAPI rewrite. Retest?
http://bugs.winehq.org/show_bug.cgi?id=24326
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |winealsa.drv
http://bugs.winehq.org/show_bug.cgi?id=24326
Benj benj.callaghan@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |benj.callaghan@gmail.com
--- Comment #9 from Benj benj.callaghan@gmail.com 2013-05-10 18:30:54 CDT --- I can confirm that EQ2 will run without crashing in Wine 1.5.29.
http://bugs.winehq.org/show_bug.cgi?id=24326
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #10 from Bruno Jesus 00cpxxx@gmail.com 2013-05-10 18:53:02 CDT --- (In reply to comment #9)
I can confirm that EQ2 will run without crashing in Wine 1.5.29.
Since other bugs about Everquest have been marked as fixed I'm marking this one as well. Thanks for your effort.
http://bugs.winehq.org/show_bug.cgi?id=24326
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org 2013-05-24 13:32:16 CDT --- Closing bugs fixed in 1.5.31.