Run an older DirectX 9 Windows game on an Apple Silicon Mac through CrossOver.
Get near-native GPU performance for a DirectX 9 title instead of a slow software fallback.
Study how DXVK's D3D9 front-end can be paired with a custom Metal backend instead of Vulkan/MoltenVK.
Benchmark shader compile caching and pipeline batching techniques for Wine graphics drivers.
| neo773/d9mt | saleyn/glazer | widberg/xlive-research | |
|---|---|---|---|
| Stars | 16 | 16 | 16 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | moderate | hard |
| Complexity | 5/5 | 2/5 | 5/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Apple Silicon, CrossOver or Wine with DXMT, Xcode command line tools, mingw-w64, and a three-step build process.
d9mt is a translation layer that allows old Windows games built on DirectX 9 to run on Apple Silicon Macs. When you run a Windows game on a Mac using a compatibility tool like CrossOver or Wine, the game sends graphics commands that assume a Windows-style GPU interface. This project intercepts those commands and converts them into Metal, the native graphics API that Apple Silicon chips use. The conversion happens without going through Vulkan, which is how most similar tools work. The practical result is that a DirectX 9 game can run inside CrossOver on an M1, M2, or M3 Mac and actually reach the GPU properly, rather than failing or falling back to a slow software path. The README says that GTA IV, which was the one game tested, runs at roughly 50 to 90 frames per second on an M1 Max depending on the scene. Only that one game has been tried, other DirectX 9 games may hit unimplemented code paths. Under the hood, the project borrows two existing pieces of open source infrastructure and adds its own Metal backend. The DXVK project handles the DirectX 9 API surface and converts the game's shader programs into an intermediate format. A separate tool called spirv-cross then converts those into Metal's shader language. The d9mt project's own code takes over from there, building the actual Metal rendering pipelines and submitting them to the GPU through a bridge component from another project called DXMT. A small native companion library handles shader compilation and a disk cache, so each shader is only compiled once and loads instantly on subsequent runs. Setting it up requires CrossOver or Wine with DXMT installed, Apple's Xcode command line tools, and a few build tools available through Homebrew. You build three components in order and drop the resulting file into your game's folder, then launch with an environment variable to tell Wine to use it. The project is research-grade software targeting a specific platform combination, and the README is clear that rough edges should be expected.
d9mt translates DirectX 9 game graphics calls directly into Metal so old Windows games can run on Apple Silicon Macs through CrossOver or Wine.
Mainly C++. The stack also includes C++, Metal, DXVK.
No project-wide license is stated, it follows the licenses of the vendored DXVK and spirv-cross components it depends on.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.