r/macgaming • u/athei88 • 22h ago
Self promotion Mach9: A DirectX 9 focused Wine engine
In August I posted mtld3d here, a Direct3D 9 implementation on Metal for Wine.
D3D9 on Metal was the gap I wanted to fill. It turned out a D3D9 driver alone does not get games running: they also needed changes in Wine itself, in FEX (the x86 emulator used here instead of Rosetta), and in other parts of the graphics stack. Mach9 is the result: a Wine build for Apple Silicon with all of those changes, made to be embedded in launchers.
Not another launcher
The plan is for existing launchers to ship this engine, not to compete with them. A launcher copies the wine/ folder into its app and passes per-game settings in one environment variable. The rules are written with a small Rust crate, documented at https://docs.mach9.app. If you maintain a launcher and want to try it, open an issue and I will help.
Until that happens, the engine on its own is hard to try. So there is a small app, Mach9.app, to get more people testing. It starts any Windows .exe you point it at: a game, an installer, or a store client such as the Windows version of Steam if you install one. It is free and notarized (no Gatekeeper workaround), and it never asks for any account; logins happen in the store clients themselves.
AI use
A large part of the code was written with AI coding tools. I decide the design, review the changes and test the games. All of it is public, including every patch to Wine and FEX as plain commits in the forks, so you can check what was changed and why. If that is a dealbreaker for you, that is fair.
What is in it
- Wine for arm64, no Rosetta. FEX runs the games' x86 code.
- D3D9 on mtld3d. D3D10/11 on DXMT, D3D12 on vkd3d-proton, OpenGL on Mesa. Newer games run too, but they already run well under CrossOver, so the focus is older games.
- Source: https://github.com/athei/mach9 (build scripts, per-game rules and the app's source), zlib licence. The forks of Wine, FEX, mtld3d, DXMT, vkd3d-proton and Mesa are linked from https://github.com/athei/mach9/blob/main/docs/internals.md and keep their upstream licences.
- mtld3d is not complete. What it does not implement yet is listed in https://github.com/athei/mtld3d/blob/main/docs/STATUS.md
Credit goes to Wine and CodeWeavers, FEX, DXMT, vkd3d-proton and Mesa (KosmicKrisp). This builds on their work.
Games that run
Since the first post many more games have been tested, including ones that have trouble on other engines:
- GTA IV
- LEGO Indiana Jones: The Original Adventures
- Team Fortress 2
- Half-Life 2
- Left 4 Dead 2
- Halo 2 (Vista)
- World of Warcraft 1.12 / 3.3.5a
- Medieval II: Total War
- Mirror's Edge
- Need for Speed Carbon
- Pro Evolution Soccer 2017
- League of Legends 4.17
- Modern Warfare 2 (IW4X)
- Thief Gold (TFix)
- NosTale
- Age of Empires II HD
- Windows Steam client, Rockstar Games Launcher
Install
Needs a Mac with Apple Silicon and macOS 26.4 or later.
- Download https://updates.mach9.app/Mach9.dmg and drag Mach9 to Applications.

Open it from Applications. macOS shows "Background Items Added": that is the Dock menu being set up.
Right-click the Dock icon, Options, Keep in Dock.
Right-click the Dock icon, New Executable…, pick a game's
.exe, Run.

Installers work the same way: run the installer .exe with "Save as new game" off, install into a normal Mac folder such as ~/Games (Z:\Users\<you>\Games\... in the installer), then add the installed game's .exe. Steam is optional; if you want it, install the Windows Steam client this way and add steam.exe.
Full guide: https://github.com/athei/mach9/blob/main/docs/app.md
Reporting problems
Open an issue at https://github.com/athei/mach9/issues with gamelauncher.log attached (Dock menu, Open Config Folder). Reports about games that do not run are the most useful thing right now.
1
5
u/KainMassadin 20h ago edited 12h ago
It also runs NFSMW 2005, NFSU2, CS: Source, Assasins Creed 2, K&L: Dead men, Halo CE, and Lego Indy 2
1
u/ompt709 20h ago
Any chance of reaching out to the notproton devs to see if they can combine this into their project? Would love to just change the compatibility in steam like they do with crossover 26 and preview. Not sure if that's possible since I'm no dev.
7
u/athei88 19h ago
Wasn't there this whole drama around that somebody forked it in order to change the engine to something thats not Crossover: https://www.reddit.com/r/macgaming/comments/1xdrx6j/notproton_maintainer_confronts_influencerbacked/
So I assume they won't be open to that.
4
u/Nilderan 17h ago edited 17h ago
I was going to say that OP should be prepared to be boarded by that notproton guy with his stupid GIF, but he's already here :)
-9
u/NotProtonMac 18h ago
4
u/Nilderan 17h ago
Dude why are you spamming that stupid GIF in every project that isn't yours? Just move on if you don't like it.
-3
2
u/TheasidesBardas 16h ago
Will the GOG version of original Oblivion work? It would be a lot better since I won’t have to boot up a windows vm.
I’ll try it out later tonight or tomorrow