2

I'm aware that SteamCMD is probably geared towards people that run game servers but I thought I would try using it as a more practical way to back up the linux versions of my games without the hassle (and hard drive space) of a linux virtual machine.

As far as I can tell it worked perfectly for Hotline Miami

But when I tried downloading the linux version o Half-Life 1, I got the following error right at the end of the download:

c:\buildslave\steam_rel_client_win32\build\src\common\symlink.cpp (65) : Assertion Failed: 
symlinks on windows require admin rights, only work on Vista and above, and aren't supported 
in client builds Error! App '70' state is 0x602 after update job.

I'm running SteamCmd on Win 10 (1909) and used the following commands to download the Linux version of the game:

login <USERNAME> <PASSWORD>
force_install_dir <path to directory where I want the files saved>
@sSteamCmdForcePlatformType linux
app_update 70 validate

Can anyone shed some light on what this error means?

EDIT:

I wasn't able to answer my question but after reading a bit more I think I can achieve the same thing with the regular Steam Client for Windows:

First step: add the -console launch parameter to the Steam shortcut.

Second step: Steam will now have a Console option in the main window. Click that.

Third step: Go to steamdb.info and search for the game you want to backup

Fourth step: Look for the "Depot" section of your game (for example: this is the CS:GO depot page: https://steamdb.info/app/730/depots/)

Fifth step: Look for the depot ID of the platform you want to download (for example: if I wanted CS:GO linux beta files, the id would be 734)

This would only save Linux specific files. To backup the whole game, you would also need the "Counter-Strike Global Offensive Beta Common"

Sixth step: Back in the Steam console type download_depot <appid> <depotid>

The files will be downloaded to your Steam installation folder \Steam\steamapps\content\<app id>

I have not labeled this as answered as I'm not 100% sure that this is enough to backup other platform versions of a Steam game (I have not tested a backup in Linux).

I don't know if there is some additional step to downloading the game files that is not possible when you are not running the correct platform.

1
  • It's pretty clear what is happening though? The Linux version of Half-Life contains a symlink (or the download process has to create one) and that's why you get this error. // Not sure what you're trying to accomplish anyway.
    – Daniel B
    May 1, 2021 at 21:53

1 Answer 1

1

I'm sorry to say, but there's a much easier way to download apps/games for a different platform/architecture with little to no effort.

  • Run Steam with the -console startup option, or use SteamCMD.

  • Run the two following commands:

    • @sSteamCmdForcePlatformType type (where type is windows, macos, or linux)
    • @sSteamCmdForcePlatformBitness bitness (where bitness is 32 or 64)

After this, until you close the Steam client or run similar commands to return to default, it will consider you to be running on the platform/architecture combination that you specified.

Some notes, though:

  • If you don't pause an active download and remove it from the queue before closing and reopening Steam it will (at least partially) destroy the download. Steam will attempt to fix it if you pause and then continue the corrupted download, but that may not be a truly clean installation.

  • You can't run the native games you have installed while acting as a different platform/architecture, because they're not compatible.

Reddit post I've edited to be less sloppy.


The next part I didn't get to try years ago as my PC died. Lol. Moving apps around manually does work though, and there's no reason this shouldn't, though it has at least one possible issue.

After it's downloaded there will be a file called appmanifest_#.acf (where # is the appid for the app/game) in the steamapps folder where the app is installed, and the app data will be in steamapps/common, usually in a folder with a name similar to the app.

Because it's been downloaded on another platform it may still be using a different EOL (End Of Line) in the appmanifest file. Any good text editor can fix this, but make sure it doesn't mess with the whitespace. Text VDF (Valve Data Format) files expect 2x tab characters between names and values, and though Steam might automatically fix it, it can also have a fit and destroy the file, possibly destroying the downloaded app data too.

If you need to have the appmanifest file for some reason (may help in an offline machine), it's worth keeping it. If you do use the manifest though, make a copy of the installed app's folder so that it's not easily destroyed. If you're installing to a machine with an internet connection you probably don't need it, but you could keep a copy.

Before continuing, make sure Steam is closed. It can do strange things if you mess with it's files while it's open, though this is not something that should cause it to have a fit.

  • Move the app folder from the steamapps/common folder where it's installed to the equivalent folder of the other installation.

    • If you're using the manifest, move it to the steamapps folder of the other installation. Then, start Steam and verify the game cache. This is where it may destroy the installed app data.

    • If you're not, try starting the installation for the game -- Steam should start by downloading a new copy of the appmanifest and then quickly change the download status to Discovering, which means it's noticed existing data and will verify that it's what it expects to be installed.

After this it should run as expected, but again: I never got this far myself.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .