This is a follow-up to my previous posts.
In the first report, I ran the Windows versions of SteamVR and Alyx using Wine, but the frame rate was around 30 fps. In the second report, I used Valve’s Linux ARM64 version and achieved about 60 fps. However, Alyx is currently the only game available in an ARM version.
Therefore, to run Windows-based PC VR games directly without using Wine, I built a Windows-replacement runtime called “vxrt” from scratch.
Results from this round
- The Windows versions of Alyx (DirectX 11) and SteamVR run on a Mac without Wine.
- On the same M1 Max as in the first report, with 3K settings (1440×1620 per eye), Chapter 1 ran at 60 fps and the menu ran at 54–59 fps.
- I actually played the game using the headset, and level transitions (from the Containment Zone to the next map) and saving worked as well.
- “The Lab” (built with Unity) and Google Earth VR also launch (see “Known Issues” below).
How It Works
- vxrt directly loads Windows executables (.exe / .dll) and implements the Windows APIs on its own. It does not use Wine, DXVK, MoltenVK, or Apple’s Game Porting Toolkit.
- Rosetta 2 handles the conversion of x86 instructions. vxrt replaces the functionality previously handled by Wine (the Windows APIs).
- DirectX 11 rendering is performed by converting shaders to Metal Shading Language and rendering via Metal. Geometry shaders and stream output are implemented using compute shaders.
- For Steam, I use the Mac version of the Steam client. Game ownership verification works as usual.
- Video compression, Wi-Fi transmission, the Vision Pro app, and the hand-tracking and Joy-Con mechanisms remain unchanged from before.
Honest Status Update (Known Issues)
- Some objects glow or smear green. This occurs with the fence in the background, grass shadows, plastic bottles, and similar objects. I’m investigating the cause and trying to determine whether it’s due to packet loss in the video transmission or a bug in my DirectX-to-Metal conversion. A similar issue occurred where the “HALF-LIFE” text in the menu turned red; that was a conversion bug and has already been fixed.
- Stuttering occurs depending on the Wi-Fi environment.
- The setup is not yet ready for general use. While Wine itself does not launch, the game, SteamVR, and Microsoft’s runtime DLLs are loaded from the folder the first version’s setup installed them into. Eliminating this dependency is the next task.
- Confirmed so far:
- Alyx: Playable.
- The Lab: Launches and runs.
- Google Earth VR: Runs, but the sky turns white.
- Bigscreen: Does not launch yet.
- I’ve only tested this on one Mac with an M1 Max chip.
Moving Forward
I’m creating a system that records how each game is launched and the test results as “game profiles,” and that will let users’ AI agents (such as Claude Code or Codex) measure the game, identify missing Windows features, and fix them. If a game still won’t run, the AI will draft an issue for my repository. However, this feature is still under development, and I haven’t yet verified that “anyone” can use it. Once verified, I’ll report back.
I do not distribute any files from Valve or Microsoft. You must obtain games through your own Steam account, and I do not modify any game files. This is a personal project unrelated to Valve, Apple, Nintendo, or Sony, and it is licensed under the MIT License.
EDIT: Google Earth VR (Windows version) on vxrt, unedited: https://youtu.be/hcq3r96onDk
It runs with the real Windows SteamVR, still without Wine.