Run Windows games on Apple Silicon — free, open source, with an open compatibility database that tells you what actually works.
264
stars
129
commits
Swift
primary language
Sep 10, 2026
updated

Run Windows games on Apple Silicon. Free, open, and never locked to one Wine build.

Highball is a native macOS app (and CLI) that sets up Wine, DXMT, D3DMetal and DXVK for you, installs Steam or connects your Epic library, and tells you honestly what runs, what doesn't, and which renderer to use.
The difference is the data. Every verdict comes from an open, CC0 compatibility database: verified runs, per-game renderer verdicts, and the kernel-anti-cheat blocklist, with provenance on every claim. It's a standalone dataset any tool can build on (highball-db, browsable at gethighball.com/database), so you can check whether your game runs before downloading a byte.
macOS 14+, notarized. Drag it to Applications and open it. The app walks you through the rest: engine download, your first bottle, Steam.
Not sure it'll run your game? Check the compatibility database →
Beta, working end to end: engine install → bottle → Steam login → game, with per-bottle renderer switching and msync-accelerated launches. Auto-updating. Not a paid tool and not a thin wrapper: engines are assembled from pinned, SHA-256-verified upstream builds, and the compatibility data is public and free for anyone to reuse.
That's the whole point of the project, so the answer lives in an open, CC0 database: a verified renderer verdict, the frame rate people actually got, and provenance on every claim. Verified runs, community reports and machine-derived predictions are labelled separately, so you always know which one you're looking at, and it flags kernel-anti-cheat titles as impossible before you download 80 GB.
Cyberpunk 2077, for one, runs 60–82 fps on an M5 (D3DMetal + FSR 2.1). Renderer switching, 32-bit apps via Wine's WoW64, Windows runtimes, ReShade, and your Epic library via Legendary work too.
Several store launchers with an embedded browser (Chromium/CEF) UI don't render under this
Wine build. Rockstar is blocked (it needs a CrossOver-only loader patch), and Ubisoft
Connect and GOG Galaxy don't render a usable login window (Ubisoft stays unpainted, GOG comes
up black), so you can't sign in. Battle.net and
the EA app are flaky. GOG's DRM-free offline installers can be run directly in a bottle,
and Epic works through Legendary. Each case is tracked in the recipe's knownIssues.
Requires Apple Silicon and macOS 14+, and prompts for Rosetta 2 if needed.
First run takes a while: the engine download is a few hundred MB, and Steam's first launch unpacks its own ~235 MB client. Under Rosetta that can take 15–25 minutes and may look frozen. Let it finish. If it stalls, relaunch and it resumes.
Everything lives in ~/Library/Application Support/Highball/. Nothing touches /usr or
/Library; deleting that folder is a full uninstall.
git clone https://github.com/gauthierpiarrette/highball && cd highball # the app + CLI
git clone https://github.com/gauthierpiarrette/highball-db ../highball-db # recipes + game database (CC0)
swift build -c release
.build/release/highball engine install spike/engine-manifest.json
.build/release/highball engine accept x64-sikarugir10.0_6-r0 apple-gptk-license-2023-08-17 # optional: D3DMetal
.build/release/highball bottle create play --recipe steam
.build/release/highball run play Steam
Run every command from the highball repo root. Recipe and database paths resolve relative
to the current directory, with highball-db as a sibling folder.
Played something? highball report files the result to the open database (community reports
already cover M4, M5 and macOS 15). The in-app Report a Problem button is for bugs in
Highball itself.
This niche has a cautionary tale: Whisky was archived in 2025. Highball is built to avoid the ways these tools tend to die:
sync: none; this game needs
DXVK") are versioned CC0 data anyone can use, CrossOver users included. We don't know of
another machine-readable, CC0 recipe dataset for Wine on Mac.highball (CLI) and the app are thin views over HighballKit: an engine is a
manifest-defined bundle (Wine + runtime dylibs + renderer overlays) laid out under
engines/<id>; a bottle is a WINEPREFIX plus bottle.json; renderers (WineD3D /
DXMT / D3DMetal / DXVK) are directory overlays selected per launch via
WINEDLLPATH_PREPEND; recipes are declarative JSON steps (installer, registry,
winetricks, sync, renderer, pin, note) applied to a bottle. D3DMetal is gated behind
explicit acceptance of Apple's Game Porting Toolkit license and is never redistributed in
this repository.
highball report <bottle> "<title>" --rating N opens a pre-filled
compatibility report on highball-db;
accepted ones are folded into db/reports/ by CI.recipes/ with the CLI output attached. Every recipe carries lastVerified (engine id,
macOS, chip) so stale data is visible, not silently wrong.App + CLI + HighballKit: GPL-3.0 (LICENSE). Recipes and database: CC0-1.0 (in highball-db). Wine is LGPL; DXMT is MIT/LGPL; DXVK is Zlib; D3DMetal is Apple-licensed (non-commercial, downloaded separately, never modified). Highball has no paid tier and never will: the app is GPL-3.0 and the data CC0, so anyone can rebuild and redistribute it for free, and a locked paid tier could never hold.
Standing on: Wine · Gcenx (the entire free Mac Wine supply chain) · 3Shain's DXMT · Sikarugir · Apple's Game Porting Toolkit · Whisky, whose honesty about its own limits shaped this design.
128 commits
1 commits
Swift
91.9%
Shell
8.1%
Run Windows games on Apple Silicon — free, open source, with an open compatibility database that tells you what actually works.
264
stars
129
commits
Swift
primary language
Sep 10, 2026
updated

Run Windows games on Apple Silicon. Free, open, and never locked to one Wine build.

Highball is a native macOS app (and CLI) that sets up Wine, DXMT, D3DMetal and DXVK for you, installs Steam or connects your Epic library, and tells you honestly what runs, what doesn't, and which renderer to use.
The difference is the data. Every verdict comes from an open, CC0 compatibility database: verified runs, per-game renderer verdicts, and the kernel-anti-cheat blocklist, with provenance on every claim. It's a standalone dataset any tool can build on (highball-db, browsable at gethighball.com/database), so you can check whether your game runs before downloading a byte.
macOS 14+, notarized. Drag it to Applications and open it. The app walks you through the rest: engine download, your first bottle, Steam.
Not sure it'll run your game? Check the compatibility database →
Beta, working end to end: engine install → bottle → Steam login → game, with per-bottle renderer switching and msync-accelerated launches. Auto-updating. Not a paid tool and not a thin wrapper: engines are assembled from pinned, SHA-256-verified upstream builds, and the compatibility data is public and free for anyone to reuse.
That's the whole point of the project, so the answer lives in an open, CC0 database: a verified renderer verdict, the frame rate people actually got, and provenance on every claim. Verified runs, community reports and machine-derived predictions are labelled separately, so you always know which one you're looking at, and it flags kernel-anti-cheat titles as impossible before you download 80 GB.
Cyberpunk 2077, for one, runs 60–82 fps on an M5 (D3DMetal + FSR 2.1). Renderer switching, 32-bit apps via Wine's WoW64, Windows runtimes, ReShade, and your Epic library via Legendary work too.
Several store launchers with an embedded browser (Chromium/CEF) UI don't render under this
Wine build. Rockstar is blocked (it needs a CrossOver-only loader patch), and Ubisoft
Connect and GOG Galaxy don't render a usable login window (Ubisoft stays unpainted, GOG comes
up black), so you can't sign in. Battle.net and
the EA app are flaky. GOG's DRM-free offline installers can be run directly in a bottle,
and Epic works through Legendary. Each case is tracked in the recipe's knownIssues.
Requires Apple Silicon and macOS 14+, and prompts for Rosetta 2 if needed.
First run takes a while: the engine download is a few hundred MB, and Steam's first launch unpacks its own ~235 MB client. Under Rosetta that can take 15–25 minutes and may look frozen. Let it finish. If it stalls, relaunch and it resumes.
Everything lives in ~/Library/Application Support/Highball/. Nothing touches /usr or
/Library; deleting that folder is a full uninstall.
git clone https://github.com/gauthierpiarrette/highball && cd highball # the app + CLI
git clone https://github.com/gauthierpiarrette/highball-db ../highball-db # recipes + game database (CC0)
swift build -c release
.build/release/highball engine install spike/engine-manifest.json
.build/release/highball engine accept x64-sikarugir10.0_6-r0 apple-gptk-license-2023-08-17 # optional: D3DMetal
.build/release/highball bottle create play --recipe steam
.build/release/highball run play Steam
Run every command from the highball repo root. Recipe and database paths resolve relative
to the current directory, with highball-db as a sibling folder.
Played something? highball report files the result to the open database (community reports
already cover M4, M5 and macOS 15). The in-app Report a Problem button is for bugs in
Highball itself.
This niche has a cautionary tale: Whisky was archived in 2025. Highball is built to avoid the ways these tools tend to die:
sync: none; this game needs
DXVK") are versioned CC0 data anyone can use, CrossOver users included. We don't know of
another machine-readable, CC0 recipe dataset for Wine on Mac.highball (CLI) and the app are thin views over HighballKit: an engine is a
manifest-defined bundle (Wine + runtime dylibs + renderer overlays) laid out under
engines/<id>; a bottle is a WINEPREFIX plus bottle.json; renderers (WineD3D /
DXMT / D3DMetal / DXVK) are directory overlays selected per launch via
WINEDLLPATH_PREPEND; recipes are declarative JSON steps (installer, registry,
winetricks, sync, renderer, pin, note) applied to a bottle. D3DMetal is gated behind
explicit acceptance of Apple's Game Porting Toolkit license and is never redistributed in
this repository.
highball report <bottle> "<title>" --rating N opens a pre-filled
compatibility report on highball-db;
accepted ones are folded into db/reports/ by CI.recipes/ with the CLI output attached. Every recipe carries lastVerified (engine id,
macOS, chip) so stale data is visible, not silently wrong.App + CLI + HighballKit: GPL-3.0 (LICENSE). Recipes and database: CC0-1.0 (in highball-db). Wine is LGPL; DXMT is MIT/LGPL; DXVK is Zlib; D3DMetal is Apple-licensed (non-commercial, downloaded separately, never modified). Highball has no paid tier and never will: the app is GPL-3.0 and the data CC0, so anyone can rebuild and redistribute it for free, and a locked paid tier could never hold.
Standing on: Wine · Gcenx (the entire free Mac Wine supply chain) · 3Shain's DXMT · Sikarugir · Apple's Game Porting Toolkit · Whisky, whose honesty about its own limits shaped this design.
128 commits
1 commits
Swift
91.9%
Shell
8.1%