{"slug": "i-wrote-a-windows-runtime-from-scratch-to-run-pc-vr-games-on-apple-silicon", "title": "I wrote a Windows runtime from scratch to run PC VR games on Apple Silicon", "summary": "Developer Ag3497120 released VeRantyx for Mac 0.2.0 on October 22, a from-scratch Windows runtime for Apple silicon that runs PC VR games such as Half-Life: Alyx and Elite Dangerous without Wine or CrossOver and streams them to Apple Vision Pro or ALVR headsets. Version 0.2.0 adds Elite Dangerous playable on the Mac's screen or in a headset with keyboard, mouse and a PS5 DualSense, fixes ALVR Wi-Fi socket buffers at 4 MB to end 270-800 ms frame delay spikes, and takes first Vulkan steps in the project's own vulkan-1.dll; Elite Dangerous runs at 30-35 fps at 1700×1372 per eye in the headset and about 60 fps flat on an M1 Max. The project is built to be extended with coding agents such as Claude Code, Codex, Gemini CLI or Cursor via a /vxrt-support command, and requires users to own their own game copies, with no anti-cheat worked around.", "body_md": "**Half-Life: Alyx and Elite Dangerous on Apple Vision Pro, from just a Mac. No gaming PC, no Wine, no CrossOver.**\n\nWindows PC VR games run on our own Windows runtime, written from scratch for Apple silicon, and stream to Vision Pro or an ALVR headset. Some also play on the Mac's own screen.\n\n<sub>Half-Life: Alyx, Windows build, on a MacBook Pro M1 Max, no Wine. 3K preset, played in Vision Pro with hands + Joy-Con. [Full 4-minute unedited recording](https://youtu.be/qF09ETv1TpU).</sub>\n\n**New in 0.2.0 (Oct 22):** Elite Dangerous, on the Mac's screen or in the headset, with keyboard, mouse and a\nPS5 DualSense. [Download VeRantyx for Mac →](https://github.com/Ag3497120/VeRantyx/releases/latest)\n\n**Want your game to run? Ask your AI assistant.** VeRantyx is built to be extended with Claude Code, Codex,\nGemini CLI or Cursor: run `/vxrt-support <your game>` in this repository and the agent measures the game, finds\nwhat stops it and implements the missing Windows functions, with the test harness checking every claim\n([AGENTS.md](https://github.com/Ag3497120/VeRantyx/blob/main/AGENTS.md)). Send what you get as a pull request or a report.\n\n**You need your own copy of each game.** Nothing from Valve, Microsoft or any game is in this repository or its\nreleases: games and SteamVR come from your own Steam account. No anti-cheat is ever worked around.\n\n[Get started](#get-started) ·\n  [What runs](#what-runs) ·\n  [Updates](#updates) ·\n  [Under the hood](#under-the-hood) ·\n  [Branches](#branches) ·\n  [日本語](https://github.com/Ag3497120/VeRantyx/blob/main/docs/README_ja.md)\n\n| Date | What changed | \n|---|---|\n| Oct 22 | **VeRantyx for Mac 0.2.0** : Elite Dangerous with two buttons,**On this Mac** and**Headset** ; the Mac shows its frame rate while you play | \n| Oct 22 | **The Lab: controllers work** (any headset): SteamVR now sees The Lab's controller bindings (a Windows pipe call answered wrongly, #2) | \n| Oct 22 | ALVR over Wi-Fi: socket buffers fixed at 4 MB, which ended 270-800 ms frame delay spikes (#4); a new headset's first connection no longer shows double vision (#2, #4) | \n| Oct 22 | **Vulkan, first steps** in our own`vulkan-1.dll` : a Windows program draws with depth test, culling, uniform buffers and push constants, and presents to a window. Next: what real games need (No Man's Sky, X-Plane 12) | \n| Oct 22 | Elite Dangerous: PS5 DualSense in game; plays flat on the Mac's screen (about 60 fps in game, M1 Max) | \n| Oct 21 | Elite Dangerous reaches the headset: official launcher (WPF on our own .NET runtime), sign-in, game, SteamVR (30-35 fps at 1700×1372 per eye) | \n| Oct 18 | **VeRantyx for Mac 0.1.0** : setup and play without Terminal, signed and notarized, 11 languages | \n| Oct 18 | Direct3D 12 steps 1-5: DXIL read without LLVM, translated to Metal, compute, graphics and swap chains | \n| Oct 17 | The Lab runs on our own x86-64 → ARM64 translator (the path that replaces Rosetta 2), 52-56 fps | \n| Oct 12 | VXRuntime, the Windows runtime, starts from scratch | \n\nThe fastest way to grow the list of games and headsets is your report, whether it works or not:\n**[Report a game or headset →](https://github.com/Ag3497120/VeRantyx/issues/new/choose)** (in the app: Help >\nReport a problem; it attaches the logs with your user name and Steam ID taken out). Quest and Pico are tested by\nplayers only so far.\n\n1. **[Download VeRantyx for Mac](https://github.com/Ag3497120/VeRantyx/releases/latest)** — signed and notarized by\nApple. Drag it to Applications. The runtime is inside: you need only macOS and Steam.\n2. **Get started** in the app: it checks the Mac, gets SteamVR and your games' Windows builds with*your own* Steam\naccount (or copies them from a Steam library you already have), and gathers the Microsoft runtime files from\ntheir own installers.\n3. **Pick your headset and press Play.**\n\nThat's it. Details, languages (11) and what is checked: [MacApp/README.md](https://github.com/Ag3497120/VeRantyx/blob/main/MacApp/README.md).\nPrefer Terminal? `scripts/setup_vxrt.sh` then `scripts/launch_vxrt_alyx.sh` — see [the vxrt guide](https://github.com/Ag3497120/VeRantyx/blob/main/docs/VXRT.md#quick-start).\n\n| Game | Status on VXRuntime | Measured | \n|---|---|---|\n| **Half-Life: Alyx** | ✅ Playable — played in the headset across level changes and saves | 60 fps at the 3K preset (1440×1620 per eye), MacBook Pro M1 Max | \n| **Google Earth VR** | 🟡 Runs in VR, playtest pending | 56.7 fps, M1 Max | \n| **Elite Dangerous** | 🟡 Flies on the Mac's screen and in the headset (official launcher; keyboard, mouse, DualSense) | flat: about 52-122 fps in game; VR: 30-35 fps at 1700×1372 per eye; M1 Max, Low | \n| **The Lab** | 🟡 Runs in VR (title scene), playtest pending; its controller bindings load since 0.2.0 | 54.0 fps, M1 Max | \n| Other SteamVR games | ⚪ Most still need Windows functions VXRuntime lacks | [games/](https://github.com/Ag3497120/VeRantyx/blob/main/games) has what is known | \n\nChecked on a MacBook Pro M1 Max and a MacBook Air M5. Numbers come from harness runs with their run ids in\n[games/](https://github.com/Ag3497120/VeRantyx/blob/main/games). Not supported: Direct3D 12 games (in progress, below), Vulkan, tessellation, anti-cheat (never\nworked around).\n\n| Headset | How | Status | \n|---|---|---|\n| **Apple Vision Pro** (M2 or M5) | VeRantyx app: hand tracking + Joy-Con, or bare hands — **no VR controllers needed** | ✅ Checked | \n| **Apple Vision Pro** | \"ALVR\" app from the App Store | ✅ Checked (Alyx, Earth VR) | \n| **Meta Quest, Pico** | ALVR 20.x, Wi-Fi or USB cable | ❔ Not tested yet — [we'd love a report](https://github.com/Ag3497120/VeRantyx/issues/new?template=alvr-headset.yml) | \n\nEverything below is in this repository, MIT licensed, and was written for this project.\n\n- **VXRuntime — a Windows runtime written from scratch for Apple silicon.** No Wine, no wineserver: a PE loader and\nthe Windows API (kernel32, exceptions, files and registry, windows on AppKit, COM, audio on Core Audio) as native\ncode that Windows programs call directly.[VXRuntime/](https://github.com/Ag3497120/VeRantyx/blob/main/VXRuntime/README.md)\n- **Direct3D 11 → Metal in one step.** Our own DXBC → Metal Shading Language translator; geometry shaders and\nstream output run as compute. Alyx went from ~30 fps under Wine (DXVK → MoltenVK) to 60 fps on the same Mac.\n- **Direct3D 12 → Metal, from scratch (early).** A DXIL reader with no LLVM, a DXIL → MSL translator and`d3d12.dll` on Metal: compute, root signatures, descriptor heaps, graphics pipelines, draws, swap chains, heaps, placed\nresources and GPU queries pass their tests. No D3D12 game runs yet.\n- **The real Windows SteamVR on the Mac.** vrserver and vrcompositor run on VXRuntime with our driver; textures cross\nprocesses as IOSurfaces. Games talk to the**Mac** Steam client through a bridge — no Windows Steam, no Chromium.\n- **HEVC streaming.** VideoToolbox HEVC (10-bit at the 3K preset) to our visionOS app, each frame at the exact pose and\nfrustum it was rendered for — or through ALVR's own streaming core to ALVR clients, over Wi-Fi or a USB cable.\n- **A notarized SwiftUI Mac app** that does the whole setup without Terminal, in 11 languages.\n- **Our own x86-64 → ARM64 translator (in progress)** for when Rosetta 2 goes away: Google Earth VR has run on it;\nnot used for games by default.[TRANSLATOR.md](https://github.com/Ag3497120/VeRantyx/blob/main/VXRuntime/TRANSLATOR.md)\n- **Built for AI coding agents.**`/vxrt-support <game>` and`/vxrt-tune <game>` in Claude Code, Codex, Gemini CLI and\nCursor; a harness that measures runs into evidence (observed values with file hashes, sealed in a hash-chained\nledger); an MCP server;[Command Clips](https://github.com/Ag3497120/VeRantyx/blob/main/VXRuntime/CLIPS.md) to operate Windows programs without screenshots.[AGENTS.md](https://github.com/Ag3497120/VeRantyx/blob/main/AGENTS.md)\n\n| Branch | What it is | For | Status | \n|---|---|---|---|\n| **[`main`](https://github.com/Ag3497120/VeRantyx)** =[` vxrt`](https://github.com/Ag3497120/VeRantyx/tree/vxrt) | Windows games + real SteamVR on **VXRuntime** | Players (via the app) and developers | ⭐ Current, developed daily — [full guide](https://github.com/Ag3497120/VeRantyx/blob/main/docs/VXRT.md) | \n| [`native`](https://github.com/Ag3497120/VeRantyx/tree/native) | Valve's **Linux ARM64** Alyx runs natively on macOS (patched Klepton + our OpenVR runtime) | Alyx only; the fastest path, no CPU translation | Kept as of 2026-10-11 | \n| [`wine`](https://github.com/Ag3497120/VeRantyx/tree/wine) | Windows build + real SteamVR under **Wine 11** , DXVK → MoltenVK | Reference / history | Kept as of 2026-10-10, ~30 fps | \n\nAll Mac-side versions share the HEVC encoder (`MacEncoder/`) and the Vision Pro app (` VisionProClient/`).\n\nNo Valve, Microsoft or game files are in this repository or its releases. SteamVR and the games come from your own\nSteam account; Microsoft's runtime DLLs are taken from the redistributable installers your own installs carry, on your\nMac only. Licenses: [THIRD_PARTY_NOTICES.md](https://github.com/Ag3497120/VeRantyx/blob/main/THIRD_PARTY_NOTICES.md). Not affiliated with Valve, Apple, Microsoft,\nMeta, Nintendo, Sony, ALVR, Glovebox or Klepton.\n\n**Help wanted:** a Quest or Pico report (works or not), and game profiles with harness runs as evidence\n([games/README.md](https://github.com/Ag3497120/VeRantyx/blob/main/games/README.md)). MIT © 2026 Ag3497120.", "url": "https://wpnews.pro/news/i-wrote-a-windows-runtime-from-scratch-to-run-pc-vr-games-on-apple-silicon", "canonical_source": "https://github.com/Ag3497120/VeRantyx", "published_at": "2026-10-22 10:11:00+00:00", "updated_at": "2026-10-22 10:40:20.394313+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "artificial-intelligence"], "entities": ["VeRantyx", "Ag3497120", "Apple Vision Pro", "Half-Life: Alyx", "Elite Dangerous", "SteamVR", "ALVR", "Claude Code"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-wrote-a-windows-runtime-from-scratch-to-run-pc-vr-games-on-apple-silicon", "markdown": "https://wpnews.pro/news/i-wrote-a-windows-runtime-from-scratch-to-run-pc-vr-games-on-apple-silicon.md", "text": "https://wpnews.pro/news/i-wrote-a-windows-runtime-from-scratch-to-run-pc-vr-games-on-apple-silicon.txt", "jsonld": "https://wpnews.pro/news/i-wrote-a-windows-runtime-from-scratch-to-run-pc-vr-games-on-apple-silicon.jsonld"}}