http://bugs.winehq.org/show_bug.cgi?id=27087
--- Comment #8 from Jörg Höhle hoehle@users.sourceforge.net 2011-05-24 16:10:39 CDT --- Could you replace Starfury Demo\Sounds\UIButtonPress.wav with something that plays longer (> 0.5 seconds) and retry? Please replace all short .wav file from the app with long ones and retry.
Also, what happens if you set win.ini[Sounds] to one of those very short files and issue the MCI sound command a few times?
Your log shows that ALSA is given initial data but it seems to never start playing, although Wine sets start_threshold to 1 in waveout.c:wodOpen.
Your log reveals this selection of parameters ALSA_TraceParameters access=MMAP_INTERLEAVED ALSA_TraceParameters format=S16_LE ALSA_TraceParameters channels=2 ALSA_TraceParameters buffer_size=5644 ALSA_TraceParameters rate=44100 ALSA_TraceParameters buffer_time=127981 # near 120000 Wine asked for ALSA_TraceParameters periods_min=5 periods_max=7 ALSA_TraceParameters period_size=940 ALSA_TraceParameters period_time=21333 # near 22000
Note that 21333 is exactly 1024 samples at 48000 per second -- an indication that dmix is resampling from 44100 to 48000?
The first (and only) write yields: wodWrite (0, 0x1401f20, 00000020); wodPlayer_ProcessMessages Received WINE_WM_HEADER 1401f20 wodPlayer_FeedDSP Setting time to elapse for 0x1401f20 to 1088 wodPlayer_WriteMaxFrags Writing wavehdr 0x1401f20.0[1088] wodPlayer_WriteMaxFrags dwWrittenTotal=1088 wodPlayer_NotifyCompletions still playing 0x1401f20 (1088/0) wodPlayer waiting 6ms (21,6)
The last 2 lines repeat N times as Wine wakes up every 6ms but never sees completion from ALSA. What does snd_pcm_avail_update() yield in wodPlayer_FeedDSP? Perhaps Wine should get an underrun because it does not send more data?
Of course, all this ALSA specific stuff does not answer the question why your machine hangs and mine (lspci -v: Intel Corporation 82801F... (ICH6 Family) AC'97 Audio Controller (rev 03)) does not.
What happens if you replace snd_pcm_avail_update() in winealsa/waveout.c:wodPlayer_FeedDSP with snd_pcm_avail()?