4

I am sharing an internet connection with a few roommates and have a data cap. I would love to be able to use my MacBook to download games onto it, create Steam backups and install them on Windows.

I have crossover, but Steam refuses to render the library pages and instead shows me a black screen. And the overall experience of using Steam in small mode is terrible. I can't uninstall installed games, adjust download queue order, and much more.

2 Answers 2

2

You have two options:

Game File Transfer over Local Network

The first one is to use Steam's "Game File Transfer over Local Network". This allows you to share a game between computers in the same network.

Some well made games like Euro Truck Simulator 2 use the same files for all operating systems it supports, and the only thing different are the executables. In the case of games like this, it's the best option, as you don't need to do anything other than download the game.

You just enable the option in the Steam Settings and the other PCs in the network will automatically pull the game files from your Mac, and then get the Windows executables from Steam, which for good games should not be more than a couple of megabytes.

enter image description here

Manual Download with DepotDownloader

You can use DepotDownloader to download a specific game version for a specific operating system.

To download a specific game with DepotDownloader, follow this set of steps:

  1. Download and Install .NET for macOS, either .NET 6 or .NET 7
  2. Download DepotDownloader (click on the ZIP file)
  3. Extract said ZIP File somewhere
  4. Remove the file called DepotDownloader.runtimeconfig.json
  5. Open a new Terminal window from Finder
  6. Enter dotnet DepotDownloader.dll -app <APPID> -os windows -username <USERNAME> -password <PASSWORD> (replace USERNAME and PASSWORD with your login details, and APPID with the Game's specific appid) and press enter

Then, you just wait for DepotDownloader to download the entirety of the Windows version of that specific game.

To install those files, you start the download of the game in the other PC, close Steam and then replace the game files with the folder created by DepotDownloader. Steam will then verify that all of the files are present and that nothing needs to be downloaded.

2
  • 2
    I solved this by using SteamCMD instead and setting the platform to windows via sSteamCmdForcePlatformType windows. This results in Steam downloading the windows version of the game that I could just copy over (then let steam detect the existing files as suggested by the last bit in your post. I will mark yours as an answer, for anyone else stumbling upon this. Do note that steamcmd requires logging in however.
    – Blaine
    Commented Jun 11, 2023 at 20:28
  • 1
    SteamCMD is fine sometimes, but there are a lot of games nowadays that SteamCMD is unable to download them due to being outdated. DepotDownloaded could be considered the spiritual successor of SteamCMD.
    – Lemon
    Commented Jun 13, 2023 at 15:54
1

What you found is a hidden built-in function of the default Steam client via the options sForceSteamCmdBitness = 32 or 64 and sForceSteamCmdPlatformType = one of linux, mac, or windows (lowercase only). There's a GitHub Gist that the owner seems to update as needed with a list of commands at Steam client parameters, consoles commands and variables, though IDK how they generate it.

Android (android) is a new option thanks to the addition of Android apps on Steam. I'm not going to include that currently as the system identification is too complex and this has already become a "small article".

  1. Identify the destination device platform and bitness. Platform is easy as that's just the OS name, but bitness tends to give people trouble.
  • Windows: Press Windows Key + R, enter msinfo32, and look for "System Type" at about the eighth line down.

  • Mac or Linux: Open a terminal and run uname -m.

    • x86 is 32-bit. x64 or x86_64 is 64-bit. arm64 is 64-bit.
  1. Open Steam with the "console" option, which enables a developer console. Easiest method is to just open a browser and enter steam://open/console (uses Steam Browser Protocol).

  2. Setup as the computer that the download is meant for. For example, downloading for a Windows machine running a 32-bit version of the OS:

  • sForceSteamCmdBitness 32

  • sForceSteamCmdPlatformType windows

    • After forcing the client to identify as another platform/bitness you can't use the Steam client normally. It will believe you're trying to run apps for a different platform and fail to start them.

    • Remove other downloads from the queue. It will overwrite existing download data, including wiping an entire game install because it doesn't exist on the target platform/bitness. This will also nuke a forced download if the client is restarted and it tries to continue a download that was started with a forced platform/bitness.

  1. Download the app "normally". After the download finishes, right click it in the Library and go to Manage > Browse Local Files to help the next step, and then close the Steam client normally (to reset it, so it won't still be setup as a different platform/bitness).

  2. Move the installation data out of the Steam Library/steamapps/ folder to external storage, and place in same folder of recipient. Best to

  • A file named appinfo_#.acf where # is the unique Steam appid. This can be easily found by going to the Store page for existing apps and looking at the address. For example, https://store.steampowered.com/app/730 is CS GO, and it's appid is 730 (from app/730).

    • SteamDB has most apps listed including those that no longer have a Steam store page to look at. Either search the entirety of apps from the homepage, or sign-in and go to profile -> Your Games and search from what you own.
  • Installation data in Steam Library/steamapps/common, in a folder that's usually named after the app itself. Easily found in the folder left open from the previous step.

You must log in to answer this question.

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