[Bug 32326] New: DirectSound output in SNES9x gives crackling/glitchy audio
wine-bugs at winehq.org
wine-bugs at winehq.org
Thu Nov 29 09:41:45 CST 2012
http://bugs.winehq.org/show_bug.cgi?id=32326
Bug #: 32326
Summary: DirectSound output in SNES9x gives crackling/glitchy
audio
Product: Wine
Version: 1.5.18
Platform: x86-64
URL: http://files.ipherswipsite.com/snes9x/snes9x-1.53-win3
2.zip
OS/Version: Linux
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: directx-dsound
AssignedTo: wine-bugs at winehq.org
ReportedBy: markk at clara.co.uk
Classification: Unclassified
This bug applies to the SNES9x Super NES emulator. I'm testing with Wine
1.5.18-72-g0c0b229, Lubuntu 11.10 x86-64, Nvidia driver 304.64, SNES9x 1.53.
(I set the bug component to directx-dsound, but that might not be correct.)
Sound output using DirectSound is very CPU-intensive, and the sound
crackles/glitches. Or rather, something about the sound output takes a
relatively long time. According to "top" the CPU usage of SNES9x itself doesn't
go through the roof with sound enabled.
Emulation speed easily reaches 60fps with sound output disabled. On native
Windows that's the case with DirectSound output (as opposed to the default is
enabled too. CPU usage with sound disabled is ~26%.
However on Wine with 48kHz DirectSound output the frame rate I see drops to
~45fps, CPU usage in top ~24% (lower usage because fewer frames per second are
being emulated). If I disable the "Sync Sound" option frame rate returns to
60fps, ~30% CPU, but the sound still crackles.
That's with the default buffer length of 64ms. Increasing that to 210ms helps a
bit; I get 60fps even with Sync Sound enabled, though the sound still crackles.
Decreasing buffer length to 16ms I get about 10fps with Sync Sound enabled.
I don't think this problem is due to my hardware; other sound-producing
programs like Audacious, flash plugin etc. seem to be fine. And by comparison,
the Nestopia NES emulator in Wine produces (almost) glitch-free sound
regardless of the program's latency setting.
$ lspci -vv -s00:1b.0
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio
Controller (rev 03)
Subsystem: Lenovo Device 384e
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 47
Region 0: Memory at fc300000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: HDA Intel
Kernel modules: snd-hda-intel
To hopefully reproduce the issue:
- Download and unzip SNES9x
- Download a ROM image, e.g. from
http://pdroms.de/files/supernintendoentertainmentsystem/skipp-and-friends-pdrc-v4-01
- Run SNES9x. Choose Sound->Settings... and change Sound Driver to Snes9x
DirectSound and Playback Rate to 48 KHz. (Selecting any other rate causes a
crash for me, see bug 32312.)
- Select Video->Display Configuration... and change Output Method to
DirectDraw. (The default Direct3D just gives a blank screen, see bug 32319.)
- Select File->Load Game... and choose the ROM image.
- You should see graphics in the window and hear crackling/glitching sound.
- In the sound settings, you can experiment with changing the buffer length and
toggling the "Synchronize with sound core" option. I couldn't find any
combination which gave artifact-free sound.
For a +dsound log see the one I uploaded for bug 32312 at
http://bugs.winehq.org/attachment.cgi?id=42668
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list