Play your Windows games from Steam and Battle.net on an Apple Silicon Mac.
Twenty games, each with graphics and performance settings tuned for it.
- Sets up everything for you. One click installs a Windows environment, the graphics libraries and the official Steam client. You sign in with your own account and install games the usual way.
- One Steam for every game. All games share one Steam client and one library, so you sign in once.
- Tuned per game. Each game gets the renderer that works best for it: Apple D3DMetal for Age of Empires IV, and DXMT with shader pre-compilation for Counter-Strike 2.
- Overwatch on Recall's engine. Overwatch runs on the Wine and DXMT build of Recall, with its fullscreen canvas, raw mouse input, macOS Game Mode and graphics pipelines prepared before each session. Battle.net starts the game when you choose Play.
- Faster x87 math for Age of Empires IV. On the exact game build it was made for, the game runs under x87sidecar, a JIT that replaces Rosetta's slow x87 translation. Any other build falls back to standard Wine on its own.
- Kept apart from your Mac. The Windows environment has no links into your home folder.
- Made for more games. Adding a game is one profile in code. The library, artwork and setup follow.
| Game | Environment | Renderer |
|---|---|---|
| Age of Empires IV | Steam library | D3DMetal, x87sidecar optimization |
| Counter-Strike 2 | Steam library | DXMT with early shader compile |
| Age of Empires III: Definitive Edition | Steam library | D3DMetal |
| Age of Mythology: Retold | Steam library | D3DMetal, notch-safe fullscreen |
| Company of Heroes 3 | Steam library | D3DMetal, Microsoft UCRT for multiplayer |
| Command & Conquer: Generals Zero Hour | Steam library | Wine D3D8, GeneralsOnline for online play |
| Command & Conquer: Red Alert 2 | Steam library | cnc-ddraw, CnCNet for online play |
| Heroes of Might and Magic III | Steam library | cnc-ddraw, sound fix |
| Diablo IV | Steam library | D3DMetal |
| Path of Exile 2 | Steam library | D3DMetal, DirectX 12 |
| Hogwarts Legacy | Steam library | D3DMetal |
| The Witcher 3: Wild Hunt | Steam library | D3DMetal, FidelityFX proxy |
| Elden Ring | Steam library | D3DMetal, offline play only |
| The Elder Scrolls V: Skyrim Special Edition | Skyrim | DXMT 0.72 |
| Overwatch | Overwatch | Recall 1.1's Wine and DXMT, through Battle.net |
| Diablo IV (Battle.net) | Battle.net | D3DMetal, DXMT for the client |
| Diablo II: Resurrected | Battle.net | D3DMetal, DXMT for the client |
| Red Dead Redemption 2 | Rockstar | D3DMetal, WineD3D for the Rockstar launcher |
| GTA San Andreas: The Definitive Edition | Rockstar | D3DMetal, WineD3D for the Rockstar launcher |
| Grand Theft Auto V Enhanced | GTA V | Wine 11.13, D3DMetal 4.0b2, story mode only |
You need to own each game. MacGames never includes or downloads games itself.
Environments. Most games share one Steam client in the Steam library. A game gets its own Windows environment, with its own Steam or Battle.net, when it needs a different engine or changes to Windows that would break the others. Each environment downloads its extra parts on first setup.
Online play. Zero Hour and Red Alert 2 have a Play Online button that sets up and starts the community clients. Elden Ring runs offline only, and GTA V runs story mode only. Online play with anti-cheat is at your own risk.
- A Mac with Apple Silicon (M1 or later)
- macOS 26 or later
- Rosetta 2 (MacGames tells you how to install it if it is missing)
- About 3 GB for the shared environment, plus the size of your games
Download MacGames-<version>.dmg from the latest release, open it, and
drag MacGames into Applications. The app is signed with a Developer ID and notarized by Apple.
MacGames checks for updates itself; you can also choose MacGames > Check for Updates….
To build MacGames yourself, use Xcode.
-
Install Xcode 27 and XcodeGen (
brew install xcodegen). -
Get the runtime: the Wine engine, DXMT and x87sidecar, with their source code and licenses.
scripts/fetch-runtime.sh
This downloads the runtime archive (about 125 MB) from this repository's releases, checks its SHA-256 and signatures, and unpacks it into
Vendor/. -
Build and open the app:
xcodegen generate xcodebuild -project MacGames.xcodeproj -scheme MacGames -configuration Release \ -derivedDataPath build/DerivedData build open build/DerivedData/Build/Products/Release/MacGames.app
- Select a game and choose Set up. This takes about a minute the first time.
- Steam opens. Sign in, then install the game and keep the default folder.
- Choose Play. The Steam card in the sidebar shows downloads and lets you open or stop Steam.
Settings for each game are on its page: the Metal performance HUD, the x87 optimization for Age of Empires IV, and a window size reset for Counter-Strike 2.
Uninstall on a game's page deletes its files and keeps your saves and settings. When no game of a group is installed any more, Remove setup deletes that group's launcher and Windows files.
Everything also works from the command line, which helps with scripts and bug reports:
MacGames.app/Contents/MacOS/MacGames --command status --game aoe4Commands: check, setup, steam, install, play, stop, uninstall, remove-setup, status,
reset-display, and settings --optimized on|off --hud on|off.
MacGames.app
├─ sets up ~/Library/Application Support/macgames/steam
│ ├─ deps/Frameworks libraries and D3DMetal (downloaded, hash checked)
│ ├─ engine Wine 11 + DXMT + controller overlays
│ ├─ prefix Windows environment with the shared Steam
│ └─ games/<id> per-game settings and shader caches
└─ starts wine steam.exe -applaunch <app id> with that game's environment
└─ Steam starts the game (x86-64, under Rosetta 2)
└─ Age of Empires IV only: MacGamesBridge → x87sidecar
Steam hands its own environment to every game it starts. Because the games need different renderers, MacGames restarts Steam with the right settings before a launch when needed. It never restarts Steam while a game runs, and opening Steam never interrupts a download.
More detail is in CONTRIBUTING.md.
The game shows a message about the video card driver. This is normal with Wine. Choose OK.
Is online play safe? Counter-Strike 2 runs with VAC on, like on Windows. Valve has no official statement about Wine on macOS, so play online at your own risk.
Where are the logs? Choose Logs in a game's settings, or open
~/Library/Application Support/macgames/steam/logs.
Can I add a game? Yes. See Adding a game. Please open a game request first, so others can help test it.
Bug reports, test results from other Macs, and new game profiles are very welcome. Read CONTRIBUTING.md to get started, and please follow the code of conduct.
MacGames is free for non-commercial use under the PolyForm Noncommercial License 1.0.0. You may use, change and share it for personal use, hobby projects, research, education, and in charities and public institutions.
You may not sell MacGames, include it in a paid product, or use it in any other commercial way. This makes MacGames source-available rather than "open source" in the OSI sense. For commercial licensing, open an issue or contact @tarikbc.
Third-party components keep their own licenses. Wine stays LGPL, and x87sidecar and DXMT stay MIT. See THIRD_PARTY_NOTICES.md.
MacGames stands on these open-source projects:
- Wine, and the open-source release of CrossOver by CodeWeavers that the engine is built from
- x87sidecar, based on rosettax87_jit
- DXMT by Feifan He
- Sikarugir, which packages the libraries MacGames downloads
- SDL, for game controllers
- cnc-ddraw by FunkyFr3sh, for Heroes III and Red Alert 2
- witcher3-crossover-fix, the Witcher 3 FidelityFX proxy
- CnCNet, the Red Alert 2 online client
- EldenRingEacToggler, for the offline Elden Ring start
- .NET, which the CnCNet client runs on
MacGames is not affiliated with Valve, Microsoft, Apple or CodeWeavers. Game names and artwork belong to their owners.

