Highball Download

Highball › How the compatibility data works

How the data works

Compatibility claims about Mac gaming age badly. An engine bump, a macOS update or a game patch can turn a working title into a broken one overnight, and most compatibility lists never tell you when their answer was last true. This database is built to avoid that.

Four tiers, and what each one means

Separately, 12,491 Steam titles carry a prediction: recent ProtonDB verdicts crossed with anti-cheat data. Proton describes Linux, which has a different graphics stack and different failure modes, so a prediction is odds rather than an answer. Those pages are deliberately kept out of search results until somebody confirms a result on an actual Mac.

Per renderer, not per game

Most compatibility lists give a game one verdict. That is not enough here, because Highball can run the same game through three different Direct3D translation layers, and which one works varies wildly by title. Portal 2 needs DXVK. Assetto Corsa wants D3DMetal. A game that black-screens under one renderer often runs fine under another, so a single verdict throws away the part you actually need.

Every game page therefore shows a row per renderer, and says plainly when a row is untested. Empty rows are open questions rather than failures, and they are the fastest thing for a contributor to fill in.

Dates, not rumours

Verdicts carry the engine build and macOS version they were seen on. This matters more than it sounds: several titles work only on specific combinations, and a result from an older engine can be actively misleading today. A claim without a date is a rumour, so the database shows the date it has, or admits it has none.

Licensing

Curated entries, recipes and verification results are CC0. Take them, fork them, ship them in your own tool, no attribution required. The ProtonDB-derived prediction table is ODbL 1.0 with attribution, because that is what its source requires, and the anti-cheat data keeps AreWeAntiCheatYet's MIT notice. The split is deliberate: the parts we generate are as free as we can make them, and the parts we borrow keep their original terms.

Use the data in your own tool

Everything on this site is also published as plain JSON with open CORS, so a launcher, a wiki or a script can read it directly. Each file names its licence.

URLWhat it holdsLicence
/data/steam/<appid>.json One Steam game by app id. A curated entry comes back whole, every field its record has, from status and renderer to launch arguments, known issues, per-renderer results and provenance, with kind set to curated. A game with only a prediction comes back with kind set to prediction. A game the database knows nothing about is a 404. CC0 for curated entries, ODbL 1.0 for predictions
/data/games.json All 438 curated entries in one file, one row per game, with its Steam app id and a link to its page. CC0
/data/predictions.json All 12,491 predictions, keyed by Steam app id. ODbL 1.0, attribute ProtonDB

The files are rebuilt on every database change and cached for ten minutes. The fields of a curated entry are the ones in db/games/ of the source repository, described in its README. The schema number in a lookup file only changes if a field is renamed or removed. If you build on this and something is missing, say so.

Contributing

A report takes a minute and is the only way the empty rows get filled. Send one here — the game, your chip, your macOS version, the renderer you used, and whether it worked. Negative results are just as useful as positive ones, and often more so.

The whole database lives at github.com/gauthierpiarrette/highball-db as plain JSON.