Yesterday, Sid Meier’s Civilization VI got a new update for the New Frontier Pass. This update had the unfortunate side effect of breaking compatibility between the Windows and macOS versions of the game, meaning that when the two versions tried to join an online game it would spit out a “Version Mismatch Error”.
In order to regain compatibility I needed to rollback or downgrade my Windows version so that it would be on the same, older version as my friends on macOS. This is my process for this specific game but, as far as I know, it can be applied to any Steam game.
Step 1: Install .NET Core
Step 2: Download and extract the latest stable release of DepotDownloader
Note that this process will require you to put your Steam credentials into the third-party software, DepotDownloader. Do so at your own risk.
This process may be possible using the Steam Console’s built-in
download_depot command, but in this instance it failed to find the required manifests.
Depot download failed : Manifest not available
Step 3: Find the required IDs
Go to SteamDB and search for your game. The first ID you will need is the app ID, which can be found on the game page.
Next you will need to navigate to your
steamapps directory, which in my case, was at
C:\Program Files (x86)\Steam\steamapps, and open the
appmanifest file containing your app ID with Notepad. Inside, under
InstalledDepots, you will see the depot IDs for all your installed content for this game.
Now go back to SteamDB, where you will navigate to the “Depots” tab on the game page. For each depot you have installed, select the depot ID, then under the “Manifests” tab, record the manifest ID for the version you wish to downgrade to. The manifest ID is different for each depot, so you will need to do this for every depot you have installed.
Step 4: Download the depots
In PowerShell, change directory to where you extracted DepotDownloader.
> cd .\Downloads\depotdownloader-2.3.5\
Then for each depot/manifest ID pair you recorded, run the following command, substituting the relevant values.
> dotnet DepotDownloader.dll -app APP_ID -depot DEPOT_ID -manifest MANIFEST_ID -username YOUR_STEAM_USERNAME -password YOUR_STEAM_PASSWORD
This will download the depots into a
depots directory in your current working directory, with one subdirectory for each depot ID. Keep this PowerShell open, we will use it later.
Step 5: Install the depots
At this point, fully exit Steam. Return to your
steamapps directory and navigate into
common. Rename the directory for your game to something that won’t conflict. I chose
Sid Meier's Civilization VI.bak. Now create an empty directory with the original name, in my case,
Sid Meier's Civilization VI.
In the PowerShell from before, we are going to create a new directory called
output, then merge all the depots into it with the following commands.
> mkdir output > cp -Recurse -Force .\depots\*\*\* .\output\
The content of the
output directory can now be copied into the empty game directory you just created in
steamapps. Now that you have done this, you should be able to reopen Steam and launch the game normally at the older version you targeted.