What is FAudio?
FAudio was created by Ethan Lee to as part of the FNA project to make XNA libraries open source. Specifically, FAudio is a drop in replacement for XAudio2, X3DAudio, XAPO, and XACT3.
Okay, how does this differ from “winetricks xact”?
Winetricks’ xact
verb uses non-free DLLs that can’t be redistributed with something like Proton. Same goes for corefonts
, which is why Proton uses a open source derivative of corefonts
and FAudio is the replacement for XAudio.
Is it bundled with Proton?
Absolutely. Proton releases come with FAudio already so it is OOTB ready for games that use XAudio.
I’m hearing about “Protonified” Wine builds… Is it similar to a standalone Proton?
Sort of… Most likely where you heard this term is either from TK-Glitch or GloriosEggroll’s specialized Wine builds that are sometimes hosted on Lutris.
GloriousEggroll goes as far to offer drop-in replacements for Steam’s Proton as an all in one package:
These have pretty much all the fixes you could possibly need, and FAudio, FFmpeg, D9VK and DXVK packaged all together. The installation instructions also only require you to make a new folder in your Steam install directory called compatibilitytools.d
.
I like Lutris, but I want to upgrade my vanilla Wine Staging prefix to a Protonified one from Lutris without the client doing it for me… (AKA, I use Lutris’ Wine Builds outside of Lutris)
Not so fast. The difference between a build such as tkg-4.6
and ge-protonified-4.10
means the protonified build requires more dependencies on your system. Lutris bundles everything, but running a Lutris build in /opt/wine-staging
will not have proper environment variables so you have to install system libraries for what it bundles rather than using what’s bundled.
Lutris does some behind the scenes housekeeping to get that sorted out by setting environment variables, but for the uninitiated, (or if Lutris DOESN’T do it for you) let’s get the FAudio System Libraries working first.
Installing FAudio and FFmpeg from PPAs (Ubuntu based distros)
You will need the latest FFmpeg PPA or this installation will not work as smoothly. Use the following PPA to get started:
sudo add-apt-repository ppa:mc3man/bionic-media
and do
sudo apt install ffmpeg
OR
If you want to live on the risky side, you can get git master builds of FFmpeg here:
https://johnvansickle.com/ffmpeg/ (this won’t satisfy dpkg dependencies though, hence why I’m recommending the mc3man PPA)
Next, add the FAudio PPA:
sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport
and install the libfaudio-dev
package:
sudo apt install libfaudio-dev
libsdl2-2.0.0
2.0.9 should also be installed.
You are now ready to swap your vanilla Wine Staging prefix to the Lutris build by renaming /opt/wine-staging
to /opt/wine-staging-old
, and renaming ge-protonified*
from the tar.gz you obtained from https://lutris.net/api/runners/wine to wine-staging
and copying that to /opt/wine-staging
, then running a winecfg
to finish it off.
But what about if I already did winetricks?
I used to think that was the root cause of the issues with the Protonified builds, but it turns out you can just leave the winetricks verbs present in the prefix and the Wine build itself will just reference elsewhere. Early failures were actually because the FAudio System Libraries weren’t installed, not because the Winetricks stuff was conflicting with FAudio. It is perfectly safe to update a winetricks xact
prefix to FAudio, but remember the system libraries.
What about other distros?
You will need to find a package maintainer for FAudio or build from source yourself. This does make it hard to use FAudio versions of Wine from Lutris without Lutris, so I would recommend using Lutris. (Unless you have applications outside of games that need a system installation of Wine, which means you need to build system libraries and install them from source. FFmpeg may also need to be installed from source in the worst case scenario.)
Why all of a sudden this change now?
TK-Glitch, who made his all purpose Wine builds available to Lutris to their Wine Buildbot, recently severed ties with Lutris after GloriousEggroll came back to making Wine versions. Unfortunately, all future Wine versions are Protonified FAudio builds, with no plans to make builds without FAudio or using a vanilla Wine Staging base with TKG patches on top. This puts people in the position where it’s Protonified and FAudio or bust. And to those without the Lutris client installed simply using the buildbot builds, this caught people off guard. Since there is no support for using a Lutris Wine build in place of a system Wine Staging build, this thread was basically made to say “this change is here to stay, here’s how to move forward without breaking anything.”
I like wine-tkg-4.6 though…
You’re gonna be stuck in the same situation many Windows 7 users will be facing next year, a Wine version with no new updates, and unable to adapt to changes like Overwatch breaking older versions of Wine, or fixes to controller rumble in Wine 4.10.
If you play any online games, it is highly recommended to keep current in terms of Wine versions. Battle Net for instance recently stopped working for everything except Lutris Wine 5.2+
TL;DR?
The new Lutris builds of Wine all use FAudio. Remember to have the FAudio system libraries and FFmpeg also installed in case you unofficially put a recent Lutris build of Wine in place of your vanilla Wine Staging system installation. If FAudio shared libraries are not installed, Lutris Wine builds will no longer work in /opt/wine-staging
.