←back to thread

183 points ahamez | 10 comments | | HN request time: 0.001s | source | bottom
1. banqjls ◴[] No.43631804[source]
How can you run old 32-bit, directx 9 games on apple silicon? Is there any solution that is flawless? One of the things that stops me from buying a modern Mac.
replies(3): >>43631827 #>>43631865 #>>43632272 #
2. todd3834 ◴[] No.43631827[source]
I imagine a virtual machine would be able to handle it just fine. Try VirtualBox
replies(1): >>43631945 #
3. cactusplant7374 ◴[] No.43631865[source]
I think this should cover it.

https://github.com/doitsujin/dxvk

replies(2): >>43631882 #>>43632711 #
4. banqjls ◴[] No.43631882[source]
That won’t fix the fact that the macOS kernel can’t run 32-bit binaries.
replies(1): >>43632146 #
5. mdaniel ◴[] No.43631945[source]
Unless you know something I don't, VirtualBox isn't qemu's CPU emulation - it's only virtualization for the current CPU. So, great if you want an alternative to Virtualization.framework but it's not going to run Windows 7 on Apple Silicon

And, even if it did run effectively under Rosetta, its management interface won't even let you select a non-arm64 guest: https://www.virtualbox.org/manual/topics/Introduction.html#h...

6. galad87 ◴[] No.43632146{3}[source]
It's possible to run 32-bit Windows binaries with Rosetta 2 and WINE, but I don't know if there is any good DirectX 9 to Metal wrapper yet. Probably DXMT will implement it in the future: https://github.com/3Shain/dxmt
replies(1): >>43632382 #
7. danaris ◴[] No.43632272[source]
I believe CrossOver now has full support for 32-bit games.
8. banqjls ◴[] No.43632382{4}[source]
I have heard of Rosetta not implementing the entire instruction set, and games being one of the most affected kinds of software, most of them crashing due to illegal instructions.
replies(1): >>43632698 #
9. Rhedox ◴[] No.43632698{5}[source]
Rosetta actually supports 32bit code just fine.
10. Rhedox ◴[] No.43632711[source]
DXVK does not run on Mac OS. There's a modified version based on an ancient release of DXVK that kinda works on MoltenVK but the D3D9 side never worked.

The D3D9 implementation in DXVK uses a Vulkan binding model trick to improve performance that MoltenVK can't handle.

Besides that, DXVK simply requires modern Vulkan features that MoltenVK doesn't support.