12

How can I download games from Steam for an operating system that the game doesn't run on?

For instance, I want to download a game for Windows to run it in a VM, but it says that the game is not available for my platform.

When I try other methods to install it, it opens a small window and says that the game is not available for my platform.

TylerH
  • 105
  • 6
this.foo
  • 457

4 Answers4

21

Valve's SteamCMD does just that. A short and incomplete transcript:

  1. Download and unpack steamcmd.
  2. Install 32-bit compatibility libs: sudo apt-get install lib32gcc1
  3. Login in the command line: ./steamcmd.sh +@sSteamCmdForcePlatformType windows.
  4. In the steamcmd:
  5. login <username>
  6. force_install_dir <path>
  7. Find the app id of the game (it can be found in the game's store page URL: http://store.steampowered.com/app/<app_id>).
  8. Download the game: app_update <app_id>
8

Steam can also be tricked into downloading games that are unavailable on your platform.


To manually download the app whose id is $APPID into $INSTALLDIR, create the file named appmanifest_$APPID.acf in your steamapps folder¹ with the following contents:

"AppState"
{
  "AppID"  "$APPID"
  "Universe" "1"
  "installdir" "$INSTALLDIR"
  "StateFlags" "1026"
}

More information is available at the above link. Other solutions are possible, like using Lutris to manage your game library.


¹ Default location:

  • ~/.steam/steam/SteamApps on Linux
  • ~/Library/Application Support/Steam/steamapps on macOS
MayeulC
  • 446
  • 6
  • 5
7

As of yesterday, (2018-08-21), Valve officially supports downloading windows games on Linux, and allows to play them trough their custom wine-based compatibility layer, Proton. That also include a native implementation of steam services and OpenVR that is used by the applications.

To play non-whitelisted games and download them, it is necessary to check "Enable Steam Play for all titles" (in Steam -> Settings -> Steam Play)screenshot of the SteamPlay settings

After this, Steam should allow download any Windows game on Linux. So this is only a partial answer.

pktiuk
  • 897
MayeulC
  • 446
  • 6
  • 5
1

From the Steam website, you can download the Windows version of steam. go here and click the "Windows" link right below the install button.

http://store.steampowered.com/about/

Next, run Windows steam using wine (I'm assuming you have wine installed from your comments). Optional: set WINEPREFIX to a special path if you want to isolate Steam from other wine apps you run.

export WINEPREFIX=/home/(username)/.wine-steam
wine /home/(username)/Downloads/SteamSetup.exe

You will not be able to see text yet, close the Steam app once it finishes installing and run this command to fix fonts (hat tip to Steam on Wine no text)

wine reg add 'HKCU\Software\Valve\Steam' /v DWriteEnable /t REG_DWORD /d 00000000

Now you can run steam normally

wine /home/(username)/.wine-steam/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe

If you have a hybrid nvidia graphics card like many PC gaming laptops, you will want to use optirun, so do "optirun wine /etc/etc" or "optirun -b primus wine /etc/etc"

You might also check out PlayOnLinux

Once a game is installed, you can always launch it directly with wine if you choose, just by using it's exe instead of Steam.exe.