11

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.

5
  • 1
    I feel like you'd be best off probably just installing steam on the VM, however VMs aren't known for their gaming capability.
    – Ian
    Jul 21, 2015 at 19:05
  • Install syeamos as your default operating system
    – user420734
    Jul 21, 2015 at 19:19
  • @ian Thats not exactly a problem. On a macbook i had a full vm (completely mimicked windows) and the game ran great. Now i have a laptop with better hardware, but i am using wine because i saw some proof the game runs petfectly on it, however i buyed it via steam. As wine only runs a single programm and doesn't have a certain space on the drive for it, i cant run steam in it and install the game in it
    – this.foo
    Jul 21, 2015 at 19:21
  • @zwiad i dont want a gaming laptop. Partly i work on it, but i spend less time playing games
    – this.foo
    Jul 21, 2015 at 19:23
  • 1
    Some games will also run from steam installed through Wine/PlayOnLinux.
    – Takkat
    Jul 21, 2015 at 19:30

4 Answers 4

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>
7

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
1
  • Unfortunately, Steam seems to have broken this approach some time in the last few months, at least on macOS. It now creates an empty directory and stops.
    – dgatwood
    Nov 10, 2023 at 5:53
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.

1
  • Thanks for the answer. I did not realize that Proton even existed. Jul 23, 2019 at 17:44
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.

2
  • I have followed your instructions step by step, but the games don't load through steam (says that game has started, but no process is running). Also, there is no directory wine-steam
    – this.foo
    Jul 23, 2015 at 11:20
  • I used .wine-steam in the example - it should be created when you run wine if you set WINEPREFIX in the same terminal. But, you can also just use the default .wine and not bother with that. If the game installs, try running it directly like wine /home/(user)/.wine-steam/drive_c/Program Files\ \(x86\)/Steam/steamapps/common/Deus\ Ex\ -\ Human Revolution/dxhr.exe
    – user367250
    Jul 23, 2015 at 16:44

You must log in to answer this question.

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