WINDOWS STEAM GAMES · APPLE SILICON

FX Steam Launcher GitHub: Mac Setup & SteamOS Games

FX Steam Launcher runs SteamOS in a virtual machine on your Mac. Install its ready-made app, create a SteamOS disk and sign in to Steam to try your Windows library. Use this guide to choose the download, set the graphics path and recover from a failed launch.

The project’s English SteamOS library screenshot inside FX Steam Launcher, showing game covers and controller navigation.
SteamOS library inside the VM. English screenshot published by FX Steam Launcher.

Guide version: FX Steam Launcher 1.9.9 · released 3 November 2026 · Apple silicon, macOS 15+.

Is FX Steam Launcher the right Mac gaming route?

The GitHub project is fxgl/steamac. It is an independent launcher using Valve’s ARM64 SteamOS image. Windows games run through Proton and FEX inside that VM, with their graphics reaching the Mac’s Metal GPU through the selected graphics backend.

ILLUSTRATED ROUTE MAPPick the version of the game you want to run
  1. Official Mac editionInstall the Mac game in the normal macOS Steam client. Start with our native Steam games.
  2. Windows Steam editionFX Steam Launcher → SteamOS VM → Proton / FEX → Mac GPU. This page covers that route.
  3. Switch game backupNX2Apple builds a different game app from your own supported files. It does not run your Windows Steam library.
  4. Compare other routesNative, Rosetta, CrossOver and virtual machines solve different compatibility problems.

You do not need to install Windows or replace macOS to use FX Steam Launcher. Your SteamOS disk is a file on the Mac. A native Mac edition remains the direct choice when the publisher provides one; use the VM for the Windows titles you want to investigate.

Download the Mac app from GitHub

READY-MADE RELEASE

Apple silicon + macOS 15 or later

Download FX-Steam-Launcher-1.9.9.dmg from the original release. The app is signed and notarized. The release already includes its runtime components.

STORAGE TO START

About 20 GB free, plus your games

The project’s installer guidance budgets about 14 GB for the initial disk and 6 GB for its download cache. Installed games need additional space as the sparse disk grows.

  1. Choose the DMG asset

    Open the release’s Assets list and select the DMG. The GPL sources TAR and GitHub’s source-code ZIP are for source work, rather than the ready-to-open application.

  2. Drag the app to Applications

    Open the downloaded DMG and drag FX Steam Launcher into Applications. Open that copy and complete the normal downloaded-app prompt. Use the macOS warning guide if the message differs from a normal first-open confirmation.

  3. Use the released app’s setup

    The DMG workflow creates the SteamOS disk itself. You do not need Xcode, Homebrew or Docker just to follow it. Those tools belong to building the launcher from source.

macOS 26 or later: the release can use KosmicKrisp for its Metal 4 Vulkan path. On macOS 15, use MoltenVK. Match the game and driver in the settings walkthrough.

Create a SteamOS disk and choose its location

On first launch, choose Create New Disk…. You can reopen it through Settings → Advanced → Create New Disk…. This creates a SteamOS disk image; it does not format the Mac’s system disk.

Create SteamOS Disk · choose the branch, capacity and locationOpen original ↗

01Set the branch, sparse capacity and disk location

SteamOS branch set to stable, Home partition games sparse set to 64 GB, and Location with a Choose button.

02Review the terms before creating the disk

Unchecked acceptance of Valve SteamOS license and Steam Subscriber Agreement, with links to both documents.

03Start after completing your choices

Cancel and a disabled Create button before the installer’s required acceptance is completed.
Published English installer window. Choose your disk settings, review the diagnostic-sharing choice and the linked Valve terms, then use Create. The 64 GB field is the guest’s home-partition capacity; it is different from the free space needed for the first download. Source ↗
View the complete window
English Create SteamOS Disk window with stable branch, 64 GB sparse home partition, location, optional password, Steam client and license controls.

Open original at full resolution ↗

  1. Start with the stable SteamOS branch

    The released launcher offers stable and rc. Use stable for the first setup. A tutorial naming beta, preview or main may refer to a different stage of the project; keep the launcher version and image branch together.

  2. Choose capacity and a writable location

    Choose the home-partition capacity for the library you intend to install. A 64 GB sparse home partition does not immediately consume 64 GB on the host. Check free space again before downloading a large game. Use a writable volume; the creator rejects FAT32 and read-only destinations.

    The default image is ~/Library/Application Support/es.fxgam.steamac/steamos.img. Use Choose… if you want a different drive. Keep that drive attached when running the VM.

  3. Review and create

    Read Valve’s linked terms and make your own acceptance choice. After acceptance enables Create, start the download. The launcher downloads Valve’s signed image, verifies it and writes the disk. Watch the progress rather than opening a second setup.

  4. Resume an interrupted download

    If you stop the transfer, use the creator’s Resume path. Keep its download cache while resuming. A proxy, network interruption or insufficient free space needs fixing before a retry; recreating the whole disk is not the first response.

After creation, boot the selected disk. The first start completes additional setup inside the VM before the Steam interface appears.

Sign in to Steam and install the first game

  1. Let the Steam client finish its first update

    The default Steam Deck client presents a gamepad-style interface. Give the initial client update time to finish before treating the startup screen as a failed game launch.

  2. Sign in inside the SteamOS window

    Use your own Steam account and the on-screen sign-in flow. The default client supports QR-code sign-in. Your normal macOS Steam installation is a separate application; its Mac game folders are not automatically this VM’s installed library.

  3. Choose a game with a matching report

    Use the project’s game reports to check the title, Mac and graphics path first. Install through Steam. Steam supplies the game’s required compatibility components, including Proton and FEX, as needed.

  4. Play a short, repeatable section

    Start with default in-game settings and a modest output resolution. Allow first-run shader processing to finish. Reach the same scene twice before deciding whether a hitch is first-use compilation or a repeated problem.

When entering Steam launch options inside the guest, paste with Ctrl + V. The launcher’s shared clipboard setting is under General. Keep game-specific launch options tied to that game; do not paste one title’s feature-level override into every game.

Set the display, graphics driver and VM resources

Open FX Steam Launcher → Settings… with Command + ,. The window labels each option applies now or applies on next start. For a pending change, save your game and use Restart VM to apply.

Start with a small, consistent display size

Display · separate the VM’s output size from the Mac screenOpen original ↗

01Choose a fixed output, then inspect the same scene

Guest display follows the window size toggle, Default window size 1280 by 800 Steam Deck preset and Metal Performance HUD toggle.
English Display settings. Turn off Guest display follows the window size when you want a fixed guest resolution for a repeatable test. Use the shown 1280 × 800 preset to compare the same scene before increasing the output size. Source ↗
View the complete window
FX Steam Launcher English Display settings with physical size, refresh rate, guest follows window size, 1280 by 800 window size and Metal Performance HUD.

Open original at full resolution ↗

  1. Choose a starting preset such as 1280 × 800. Turn off Guest display follows the window size if resizing the Mac window should not change the test resolution.
  2. Leave Retina resolution off for the initial comparison. It increases the pixels the guest renders. MetalFX super resolution is a separate upscaling choice when you want a larger displayed image.
  3. Turn on Metal Performance HUD to inspect frame delivery and memory during your repeatable scene. Change one setting, repeat the route and keep the better result.

Choose the backend that fits your OS and game

MoltenVK

The Vulkan route for macOS 15 and the fallback when KosmicKrisp is unavailable. It is also a useful comparison when a title loses its GPU on KosmicKrisp.

KosmicKrisp

The release default where available on macOS 26+. It uses Metal 4 and supports the project’s DirectX 12 feature-level 12_0 path. Check your game’s report before choosing higher feature overrides.

DXMT

An optional DirectX 10/11-to-Metal path. Choose it through a game’s graphics profile when available; it is separate from changing the Vulkan driver for DXVK or vkd3d-proton.

Advanced · CPU, memory and Vulkan driverOpen original ↗

01Keep CPU and memory on Automatic for the first comparison

Virtual CPUs and Memory selectors set to Automatic, with the detected values for the example Mac.

02Change the Vulkan backend for the next start

Vulkan driver selector showing MoltenVK default in the published Advanced screenshot.
English Advanced controls from the project. This published screenshot shows MoltenVK selected; current release defaults depend on the Mac’s OS. Save the game and restart the VM after changing next-start options. Source ↗
View the complete window
English Advanced settings show Automatic virtual CPUs and memory, SSH and network settings, SteamOS disk image and Vulkan driver.

Open original at full resolution ↗

Guest RAM, host graphics allocations and macOS all share the Mac’s physical memory. Start with Automatic; do not assign all RAM to the guest. If Activity Monitor shows sustained memory pressure or swapping, close other heavy applications and reduce the VM allocation before raising resolution. More virtual CPUs are not automatically better for every game.

Since 1.9.9, the launcher removes the Steam Frame CPU-affinity restriction that previously left some configured vCPUs unused. Update an older launcher before interpreting a CPU allocation comparison.

Check supported games by title and Mac

The useful question is whether your game’s build works on a comparable Mac and graphics path. Open the project’s live game statistics, search by title or Steam app ID, and read its player ratings as well as the launch result.

FIND

Exact title and edition

Match the Steam app ID. A demo, remaster and original release may have different requirements.

COMPARE

Mac and graphics path

Check reported GPU cores, memory, driver and VM settings. Use My Mac to narrow the reports the site offers.

READ

Outcome and player rating

A successful process launch and a playable game are different results. Read “Playable with issues” or “Does not start” alongside session figures.

Try the site’s game search before treating a missing result as incompatible. Clear the game name or relax active limits if no report appears. The statistics page counts guest frame output; use your own in-game comparison for settings decisions.

Useful starting examples from the project’s notes

  • Death’s Door: the project documents its DX11 route through Proton and the Mac graphics stack. Use its current app entry for reported settings.
  • Stellar Blade Demo: the project documents a DX12 path. Distinguish the demo, Mac model, backend and first shader-processing run before applying its settings elsewhere.
  • Moon Sweepers: an original 1.9.8 / M4 report records a KosmicKrisp GPU timeout and a successful MoltenVK comparison. This gives a concrete alternate-backend test for that failure.

For multiplayer games, check the title’s current anti-cheat and VM restrictions. A Steam Deck compatibility badge alone does not settle compatibility with this Mac VM. Use the normal supported sign-in route and retain the game’s current report if it refuses to launch.

Fix the point where startup stopped

The SteamOS disk download stops or Create is unavailable
  1. Check that you chose a writable location with sufficient physical free space.
  2. Review the linked Valve terms; the creator enables Create after your acceptance.
  3. For an interrupted transfer, fix the network/proxy condition and use Resume. Keep the cache and existing disk while diagnosing.
SteamOS is starting, but a game has not opened yet

Separate the launcher’s boot progress, the first Steam client update and a selected game’s shader processing. Let changing progress finish. If the same point repeats after a restart, open Help → Report a Problem… and inspect the current session’s details.

“Still working” remains forever or the game reports VK_ERROR_DEVICE_LOST
  1. Check whether the rest of SteamOS responds and record the active Vulkan backend.
  2. For a repeated GPU timeout on KosmicKrisp, try MoltenVK in Advanced, restart the VM and repeat the same scene.
  3. Keep the game build, launcher version, Mac, resolution and result with the report. The Moon Sweepers report shows why a frozen image can need a driver comparison rather than more shader waiting.
SteamOS runs, but the Mac starts swapping or the game stays slow

Check Activity Monitor’s Memory Pressure, lower guest resolution and review the VM’s allocation. Keep room for host GPU work and macOS. Retest one change at a time. A larger guest memory value cannot add physical RAM.

Gamepad input or the mouse behaves differently inside SteamOS

First check the device in macOS using the controller pairing guide. Then use FX Steam Launcher’s Controller tab and its live input test. For a game that needs a free pointer, inspect Mouse → Capture the mouse in games. The launcher’s settings window remains available with Command + comma.

How do I send the useful game log?

Use Help → Report a Problem…. Describe the shortest repeatable sequence, your launcher/game versions, Mac and graphics path. Review the offered log attachments before sending. For a Windows game that needs a Proton log, set its Steam Launch Options to the command below, reproduce once, then make the report. Remove the option after the diagnostic run.

That game’s Steam Launch Options · diagnostic run
PROTON_LOG=1 %command%

Update the launcher and keep the SteamOS disk

The application and your SteamOS disk are separate. For an ordinary launcher update, keep the existing disk and select it again in Advanced if necessary. Choosing Create New Disk instead starts a different environment.

  1. Save the game and finish Steam Cloud sync

    Save in the game. For titles using Steam Cloud, wait for Steam’s sync status before shutting down. Keep a local backup for progress you need to protect.

  2. Shut down before copying the disk

    Close the running game and shut down SteamOS normally. In Advanced, identify the actual Disk image path, then copy that stopped disk to your backup location. Check destination capacity; sparse images can copy differently between filesystems.

  3. Update the app, then reuse the same disk

    Use the app’s Check for Updates or the original GitHub release. Replace the launcher application, retain the disk and reopen it. Let any SteamOS or client update finish, then verify your installed game and save before cleaning old backups.

General · choose what closing the window doesOpen original ↗

01Save before closing or suspending

When closing the window selector set to Shut Down SteamOS, with the explanation that suspended state is lost if the launcher quits or the Mac restarts.
Published English closing behavior. Shut Down SteamOS is the normal stop. Suspend instead holds the VM in RAM while the launcher remains open; it is not a replacement for an in-game save or disk backup. Source ↗
View the complete window
English FX Steam Launcher General settings with When closing the window set to Shut Down SteamOS and an explanation of Suspend.

Open original at full resolution ↗

Suspending keeps the VM’s memory allocated. Quitting the app, restarting the Mac or an app crash ends that in-memory state. Continue to save in the game even when you use Suspend between sessions.

Sources: release 1.9.9 · setup, settings and reporting · live project game reports. Screenshots are credited English UI excerpts from the project’s published documentation. Guide updated 4 November 2026.