Steam client bridge
Windows games that use Steam’s features carry Valve’s Steam API, a steam_api.dll or steam_api64.dll file next to the game, which expects a Windows Steam client to answer it. Under WINE there’s no Windows Steam client, so a game that checks your account or its ownership can refuse to start. The Steam client bridge connects the game’s own Steam API to the Steam client for Mac, so Steam itself answers those requests. It works the same way in CrossOver, Sikarugir and WineCX.
The game keeps running in its usual CrossOver bottle or Sikarugir or WineCX environment, with the same saves and settings. The bridge’s own files load from MacLauncher’s runtime storage outside the bottle, and MacLauncher writes only the few Steam registry entries that the bridge needs into the bottle; it makes no copy of the bottle. The game’s files, its Steam API and its copy protection stay as they are, and the bridge doesn’t change the CrossOver or Sikarugir app or the Steam client for Mac.
Why a bridge
Section titled “Why a bridge”Without the bridge, the usual way to play a Windows Steam game on a Mac is to install the Windows version of Steam inside CrossOver and keep it running next to the game. That means a second Steam client with its own sign-in, its own updates and its own space in the bottle, running under WINE. The bridge skips all of that: the Steam app you already use on your Mac answers the game, so you never run Windows Steam in CrossOver or Sikarugir. The one requirement is that the Mac Steam app is running while you play, and MacLauncher can start it for you when you press Play.
The community project NotProton makes a similar connection by patching Steam. MacLauncher’s bridge builds on the same foundation, the lsteamclient library from Valve’s Proton with NotProton’s macOS changes, but it leaves Steam untouched, following MacLauncher’s unchanged source principle. Most Steam updates therefore don’t affect it, and it works for CrossOver, Sikarugir and WineCX alike.
When Play offers it
Section titled “When Play offers it”Play offers the bridge for a Windows game in CrossOver, Sikarugir or WineCX when all of these hold:
- the game includes
steam_api.dllorsteam_api64.dll; - MacLauncher knows the game’s Steam app ID from a local Steam library, a completed Steam download or the portable game’s
steam_appid.txt; - the Steam client for Mac is installed.
Every other game starts without it.
Playing with the bridge
Section titled “Playing with the bridge”- Press Play on the game.
- If the bridge isn’t installed yet, MacLauncher asks one question, Play with Steam? The dialog names what Play with Steam downloads, the Steam client bridge and the Windows Steam client files from Valve, and says that Steam starts if it isn’t running, because the Steam client goes online and signs in. Choose Play with Steam. When the same Play also needs another download, such as a WINE engine, that download’s dialog lists the bridge instead and adds an Also connect to Steam checkbox, selected by default.
- MacLauncher downloads what’s missing and starts Steam if it isn’t running, without asking again, unless the game’s Steam client on Play setting is Don’t start.
- The game starts. There’s nothing else to press. For an Unreal Engine game whose top-level
.exeonly starts the real game program, the bridge starts that program directly, so Steam is connected before the game’s own code runs.
Once the bridge is installed, later Plays use it without a dialog while Steam is running. When Steam isn’t running, your Steam client on Play setting in Settings → Launcher, or the game’s own choice, decides what happens; with Ask, the default, MacLauncher shows the same Play with Steam? question, as Versions and settings explains.
The Windows Steam client files come from Valve’s current Steam client download, and MacLauncher checks them against the content address Valve publishes before keeping them, so later Plays don’t download them again. The bridge doesn’t need a particular version of the Steam client for Mac.
To check that a game used the bridge, look at its inspector after playing. A Steam row names the bridge version that ran. A game whose last Play didn’t use the bridge has no such row.
Playing without it
Section titled “Playing without it”Play Without Steam in the Play with Steam? dialog starts the game the ordinary way, without the bridge, and so does clearing Also connect to Steam in another download’s dialog. The Don’t start setting does the same, because the bridge can’t work without a running Steam client.
When you choose Play Without Steam in the download question, clear the checkbox, or the bridge download fails, MacLauncher remembers that for the game and doesn’t ask again on later Plays. A refresh in Runtimes keeps that choice. To be offered the bridge again, install it yourself in Runtimes → Steam client bridge, which makes every Windows Steam game eligible again.
The bridge in Runtimes
Section titled “The bridge in Runtimes”Runtimes → Steam client bridge, under Compatibility, is where the bridge lives. Its Components card lists the Windows Steam client files, with the start of their content address once they’re installed. Below it, Versions lists the bridge versions from MacLauncher Builds with an Install button, and Installed lists the ones you have. Play always uses the newest installed version, so the section has no default to set, and it has no Register custom… button, because Play uses only the bridge packages installed here.
To remove the bridge, press the trash button next to its version under Installed. Removing the last version also removes the Windows Steam client files, and the next Play of an eligible game offers both again.
What the bridge doesn’t decide
Section titled “What the bridge doesn’t decide”The bridge gives a game a working connection to Steam. Whether the game then runs still depends on Steam and on the game’s own checks, and a working Steam connection says nothing about the game’s graphics, other Windows features or anti-cheat software.
Further reading: Windows Steam games and Steam API support in the reference documentation.