I originally posted this guide on reddit, but wanted to repost it here as part of migrating away. Some games, including Halo MCC Coop and Company of Heros 3, will desync during multiplayer. This can be fixed by manually syncing two files.
Thanks to this comment by Fractal on ProtonDB for showing me the way.
The issue is non-matching ucrtbase.dll files between the two computers. There are two different copies of the file, both in the system32 and syswow64 folders (note: each copy is unique, you need to copy two separate files with the same name from different folders). It sounds like these files are supposed to be automatically synced for coop, but they aren't (possibly for legal reasons) and it causes problems with desync.
To fix it, you need to take copies of your friend's windows versions of the files, and copy them into the compdata folder for Halo on your deck. After that you should be able to play without desync.
The specific steps to follow are:
-
On the windows machine, go to:
C:\Windows\System32\ucrtbase.dll
and copy the file. -
Send it to the linux machine. Some software (like Discord) can compress or straight up change the file. I found I could safely send the files through discord if I put them in a .zip file first. If in doubt (or if things don't work) you'll need to verify the checksums (md5/sha256 etc).
-
On your linux system, replace the symlinked file in your steamapps folder. Once you're in your steamapps folder, the file will be located at:
steamapps/compatdata/976730/pfx/drive_c/windows/system32/ucrtbase.dll
The location on the steam folder can be different depending on how steam is installed, on steam deck you'll usually find it in the hidden folder.steam/steam
inside your home folder. You'll need to enable the option to show hidden folders before it will show up, this option can be found in the menu in the upper right of the file explorer. -
Repeat the process, but this time get the file from
C:\Windows\SysWOW64\ucrtbase.dll
. Once you have it safely on the linux machine, put it in the steamapps folder atsteamapps/compatdata/976730/pfx/drive_c/windows/syswow64/ucrtbase.dll
After this start both games in anti-cheat disabled mode, and coop should now work.
If the linux/steam deck version of the game won't start at all, it means something is wrong with the ucrtbase.dll files. They either got corrupted/changed during transfer, you mixed up which one was from the system32 folder and which was from the syswow64 folder, or you accidentally put the same file in both of those folders.
Either way, I'd recommend checking the checksums of the files on both machines to figure out which (or both) files got messed up in transfer.
Here's a guide on checksums for windows, it will require either 3rd party software or using the windows command line. On linux, KDE has checksums built into the file explorer, just right click on the file and hit properties. On other DE enviroments you can usually just run md5sum <file>
or sha256sum <file>
This is all fair complaints about Linux, but I don't really feel like windows is much better. I've had windows break on me or family members a lot over the years. Sure I've had some Linux distros break with an update and fail to boot (namely Manjaro), but windows has broken itself with updates dozens of times for me. The whole reason I started using Linux at all was because windows was breaking so often on my computer that I needed to try Linux to make sure my hardware wasn't defective.
You talk about having to fall back on the command line in Linux, but that's also true on windows without 3rd party software. I've had to use windows command line utilities to fix drives with messed up partitions and to try to repair my windows install after windows update broke it. A couple weeks ago I had to help a friend on windows do checksums using the windows command line because windows doesn't support that through the gui. Meanwhile dolphin on KDE let's you do checksums in the gui from the file properties screen.
I honestly feel like Linux isn't really that much harder or more prone to breaking than windows, people just have less experience with it. The smaller user base means there's a lot less help available online as well.