
Highball
Run Windows games on Apple Silicon. Free, open, and never locked to one Wine build.
English · 简体中文

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.
Download
Download Highball for Apple Silicon (.dmg)
macOS 14+, notarized. Drag it to Applications, open it and press Get started: Highball installs Rosetta if needed, downloads the engine and prepares a Windows environment, then asks where your games are (Steam, Epic, or a Windows program you have).
Or with Homebrew:
brew install --cask highballNot sure it'll run your game? Check the compatibility database →
Beta, working end to end: one-button setup → Steam login → game, with the graphics mode picked per game from the database 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.
Will my game run?
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.
Search your game in the database →
Cyberpunk 2077, for one, runs 60–82 fps on an M5 (D3DMetal + FSR 2.1), and Red Dead Redemption 2 plays on an M1 Pro after a MoltenVK fix that is now a pull request upstream. Renderer switching, 32-bit apps via Wine's WoW64, Windows runtimes, ReShade, and your Epic library via Legendary work too.
Launchers
Steam and Epic (through Legendary) work on the default engine. Rockstar, the EA app and
Ubisoft Connect draw their sign-in windows in an embedded browser that needs Highball's Wine 11
engine (built from the CrossOver 26.3 tree); Play offers that engine when a game needs it, and
you can move an environment to it in Settings. Rockstar signs in and runs GTA V and Red Dead
Redemption 2 here, the EA app signs in and runs The Sims 4, Ubisoft Connect and Battle.net show
their sign-in windows but no game has been played through them here yet. GOG Galaxy still comes
up black, so you can't sign in; GOG's DRM-free offline installers run directly in an environment
instead. Each case is tracked in the launcher recipe's knownIssues.
Getting started
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 to 25 minutes; the strip at the bottom of the window shows the step, the elapsed time and the range it usually takes. 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.
⌘C / ⌘V / ⌘A work inside Windows apps — the Command keys are mapped to Ctrl, and Option to Alt so Alt-based game bindings keep working. Turn it off per environment (Settings, then Environments) for Wine's default, where Command acts as Alt.
Prefer the terminal? The CLI does everything the app does.
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-r2 apple-gptk-license-2023-08-17 # optional: D3DMetal
.build/release/highball bottle create play --recipe steam
.build/release/highball run play SteamRun 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. Questions and quick help: the Highball Discord.
Why Highball is built this way
This niche has a cautionary tale: Whisky was archived in 2025. Highball is built to avoid the ways these tools tend to die:
- Engine-agnostic, and every patch is public. Engines are assembled from pinned,
SHA-256-verified builds: upstream releases where they exist (Gcenx's
builds, DXMT, the
Sikarugir runtime), and where a game needed a
fix nobody ships yet (a MoltenVK change for Red Dead Redemption 2, a Wine change for Guardians
of the Galaxy, the Wine 11 build from the CrossOver 26.3 tree), the patch and the build script
are in
spike/, the artifact is a checksummed GitHub release asset, and the patch goes upstream (MoltenVK #2825). An engine update is a JSON pull request. - The database is the product. Recipes ("Steam needs
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. - Additive to the ecosystem. Bugs go upstream, donation links point at Gcenx and DXMT, and if you want commercial-grade support you should buy CrossOver: it's the paid, supported option, and it funds most of Wine's Mac work.
Architecture in one paragraph
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, copy, file, 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.
Contributing
- Game results:
highball report <bottle> "<title>" --rating Nopens a pre-filled compatibility report on highball-db; accepted ones are folded intodb/reports/by CI. - Bugs in Highball itself: Highball menu → Report a Problem (pre-filled with your system info and the log).
- Recipes: PRs to highball-db
recipes/with the CLI output attached. A verified recipe carrieslastVerified(engine id, macOS, chip) so stale data is visible, not silently wrong. - Engines: manifest PRs bumping pinned versions, with a verification note.
Licensing
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.
Credits
Standing on: Wine · Gcenx (the entire free Mac Wine supply chain) · CodeWeavers (the CrossOver tree the Wine 11 engine is built from) · 3Shain's DXMT · Sikarugir · Apple's Game Porting Toolkit · Whisky, whose honesty about its own limits shaped this design.