MX Simulator via Crossover (Mac | Apple Silicon M5)

Post anything about MX Simulator here. Please. I'm begging you.
Post Reply
Lancer2004
Posts: 327
Joined: Sat Jun 22, 2019 4:50 am
Team: Shitter
Location: Arizona

MX Simulator via Crossover (Mac | Apple Silicon M5)

Post by Lancer2004 »

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
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)

Post by jlv »

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.
Lancer2004
Posts: 327
Joined: Sat Jun 22, 2019 4:50 am
Team: Shitter
Location: Arizona

Re: MX Simulator via Crossover (Mac | Apple Silicon M5)

Post by Lancer2004 »

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.
I got Claude to do some extra research based off of the lastlog files.

"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)

Post by jlv »

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.
Lancer2004
Posts: 327
Joined: Sat Jun 22, 2019 4:50 am
Team: Shitter
Location: Arizona

Re: MX Simulator via Crossover (Mac | Apple Silicon M5)

Post by Lancer2004 »

jlv wrote: Fri Jul 10, 2026 2:33 am 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.
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)

Post by Wahlamt »

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 :lol:
Lancer2004
Posts: 327
Joined: Sat Jun 22, 2019 4:50 am
Team: Shitter
Location: Arizona

Re: MX Simulator via Crossover (Mac | Apple Silicon M5)

Post by Lancer2004 »

Wahlamt wrote: Mon Jul 13, 2026 6:00 pm 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 :lol:
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)

Post by kawy949 »

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)

Post by kawy949 »

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)

Code: Select all

softwareupdate --install-rosetta --agree-to-license
Step 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

export WINEPREFIX="$HOME/Games/mxsim-prefix"
"/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine" wineboot
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.)

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"
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.

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.so
Step 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 — one-click launcher. Save this as ~/Games/mxsim-launch.command and chmod +x it, then just double-click to play:

Code: 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 "$@"
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).
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)

Post by Wahlamt »

kawy949 wrote: Sat Aug 01, 2026 7:48 am Guide
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)

Code: Select all

softwareupdate --install-rosetta --agree-to-license
Step 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

export WINEPREFIX="$HOME/Games/mxsim-prefix"
"/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine" wineboot
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.)

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"
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.

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.so
Step 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 — one-click launcher. Save this as ~/Games/mxsim-launch.command and chmod +x it, then just double-click to play:

Code: 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 "$@"
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).
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 :) viewtopic.php?f=17&t=44074
kawy949
Posts: 983
Joined: Sat Feb 11, 2012 11:33 pm
Location: UK
Contact:

Re: MX Simulator via Crossover (Mac | Apple Silicon M5)

Post by kawy949 »

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)

Post by jlv »

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.
kawy949
Posts: 983
Joined: Sat Feb 11, 2012 11:33 pm
Location: UK
Contact:

Re: MX Simulator via Crossover (Mac | Apple Silicon M5)

Post by kawy949 »

jlv wrote: Thu Aug 06, 2026 3:23 am Do you know if this change is going to make it into the official Wine version?
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)

Post by LeasingCorn103 »

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.
LeasingCorn103
Posts: 10
Joined: Tue Jun 17, 2025 8:48 am

Re: MX Simulator via Crossover (Mac | Apple Silicon M5)

Post by LeasingCorn103 »

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:
  • 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.
What you need
  • 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
Performance

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)"
Check it worked:

Code: Select all

brew --version

Step 1 — Install Rosetta 2 (skip if you already have it)

Code: Select all

softwareupdate --install-rosetta --agree-to-license
(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

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" wineboot
First boot prints a lot of fixme/err chatter and a big Vulkan/MoltenVK dump — all normal. Confirm it worked:

Code: 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.TXT
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).

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"
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.

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/wine
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)

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
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.
  1. Automator → New Document → Application → add "Run Shell Script".
  2. 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
  3. 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.
Advanced Graphics Setup
  • 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
Why this works (and why plain Wine fails)

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).
Post Reply