MacGameFix 1.5.9

Improvements tab. Copy protection under Rosetta. Phantom Blade Zero. Wine Modules update. Signed and notarised. Wine modules: Phantom Blade Zero's decoder. Video reader: NINJA GAIDEN 3's fix. Mortal Kombat 11's fix: Cyberpunk 2077's fix.

Nov 1, 2026 · MacGameFix

  • Improvements tab (#41). It replaces the Wine Modules tab, with one section per improvement and a switch for every CrossOver app and NotProton runner:
    • DualSense controllers: every module but ntdll.so, as before.
    • Copy protection under Rosetta: the Intel side's ntdll.so. It is on wherever the controllers are, unless you turn it off there.
    • Turning one off puts CrossOver's own files back for that improvement only.
    • A game whose fix needs an improvement that is not installed says so in Games.
  • Copy protection under Rosetta (#38). This is a new ntdll.so for CrossOver 26.3 and CrossOver Preview 27.0.0.41073, Intel side only. It makes Rosetta's CPU look more like a real x86 one to Denuvo. The game's code is not touched.
    • 0017 and 0018: Hrava's ntdll-rosetta-cpu-fidelity and a D3DMetal fallback.
    • 0019: ours. It runs the cpuid that Rosetta skips after self-modifying code.
    • Persona 4 Golden plays at about 60 fps with 0019 alone, with no launch option. Played on 2026-11-01 on Preview 41073's NotProton runner.
    • Not played yet: CrossOver 26.3, and a CrossOver app's bottle.
  • Phantom Blade Zero (#39, #40). It needs Copy protection under Rosetta and D3DMetal 4, so it is for CrossOver Preview 27.
    • Denuvo: the fix asks the new ntdll.so for the CPU bits for PBZ.exe alone, in the prefix's registry, and loads its Visual C++ runtime native first.
    • Menu video: an H.264 decoder of ours goes into the prefix's system32, for PBZ.exe alone. It offers NV12, which CrossOver's decoder does not offer on macOS. The engine is not changed.
    • DLSS: set D3DM_SUPPORT_DXR=0 to use it.
      • Under NotProton, put it in the game's launch options.
      • In a CrossOver bottle, put it in the bottle's cxbottle.conf under [EnvironmentVariables].
      • Why: with DLSS available, D3DMetal reports NVIDIA opacity micromaps it cannot build, and the game closes as it loads a level. Without the variable, turn DLSS off for the game instead.
    • Pad: a suggested Game Feel preset.
    • Where it is played: on 2026-11-01 on Preview 41073's NotProton runner, through the installer. Denuvo passed, the menu video played, the pad vibrated, and a level loaded with DLSS. It has not been played in a CrossOver bottle yet; the README has the steps.
  • Wine Modules update. ntdll.so is new, for 26.3 and Preview 41073, signed with the Developer ID. The other modules are 1.5.8's with its later updates. Update them from the Improvements tab, or let automatic updates do it.
  • Signed and notarised, as 1.5.8 is.

Licences. The app is GPL-3.0-or-later and carries the text.

  • Wine modules: built from the Wine in CodeWeavers' CrossOver sources (LGPL-2.1-or-later), with the patches in engine/patches. The wine-source-crossover-*.tar.xz files below are the exact Wine trees they were built from. 0017 and 0018 are Hrava's, ported.
  • Phantom Blade Zero's decoder is ours (fixes/h264-software-decoder.c, GPL-3.0-or-later). It wraps CrossOver's own decoder, and answers the way winevideo's patch 0006 makes Wine answer.
  • Video reader: some fixes install one built on FFmpeg 9.0.2 (LGPL-2.1-or-later). Its notice and the LGPL text install beside it, and ffmpeg-9.0.2.tar.xz below is its source.
  • NINJA GAIDEN 3's fix carries winevideo's builds of qasf, quartz and winegstreamer (Wine, LGPL-2.1-or-later) and d9vk (zlib), with their notices. ng3-winevideo-0.5.0-sources.tar.xz below holds winevideo 0.5.0's patches and source inventory; they apply to CodeWeavers' crossover-sources-26.2.0.tar.gz.
  • Mortal Kombat 11's fix: its DXBC checksum code comes from vkd3d-shader (LGPL-2.1-or-later).
  • Cyberpunk 2077's fix ships no code of CD PROJEKT's: only the offset, the bytes and the hashes it checks.

Requires macOS 14 on Apple Silicon. Built from commit 5e5df0c (#38–#42).

Wine modules updated, 2026-11-01 (catalog 1793579629, from e9a78a1, #45). The app is unchanged.

  • engine-modules.sh now writes each module under a temporary name and renames it into place. That way a module update or removal also reaches the per-game copy of the runner that NotProton's new Game Mode makes (NotProton main since d01287d, not in a NotProton release yet). Before, a game's copy kept the modules it had.
  • The modules themselves are the same. This is checked in the tests against NotProton's own runner_stamp, but not yet played with NotProton's new Game Mode.

Download it, with its checksum, from the release on GitHub.