Frogging-Family / wine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds
859 stars 155 forks source link

Command and Conquer 3: Kanes Wrath Desync when playing Multiplayer #859

Open Tribalwarfare opened 2 years ago

Tribalwarfare commented 2 years ago

Hi Frog Family!

Thank you for the great releases. I am able to successfully play C&C3 Kanes Wrath Steam release Online using proton_tkg_5.14.r0.gb71d588d.release with the occasional FPS dip.

When using the older proton_tkg_5.14.r0.gb71d588d.release build the games runs and does not encounter a desync. When using any version or build later than proton_tkg_5.14.r0.gb71d588d.release the game desynsc after several minutes of multiplayer play.

Single player works with latest Steam Proton and TKG builds without issue. Only the Multiplayer component has a desync after 5 -6 minutes of play.

Looking around it was mentioned that the desync issue started occurring after the implementation of the new Faudio system to replace the old Wine openal based XAudio2.

"What - Try out using Proton-tkg 5.14.r0.gb71d588d, as it seems to be the latest working version of Proton for RA3 (this applies to the other games as well). Where - This is a link to the download: https://github.com/Frogging-Family/wine-tkg-git/releases/tag/5.14.r0.gb71d588d Why - The assumption is that newer versions of Proton use FAudio -- a better XAudio2 implementation. For some reason, the C&C games don't like this change"

Is it possible to provide a patch and or a guide for me to revert to the older Original Wine openal based XAudio2 implementation? I would like to do so to test if that is indeed the source of the desync issue and then provide it as a new build for Linux hopefuls to play this gem of a game :)

Thank you for your kind assistance, AG

Tribalwarfare commented 2 years ago

Follow up: I have seen the following under https://github.com/Frogging-Family/wine-tkg-git/blob/master/proton-tkg/proton-tkg-profiles/advanced-customization.cfg.

"# Faudio - Use the currently installed Faudio packages (both 32 and 64-bit) for xaudio2 - Fixes sound issues in various games. Disables xaudio2 & winepulse staging patchsets

Support is enabled by default in Wine 4.3+ as well as Wine-staging 4.13+, independently of this setting

_use_faudio="true""

If I set _use_faudio="true" to _use_faudio="false", will this revert the faudio patches and use the older XAudio2 implementation instead?

Kind Regards, AG

Tribalwarfare commented 2 years ago

Ok I was able to compile Steam Proton stable with the Faudio flags set to false. Unfortunately game still desyncs. I assume the following is true: Support is enabled by default in Wine 4.3+ as well as Wine-staging 4.13+, independently of this setting

Is there a way to revert to the older XAudio2 and disable the newer Faudio implementation? I am not a developer/coder so have no idea how to revert the Faudio changes to its earlier 5.14.r0.gb71d588d.release state but with a never proton build. Any assistance would be greatly appreciated.

Tribalwarfare commented 2 years ago

I was able to get the game running online without desyncs by porting older wine math and system libraries from proton_tkg_5.14.r0.gb71d588d.release and installing Microsoft Visual c++ 2005 to 2015 versions.

Alt-Tab fix: Rune WineCFG and enable virtual desktop.

Thank you Tk-Glitch for making the builds available :)

Tk-Glitch commented 2 years ago

I'm glad you have found a way to workaround it!

There still seems to be an upstream regression to fix here though, so let's keep track of it for a while.