Repository navigation
HyperBridge engine 0049 (MacRunner 1.0.7)
HyperBridge is MacRunner's CPU engine for running Windows x86-64 and x86 programs on Apple Silicon through ARM64 Wine. It is built on FEX-Emu (MIT) and carries MacRunner's own patch series, kept in fex/ of this repository.
This build: the engine shipped in MacRunner 1.0.7 (October 3, 2026): patches 0001–0049 on FEX-Emu fd141ed6d, taken from the notarized application. The exact patched source is in that release's MacRunner-1.0.7-sources.tar (hyperbridge/fex/src, with SOURCE-EXPORT.json); binary reproduction from the patch series is not promised for this build. The CI checks that all 49 patches apply to the pinned upstream commit.
| File in the archive | Role | SHA-256 |
|---|---|---|
engine/fex/aarch64-windows/xtajit64.dll |
ARM64EC, 64-bit x86 processes | ac3735d6… |
engine/fex/aarch64-windows/xtajit.dll |
WOW64, 32-bit x86 processes | 8a58ead0… |
engine/fex/aarch64-unix/libarm64ecfex.so |
host library for xtajit64.dll (signed with MacRunner's Developer ID) |
f7964bb9… |
engine/fex/aarch64-unix/libwow64fex.so |
host library for xtajit.dll (signed with MacRunner's Developer ID) |
456480da… |
Full hashes, and those of the unstripped build outputs, are in fex/MANIFEST.json and in SHA256SUMS.
New compared with engine 0019
- 0020–0025 translation reuse and invalidation experiments (REVIVE, executable ranges, PF/AF/DF across exceptions,
MACRUNNER_FEX_RANGE_CACHE, precise invalidation for Mono call targets) - 0026
MACRUNNER_FEX_RA_NO_X16for ARM64EC - 0027–0031 code written through a second mapping (.NET): NoTrap validation modes,
MACRUNNER_FEX_ALIAS_VIEWS,MACRUNNER_FEX_HOOK_GUARD - 0032 diagnostic output without Wine's buffer
- 0033–0047 guarded x87: fast arithmetic through the host's double with a fall-back to the exact path, tag/status/FIP handling, guarded subnormal loads, FST/FSTP stores and FSCALE; 0036–0037 are tests
- 0048 floating-point switches default off; ARM64EC integer-width correction
- 0049 hook and alias correctness switched on automatically when the .NET runtime (
coreclr.dll,clrjit.dll) is mapped — this is what lets .NET 6 games such as Stardew Valley start
Patches marked EXPERIMENT are behind switches that are off by default. MacRunner 1.0.7 turns on, through its ENGINE.json, MACRUNNER_FEX_DIV_OVERFLOW_DE=1 (Windows divide exceptions), MACRUNNER_FEX_SHLD16_CF=1 (16-bit SHLD/SHRD carry as hardware) and MACRUNNER_FEX_EFLAGS_KEEP=1.
Measured
Loop times against Microsoft Prism and CrossOver Preview, measured on October 3 with this engine, are in the comparison table. Division is slower than in engine 0019 because MACRUNNER_FEX_DIV_OVERFLOW_DE=1 is on; MACRUNNER_FEX_DIV_PROVEN_HIGH=1 (0017, exact) recovers most of it for idiv and is off in 1.0.7.
Known limits
- Hardware memory ordering (TSO) is not on by default in this build; it is planned for 1.0.8.
- Floating-point exactness, alias/W^X outside .NET and 32-bit sound remain open; see the MacRunner 1.0.7 release notes.
Licenses
FEX-Emu with MacRunner's modifications, MIT. The binaries statically link {fmt}, xxHash, unordered_dense, range-v3, rpmalloc, tiny-json, cpp-optparse, Cephes and SoftFloat 3e from the FEX-Emu source tree; their notices are in the archive. FEX-Emu has not reviewed or endorsed these modifications, and they are not contributions to FEX-Emu.