Zero Hour running natively on Apple Silicon (D3D8 → Metal, no Wine/DXVK) #2886
dvcdsys
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Made this for fun for myself and it ended up fully playable, so sharing: a macOS-only fork that runs Zero Hour natively on Apple Silicon — a direct D3D8 → Metal shim, no Wine/DXVK/MoltenVK anywhere in the stack.
Upfront: this was built with heavy use of AI coding tools. I'm not hiding that — the goal was a playable game, not a hand-crafted monument. Every fix is verified in real gameplay, and each release ships a symptom → cause → fix changelog, so you can judge the work by its results.
Working: skirmish, singleplayer campaigns, Generals Challenge, save/load, replays. Rendering looks clean — I haven't spotted any visual glitches in normal play (terrain, water, particles, shroud, UI all behave). Memory stays flat (~1.3–1.4 GB in-game).
It's not just a 1:1 port either — a few engine niceties came along the way:
Most of my testing actually happens on a total-conversion mod rather than vanilla — I'm a big Cold War Crisis (CWC) fan, so that's what I play daily. It runs fully on this build, which was a nice stress test: a TC swaps out pretty much every asset the renderer touches.
There's a small launcher app that downloads the engine and keeps it updated, so non-technical users don't have to build anything — just bring your own game assets (nothing copyrighted is included).
Repo: https://github.com/dvcdsys/GeneralsGameCode-macOS
It's intentionally a divergent fork (Windows CI / VC6 support removed, so nothing here is upstreamable as-is), but happy to answer questions about what it took — the D3D8→Metal layer,
\-path normalisation at the fs boundaries, and a lot of stubs that had to stop failing silently.Huge thanks to TheSuperHackers — none of this would exist without this project.
All reactions