Patreon Logo Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal Logo PayPal. You can also buy games using our partner links for GOG and Humble Store.
We use affiliate links to earn us some pennies. Learn more.

Another fresh release of the community-made compatibility layer GE-Proton, bringing fixes for some popular games and an issue with spatial audio.

If you're new to SteamOS / Linux land be sure to check out the GamingOnLinux explainer on the different Proton versions and the GamingOnLinux guide to install GE-Proton to get started with it. You generally only need GE-Proton for very specific games as it's best to stick with Valve's official Proton for support.

GE-Proton 10-28 notes it has a "patch for Winealsa fix for games that only allow spatial audio (thanks Vyroliean)", with a longer explainer:

Problem:

Wine converts spatial and serves it as channel-based stream of 12 channels (in case of GTA and Forza), and then winepulse sends enough metadata for the sound server to apply downmixing. In case of winealsa, it doesn't send the metadata, and in case of stereo, only provides audio to front left and front right skipping FC/LFE/etc. Because of that, the audio is incomplete. As we can't force the correct amount of channels with WINEALSA_CHANNELS variable, I had to code a downmixer.

Patched resolution:

I have implemented the downmixer in the driver itself, and I fully adhered to pipewire downmixer's logic, so the formulas are the same as in pipewire. Pipewire does not downmix top speaker and instead discards them, so this is what I also did in my downmixer. In-game testing shows that the top channels are indeed discarded, because when I tried adding them to winealsa, I could hear more audio coming out compared to winepulse (such as a helicopter above of me).

Because the downmixer made winealsa sound identical to winepulse in these spatial scenarios I even considered even turning it on by default, whether you have WINEALSA_CHANNELS in use or not, and to not block creating a stream with more channels than imposed by the variable. However, more testing had shown that the best way to approach it would likely be to give the user more choice, even if it requires more manual setup.

If we compare sound from downmixed GTA (does not matter winepulse or winealsa, both sound the same, it's related to spatial translation in wine) to Windows, there are noticeable differences. If you were to honk in a car in first person, the audio comes out dominantly out of the left channel on Linux, while it's properly centered on Windows. Because of that, I think it makes more sense to default to channel-based whenever possible so the game can give properly mixed audio, and fall back to downmixing spatial externally if that fails. Though in the case of GTA setting the game flag for disabling spatial results in much worse results than downmixing, I believe it would be the opposite for games that explicitly allow channel-based audio and don't throw errors (like Forza).

This is why I created another variable WINEALSA_SPATIAL, which allows stream creation with more channels than WINEALSA_CHANNELS cap, and then these channels are downmixed.

The behavior of the driver only changes if the variables are active.

Usage:

Put these arguments in steam launch options with %command% at the end, or use your game launcher's method of adding new env vars:

WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2
For Stereo: Use 2

For 5.1 Surround: Use 6

For 7.1 Surround: Use 8

UPDATE: since version 10-28, if you get a spatial audio initialization error, you can add the third variable:

WINEALSA_SPATIAL=1

Updates to Proton in this release include:

  • import upstream changes to proton.
  • update wine bleeding edge.
  • update dxvk latest git.
  • update vkd3d-proton latest git.
  • update vkd3d latest git.
  • update dxvk-nvapi latest git.
  • rebase em10/wine-wayland patches.
  • fixed World of Tanks mods not loading.
  • fixed World of Tanks language change causing loading hang/crash.
  • fixed Blade & Soul Neo crash.

Plus some new additions to protonfixes:

  • added fixes for ghostwire tokyo video playback + egs version.
  • added fixes for Duet Night Abyss egs version (game anticheat still seems problematic).
  • added fixes for Duet Night Abyss steam version (game anticheat still seems problematic).
  • added fixes for Duet Night Abyss standalone version (game anticheat still seems problematic).
  • added fixes for broken textures in Legendary.
  • added fixes for Fallen Enchantress: Legendary Heroes.
  • added fixes for Sorcerer King.
  • added fixes for PAIcom.
  • removed disabling of uplay overlay on previous existing protonfixes (it works now).


Pictured - Duet Night Abyss

Article taken from GamingOnLinux.com.
0 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
All posts need to follow our rules. Please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Readers can also email us for any issues or concerns.
No comments yet! Subscribe

While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon Logo Patreon. Plain Donations: PayPal Logo PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register