Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Mario Kart 64 (3DS Port Complete)
PORTSNATIVE

Mario Kart 64 (3DS Port Complete)

NATIVE PORTRACING / DRIVINGWINDOWSBETA

Mario Kart 64 (3DS Port Complete)

Mario Kart 64

TechnologyNative C/C++ port (engine reimplementation)

Available forWindows

View official project

About the project

Mario Kart 64 es un videojuego de carreras para la Nintendo 64 (N64). Desarrollado y publicado por Nintendo, es la segunda entrega de la serie Mario Kart tras Super Mario Kart de 1992. Conserva la mecánica de su predecesor: el jugador, que controla a un personaje de la franquicia Mario, compite contra sus rivales en circuitos basados en escenarios de los plataformas de Super Mario. Contienen obstáculos para frenarlo y cajas de objetos que le proporcionan potenciadores para ayudarle a avanzar.

12 versions of Mario Kart 64

You're viewing: Mario Kart 64 (3DS Port Complete)

Mario Kart 64 (3DS Port Complete)github.com/Epic0522/MarioKart64-3DSPort-Complete
Windows
Current
Mario Kart 64github.com/n64decomp/mk64
Windows
›
Mario Kart 64 - MarioKart64Recompgitlab.com/sonicdcer/MarioKart64Recomp
Windows
Linux
macOS
›
Mario Kart 64 (3DS)github.com/EstebanPdN/mario-kart-64-3ds
To be confirmed
›
Mario Kart 64 (jnmartin84)github.com/jnmartin84/mk64-dc
Windows
›
Mario Kart 64 (MK64Recomp)github.com/arefdsg/MK64Recomp
Windows
›
Mario Kart 64 (MKart360, Xbox 360)github.com/sirdankz/MKart360
Windows
›
Mario Kart 64 (Xbox)github.com/Team-Resurgent/Mario-Kart-64-X
To be confirmed
›
MarioKart 64: Recompiledgithub.com/sonicdcer/MarioKart64Recomp
Windows
Linux
macOS
›
MK64 Portable (Mario Kart 64, PSP)github.com/beckerd/psp_mk64_portable
To be confirmed
›
SpaghettiKartgithub.com/HarbourMasters/SpaghettiKart
Windows
Linux
macOS
›
SpaghettiKart (Android)github.com/izzy2lost/SpaghettiKart
Android
›

Official project information

Author's original READMEOpen on GitHub ↗

Mario Kart 64 3DS Port Complete

<p> <img src="https://img.shields.io/badge/platform-Nintendo%203DS-1f6feb?style=for-the-badge" alt="Nintendo 3DS"> <img src="https://img.shields.io/badge/output-.3dsx%20%7C%20.cia-6f42c1?style=for-the-badge" alt="3DSX and CIA"> </p>

Mario Kart 64 3DS Port Complete

A native Mario Kart 64 port for the Nintendo 3DS family, maintained by Epic. This project continues EstebanPdN's original Mario Kart 64 3DS port, based on SpaghettiKart, with resource-management fixes, rendering corrections and optional gameplay improvements.

Original project · Discord community

This is an unofficial fan project, not affiliated with Nintendo or Harbour Masters. No ROM, O2R archive, save or extracted gameplay resources are included. A compatible USA ROM is required.

💬 Community

Join My Discord community to discuss the port and share feedback. When reporting an issue, include your console model, game version, relevant settings and the steps needed to reproduce it.

⬇️ Download and Installation

  1. Install the CIA with FBI, or launch the 3DSX with Homebrew Launcher.
  2. Place a big-endian USA ROM at sd:/3ds/MK64/mk64.z64.
  3. First launch validates and extracts mk64.o2r. Keep the console charged; START cancels extraction safely.

Later launches reuse the archive; an existing compatible SpaghettiKart O2R can also be used. Upgrades replace only the application: retain sd:/3ds/MK64/ to preserve saves, ghosts and settings.

⚙️ Features

  • Resource lifetime fixes — bounded caches, GPU-safe texture recycling and complete course/kart resets on race transitions, including retries.
  • Old 3DS I/O improvements — revised heap partitioning and a bounded compressed-entry cache reduce repeated SD reads without removing memory-safety protections.
  • Rendering corrections — depth/culling, transparent trees and water, podium shadows, results viewports and credits transitions.
  • Dual-screen UI — five HUD layouts, native item graphics, crisp scrolling course minimaps, blurred menu backdrops and original-style RANDOM CUP / AUTO artwork.
  • Audio and feedback — prioritized effect requests, positional CPU sounds, hit/finish voices and opponent reaction effects.
  • Optional modern logic — real CPU item-box collection, adjusted CPU item rules and penalties, smoother pack pacing, road-following shells and held-brake reverse.
  • Random cups and AUTO — four-race random cups and spectator cups driven by the game's CPU logic.
  • Solo VS and Battle — race against seven CPUs in VS, or face three arena bots in four-kart Battle, with a single full-screen view.
  • Timing and presentation — an independent race clock, synchronized transitions and a selectable 30 FPS frame limiter.
  • Animated 3D HOME banner — a front-facing logo and waving flag, without HOME's default continuous rotation.

Modern logic can be toggled under Gameplay. Rendering, audio and UI fixes remain active with it disabled. See FIXES.md and CHANGELOG.md for the full change overview.

Select VS or Battle under 1P GAME. VS races against seven CPUs. Battle uses the original arenas and three-balloon rules against three bots; the last survivor wins. After elimination, use your one-use bomb, then spectate the remaining bots. Pause and quit remain available. Battle bots work with modern logic disabled too.

The frame limiter caps presentation at 30 FPS. With it off, rendering can reach 60 FPS when workload permits. Performance varies by console and course. Local multiplayer is not available.

🎮 Controls and Configuration

ControlManual racing
Circle PadSteer; up/down selects item throw direction
AAccelerate
BBrake and then reverse
RHop / drift
L or YUse item
Xlook behind
SELECTSwitch camera distance
STARTPause / continue
C-StickHold for configured Turbo Speed
ZLToggle configured Turbo Speed on/off

Press L on Game Select to open Display, Gameplay and Developer settings. The in-race menu also has a Pause page for continue/quit. HUD layout, speedometer and other meters are configured under Display.

Turbo Speed fast-forwards the game, including AUTO, menus and ceremonies; it does not upgrade your kart. Hold C-Stick to fast-forward, or press ZL to toggle it. Manual race entry/retry resets Turbo; AUTO retains it across courses and retries. A fresh game launch starts with Turbo off.

Fresh settingDefault
HUD layoutClean
HUD metersOff
Render distanceLow
Modern logicOn
Frame limiterOld 3DS: On / New 3DS: Off
ZR debugOff
LoggingOff

In Clean, manual racing shows standings through the lower-screen portrait columns by default, without a separate 1st / 2nd / ... place indicator. Select Display → HUD METERS → POSITION/LAP to show your place at the bottom-left of the upper screen and lap count at the top-right. GP/VS AUTO shows the upper-screen place indicator automatically. The separate place indicator is never displayed on the lower screen.

Saved settings take precedence. Unsupported HUD meter combinations appear red. Time Trials hide rank; title demos hide the upper HUD. Modern logic changes take effect next race.

🎲 Random Cups and AUTO

MenuSELECT action
GP Map SelectFour random tracks with the chosen driver/level
Game SelectALL RANDOM: random driver; 150cc or Extra each course
Character SelectAUTO using the cursor's driver

Time Trial Map Select has no random cup button. Extra is the mirrored course mode. The award ceremony can be skipped with A or START.

AUTO is available in GP, VS and Battle. The CPU controls every kart, and the selected driver owns the result even when you switch the camera to another driver. Modern logic also applies in AUTO when enabled. Gameplay view is the default. Battle rankings follow balloon counts, with eliminated drivers last.

Circle Pad / D-pad left or right changes the observed driver. A/B/X/Y switches between gameplay and cinematic views in GP/VS, or near/far gameplay views in Battle. Driving and item inputs are disabled; pause, continue, retry and quit remain available.

GP AUTO advances through results and retries automatically. VS/Battle confirms the selected result action. GP AUTO ends with the original fourth-place no-trophy ceremony. AUTO does not save awards or unlock progress.

🛠️ Diagnostics

The Developer page includes:

  • Memory dump — export performance samples, settings and resource data to sd:/3ds/MK64/dump/ for bug reports.
  • Logging — record startup, runtime, installer and fault logs. Off by default; manual dumps and FPS displays still work with logging off.
  • Clean dumps — remove diagnostic files without touching ROMs, O2R archives, saves or settings.
  • ZR debug — hold ZR to advance through checkpoints and finish a race. Off by default.

🏗️ Building

Initialize pinned submodules recursively, then build:

git submodule update --init --recursive --depth 1
./platform/3ds/build.sh

The first configuration downloads pinned build dependencies, so an internet connection is required unless they are already cached. A ROM is not needed to compile; the console needs a ROM or compatible O2R archive to play.

See BUILDING.md for setup and build instructions, ARCHITECTURE.md for the code map, and RELEASING.md for packaging instructions.

📁 Project Structure

LocationPurpose
platform/3ds/Maintained runtime, adaptations, artwork and packaging helpers
third_party/SpaghettiKart/Pinned production game/engine dependencies
build-3ds/game/Generated CIA, full-game 3DSX and hash manifest
docs/images/README artwork

🫡 Credits

  • EstebanPdN — original Nintendo 3DS port.
  • Harbour Masters and contributors — SpaghettiKart, libultraship and Torch.
  • N64 decompilation and 3DS homebrew communities.

See THIRD_PARTY_NOTICES.md for source origins and third-party license notices.

View official project
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Racing / Driving
Status
beta
Original platform
—
Technology
Native C/C++ port (engine reimplementation)
Version
—
Updated
Oct 7, 2026

Target platforms 1

Windows
View on GitHub
Advertisement