[PR #303] [MERGED] kb: Running Windows DirectX 11/12 games on Apple Silicon from the command line with CrossOver's CLI #301

Closed
opened 2026-10-15 20:55:20 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rehan-remade/universal-modder/pull/303
Author: @DiegzM
Created: 10/14/2026
Status: ✅ Merged
Merged: 10/14/2026
Merged by: @rehan-remade

Base: main ← Head: kb/running-windows-dx11-dx12-games-on-apple-silicon


📝 Commits (9)

  • b34df2f kb: Running Windows DirectX 11/12 games on Apple Silicon from the command line with CrossOver's CLI
  • 79d361e kb: credit DiegzM on the Apple Silicon DirectX note
  • 717a7ba kb: give the Apple Silicon DirectX note a clean filename
  • fed232b kb: running-windows-dx11-dx12-games-on-apple-silicon-crossover: wrap at 115 columns
  • 9556c36 kb: apple-silicon note: link the Halo Trial and HL2 macOS notes
  • f9b9bea kb: running-windows-dx11-dx12-games-on-apple-silicon-crossover: review fixes
  • fd40558 renormalize line endings to match .gitattributes (as on main since #304)
  • 9096f06 Merge remote-tracking branch 'origin/main' into land/pr-303
  • d49c69c kb: regenerate the index

📊 Changes

3 files changed (+327 additions, -1 deletions)

View changed files

📝 knowledge/INDEX.md (+2 -1)
📝 knowledge/index.json (+41 -0)
➕ knowledge/techniques/running-windows-dx11-dx12-games-on-apple-silicon-crossover.md (+284 -0)

📄 Description

What: One technique note for the gap um win leaves on a Mac: a Windows-only game with no Mac build. A method to try one from the command line (CrossOver's cxbottle/wine, Apple's D3DMetal for DirectX 11/12,
MoltenVK for Vulkan) and observe it: a self-checking DX12 probe, SteamCMD with the platform forced to Windows, Windows Steam in the same bottle, logs, window screenshots, input, a mod loader and a command-file bridge.
It has a scope table, a verification table, 25 numbered gotchas (symptom, cause, fix) and open questions. It does not claim that any Windows game will run.

Validated once, on one machine (Apple M5, macOS 26.5.1, CrossOver 26.3), with three games:

  • a Unity 6 Direct3D 11 game (Steam): reached gameplay; keyboard/mouse driven; BepInEx plugin and a command-file bridge to the game's own console, with on-screen effects verified;
  • an Unreal Engine 5 DirectX 12 game (Steam): title screen on DirectX 12 (lsof shows d3d12.dll, D3DMetal); online login failed; gameplay not seen;
  • a Godot 4.3 single-exe game (no Steam, clean bottle, nothing extra installed): ran on Vulkan through MoltenVK to a race with HUD; scripts recovered with GDRE Tools; a patched exe was not built.

Scope of the PR: one new file under knowledge/techniques/ plus the regenerated knowledge/INDEX.md and knowledge/index.json. No skills, no um/ changes, no scripts. It links the existing notes it builds on
(the Linux/Wine xEdit note, the HL2-under-Wine-on-macOS note, the D3D12 readback note, the command-file and oracle notes). Verified: um kb search returns it first for "macOS crossover", "Apple Silicon DirectX 12",
"SteamCMD windows" and "Windows game on a Mac".

Known limits (all written into the note): one chip, one macOS version, one session, three games; no performance numbers; sound only checked as "the driver loads". Untested: other chips, Intel, DX9/10, OpenGL, 32-bit,
other launchers, installers, anti-cheat games. Unexplained: Epic Online Services rejecting the Steam login in two engines; the exact CoreAudio call behind a Steam startup crash; why an Unreal launcher stub rejects an
installed C++ runtime. Every end-to-end result used CrossOver's CLI (a paid app); free Wine builds never gave a usable Windows Steam client (not re-tested after the audio finding).
Possible follow-ups if you want them: the helper scripts and C++ probes (kept out because the checker limits pasted code), per-game notes, a um mac command group, or a skill.

Checklist

  • um kb check passes (field notes)
  • um kb index regenerated
  • no game files, extracted assets, decompiled code dumps or secrets (the Godot game's scripts were recovered locally and are not included; logs that can hold a Steam ID were not included)
  • nothing that cheats other players or bypasses anti-cheat / DRM / ownership checks (the note says to stop on anti-cheat files; the launcher-stub workaround is a prerequisite check, not DRM, and it says to ask the user first)
  • versions, verification and what was NOT verified are written down
  • authored by: Claude Code (Opus 5.5 and Sonnet 5.5) with @DiegzM (the human contributor: guidance, testing, approvals)
  • also run: pytest -q tests (140 passed, 1 skipped), um kb check --index, um publish check . (0 failures)

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rehan-remade/universal-modder/pull/303 **Author:** [@DiegzM](https://github.com/DiegzM) **Created:** 10/14/2026 **Status:** ✅ Merged **Merged:** 10/14/2026 **Merged by:** [@rehan-remade](https://github.com/rehan-remade) **Base:** `main` ← **Head:** `kb/running-windows-dx11-dx12-games-on-apple-silicon` --- ### 📝 Commits (9) - [`b34df2f`](https://github.com/rehan-remade/universal-modder/commit/b34df2fd60567b523651bf7cfd3b8397addbc57b) kb: Running Windows DirectX 11/12 games on Apple Silicon from the command line with CrossOver's CLI - [`79d361e`](https://github.com/rehan-remade/universal-modder/commit/79d361e8f8888fccf8c166766468df5ffb8c54e5) kb: credit DiegzM on the Apple Silicon DirectX note - [`717a7ba`](https://github.com/rehan-remade/universal-modder/commit/717a7bacdf2ae23a5795e849dc4928931b18bc0f) kb: give the Apple Silicon DirectX note a clean filename - [`fed232b`](https://github.com/rehan-remade/universal-modder/commit/fed232bda46db0a2854ca9d9825cc64c4e471f4c) kb: running-windows-dx11-dx12-games-on-apple-silicon-crossover: wrap at 115 columns - [`9556c36`](https://github.com/rehan-remade/universal-modder/commit/9556c36455f62be4c11b75885ce2410b1ea66501) kb: apple-silicon note: link the Halo Trial and HL2 macOS notes - [`f9b9bea`](https://github.com/rehan-remade/universal-modder/commit/f9b9bea674f64c31372acbefb617d22893e21f4d) kb: running-windows-dx11-dx12-games-on-apple-silicon-crossover: review fixes - [`fd40558`](https://github.com/rehan-remade/universal-modder/commit/fd405588e13f87b6fcc1da9b92cbc0cd93813a67) renormalize line endings to match .gitattributes (as on main since #304) - [`9096f06`](https://github.com/rehan-remade/universal-modder/commit/9096f0633599669491beb55a540ee71ab9680b69) Merge remote-tracking branch 'origin/main' into land/pr-303 - [`d49c69c`](https://github.com/rehan-remade/universal-modder/commit/d49c69caf291f2a2c114f65c4507741a72f85ff5) kb: regenerate the index ### 📊 Changes **3 files changed** (+327 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `knowledge/INDEX.md` (+2 -1) 📝 `knowledge/index.json` (+41 -0) ➕ `knowledge/techniques/running-windows-dx11-dx12-games-on-apple-silicon-crossover.md` (+284 -0) </details> ### 📄 Description **What:** One technique note for the gap `um win` leaves on a Mac: a Windows-only game with no Mac build. A method to *try* one from the command line (CrossOver's `cxbottle`/`wine`, Apple's D3DMetal for DirectX 11/12, MoltenVK for Vulkan) and observe it: a self-checking DX12 probe, SteamCMD with the platform forced to Windows, Windows Steam in the same bottle, logs, window screenshots, input, a mod loader and a command-file bridge. It has a scope table, a verification table, 25 numbered gotchas (symptom, cause, fix) and open questions. **It does not claim that any Windows game will run.** **Validated once, on one machine** (Apple M5, macOS 26.5.1, CrossOver 26.3), with three games: - a Unity 6 Direct3D 11 game (Steam): reached gameplay; keyboard/mouse driven; BepInEx plugin and a command-file bridge to the game's own console, with on-screen effects verified; - an Unreal Engine 5 DirectX 12 game (Steam): title screen on DirectX 12 (`lsof` shows `d3d12.dll`, D3DMetal); online login failed; gameplay not seen; - a Godot 4.3 single-exe game (no Steam, clean bottle, nothing extra installed): ran on Vulkan through MoltenVK to a race with HUD; scripts recovered with GDRE Tools; a patched exe was not built. **Scope of the PR:** one new file under `knowledge/techniques/` plus the regenerated `knowledge/INDEX.md` and `knowledge/index.json`. No skills, no `um/` changes, no scripts. It links the existing notes it builds on (the Linux/Wine xEdit note, the HL2-under-Wine-on-macOS note, the D3D12 readback note, the command-file and oracle notes). Verified: `um kb search` returns it first for "macOS crossover", "Apple Silicon DirectX 12", "SteamCMD windows" and "Windows game on a Mac". **Known limits (all written into the note):** one chip, one macOS version, one session, three games; no performance numbers; sound only checked as "the driver loads". Untested: other chips, Intel, DX9/10, OpenGL, 32-bit, other launchers, installers, anti-cheat games. Unexplained: Epic Online Services rejecting the Steam login in two engines; the exact CoreAudio call behind a Steam startup crash; why an Unreal launcher stub rejects an installed C++ runtime. Every end-to-end result used CrossOver's CLI (a paid app); free Wine builds never gave a usable Windows Steam client (not re-tested after the audio finding). Possible follow-ups if you want them: the helper scripts and C++ probes (kept out because the checker limits pasted code), per-game notes, a `um mac` command group, or a skill. **Checklist** - [x] `um kb check` passes (field notes) - [x] `um kb index` regenerated - [x] no game files, extracted assets, decompiled code dumps or secrets (the Godot game's scripts were recovered locally and are not included; logs that can hold a Steam ID were not included) - [x] nothing that cheats other players or bypasses anti-cheat / DRM / ownership checks (the note says to stop on anti-cheat files; the launcher-stub workaround is a prerequisite check, not DRM, and it says to ask the user first) - [x] versions, verification and what was NOT verified are written down - [x] authored by: **Claude Code (Opus 5.5 and Sonnet 5.5) with @DiegzM** (the human contributor: guidance, testing, approvals) - [x] also run: `pytest -q tests` (140 passed, 1 skipped), `um kb check --index`, `um publish check .` (0 failures) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rehan-remade/universal-modder#301
No description provided.