MX Simulator via Crossover (Mac | Apple Silicon M5)
-
Lancer2004
- Posts: 327
- Joined: Sat Jun 22, 2019 4:50 am
- Team: Shitter
- Location: Arizona
MX Simulator via Crossover (Mac | Apple Silicon M5)
So, I wanted to try something crazy. I set out to try and get sim running through crossover on my M5 MacBook Pro. I enlisted the help of Claude (to be fair, im not a pro subscriber, and don't have access to Claude code to find any code solutions), and I did a LOT of trouble shooting. I feel like the results are pretty interesting. Here's the report that Claude drafted up for me
Running MX Simulator via CrossOver 26 on an M5 MacBook Pro. Perfect 125fps in menu/chat; drops to a locked exactly 8fps the instant a track loads. CPU: ~104% on one core throughout (confirmed via Activity Monitor CPU History — game is running on Performance cores, not Efficiency cores). GPU usage: 0.6–3.7%, essentially idle. Tested with no change in outcome: D3DMetal on/off, DXVK on/off, windowed/fullscreen, in-game "Use Compatibility Settings," Terrain Rendering Method (Hardware Direct and Hardware/Copy), terrain textures set to lowest possible, MSync on/off, Windows 7 bottle and Windows 10/11 bottle.
If anyone is interested in this idea or has a possible solution, I'm all ears. I still have my windows laptop to keep playing the game on, however, my Mac has become mostly my daily driver, and it'd be sick to have yet another thing getting converted over to make the hot swapping of systems less necessary. If anyone wants to DM me about it, hmu on Discord @lancer2004
Running MX Simulator via CrossOver 26 on an M5 MacBook Pro. Perfect 125fps in menu/chat; drops to a locked exactly 8fps the instant a track loads. CPU: ~104% on one core throughout (confirmed via Activity Monitor CPU History — game is running on Performance cores, not Efficiency cores). GPU usage: 0.6–3.7%, essentially idle. Tested with no change in outcome: D3DMetal on/off, DXVK on/off, windowed/fullscreen, in-game "Use Compatibility Settings," Terrain Rendering Method (Hardware Direct and Hardware/Copy), terrain textures set to lowest possible, MSync on/off, Windows 7 bottle and Windows 10/11 bottle.
If anyone is interested in this idea or has a possible solution, I'm all ears. I still have my windows laptop to keep playing the game on, however, my Mac has become mostly my daily driver, and it'd be sick to have yet another thing getting converted over to make the hot swapping of systems less necessary. If anyone wants to DM me about it, hmu on Discord @lancer2004
-
jlv
- Site Admin
- Posts: 15505
- Joined: Fri Nov 02, 2007 5:39 am
- Team: No Frills Racing
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
Try using the most recent snapshot and use the --glversion option to try different context versions as described here. The "core" and "es" contexts might be faster than "compatibility" although with good drivers there's no real reason for "compatibility" to be slow.
Josh Vanderhoof
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
-
Lancer2004
- Posts: 327
- Joined: Sat Jun 22, 2019 4:50 am
- Team: Shitter
- Location: Arizona
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
I got Claude to do some extra research based off of the lastlog files.jlv wrote: ↑Wed Jul 08, 2026 3:13 am Try using the most recent snapshot and use the --glversion option to try different context versions as described here. The "core" and "es" contexts might be faster than "compatibility" although with good drivers there's no real reason for "compatibility" to be slow.
"found the exact failure in the game's log. It successfully creates a legacy OpenGL context, but fails when requesting a modern context via wglCreateContextAttribsARB ("Couldn't create OpenGL context with attributes"), then cleanly exits. This matches other reports of OpenGL 3+ context creation failing under Wine/CrossOver specifically on Apple Silicon."
Then I showed Claude your message about forcing the --glversion 2.1compatability. It had found a previous thread somewhere (on the forums I believe) of someone testing snapshot 2021-03-31-1566. I tried installing that snapshot into my bottle and now game the runs at a perfect frame rate! It just seems to be a wine error, like what Claude said, with OpenGL 3 and up, and I believe version 1.13 came out before the addition of the --glversion line. The game just didn't know what I was referring to and just wouldn't load. Sorry if this is a bit confusing, it is for me. I'm not super well versed in this area, but I'm down to offer anything you might want from the results of this!
-
jlv
- Site Admin
- Posts: 15505
- Joined: Fri Nov 02, 2007 5:39 am
- Team: No Frills Racing
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
The glversion option started with 2021-11-22. It's too bad it can't run newer versions. Hopefully it'll be sorted in a newer version of Wine.
Josh Vanderhoof
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
-
Lancer2004
- Posts: 327
- Joined: Sat Jun 22, 2019 4:50 am
- Team: Shitter
- Location: Arizona
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
For sure. I'm definitely excited to try and get it working better. I have a few settings I need to play around with to get it running better. In single player, on a medium track 2026 rf track, some settings turned down and with full 4k skins it runs at roughly 60 fps. So, it's playable, but that perfect 125 is definitely the target
-
Wahlamt
- Posts: 7972
- Joined: Mon Sep 13, 2010 3:15 pm
- Team: MLG Compton
- Location: Sweden
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
They sure made CrossOver/Wine a lot harder over the years. Last I heard, someone ran Parallels with a Windows VM to get it working. Can't provide any insight anymore, my stone age 2017 MacBook just isn't keeping up with the new stuff 
-
Lancer2004
- Posts: 327
- Joined: Sat Jun 22, 2019 4:50 am
- Team: Shitter
- Location: Arizona
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
The goal with crossover is to not virtualize the game, but run it straight off of the capable Mac hardware. The VM would work out of the box, but it's not guaranteed to have amazing performance, especially if its windows for arm, or x86.
-
kawy949
- Posts: 983
- Joined: Sat Feb 11, 2012 11:33 pm
- Location: UK
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
I'm watching with admiration, I spent a couple days on this as well because my son keeps stealing my laptop and need to run the game to test our data between website and game, and well... I couldn't get it running, just loaded Alcrest and stuttered like crazy.
-
kawy949
- Posts: 983
- Joined: Sat Feb 11, 2012 11:33 pm
- Location: UK
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
Running MX Simulator on Apple Silicon (M-series) Mac — full framerate on Alcrest
Setup: M-series Mac, macOS 26, running the 2026-05-14 64-bit snapshot. Getting 125fps on Alcrest and it plays fine on keyboard — good enough for real use. Totally free: no CrossOver or Parallels needed.
The blocker everyone hits: the modern 64-bit snapshot needs an OpenGL core context, and stock WineHQ's Mac driver refuses to create one — it rejects the request with "OS X only supports forward-compatible 3.2+ contexts" and the game dies instantly. macOS actually supports exactly the context the game wants; Wine is just being overly strict about a flag. CrossOver patches around this, plain WineHQ doesn't. One tiny change to a private copy of Wine fixes it (Wine is LGPL, so editing your own copy is fine).
The paths below are the exact ones I used — adjust if you prefer somewhere else.
Step 1 — Install Rosetta 2 (skip if you already have it)
Step 2 — Install WineHQ Wine (stable 11) and clear quarantine
Step 3 — Create a Wine prefix
Step 4 — Install the game
The installer's GUI didn't run cleanly for me, so I extracted it with 7-zip instead. (My installer was at ~/Downloads/mxsimulator-1_13-install.exe and the snapshot at ~/Downloads/mxsimulator/mx-2026-05-14-1684.exe.)
Step 5 — The key fix: patch a private copy of Wine's Mac driver
This makes a separate copy of Wine so your main install stays untouched, then flips one byte so the driver stops rejecting the core context.
Step 6 — Launch (the --glversion 4.1core flag is required; 3.2core also works)
Optional — one-click launcher. Save this as ~/Games/mxsim-launch.command and chmod +x it, then just double-click to play:
The whole trick is the one-byte driver patch + the --glversion 4.1core flag. Without both, the gt rejected or crashes falling back to old OpenGL.
Note: the offset 0x31b6b is specific to WineHQ 11.0's 64-bit winemac.so — a different Wine versin elsewhere. If so, look for the je immediately after the "forward-compatible" check (the bytesthere are 84 c0 74 20; change the 74).
Setup: M-series Mac, macOS 26, running the 2026-05-14 64-bit snapshot. Getting 125fps on Alcrest and it plays fine on keyboard — good enough for real use. Totally free: no CrossOver or Parallels needed.
The blocker everyone hits: the modern 64-bit snapshot needs an OpenGL core context, and stock WineHQ's Mac driver refuses to create one — it rejects the request with "OS X only supports forward-compatible 3.2+ contexts" and the game dies instantly. macOS actually supports exactly the context the game wants; Wine is just being overly strict about a flag. CrossOver patches around this, plain WineHQ doesn't. One tiny change to a private copy of Wine fixes it (Wine is LGPL, so editing your own copy is fine).
The paths below are the exact ones I used — adjust if you prefer somewhere else.
Step 1 — Install Rosetta 2 (skip if you already have it)
Code: Select all
softwareupdate --install-rosetta --agree-to-licenseCode: Select all
brew install --cask wine-stable
xattr -dr com.apple.quarantine "/Applications/Wine Stable.app"Code: Select all
export WINEPREFIX="$HOME/Games/mxsim-prefix"
"/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine" winebootThe installer's GUI didn't run cleanly for me, so I extracted it with 7-zip instead. (My installer was at ~/Downloads/mxsimulator-1_13-install.exe and the snapshot at ~/Downloads/mxsimulator/mx-2026-05-14-1684.exe.)
Code: Select all
brew install sevenzip
mkdir -p ~/Downloads/mxs-extract
7zz x -y -o ~/Downloads/mxs-extract ~/Downloads/mxsimulator-1_13-install.exe
# Copy the game data + original exe into the prefix
GAME="$WINEPREFIX/drive_c/Program Files (x86)/MX Simulator"
mkdir -p "$GAME"
cp ~/Downloads/mxs-extract/*.saf ~/Downloads/mxs-extract/CREDITS.TXT "$GAME/"
cp ~/Downloads/mxs-extract/mx.exe "$GAME/mx-1.13-original.exe" # keep a backup
# Drop in the 64-bit snapshot as mx.exe
cp ~/Downloads/mxsimulator/mx-2026-05-14-1684.exe "$GAME/mx.exe"This makes a separate copy of Wine so your main install stays untouched, then flips one byte so the driver stops rejecting the core context.
Code: Select all
# Copy Wine to your home folder
mkdir -p ~/Games/wine-mxsim
ditto "/Applications/Wine Stable.app/Contents/Resources/wine" ~/Games/wine-mxsim/wine
# Patch winemac.so: at offset 0x31b6b change 0x74 (je) to 0xeb (jmp)
python3 -c "
import os
p=os.path.expanduser('~/Games/wine-mxsim/wine/lib/wine/x86_64-unix/winemac.so')
d=bytearray(open(p,'rb').read())
assert d[0x31b6b]==0x74, hex(d[0x31b6b])
d[0x31b6b]=0xeb
open(p,'wb').write(d)
print('patched OK')
"
# Re-sign the patched driver
codesign --force -s - ~/Games/wine-mxsim/wine/lib/wine/x86_64-unix/winemac.soCode: Select all
export WINEPREFIX="$HOME/Games/mxsim-prefix"
cd "$WINEPREFIX/drive_c/Program Files (x86)/MX Simulator"
~/Games/wine-mxsim/wine/bin/wine mx.exe --glversion 4.1coreCode: Select all
#!/bin/bash
export WINEPREFIX="$HOME/Games/mxsim-prefix"
export WINEDEBUG=-all
cd "$WINEPREFIX/drive_c/Program Files (x86)/MX Simulator"
exec "$HOME/Games/wine-mxsim/wine/bin/wine" mx.exe --glversion 4.1core "$@"Note: the offset 0x31b6b is specific to WineHQ 11.0's 64-bit winemac.so — a different Wine versin elsewhere. If so, look for the je immediately after the "forward-compatible" check (the bytesthere are 84 c0 74 20; change the 74).
-
Wahlamt
- Posts: 7972
- Joined: Mon Sep 13, 2010 3:15 pm
- Team: MLG Compton
- Location: Sweden
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
Thanks Jon, that's awesome! I updated my post that's stuck with this guide in the first post, so anyone that might look into it have a better place to start
-
kawy949
- Posts: 983
- Joined: Sat Feb 11, 2012 11:33 pm
- Location: UK
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
No worries, I can't take all the credit... Kids took my gaming laptop for the night, so I sat with Claude, some perseverance, experience and lots and lots of coffee! Glad to helped.
-
jlv
- Site Admin
- Posts: 15505
- Joined: Fri Nov 02, 2007 5:39 am
- Team: No Frills Racing
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
Do you know if this change is going to make it into the official Wine version?
Josh Vanderhoof
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
-
kawy949
- Posts: 983
- Joined: Sat Feb 11, 2012 11:33 pm
- Location: UK
- Contact:
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
I don't yet JLV, going to look into whether we can submit a patch request.
-
LeasingCorn103
- Posts: 10
- Joined: Tue Jun 17, 2025 8:48 am
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
Just wanted to say this worked great — thanks for the writeup, the one-byte patch + the 4.1core flag really is the whole trick.
Confirming it works on an M5 / macOS 26 with WineHQ Stable 11.0: the 0x31b6b offset in your patch was spot on, patched OK first try, and I'm getting smooth frames on Alcrest.
A few small paste-friendliness snags I hit — nothing wrong with the method itself, just copy-paste gotchas for anyone on zsh:
- The 7-zip line (7zz x -y -o ~/Downloads/mxs-extract ...) fails with "Too short switch: -o" because 7-Zip wants no space after -o. Easiest fix is to cd into the extract folder first and drop the -o entirely.
- The # comments on the cp lines get run as commands in interactive zsh (you get "command not found: #" plus a confusing cp error). Running "setopt interactive_comments" first fixes it, or just delete the comments when pasting.
- The snapshot downloaded straight into ~/Downloads for me rather than the ~/Downloads/mxsimulator/ subfolder the paths assume, so I had to tweak the last cp. Grabbed it from mxsimulator.com/snapshots/ for anyone looking.
@JLV — maybe worth a semi-official Mac guide linked somewhere on the front page? There are a lot of threads like this and it's quite feasible now with just a few commands. Happy to help clean up the steps if useful.
Thanks again — running perfectly now.
Confirming it works on an M5 / macOS 26 with WineHQ Stable 11.0: the 0x31b6b offset in your patch was spot on, patched OK first try, and I'm getting smooth frames on Alcrest.
A few small paste-friendliness snags I hit — nothing wrong with the method itself, just copy-paste gotchas for anyone on zsh:
- The 7-zip line (7zz x -y -o ~/Downloads/mxs-extract ...) fails with "Too short switch: -o" because 7-Zip wants no space after -o. Easiest fix is to cd into the extract folder first and drop the -o entirely.
- The # comments on the cp lines get run as commands in interactive zsh (you get "command not found: #" plus a confusing cp error). Running "setopt interactive_comments" first fixes it, or just delete the comments when pasting.
- The snapshot downloaded straight into ~/Downloads for me rather than the ~/Downloads/mxsimulator/ subfolder the paths assume, so I had to tweak the last cp. Grabbed it from mxsimulator.com/snapshots/ for anyone looking.
@JLV — maybe worth a semi-official Mac guide linked somewhere on the front page? There are a lot of threads like this and it's quite feasible now with just a few commands. Happy to help clean up the steps if useful.
Thanks again — running perfectly now.
-
LeasingCorn103
- Posts: 10
- Joined: Tue Jun 17, 2025 8:48 am
Re: MX Simulator via Crossover (Mac | Apple Silicon M5)
Heres my (mostly my claude agent) write up;
MX Simulator on Apple Silicon (M-series Mac) via Wine — free, mostly full framerate
Credits
Nearly all of the real work here belongs to others — this post just tidies it up and adds a couple of paste fixes and a tuned settings list:
The game runs CPU-bound through the translation layer. With optimised settings (included further down), most tracks still run at full 125fps. Heavy tracks can be accommodated quickly by lowering "Model Geometric Detail" without needing a restart.
--
Step 0 — Install Homebrew (optional — skip if you already have it)[/b]
Run the official installer, then add brew to your PATH (the second block is needed on Apple Silicon, where brew installs to /opt/homebrew — without it, the brew command won't be found in later steps):
Check it worked:
Step 1 — Install Rosetta 2 (skip if you already have it)
(A cosmetic "Package Authoring Error" line is fine as long as it prints "Install of Rosetta 2 finished successfully".)
Step 2 — Install WineHQ Wine (Stable 11) and clear quarantine
Step 3 — Create a Wine prefix
First boot prints a lot of fixme/err chatter and a big Vulkan/MoltenVK dump — all normal. Confirm it worked:
Step 4 — Install the game
Extract the 1.13 installer with 7-zip (its GUI installer doesn't always run cleanly).
Note: using this method, we cd into the folder and DON'T use 7-zip's -o flag — 7-Zip wants no space after -o, so "7zz x -y -o ~/path" fails with "Too short switch: -o".
Copy the data + both exes into the prefix (keep the 1.13 exe as a backup, put the snapshot in as mx.exe).
Note: no inline # comments here — in interactive zsh they run as commands ("command not found: #"). Run "setopt interactive_comments" first if you want them.
(That last cp assumes the snapshot is in ~/Downloads/ — it often downloads there rather than a subfolder, so adjust if yours is elsewhere.)
Step 5 — The key fix: patch a private copy of Wine's Mac driver
Makes a separate copy of Wine (main install untouched), flips one byte so the driver stops rejecting the OpenGL core context, then re-signs it.
Look for "patched OK". If you get an AssertionError instead, stop — the offset differs for your Wine version and the assert safely writes nothing. (See dev notes at the end for how to find the right offset.)
Step 6 — Launch (the --glversion 4.1core flag is required; 3.2core also works)
Expect harmless log chatter, then the game window opens. Keep this plain command for the first run so you have the logs if anything goes wrong.
--
Optional — no-Terminal launcher
A .command file works but leaves a Terminal window open. An Automator Application launches with no Terminal window and can go on the Dock:
Fair warning that settings & setups (at least un-saved ones) don't carry over from the terminal launcher to the non-terminal launcher so if you do this later you'll have to re-do your settings & setups.
Recommended in-game settings
Because the translation layer bottlenecks the CPU (draw calls / terrain sim), the wins come from cutting CPU work.
Graphics/Sound Setup
The modern 64-bit snapshot needs an OpenGL core context. Stock WineHQ's Mac driver refuses to create one — it rejects the request ("OS X only supports forward-compatible 3.2+ contexts") and the game dies instantly. macOS actually supports exactly the context the game wants; Wine is just being overly strict about a flag. CrossOver patches around this; plain WineHQ doesn't. The one-byte patch to a private copy of the driver + the --glversion 4.1core flag is the whole trick. Wine is LGPL, so editing your own private copy is fine.
Dev notes / troubleshooting
MX Simulator on Apple Silicon (M-series Mac) via Wine — free, mostly full framerate
Credits
Nearly all of the real work here belongs to others — this post just tidies it up and adds a couple of paste fixes and a tuned settings list:
- Lancer2004 — started the whole investigation and did the bulk of the troubleshooting, including pinning down that the game fails at modern OpenGL (3+) context creation under Wine/CrossOver on Apple Silicon.
- jlv — pointed the way to the snapshot builds and the --glversion option that makes this possible at all.
- kawy949 / Jon (mxscentral.com) — produced the actual free-WineHQ method below, including the one-byte winemac.so patch, and confirmed 125fps on Alcrest.
- An Apple Silicon Mac (M1–M5). Tested on M5 / macOS 26 / WineHQ Stable 11.0.
- The 64-bit snapshot, not the 1.13 release build. The --glversion option only exists in snapshots from 2021-11-22 onward, and this method relies on it — the plain 1.13 exe won't work. This guide uses mx-2026-05-14-1684.exe from https://mxsimulator.com/snapshots/
- The 1.13 installer as well (for the game data / .saf files) — e.g. ~/Downloads/mxsimulator-1_13-install.exe
The game runs CPU-bound through the translation layer. With optimised settings (included further down), most tracks still run at full 125fps. Heavy tracks can be accommodated quickly by lowering "Model Geometric Detail" without needing a restart.
--
Step 0 — Install Homebrew (optional — skip if you already have it)[/b]
Run the official installer, then add brew to your PATH (the second block is needed on Apple Silicon, where brew installs to /opt/homebrew — without it, the brew command won't be found in later steps):
Code: Select all
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo >> ~/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"Code: Select all
brew --versionStep 1 — Install Rosetta 2 (skip if you already have it)
Code: Select all
softwareupdate --install-rosetta --agree-to-licenseStep 2 — Install WineHQ Wine (Stable 11) and clear quarantine
Code: Select all
brew install --cask wine-stable
xattr -dr com.apple.quarantine "/Applications/Wine Stable.app"Step 3 — Create a Wine prefix
Code: Select all
mkdir -p ~/Games
export WINEPREFIX="$HOME/Games/mxsim-prefix"
"/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine" winebootCode: Select all
ls "$WINEPREFIX/system.reg"Step 4 — Install the game
Extract the 1.13 installer with 7-zip (its GUI installer doesn't always run cleanly).
Code: Select all
brew install sevenzip
mkdir -p ~/Downloads/mxs-extract
cd ~/Downloads/mxs-extract
7zz x -y ~/Downloads/mxsimulator-1_13-install.exe
ls *.saf mx.exe CREDITS.TXTCopy the data + both exes into the prefix (keep the 1.13 exe as a backup, put the snapshot in as mx.exe).
Code: Select all
GAME="$WINEPREFIX/drive_c/Program Files (x86)/MX Simulator"
mkdir -p "$GAME"
cp ~/Downloads/mxs-extract/*.saf ~/Downloads/mxs-extract/CREDITS.TXT "$GAME/"
cp ~/Downloads/mxs-extract/mx.exe "$GAME/mx-1.13-original.exe"
cp ~/Downloads/mx-2026-05-14-1684.exe "$GAME/mx.exe"
ls "$GAME"(That last cp assumes the snapshot is in ~/Downloads/ — it often downloads there rather than a subfolder, so adjust if yours is elsewhere.)
Step 5 — The key fix: patch a private copy of Wine's Mac driver
Makes a separate copy of Wine (main install untouched), flips one byte so the driver stops rejecting the OpenGL core context, then re-signs it.
Code: Select all
mkdir -p ~/Games/wine-mxsim
ditto "/Applications/Wine Stable.app/Contents/Resources/wine" ~/Games/wine-mxsim/wine
python3 -c "
import os
p=os.path.expanduser('~/Games/wine-mxsim/wine/lib/wine/x86_64-unix/winemac.so')
d=bytearray(open(p,'rb').read())
assert d[0x31b6b]==0x74, hex(d[0x31b6b])
d[0x31b6b]=0xeb
open(p,'wb').write(d)
print('patched OK')
"
codesign --force -s - ~/Games/wine-mxsim/wine/lib/wine/x86_64-unix/winemac.so
xattr -dr com.apple.quarantine ~/Games/wine-mxsim/wineStep 6 — Launch (the --glversion 4.1core flag is required; 3.2core also works)
Code: Select all
export WINEPREFIX="$HOME/Games/mxsim-prefix"
cd "$WINEPREFIX/drive_c/Program Files (x86)/MX Simulator"
~/Games/wine-mxsim/wine/bin/wine mx.exe --glversion 4.1core--
Optional — no-Terminal launcher
A .command file works but leaves a Terminal window open. An Automator Application launches with no Terminal window and can go on the Dock:
Fair warning that settings & setups (at least un-saved ones) don't carry over from the terminal launcher to the non-terminal launcher so if you do this later you'll have to re-do your settings & setups.
- Automator → New Document → Application → add "Run Shell Script".
- Paste:
Code: Select all
exec "$HOME/Games/wine-mxsim/wine/bin/wine" "$HOME/Games/mxsim-prefix/drive_c/Program Files (x86)/MX Simulator/mx.exe" --glversion 4.1core - Save as "MX Simulator" to Applications.
Recommended in-game settings
Because the translation layer bottlenecks the CPU (draw calls / terrain sim), the wins come from cutting CPU work.
Graphics/Sound Setup
- Select a specific higher resolution such as 3024x1890. "Default Fullscreen" utilises a lower resolution.
- Ground Geometric Detail — 20 meaningful gains, allows for more reasonable model texture detail
- Ground Sub-Mesh Resolution — 16x16 lowering this seems to reduce framerate unless i'm mistaken
- Ground Texture Levels — ExtraLow+Low+Mid+High
- Ground Texture Resolution — 1024x1024 seems to help a little bit, could be meaningless but any lower looks awful
- Ground Texture Update Rate — 16
- Enable Ground Mipmaps — Yes
- Compress Textures — Always
- Model Geometric Detail — 20 lower to 0-6 for a quick fps bump on heavier maps
- Model Texture Detail — 10
- Roost Density — 0
- Treadmark Limit — 0
- Terrain Sync Rate — 0
- Enable Lens Flares — Noprobably no issue enabling this
- Enable Reflections — Noprobably no issue enabling this
The modern 64-bit snapshot needs an OpenGL core context. Stock WineHQ's Mac driver refuses to create one — it rejects the request ("OS X only supports forward-compatible 3.2+ contexts") and the game dies instantly. macOS actually supports exactly the context the game wants; Wine is just being overly strict about a flag. CrossOver patches around this; plain WineHQ doesn't. The one-byte patch to a private copy of the driver + the --glversion 4.1core flag is the whole trick. Wine is LGPL, so editing your own private copy is fine.
Dev notes / troubleshooting
- The patch offset is version-specific. 0x31b6b is for WineHQ 11.0's 64-bit winemac.so. On a different Wine version, look for the je immediately after the "forward-compatible" check — the bytes there are 84 c0 74 20; change the 74 to eb. The assert in the Python snippet protects you: it writes nothing unless the byte matches.
- The patch survives game updates. It lives in your private Wine copy (~/Games/wine-mxsim), not the game folder, so swapping snapshots doesn't undo it. Only redo Step 5 if you change Wine version.
- Keep the 1.13 backup. Snapshots aren't heavily tested. If one misbehaves, copy mx-1.13-original.exe back over mx.exe, or drop in a newer snapshot the same way.
- Fresh terminal? $WINEPREFIX is per-session — re-run the export before any command that uses it.
- Model/skin packs install by dropping the unzipped folder (don't rename it or remove files) into the MX Simulator folder inside the prefix.
- Audio device: Wine grabs its output device at launch — pick your headphones/speakers as the macOS output first, then start the game.
- Live GPU stats: add "export MTL_HUD_ENABLED=1" to the launch environment for macOS's built-in Metal HUD (framerate, frame time, GPU memory).
