Releases: vakesz/TrackMania-MacOS
Release list
0.3.0
Changes since 0.2.0.
Session supervisor
The shell watchdog is replaced by a Windows-side supervisor,
libexec/mactmnf-session.exe, that runs inside the prefix. It tracks the
game and settings executables by retained process handles and exact file
identity rather than by scanning process names.
- Normal quits are quiet. Failed or uncertain sessions show an alert with the
log location. An uncertain result never kills a game that may still be
running. make stopis the explicit way to stop the selected prefix.- Without
MACTMNF_WINDOW_SIZE, Wine's ownexplorer.exe /desktopis
recognized only as the runtime's exact image and closed after the game exits.
With it, each session gets its own virtual desktop; each dimension must be
between 1 and 65535.
Renderer
- D9VK is updated to a newer pinned upstream, which drops the two local build
patches. Two fixes are added: promoted 16-bit volume textures no longer
overwrite earlier slices, andtexm3x3vspeckeeps the eye-vector magnitude. - Wine's
texm3x3lowering likewise preserves the eye vector. config/dxvk.confno longer forcespresentInterval = 0, so the game's own
vsync setting applies. The direct buffer mapping override is dropped because
the pinned D9VK already defaults to it.
Network
WinHTTP now preserves certificate rejection reasons and reports secure-failure
callbacks instead of a generic channel error, and no longer reuses a pooled
connection under a different validation policy. Rejection of untrusted,
expired and hostname-mismatched certificates is unchanged; only the reporting
is corrected. A local TLS fixture suite covers both architectures and both
sync and async modes.
x87 precision
x87sidecar honors PC24 and PC53 arithmetic and rounds float stores with the
guest rounding mode inside a scoped FPCR. Host FPCR is restored exactly and
sticky FPSR flags are retained. Results are bit-exact against the reference
cases. PC64 remains an f64 approximation; full 80-bit state is not provided.
Launcher and installer
- Prefix-changing commands and launches take an installation lock and refuse
an already-active selected prefix. External Wine invocations do not
participate. uninstallverifies that user data lives outside the prefix before removing
anything.- App logs rotate at 2 MiB before launch, keeping three numbered backups.
- Malformed or unsupported game icons fall back to generic app artwork instead
of blocking installation. - The SystemConfig generator validates field types and preset ranges.
make doctorreports a missing, modified or mismatched runtime explicitly.make builduses every CPU core by default;MACTMNF_JOBS=4leaves some
free.
Multimedia timer and waits
The winmm multimedia timer keeps its own lock, isolated from other winmm state.
The Darwin fast alertable-yield path tracks both user and system APC queues,
including cancellation, and falls back to the server path on pipe EOF.
Install
make install downloads mactmnf-0.3.0-runtime.tar.xz from this release,
verifies its SHA-256, installs the game, and creates the two apps. See the
README for the full steps and for building the runtime yourself.
If macOS blocks a manually downloaded archive, clear its quarantine flag:
xattr -dr com.apple.quarantine "$HOME/Downloads/mactmnf-0.3.0-runtime.tar.xz"Notes
- Requires an Apple Silicon Mac and macOS 14 or later. Rosetta 2 is installed
automatically if missing. - Binaries are ad-hoc signed, not Developer ID signed or notarized. SHA-256
verifies integrity, not a publisher identity. - The game and Microsoft DirectX are downloaded from their original hosts during
installation, not redistributed here. - Async shader compilation can briefly skip draws whose pipelines are not ready.
The remaining renderer tuning flags await controlled frame-time comparisons.
Files
mactmnf-0.3.0-runtime.tar.xzand.sha256: the runtime the installer uses.mactmnf-0.3.0-source.tar.xzand.sha256: the pinned upstream sources and
patches this runtime is built from.
0.2.0
Changes since 0.1.0.
Display and fullscreen
The game now launches directly instead of being forced into a 1280x720 Wine
virtual desktop, so it uses the display mode set in TrackMania Settings
(fullscreen or windowed, at the resolution you choose). The old forced desktop
added a title bar that shortened the drawable and clipped the bottom of the
game's fixed-size menu, so clicks there did not register.
- Fullscreen uses the primary display. With more than one monitor, set the
game's resolution to the primary's so it fills the screen. - To force a fixed windowed size, set
MACTMNF_WINDOW_SIZE=1280x720(anyWxH).
Clean exit
Quitting the game no longer leaves a black Wine window behind, and the app no
longer shows a false "TrackMania could not start" alert on a normal quit. The
launcher waits for the game process to exit, then stops the prefix.
One Dock icon
The launcher no longer adds its own Dock icon; only the game's tile shows.
Microphone
macOS should ask for microphone access less often. Wine's CoreAudio driver now
refuses to open a capture (input) audio unit, since TrackMania only plays sound.
This is a mitigation, not a guarantee: the prompt can still appear, and denying
it is safe.
Install
make install downloads mactmnf-0.2.0-runtime.tar.xz from this release,
verifies its SHA-256, installs the game, and creates the two apps. See the
README for the full steps and for building the runtime yourself.
If macOS blocks a manually downloaded archive, clear its quarantine flag:
xattr -dr com.apple.quarantine "$HOME/Downloads/mactmnf-0.2.0-runtime.tar.xz"Notes
- Requires an Apple Silicon Mac and macOS 14 or later. Rosetta 2 is installed
automatically if missing. - Binaries are ad-hoc signed, not Developer ID signed or notarized. SHA-256
verifies integrity, not a publisher identity. - The game and Microsoft DirectX are downloaded from their original hosts during
installation, not redistributed here.
Files
mactmnf-0.2.0-runtime.tar.xzand.sha256: the runtime the installer uses.mactmnf-0.2.0-source.tar.xzand.sha256: the pinned upstream sources and
patches this runtime is built from.
0.1.0
TrackMania Nations Forever on Apple Silicon, with Competition Patch, working
textures and audio, and a patched Wine + D9VK runtime tuned for this game. This
is the first release.
Install
Download this repository, open Terminal in its folder, and run:
make installThe installer downloads mactmnf-0.1.0-runtime.tar.xz from this release,
verifies its SHA-256, installs the game, and creates the TrackMania Nations
Forever and TrackMania Settings apps. See the README for the full steps
and for building the runtime yourself instead.
If macOS blocks a manually downloaded archive, clear its quarantine flag:
xattr -dr com.apple.quarantine "$HOME/Downloads/mactmnf-0.1.0-runtime.tar.xz"What's inside
- A patched Wine 11.x with D9VK (DXVK for Direct3D 9) on MoltenVK.
- An x87 translator that keeps the game's 24-bit floating-point math intact
under Rosetta. - Fixes for the game's shader materials, startup, audio, the settings launcher,
and clean shutdown. The game no longer prompts for microphone or Desktop
access it does not use.
Notes
- Requires an Apple Silicon Mac and macOS 14 or later. Rosetta 2 is installed
automatically if missing. - The binaries are ad-hoc signed, not Developer ID signed or notarized. SHA-256
verifies integrity, not a publisher identity. - The game and Microsoft DirectX are downloaded from their original hosts during
installation, not redistributed here.
Files
mactmnf-0.1.0-runtime.tar.xzand.sha256: the runtime the installer uses.mactmnf-0.1.0-source.tar.xzand.sha256: the pinned upstream sources and
patches this runtime is built from.
See the README acknowledgements for the projects this is built on.