ValveSoftware / wine

Wine with a bit of extra spice
Other
1.28k stars 242 forks source link

[XAudio2] FAudio support #2

Closed flibitijibibo closed 5 years ago

flibitijibibo commented 6 years ago

So now that this is out in the wild...

FAudio is a new, accuracy-focused reimplementation of XAudio2 and its relative libraries (such as X3DAudio, XACT, and XAPO). Part of this work includes a COM wrapper that mimics the Windows XAudio2 DLLs, allowing Windows games to use FAudio for audio support instead. This is known to work on both Windows and Wine for 32- and 64-bit, and both @JohanSmet and @aeikum have been putting in work to make it more compatible with the whole range of XAudio2 versions.

At the moment Wine is reimplementing XAudio2 with OpenAL Soft, and the other libraries (including X3DAudio) are currently stubbed. In addition to the feature gaps, there are also various accuracy issues that come from wrapping a low-level audio API around a high-level API (as we found ourselves while making FNA, hence the creation of FAudio).

The idea is that FAudio would both fill in large gaps left by the current Wine implementation as well as make the existing implementation much more accurate, and in a perfect world, remove the need for the DX redist for audio support.

Andrew has been leading the charge with Wine compatibility lately so I'll let him drive this thread, but the main things that Wine cares about:

LinuxUser404 commented 5 years ago

This might impact The Darkness II. Using "winetricks xact xact_july2010"(though xact_july2010 is probably redundant) solves all audio issues in the game with the most recent version of wine (wine-4.0). It is also worth noting that the game runs with wine out of the box though fails to start with "Steam Play".

The game might make it to platinum rating if the audio problems were solved without winetrick and the following patch(that fixes and old "missing textures" bug) made it to wine: https://bugs.winehq.org/attachment.cgi?id=54454&action=diff

kisak-valve commented 5 years ago

Hello @LinuxUser404, please use the Proton issue tracker for game-specific discussion, in your case https://github.com/ValveSoftware/Proton/issues/563 (and issues with upstream wine should be reported to the winehq issue tracker).

flibitijibibo commented 5 years ago

Wine 4.3 includes the FAudio rewrite:

https://www.winehq.org/announce/4.3

Proton 3.16-5+ also includes the XACT DLLs, but some work will need to go into that before it goes into upstream:

https://github.com/flibitijibibo/wine/pull/2

The FAudio-specific stuff is tracked over here:

https://github.com/FNA-XNA/FAudio/issues

Developers can use the above issue tracker, and all other users are encouraged to use the Proton issue tracker for any issues found in specific titles:

https://github.com/ValveSoftware/proton/issues