http://bugs.winehq.org/show_bug.cgi?id=28207
--- Comment #8 from Michael Stefaniuc mstefani@redhat.com 2011-08-29 03:15:45 CDT --- Yeah, with the help of Maarten I figure out what went wrong. The game is buggy and does something like this: primary->lpVtbl.GetStatus(secondary, &status) aka calling the GetStatus method of the primary IDirectSoundBuffer object on the secondary IDirectSoundBuffer object. This works on Windows because there is only one IDirectSoundBuffer implementation there and thus the vtbls are the same.
I have submitted a test case for this http://source.winehq.org/patches/data/78080 but a proper fix will take some time.