Mario Tennis: Recompiled
Mario Tennis: Recompiled is a native PC port of Mario Tennis for Nintendo 64 that runs at any resolution and supports controllers with rumble.
- Type: PC port
- Game: Mario Tennis
- Runs on Windows
- By Ieatzcrayonz
- Latest release v0.2.0, 2026-11-08
- Source: https://github.com/Ieatzcrayonz/MarioTennisRecomp
README
Mario Tennis: Recompiled
A native PC port of Mario Tennis (N64, USA), made with N64Recomp and the RT64 renderer. The original game code is translated into C and compiled to a Windows program, so it runs natively instead of through an emulator.
No game files are included. This repository holds only the port's own code, tools and artwork. You supply the game yourself, and it and everything generated from it stay on your machine.
Which ROM to use
Use a dump of your own Mario Tennis cartridge, North American (USA) release. Other regions (Europe, Japan) won't work.
| Name | Mario Tennis (USA).z64 |
| Game code | NM8E |
| Format | .z64 (big-endian). Convert .n64 or .v64 files to .z64 first, e.g. with Tool64 |
| SHA-1 | 999047f07cec931ffbdcc7b33b8502ef602807ee |
To check your file on Windows, run this in PowerShell and compare the result with the SHA-1 above:
Get-FileHash "Mario Tennis (USA).z64" -Algorithm SHA1
If it doesn't match, the port won't recognise the file. The usual cause is the wrong region or a modified (hacked or translated) ROM.
Download
Get MarioTennisRecompiled-Windows.zip from the Releases page,
unzip it, run MarioTennisRecompiled.exe, pick your ROM and press Start game. The download contains no game
code or data: the game is translated from your own ROM when it starts.
Features
- Runs at any resolution: 720p, 1080p, 1440p, 4K or matching the window, with widescreen stretch.
- Controller support (including DualSense), with rumble and remappable controls.
- Saves work as on the cartridge.
- A new sunny court launcher screen.
- DirectX 12 or Vulkan (Settings → Graphics → Graphics API).
- Optional CRT shaders from RetroArch (CRT-Royale, CRT-Royale Fast, CRT-Lottes) via librashader (Settings → Graphics → Shader).
Building (Windows)
Requirements: Visual Studio 2022+ Build Tools, LLVM/clang-cl, CMake, Ninja, Python 3 and Git Bash.
- Clone Zelda64Recomp with
--recursiveand make aliblink in this folder pointing at itslibfolder (it provides RT64, RmlUi, N64ModernRuntime and friends). - Apply the patches in
patches/tolib/N64ModernRuntime,lib/N64ModernRuntime/N64Recompandlib/rt64. - Generate the recompiled code from your ROM:
python tools/gen_symbols.py "<path to Mario Tennis (USA).z64>", thensh tools/recompile.sh. - Build:
tools\build_game.bat(edit the Visual Studio path in it if yours differs). The result isbuild\MarioTennisRecompiled.exe. Run it with this folder as the working directory. - Release build:
tools\build_live.bat(output inbuild-live\). It needs no generated code, so step 3 can be skipped: the exe translates the game's code, and runs its audio microcode, from the player's ROM at startup. - Optional, for the Shader option: build
librashader.dllfrom librashader (taglibrashader-v0.12.1) withcargo xtask build --profile release, and configure with-DLIBRASHADER_DLL=<path>\librashader.dllso it is copied next to the exe (tools\build_live.batdoes this forF:\Recomps\src\librashader). The shader presets inslang-shaders/are copied automatically. Without the DLL the game runs normally and the option does nothing.
Technical notes on how the port works are in NOTES.md.
Credits
- N64Recomp, N64ModernRuntime and the Zelda64Recomp frontend, by Wiseguy and contributors (GPL-3.0).
- RT64 by Darío and contributors.
- librashader by Ronny Chan (MPL-2.0 / GPL-3.0).
- CRT-Royale by TroggleMonkey (GPL-2.0+), CRT-Lottes by Timothy Lottes (public domain), from the libretro slang-shaders collection. See slang-shaders/README.md.
- Luckiest Guy font by Astigmatic (Apache 2.0).
Mario Tennis is a trademark of Nintendo. This project is not affiliated with or endorsed by Nintendo.
License
GPL-3.0, the same as the Zelda64Recomp code it builds on. See LICENSE.