https://bugs.winehq.org/show_bug.cgi?id=50502
Bug ID: 50502 Summary: waveInOpen and waveOutOpen do not support the Default Communication Device Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winmm&mci Assignee: wine-bugs@winehq.org Reporter: hans@betafreak.com Distribution: ---
Beginning with Windows 7, the waveOutOpen and waveInOpen functions allow you to pass special flags in place of the device ID in order to access the Default Communication Device - users can set this device separately in the Control Panel to use it for things like phone calls. Several Windows games use this device for voice chat and don't offer other options.
Specifically, in both functions, if the WAVE_MAPPER flag is provided instead of uDeviceID, and the WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE flag is added to fdwOpen, the Default Communication Device is opened. The Default Communication Device is itself supplied in the OnDefaultDeviceChanged callback in IMMNotificationClient.
MSDN references for both: https://docs.microsoft.com/en-us/windows/win32/api/mmeapi/nf-mmeapi-waveouto..., https://docs.microsoft.com/en-us/windows/win32/api/mmeapi/nf-mmeapi-waveinop..., https://docs.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceap...
The current Wine code, as of 6.0, does not make any reference to WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE at all, and its current IMMNotificationClient notification ignores all roles except for eConsole. The ultimate effect of this is that Windows programs that use this API to open the communications device believe that there isn't one and thus fail to make any attached mic available.
https://bugs.winehq.org/show_bug.cgi?id=50502
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |6.0 CC| |z.figura12@gmail.com
--- Comment #1 from Zebediah Figura z.figura12@gmail.com --- Can you please give an example(s) of an affected application?
https://bugs.winehq.org/show_bug.cgi?id=50502
--- Comment #2 from Hans J hans@betafreak.com --- This is a default modus operandi in Unreal Engine 4 games that use voice chat. The free-to-play game Unfortunate Spacemen on Steam is one such example (https://store.steampowered.com/app/408900/Unfortunate_Spacemen/), with the added factor that proximity-based chat is integral to how the game works. This issue manifests in the game as no one being able to hear me speak even when I hold the push-to-talk button and mic audio works in other games.
In order to test that this is a problem with vanilla Wine (and not just Steam Proton), I installed Steam for Windows into Wine and ran the game through it as well, and got the same issue.
I suspect that the issue would also be replicated in Epic's Fortnite and Riot's Valorant, though both of those games have anti-cheat components that make running in Linux impossible as of now.
https://bugs.winehq.org/show_bug.cgi?id=50502
Ben Klopfenstein benklop@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |benklop@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=50502
--- Comment #3 from Ben Klopfenstein benklop@gmail.com --- I believe this is also the case for No Man's Sky. I have never been able to get its built in voice chat working correctly in Linux, and just learned that users with audio issues in Windows are able to solve those by setting the Default Communication Device appropriately.