Highball changelog
Back to Highball24 releases since September 2026 · GitHub releases, checked Oct 26, 2026
0.10.22Latest
Controllers now reach games on the native arm64 preview engine. On engines r1 to r5, Wine's controller support never finished starting, so Microsoft Flight Simulator 2024 saw no joystick, yoke, throttle or pedals, only mouse and keyboard. Engine r6 fixes it, and when you press Play, Highball offers to move the game's environment to r6. Thanks @CaptMoore for the report. If your controls still don't show up in the game, tell us in #397.
Also in this version:
- A new app icon in Icon Composer's format, so macOS 26 and later draw it as a Liquid Glass icon. It's the work of @hayden9002, thank you Hayden!
0.10.21
Play now says when a game's fix needs a newer macOS, before any question or download. Microsoft Flight Simulator 2024's engine needs macOS 26.5 or later, and 0.10.20 offered it on any macOS, where it then could not start. Forza Horizon 6's engine needs macOS 27, and Play says that too. You can still play without the fix, as before.
Also in this version:
- A game Steam has marked for an update now comes along to a new environment as a clone, and the new environment's Steam downloads only the update. Before, such a game was downloaded again in full.
- The memory note in Play's questions says what a game was tested with, 32 GB for Flight Simulator 2024, since smaller Macs are untested rather than ruled out.
- An engine is never installed on a macOS older than the one it needs, whatever asks for it.
0.10.20
Microsoft Flight Simulator 2024 stutters far less on the native arm64 preview engine. Play now offers its new revision, r5. The game keeps rewriting small pieces of its own code while it runs, and each rewrite made the x86 emulator throw away its translation of that code and translate it again, on the game's main thread, which showed up as long frames. r5 steps over writes that put back the bytes already in memory, translates freshly rewritten code in small pieces for a few seconds, and reuses an earlier translation when the same code comes back. In test flights on a base M4 at Gibraltar, frames over 100 ms fell from 59 to 5 in two minutes parked on the runway and from 55 to 23 per minute of take-off roll, and the frame rate went from 19 to 22.5 fps parked. The game's recipe turns these switches on for Flight Simulator 2024 only, so other games are not affected.
To try it, press Play on Flight Simulator 2024, choose Use the preview engine, then New environment. Highball sets up an environment on r5 with a Steam of its own that you sign in to once, and the copy of the game you already installed comes along without a new download. If you already set the game up on an earlier preview revision, Play offers once to move that environment to r5. The tested configuration is a Mac with 32 GB of memory, and smaller Macs have not been tested enough to say how they do. The first launch takes about 13 minutes to reach the cockpit, and the take-off can still hitch when one of the game's pop-ups opens.
Also in this version:
- Read more on a game page opens when you click the words, not only the small arrow beside them. Thanks to Hayden on Discord.
Coming from 0.10.15? Everything from the 0.10.16 to 0.10.19 betas is in this version too:
- Forza Horizon 6's dialogue, navigator and engine sound play on the Wine 11 engines r24 and later. Pick one in your Forza environment's settings, under Advanced, Engine. Thanks to @TxCsOffc, who found the cause and wrote the fix (highball#313).
- Games on the native arm64 preview engine can get macOS Game Mode, since its helper now declares itself a game. The Intel engines don't get it yet (highball#338). Thanks to @dtacci (highball#339). (Corrected on 2026-10-19, this line first said every Wine game.)
- A game can open on the display you pick, from the Display choice in its Advanced section. Thanks to @tuandinh0801, who built it (highball#360).
- Steep starts on Apple silicon, on the new default engine r28. Thanks to @Sean-Shmulevich, who found the cause and wrote the fix (highball-db#465).
- Red Dead Redemption 2 no longer stops with Rockstar launcher error 113 in an environment moved off the default engine. Thanks to crêpe on Discord.
- Stop really stops an Epic download and keeps its progress. Thanks to udance4ever (highball#323), who also asked why a 32-bit Mac game gets its Windows version, which Highball now explains (highball#316).
- A Steam install that finishes while the game's page is open turns its button into Play. Thanks to @NorseGaud (highball#286).
- A Highball folder on an exFAT drive no longer hands Wine the hidden ._ files macOS writes there. Thanks to akki on Discord.
- BeamNG.drive starts with -gfx dx11 by itself. Thanks to DJTheron (highball-db#474).
- Apple's D3DMetal from Game Porting Toolkit 4.0 beta 3 on the r26 engine, vkd3d's shader pipeline cache kept between starts, and a warning before a download when your Mac has less memory than the game needs.
0.10.15
Game pages show the game's screenshots and its Steam description, genres, developer, publisher and release date, and a Steam button in the toolbar opens Steam in one click. Thanks to @matiasmg-ok for both (highball#279, highball#292), and to udance4ever for asking for the button (highball#285).
Loud game sound no longer crackles. Windows quietly turns a game's mix down when it goes over full scale, and Wine on a Mac sent it to the speakers clipped instead. Highball's audio library now does what Windows does, and sound below full scale passes exactly as before. Environments on the default engine get it by themselves (engine r26). On a Wine 11 engine, pick r23 in the environment's settings under Advanced, Engine, or r22 if you use D3DMetal 4. HB_AUDIOLIMIT=0 in an environment's variables turns it off. Thanks to udance4ever for the report (highball-db#349).
The EA app's repair works again. Highball used to put a Mac link next to the folder link the EA installer makes, and a repair could then delete part of the app, so it crashed on its next start. Highball now leaves the installer's own link to Wine and removes the old one the next time you start the EA app. If yours already crashes, install the EA app again from Highball. Thanks to udance4ever for the logs (highball-db#318, highball-db#418).
Also in this version:
- A game the Windows Steam client installed no longer shows as installed in Steam for Mac. A Steam library both clients use, such as one on an external drive, made Play go to Steam for Mac with none of the game's fix. Thanks to Okami on Discord.
- Highball reads Steam's own data to tell whether a game has a Mac version, the way Steam for Mac does. Mac ports whose store page leaves macOS out, such as LEGO Jurassic World, LEGO The Incredibles and Batman: Arkham City, now offer Install on Mac, and 32-bit Mac builds no current Mac can run, such as Stacking or Mafia II Classic, are no longer offered first. Thanks to udance4ever (highball#310, highball#316).
- Installing an Epic game shows its size, a progress bar and the download speed at the bottom of the window. Thanks to udance4ever (highball#287).
- A game's first window comes to the front when it opens while Highball is in front. Thanks to NorseGaud (highball#286).
- Discord activity works with Vesktop and other clients that serve Discord's local socket, not only Discord's own app. Thanks to Nico on Discord.
- GTA V bought on Epic starts through the Rockstar launcher, since Highball now recognizes the Epic copies. Thanks to udance4ever (highball-db#415).
- A frame cap also holds for games that bring their own DXMT settings.
- Steam's setup note no longer tells you to turn off GPU accelerated rendering in web views, which leaves Steam's window black on the Wine 11 engine. Thanks to w8079 (highball#282).
Coming from 0.10.10, this update also brings everything from 0.10.11 to 0.10.14: Steam's window in environments set to D3DMetal, a new environment for a game getting its own Steam, external drives as drive letters, Retina mode no longer doubling the screen size Windows programs see, per-game launch arguments, disc images, Portal and Portal 2 with HDR, and The Sims Legacy Collection's thumbnails. Thanks to @matiasmg-ok, @NorseGaud and @athei for their code, and to Hayden and natalie on Discord. The notes for each are on the releases page.
The database gained many games from your reports, among them Wayfinder, which now starts with -dx11 by itself. Thanks to everyone who sent one.
0.10.10
Forza Horizon 6 now starts on Apple's D3DMetal even in an environment whose graphics mode you set by hand. A game that only has DirectX 12 cannot run in a mode without it, so Play now gives such a game a mode that has DirectX 12, the one it was verified on, for that launch only. Your environment keeps its own mode for every other game, the log says what happened, and the game's page says the same before you press Play. On 0.10.9, Forza in an environment set to DXMT by hand started on DXMT and stopped at Steam's controller notice.
A game whose folder is a link (a game moved to another disk and linked back) is recognised again. Highball did not look inside such a folder, so the game had no icon, no per-program settings, and no DirectX 12 check.
When an environment already runs the engine a game needs, the engine question now offers to use that environment first, applying the game's fix there if it is missing (Mirror's Edge Catalyst with the EA app, highball-db#318). A new environment's done row offers to install the game in its Steam. Each environment's card counts the games installed in it, and a game installed in two environments lives in the default one, with Play there for the other copy (highball#264).
The first Play with a fix that changes the launch environment no longer starts a Steam client only to close it, which saved 15 to 45 seconds when Steam was not running.
Checked on a base M4 with macOS 27: Forza Horizon 6 in an environment set to DXMT by hand starts on D3DMetal, and the game drives through Tokyo at 46 to 53 fps on Very Low and 32 to 39 fps on Medium with FSR in the rain, at 1080p.
- Forza Horizon 6 plays on macOS 27. Play asks for the new Wine 11 engine r18, which carries Apple's D3DMetal 4, and applies the game's settings. The first start spends about three minutes optimizing shaders and asks for a one-time Xbox sign-in. The frame rates above come from one Mac, a base M4. Online play, controllers and the game's benchmark mode are not validated yet.
- Xbox Live games keep their sign-in on the Wine 11 engine. A failed credential lookup made them ask again at every start. Forza Horizon 6 also stops warning about low memory, because Wine now reports what a program really uses on macOS.
- Discord can show what you play, with the game's own Rich Presence when it has one. It is off by default, under "Share game activity with Discord" in Settings. Thanks to @matiasmg-ok for building it (PR #260).
- The library opens on an Installed games row with large covers and a Play button on each, and switching an environment's engine opens a page that shows what moves with it. Both come from @matiasmg-ok's work in PR #230, thanks!
- Games can be renamed from their tile's menu, and Reset name brings the store's title back.
- Steam libraries on another disk show up, whether Steam lists the folder or the steamapps folder is a link.
- The EA app installs again, on the Wine 11 engine, and Mirror's Edge Catalyst gets a recipe for it.
- Data execution prevention stays on in both engines. With it off, every buffer write cost a trip into the system under Rosetta, which slowed Direct3D 9 games that stream vertices. In athei's test program on an M4, 1,500 frames of writes went from 30 to 50 seconds to about 1.3 (highball#165). Thanks to @athei for the patch and the test program.
- Fewer crashes on the Wine 11 engine. Its DXMT build had a startup bug that could kill a game at launch or minutes in (highball#240).
- Highball always opens its window, even after a quit with only Settings open.
- Play no longer hangs on Steam's one-time "controller recommended" notice for games that run on D3DMetal.
- The database gained many games and reports from players, and the app now always ships the current copy.
Each step is described in full in the beta notes for 0.10.4 to 0.10.9.
0.10.3
Games no longer break up their sound into short silences.
Some games keep very little sound queued, and at 48 kHz the Mac asked Wine for more at a time than they had, so a few times a second the sound dropped out for a moment. Counter-Strike 2 and Deadlock were the ones reported (highball#127, #187). Engine r19 (the default line), r20 (the GPTK 4 line) and r14 (the Wine 11 engine) keep each request well under what such a game holds. Measured on an M4 with Counter-Strike 2's menu music, 324 dropouts in two minutes before and none after, while Half-Life 2, Among Us and Five Nights at Freddy's sound exactly as they did. Environments on the default and GPTK 4 lines move to the new revision by themselves once Steam is closed, and only a 2 KB file downloads. The 96 kHz workaround in Audio MIDI Setup is no longer needed.
If a game sounds wrong after this, HB_AUDIOBUF=0 in the environment's variables turns the change off for that environment.
A game that needs the Wine 11 engine now gets its newest revision.
A game's recipe names the engine revision it was verified on, and Play offered exactly that revision to an environment on the default engine. Red Dead Redemption 2 names r7, from early September, so every new player who said yes in 0.10.2 was moved to r7 (highball-db#272), five revisions behind the Wine 11 engine the same build ships, with the msync leak and without the later fixes, and an environment on a Wine 11 engine never moves on its own. The offer is now the newest shipped revision that carries what the recipe needs, skipping one this Mac cannot run. Grand Theft Auto V, Guardians of the Galaxy, Helldivers 2, CS:GO, Persona 5 Royal, Metaphor and Planet Coaster 2 pinned older revisions the same way.
Report a problem no longer lands on GitHub's error page for someone not signed in.
The report link carries the newest log, and GitHub's sign-in page refuses a return address past about 7 KB, which a long log reached. The link is shorter now and keeps the launch header and configuration that triage reads first.
A launch log no longer mentions CS:GO for every other game.
Every DXVK-mode log quoted the whole generated dxvk.conf, the built-in CS:GO section included, which made a World of Warships log say csgo.exe. The header now quotes the global line and any section a recipe set.
The Rockstar Games Launcher installs again on the Wine 11 engine.
From r11 to r14, the first display call of a program left a garbage error code behind, because a fix for Unity games wrote the error code back twice on every window callback. Most programs never noticed. The Rockstar Games Launcher installer checks that code right after it measures the display and stopped with "make sure all instances of the Rockstar Games Launcher have been closed", so Red Dead Redemption 2's first run through Steam never got its launcher (highball-db#272). Engine r15 removes the second write. Measured on an M4 with a probe and with the installer itself, which now reaches its language page.
0.10.2Big update
Long sessions no longer freeze on msync.
With msync on, Wine kept a record every time a wait on several objects lost a race and never removed it, so a long session filled msync's pool and Wine's background process kept growing until the game stalled. My Summer Car froze this way in long sessions (highball#224). Engine r17 (the default line), r18 (the GPTK 4 line) and r13 (the Wine 11 engine) fix it. Environments on the default and GPTK 4 lines move to their new revision by themselves once Steam is closed, and only a 435 KB archive downloads. An environment on the Wine 11 engine keeps its engine until you pick r13 under Settings, Environments, the environment's page, Advanced.
The frame rate cap now works in Apple's DirectX 12 mode. Before, it only reached the 32-bit games that mode hands to DXMT. On the GPTK 4 engines a 64-bit game now holds the cap you set, measured at a steady 30.0 and 60.0 fps.
A graphics mode set for one game on its page now applies when you press Play. Before, Highball launched the game with the mode it would have picked anyway.
A game whose publisher blocks macOS now shows as blocked, and its page says the block is the publisher's. World of Warships is the first.
The .NET Framework 4.8 dependency shows as missing where only Wine Mono is installed, so a game that needs the real .NET can install it from its page (highball-db#195).
Nexon's Steam connector for Vindictus opens its window on the default engine, and library tiles with a wide cover no longer light up and take the clicks meant for the tile next to them.
A game that keeps its program deep in its folder, like Counter-Strike 2, gets its per-program settings back on its page, Display mode among them (highball#156).
0.9.39
Frame generation is no longer offered. Its component, lsfg-metal, leaves Highball at its author's request over a licensing dispute he did not want to carry, so the engines get revisions without it (r11 on the default line, r12 on the GPTK 4 line, the same files otherwise, nothing new to download) and no engine ships it any more. An environment that already has it keeps working as it is until it moves engine. The Lossless Scaling DLL was always your own purchase and is untouched.
Steam games with a native Mac build are pointed out, and the Mac build comes first.
The Steam badge carries an Apple logo when the game has a native Mac build on Steam, lit when Steam for Mac has it installed, and those games count as installed. The game's page gets a card above the verdict saying the purchase already includes the Mac build, with its requirements when the database knows them. Play on Mac starts it through Steam for Mac, and Install on Mac hands the install to Steam for Mac's own dialog, with the Windows build one click away for mods or a port that lags behind. Which games count comes from the database first and Steam's store page second, asked once every two weeks in the background, never on the way to Play. Thanks to @zxkevinxz for the contribution.
A hovered tile in Continue playing is no longer cut at the top.
An engine can now ask for registry values under a program's AppDefaults key, mirrored into every environment on that engine before a launch. No engine uses it yet.
0.9.38
A game's recipe settings now apply to that game only.
A recipe could set an environment variable for a game, and until now that variable reached every program in the environment. The Sims' recipe sets one its Vulkan renderer needs, and on the Wine 11 engines that same variable stopped DXVK's Direct3D 9 from drawing for every other game in the environment (Half-Life 2 never showed a window, Five Nights at Freddy's never drew). Six other recipes set variables the same way. Now a game recipe's variable is carried by that game's launches and nothing else, on Steam and on Epic. An environment that already has such a variable from an earlier version moves it to the game the next time that game is played, and the activity log says so. Launcher recipes keep their environment-wide settings, since those are for the client and what it starts.
Steam restarts when the client was started for a game with different variables, so the next game never inherits them.
On the Wine 11 engines r11 and r12, a Direct3D 9 game in the DXMT or D3DMetal mode now uses Wine's own Direct3D instead of DXVK's, which on that tree ran Half-Life 2 at 17 fps where Wine's own gives 131, and Five Nights at Freddy's at 40 where the default engine gives 76. The engine says so in its manifest and engines already installed pick the rule up on the next start. The DXVK mode itself is unchanged, so a game that needs DXVK's Direct3D 9, like CS:GO Legacy, keeps it.
Frame generation can use a Lossless Scaling copy from anywhere. A button under the frame generation setting picks its lsfg-vk.dll, for example from a CrossOver bottle, so Steam and Lossless Scaling need not be installed a second time in Highball. It records the same LSFGM_DLL_PATH the environment editor accepts by hand, and Clear removes it.
A game's page lists, under Advanced, the variables its fix scoped to it, so what a game gets on top of the environment's own settings is visible.
A DLL override typed into the environment variables box, winhttp=n,b or mfplat=, is pointed out under the box, with a button that moves it into the DLL overrides field where Wine reads it. Two reports in one day had one in the wrong box.
A new dependency, Controllers through SDL, switches Wine's controller driver to SDL only, for a gamepad a game does not recognise or that shows up twice. It sets the two registry values an Elden Ring player found by hand (highball-db#228).
ContractVille runs on the Wine 11 engine and never leaves its loading screen on the Wine 10 one, so its database fix names the Wine 11 engine and DXMT, and Highball offers the engine on Play (highball#202).
The library can show the Steam games you own, not only the installed ones. Switch the Installed chip off to see them, and Install on such a game hands it to Steam's own install dialog. The default view is unchanged. Thanks to zxkevinxz for the contribution.
0.9.35
Frame generation is one switch away, and three fixes from contributors.
Engine r7 is the new default: the same Wine, DXMT, D3DMetal, MoltenVK and Direct3D 9 as r5, plus itsOwen's lsfg-metal frame generation shim as a component (highball#109, #171). It is off unless an environment turns it on under Frame generation, so nothing changes for a game that does not ask. On, it needs your own Lossless Scaling from Steam (its lsfg-vk beta branch), installed in any environment. Environments on r5 move to r7 on their own at the next launch, a 383 KB download. r8 is the same for the macOS 27 engine with D3DMetal from Game Porting Toolkit 4.
From kkorenn: when an antivirus has quarantined part of Highball's engine, Highball now says which of Wine's files are gone and offers to install the engine again, instead of suggesting a fresh download that never helped. A game that came up small in a corner with the mouse landing off its picture gets the matching fix offered from Had problems, scaled fullscreen for that game only. Install statistics say what they are and need no reply. Launch logs record the Mac's audio output rate for sound reports.
From itsOwen: Lossless Scaling's shader is found in any environment, so an Epic-only or GOG-only environment can use frame generation too.
Also: the report form for the compatibility database now asks what was not perfect right under the rating.
0.9.33
New Wine 11 engine, x64-crossover26.3-r11, with two fixes for bugs that only show on a Mac.
The Last Flame's Start did nothing. After a file call the game asks Windows for its last error, and Wine on macOS keeps that value in a different thread slot from the one MSVC-built code such as Unity's Mono reads, so a missing save file came back as a stray pointer and the click ended in an exception. r11 keeps the two slots in step. The same bug can hit any Unity game whose error paths read GetLastError directly.
Videos a game plays through Windows Media Foundation and hands to Direct3D 11 as shared textures now reach DXMT with a real shared handle (the fix Proton carries). The Last Flame's menu video plays.
The Last Flame's page names the engine, so pressing Play offers it. Verified with the free Prologue on an M1 Pro: menu, run start, first fight, quit and save, on DXMT at about 86 fps.
A fix that needs an engine your Highball does not ship yet now says so and points at Check for Updates, with the option to play without it, instead of launching on the old engine as if nothing had asked.
r11 is a pick under Advanced or an offer from a game's page, not the default engine. Nothing changes for environments that stay on their engine.
0.9.32
New engine to pick under Advanced on macOS 27 or newer, x64-sikarugir10.0_6-r6, with Apple's D3DMetal from Game Porting Toolkit 4 for DirectX 12 games: HumanitZ ran at a fraction of the memory, picture confirmed. Engines now stay hidden on a macOS older than they need.
0.9.28
Fresh-install launchers get the right graphics stack (Rockstar sign-in no longer empty on first launch), frame generation changes restart the Steam client
0.9.23
Candidate engine r4 withdrawn (it broke RaceRoom and FNAF); the Rockstar launcher recipe asks for the Wine 11 engine instead of refusing
0.9.19
Engines r3 and r9: the DirectX 12 timestamp shim now carries the real d3d12 export ordinals, so games that bind them by number (Path of Exile 2) start on D3DMetal
0.9.18
A Steam client kept with another graphics mode is now said out loud, in the activity log, the launch log and the session
0.9.17
A changed AVX or Metal HUD toggle now restarts the Steam client, and the launch log records both
0.9.16
If Rosetta stops working, after a macOS update for instance, Highball offers to install it instead of failing every launch.
0.9.15
A Mac without working Rosetta gets a clear message and the install command instead of Bad CPU type in executable.
0.9.14
The Microsoft core fonts dependency installs on any Mac: Highball now bundles the cabextract tool winetricks needs.
Show 4 older releases
0.9.13
Remove a shortcut from the game's page, and uninstall Windows programs from the environment's settings.
0.9.12
Red Dead Redemption 2 and GTA V bought on Epic now start through a stand-in for Epic's launcher, so the Rockstar launcher accepts the copy instead of showing Buy Now.
0.9.11
Double-click a Windows program in Finder, or Open With Highball, and it runs in your environment, with the option to keep it in Programs.
0.9.10
Dependencies gain Microsoft's core fonts for games whose menus come up blank, and a report from a game on the environment's mode names that mode.