If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Mario Kart 64

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Mario Kart 64

Also known as: Mario Kadingche (CN)
Developer: Nintendo
Publisher: Nintendo
Platforms: Nintendo 64, iQue Player
Released in JP: December 14, 1996
Released in US: February 10, 1997
Released in EU: June 24, 1997
Released in CN: December 17, 2003

CodeIcon.png This game has unused code.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
MusicIcon.png This game has unused music.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.

DevelopmentIcon.png This game has a development article
ProtoIcon.png This game has a prototype article
PrereleaseIcon.png This game has a prerelease article
NotesIcon.png This game has a notes page
BugsIcon.png This game has a bugs page

Mario Kart 64 basically takes all the wishes and feature requests from Super Mario Kart and makes them come true. Four players! Tunnels! No Koopa Troopa! All good stuff. Except that last one, clearly.


Read about development information and materials for this game.
Development Info
Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
Miscellaneous tidbits that are interesting enough to point out here.
Read about notable bugs and errors in this game.

Debug Menu

Push B, receive debug mode

Use one of the below GameShark codes and press L + Z at the title screen.

Version Gameshark code Version Gameshark code Version Gameshark code
USA D10F6914 2020
8018EDEF 0002
Japan v1.0 D10F73C4 2020
8018C80F 0002
Japan v1.1 D10F61B4 2020
8018B5BF 0002
Europe v1.0 D10F6A54 2020
8018EF2F 0002
Europe v1.1 D10F6974 2020
8018EE4F 0002

In the debug build of the game that was leaked as part of the July 2020 gigaleak, the debug menu is enabled by default and can be activated by pressing R on the title screen.

  • DEBUG_MODE activates key combinations during play:
    • L+R+A+B: Reset game.
    • R+B: Toggle CPU meter.
    • D-Pad Right: Advance player 1 and everyone behind them to final lap.
    • D-Pad Down: Advance everyone to final lap.
    • D-Pad Up: Advance player 1 and one other to final lap.
    • Z or C-Down can be pressed during the race start sequence to start early. This will glitch the game if done too soon.
  • MAP_NUMBER selects the track. Available are the 16 single-player tracks plus the four tracks from battle mode.
Level Select Course
0 M CIRCUIT Mario Raceway
1 MOUNTAIN Choco Mountain
2 CASTLE Bowser's Castle
3 GHOST Banshee Boardwalk
4 MAZE Yoshi Valley
5 SNOW Frappe Snowland
6 BEACH Koopa Troopa Beach
7 P CIRCUIT Royal Raceway
8 L CIRCUIT Luigi Raceway
9 FARM Moo Moo Farm
10 HIGHWAY Toad's Turnpike
11 DESERT Kalimari Desert
12 SHERBET Sherbet Land
13 RAINBOW Rainbow Road
14 STADIUM Wario Stadium
15 BLOCK Block Fort
16 SKYSCRAPER Skyscraper
17 DECK Double Deck
18 JUNGLE D.K.'s Jungle Parkway
19 DOUGHNUT Big Donut
  • SCREEN_MODE selects the screen mode, and thus the players that participate. Available values are 1 player, 2 player up/down, 2 player left/right, 3 players and 4 players. The two player left-right view is never used in the final game, and is somewhat glitchy.
  • PLAYER selects the first player. If you have more than one player, the game assumes Luigi for player 2, Yoshi for player 3 and Toad for player 4.
  • SOUND MODE simply selects the sound mode (mono, headphones, stereo).
  • PUSH B TO GET ALL GOLDCUP is fairly self-descriptive. This option only appears when the cursor is moved all the way to the bottom.

Note that if you try to start a one-player game on a battle map, the game will automatically add a second player.

XXX Sound Mode

GameShark code switches the sound mode to "XXX" on the debug menu and blank in the Options menu. Its purpose is not known.

Version Gameshark code Version Gameshark code Version Gameshark code
USA 8018EDF2 0002 Japan V1.0 8018C812 0002 Japan V1.1 8018B5C2 0002
Europe V1.0 8018EF33 0002 Europe V1.1 8018EE52 0002
Debug Menu Options Menu

CPU and Graphic Display

Debug Displays. Go north, young man!

When Debug Mode is enabled, the following GameShark codes can be used:

  • Debug Mode Enabled.
Version Gameshark code Version Gameshark code Version Gameshark code
USA 800DC521 0001 Japan V1.0 800DCDF1 0001 Japan V1.1 800DBD31 0001
Europe V1.0 800DC5B1 0001 Europe V1.1 800DC541 0001
  • Shows which master display list is currently in use.
Version Gameshark code Version Gameshark code Version Gameshark code
USA 800DC515 0001 Japan V1.0 800DCDE5 0001 Japan V1.1 800DBD25 0001
Europe V1.0 800DC5A5 0001 Europe V1.1 800DC535 0001
  • Shows bars at the bottom measuring CPU usage of the video (red), audio (yellow), and game logic (orange) threads.
Version Gameshark code Version Gameshark code Version Gameshark code
USA 800DC663 0001 Japan V1.0 800DCF31 0001 Japan V1.1 800DBE71 0001
Europe V1.0 800DC6F1 0001 Europe V1.1 800DC683 0001

While the CPU meter is enabled, pressing L+R toggles a flag at 800DC664, but this flag doesn't seem to be accessed anywhere else. (This is done at 80004098.)

Frame-by-Frame advance

The following code activates a frame-by-frame advance mode if Debug Mode is enabled:

Version Gameshark code
USA 81001760 3C03
81001762 800E
81001794 3C0B
81001796 800E
810017C4 240C
810017C6 0000

When the game is paused, player 1 can hold A and B and press L to advance a frame. This unfortunately conflicts with using A to unpause the game; you must hold A before pausing. Alternatively, adding the code 81001784 2400 makes it require only holding B and pressing L while paused.

Crash Debug Screen

Gaze upon what you have wrought!

If the game crashes, it will draw a small white square with red border near the upper-left corner of the screen. At that point, pressing L, Up, Left, Down, Right, R, L, B, A will display some information about the cause of the crash.

The first line displays three numbers - first is unknown (usually 5, probably thread ID), second is the address of the faulty instruction, third is the exception code (as defined in the R4300i manual). The second line displays the $RA register. The third line is the opcode of the faulty instruction.

The GameShark code 810DC6FE FFFF will shorten this code to simply "press L".

This display cannot be seen on most emulators, as most plugins don't seem to continue redrawing the screen after the game crashes.

Unused Code

To do:
Supposedly there's some coding that allows A.I. racers to drift.

Track Scaling Function

Koopa Troopa Beach at 5× scale.

Next to the mirror mode flag in memory (address 800DC608 in USA version) is a floating-point value that appears to always be set to 1.0. When a track is loaded, its height is scaled by this amount. (All polygon vertices are multiplied by this value.) Use one of the below GameShark codes to activate this feature (default value 3F80):

Version Gameshark code Version Gameshark code Version Gameshark code
USA 810DC608 ???? Japan V1.0 810DCED8 ???? Japan V1.1 810DBE18 ????
Europe V1.0 810DC698 ???? Europe V1.1 810DC628 ????

This value only affects track polygons, and hit detection is not altered to compensate for the steeper hills and/or shorter vertical walls, so changing it often produces unplayable tracks and strange effects such as floating trees, low areas being considered underwater/out of bounds, and walls that are no longer solid.

No similar scaling functions exist for the X and Z axes. This may have been intended as a debugging function to test slopes, or a bonus mode that would scale tracks to various sizes.

Vertical Splitscreen


This unused vertical splitscreen display for 2-player mode is only accessible via the Debug Menu or by using the following GameShark code below that forces the horizontal splitscreen mode to the vertical splitscreen mode when selecting a 2-player game:

Version Gameshark code Version Gameshark code Version Gameshark code
USA D00DC533 0001
800DC533 0002
Japan 1.0 D00DCE03 0001
800DCE03 0002
Japan 1.1 D00DBD43 0001
800DBD43 0002
Europe 1.0 D00DC5C3 0001
800DC5C3 0002
Europe 1.1 D00DC553 0001
800DC553 0002
iQue D00D8ED3 0001
800D8ED3 0002

It's pretty clear why this isn't accessible normally: it's unfinished. The lap counter still displays in Battle Mode, the map goes over the second player's lap counter, and the Vs and Es only appear when you're close to the camera.

This feature can be seen in some very early footage of the game, from when it was known as "Super Mario Kart R".

Lightning in Battle Mode

When used in Battle Mode, the Lightning Bolt makes all other players lose one balloon; however, it isn't normally possible to obtain this item, likely because it would have made battles horribly unbalanced. Code that specifically handles the Lightning Bolt's effects in Battle Mode can be found around 8008E0FC in RAM.

Bomb Warning

A bomb was detected!

An unused multiplayer feature that warns players when they approach the moving bombs on the track. This can be seen in an early screenshot but was disabled in the final game. It can be re-enabled by using the GameShark codes:

Version Gameshark code
USA D10F6914 0002
800DC53B 0001

Start up a 3 or 4 player versus race then once in game, press C-Left once and drive near a bomb and then press C-Right until you see the bomb icon.

(Source: superluigikart)

Feather Jump State

The player-state code contains a flag indicating a feather jump state is active. By setting the state at 0x0F699E (NTSC-U) to 0x10 it triggers an immediate feather jump on the player. The feather item from Super Mario Kart wasn't included in the final game, though it can be seen in certain prerelease material.

(Source: tasvideos.org)

Code from the 2020 Nintendo leaks labels this flag as USE_WING, which shows that this state would have been activated via use of an item, in this case the scrapped feather.

Storm Hit State

Another player-state code has a flag used to trigger a large spinning jump, which can be activated by setting the state at 0x0F699D (NTSC-U) to 0x02. When active, the character gets flung into the air in a similar fashion to the feather jump, but with much more height and less forward momentum. The character plays a negative voice line (the same as for a banana spin out) and upon landing on ground, it removes all momentum. By observation and labelling, this was meant to be a negative player-state.

Code from the 2020 Nintendo leaks labels this flag as HIT_STORM, which suggests that this state would have been used for colliding with the scrapped tornado and typhoon hazards presumably found in Kalimari Desert and other courses respectively, for which commented out code has been found.

CPU Shell Code

The game contains six tables that determine the item probabilities when hitting an item box. The first two tables are both for GP mode and determine item probabilities for a human player and a CPU player, respectively. According to the latter, CPU players have a certain chance to get Green Shells, both the single and the triple variety, but the CPU never uses shells at all, so this isn't actually ever seen in gameplay.

Unused Graphics

Menu Graphics

Among the menu graphics are two unused options, untranslated from Japanese:

Graphic Translation
Mk64-graphic-withoutitem.png Without Item
Mk64-graphic-withitem.png With Item

Bomb Warning Icon

MK64 Bomb Kart Icon.png

The bomb warning icon that shows when you're close to the moving bombs.

Early Traffic Light

MK64 traffic light.png

An early version of the traffic light.

Early Item Boxes

EarlyItemBoxCyan.png EarlyItemBoxRed.png EarlyItemBoxYellow.png

The textures for the early item boxes. It's a leftover from Super Mario Kart R.

(Source: deadhamster)

Player HUD

MK64 1P.png MK64 2P.png MK64 3P.png MK64 4P.png

4 Player HUDs for the multiplayer modes.

(Source: Origami64)

Monty Mole


While these two sprites are technically used while Monty is preparing to spring out of its hole, the player never sees the lower body while Monty is standing still.

(Source: Ragey)

Position Numbers

MK64Position0.png MK64Position9.png
Even though the game has 8 racers, there are unused 0th and 9th position icons for the lap progression HUD.

"GO" Sign

Texture In-game
MK64GoTexture.png MK64GoSign.png

The bottom part of this texture cannot be seen, as the sign is too small to have the full texture. The full sign can be seen in some prerelease material.

Stylized Leaf

MK64.Rgba leaf.png

Although present in the game files, this leaf texture isn't used. It was probably meant to fall out of the striped trees, based on its appearance.

The code below replaces the realistic leaves with this unused one, when hitting a tree.

Version Gameshark code
810516AA 91D8
810516AE 0010

Shy Boo Animation

MK64 Shy Boo.gif

Together with the 360 degree render sprites comes this animation of a Boo, hiding its face.

Boos can bee seen floating around in the course "Banshee Boardwalk" yet this specific animation is never used.

Misplaced Item Boxes

They're on Mario's screen

Hidden underneath the Big Donut arena are two misplaced item boxes. These item boxes can be seen by getting the camera behind the green bars and waiting, eventually the two item boxes will float up into view. The stored Z-value of these two boxes is about 100 units less than all the other 22 boxes, causing them to appear below the course.

Since the red, blue and yellow sections of the map each contain six Item Boxes whereas the green section contains four, it's clear that these two Item Boxes were intended to appear in the map.

A Gameshark code to restore the two boxes to the course surface:

Version Gameshark code
D00DC5A1 0013
81160304 4375
D00DC5A1 0013
81160374 4360
(Source: HootHoot and Triclon[1])

Unused Early Banshee Boardwalk Ceiling

Ceiling from atop

The course "Banshee Boardwalk" contains an unused piece of geometry, which only can be seen in the credits scene by manipulating the ingame camera.

It can not be seen in a regular race, since the game never loads it in via the culling system, however the credits sequence is set up to render every part of the level regardless of its culling state.

The layout and an unsealed part of the ceiling suggests that is has been used in an earlier rendition of this course.

Ceiling from inside the house Another view of the ceiling

Hidden Music Loop

The "Winning Results" track was likely intended to alternate between two ~100 second sections of music, each composed of a 50-second segment repeated twice. Due to a binary counter bug, the first segment repeats, incidentally, 64 times (for 54 minutes and 39 seconds!) before the second segment ever has a chance to play—at which point it repeats twice and correctly returns to the first segment.

Debugging Text

Most of this text probably would have been spat out to a debug console on development systems, but goes unused in the final game.

Channel %d,Phase %d
Copy %d
pitch %x: delaybytes %d : olddelay %d
cont %x: delaybytes %d : olddelay %d
Warning:Kill Note  %x
Kill Voice %d (ID %d) %d
Warning: Running Sequence's data disappear!
Audio:Memory:Heap OverFlow : Not Allocate %d!
Audio:Memory:DataHeap Not Allocate
StayHeap Not Allocate %d
AutoHeap Not Allocate %d
Status ID0 : %d  ID1 : %d
id 0 is Stopping
id 0 is Stop
id 1 is Stopping
id 1 is Stop
Check ID0 (seq ID %d) Useing ...
Check ID1 (seq ID %d) Useing ...
No Free Seq area.
CH %d: ID %d
WARNING: Before Area Overlaid After.
WARNING: After Area Overlaid Before.
MEMORY:SzHeapAlloc ERROR: sza->side %d
Audio:MEMORY:SzHeap Overflow error. (%d bytes)
Auto Heap Unhit for ID %d
Heap Reconstruct Start %x
HeapTop %x
SynoutRate %d / %d
WaveCacheLen: %d
SpecChange Finished
Fbank Seq %x
Already Load Type %d,ID %d
Warning:Emem Over,not alloc %d
Write %d
Romcopy %x -> %x ,size %x
LOAD Rom :%x -> Ram :%x  Len:%x
BASE %x %x
LOAD %x %x %x
already flags %d
Check %d  bank %d
Cache Check
Seq %d Loading Start
Heap Overflow Error
Ok,one bank slow load Start
Sorry,too many %d bank is none.fast load Start
Seq %d:Default Load Id is %d
Seq Loading Start
Error:Before Sequence-SlowDma remain.
Cancel Seq Start.
Clear Workarea %x -%x size %x
AudioHeap is %x
Heap reset.Synth Change %x
Heap %x %x %x
Main Heap Initialize. 
Init Completed. ------------
Syndrv    :[%6d]
Seqdrv    :[%6d]
audiodata :[%6d]
Audio: setvol: volume minus %f
Audio: setvol: volume overflow %f
Audio: setpitch: pitch minus %f
Audio: voiceman: No bank error %d
Audio: voiceman: progNo. overflow %d,%d
Audio: voiceman: progNo. undefined %d,%d
Audio: voiceman: No bank error %d
Audio: voiceman: Percussion Overflow %d,%d
Audio: voiceman: Percussion table pointer (bank %d) is irregular.
Audio: voiceman: Percpointer NULL %d,%d
--4 %x
Stoped Voice
Error:Wait Track disappear
Slow Release Batting
Audio:Wavemem: Bad voiceno (%d)
Audio: C-Alloc : Dealloc voice is NULL
Error:Dim voice-Alloc %d
Error:Same List Add
Already Cut
Audio: C-Alloc : lowerPrio is NULL
Sub Limited Warning:
Drop Voice Warning: Drop Voice
Env-Clear 0
Audio:Envp: overflow  %f
Audio:Track:Warning: No Free Notetrack
Audio:Track: Warning :SUBTRACK had been stolen by other Group.
Error:Same List Add
Macro Level Over Error!
WARNING: NPRG: cannot change %d
Audio: Note:Velocity Error %d
Error: Subtrack no prg.
ERR %x
 Error: Your assignchannel is stolen.
Audio:Track :Call Macro Level Over Error!
Audio:Track :Loops Macro Level Over Error!
Audio:Track: CTBLCALL Macro Level Over Error!
Err :Sub %x ,address %x:Undefined SubTrack Function %x
Disappear Sequence or Bank %d
Group:Undefine upper C0h command (%x)
Group:Undefined Command
Error : Queue is not empty ( %x )
specchg error
***** CAM MAX %d *****
entryout !!! %d
*** Pause On ***
*** Pause Off ***
CALLED!! Na_ChangeSoundMode player %d
CALLED!! Na_ChangeSoundMode spec   %d
Interfaced Spec Change player %d
Interfaced Spec Change spec   %d
************** Seq Fadeout ***************
DAC:Lost 1 Frame.
DMA: Request queue over.( %d )
DMA [ %d lines] TIMEOUT
Warning: WaveDmaQ contains %d msgs.
Audio:now-max tasklen is %d / %d
Audio:Warning:ABI Tasklist length over (%d)
AudioSend: %d -> %d (%d)
Undefined Port Command %d
(num %d) (rank %d) (e_rank %d)
(num %d  org_bipas %d  bipas %d)
(%d) rap %3d
rate_count_F %10.2f
rap_count_F %10.2f
area %5d
enemy %d (%d --> %d)
enemy voice set (%d  slip_flag %x  weapon %x)
(%d , name %d)
===== ENEMY DRIVE SUB (%d) =====
(1)enemy stick angle over!! (%d)
(2)enemy stick angle over!! (%d)
%d AREA ERR!!!
get_oga_area_sub_BP() ...
(b_num = %d)
(%d, %d, %d) 
<%d> (%d, %d, %d) [%d] lng %f
(area %d, y %7.2f)
(num %d: area %d ) (%d,%d,%d)
(num %d: area %d ==>%d) (group %d) (%d,%d,%d)
BOM(%d) (%7.2f, %7.2f, %7.2f)
BOM HIT !!!!! (%d)
RESULT BOM area(%d)
(category %d)
center_EX ptr             = %x %x (%x)
center_BP[%d] ptr         = %x %x (%x)
side_point_L_BP[%d] ptr   = %x %x (%x)
side_point_R_BP[%d] ptr   = %x %x (%x)
curve_BP[%d] ptr          = %x %x (%x)
angle_BP[%d] ptr          = %x %x (%x)
short_cut_data_BP[%d] ptr = %x %x (%x)
ROM center (BP%d) line adr. = %x (%x)
center (BP%d) line adr. = %x (%x)
BP center_point_number : %d
(%d -> %d)
extern POINT rom_center_KT
area read from ROM (%d)
(num %d, act %d)
(num %d,  act %d,  old_act_num %d)
SL: center_point_number : %d
SHIP: center_point_number : %d
(num %d, permit %d, %d)
ERR !!! (ncx = %f)
ERR !!! (ncz = %f)
ERR !!! (ecx = %f)
ERR !!! (ecz = %f)
GOAL! <<rank 1>> camera %d  rank %d
GOAL! <<rank 2,3,4>> camera %d  rank %d
GOAL! <<rank 5,6,7,8>> camera %d  rank %d
<<< ITEM OBJ NUMBER ERR !! >>> item %d  obj_num %d
<<< BANANA SET >>> obj_num %d   zure %f
BANANA HOLD (num %d  time %d   hold_time %d)
<<< BANANA NAGE SET >>> obj_num %d
G_SHELL HOLD (num %d  time %d   hold_time %d)
<<< G_SHELL SET >>> obj_num %d
<<< G_SHELL SET >>> object_count %d
R_SHELL HOLD (num %d  time %d   hold_time %d  obj_num %d)
<<< R_SHELL SET >>> obj_num %d
<<< R_SHELL SET >>> object_count %d
R_SHELL SHOOT (num %d  time %d   hold_time %d  obj_num %d)
S_BANANA HOLD (num %d  time %d   hold_time %d)
<<< SUPER_BANANA SET >>> obj_num %d
<<< SUPER_BANANA SET >>> object_count %d
S_BANANA RELEASE (num %d  time %d )
<<< FAKE IBOX SET >>> obj_num %d
FBOX HOLD (num %d  time %d   hold_time %d)
START (%d)
END (%d)
map_number = %d - > 20
OGA Move
sound mode
push b to get all goldcup
effectcount < 0 !!!!!!(kawano)
MAX effectcount(760) over!!!!(kawano)

Version Differences

To do:
Check for any differences between the European 1.0 and 1.1 versions.
Mk64 luigiblink.gif
Audio Differences
LOTS of audio was changed from the Japanese version.


To do:
It'd help if someone could rip the graphics that aren't here yet.

The billboards in the Japanese version are all clever parodies of real-life companies. They were (mostly) changed during localization because this would have gotten Nintendo of America in hot water.

The iQue version's billboards are based on the international designs, with the exception of the "Shot!" billboard, which was replaced with the iQue logo.

Japan International
Tastes good like a cigarette should A bit generic

Marioro (a pun on Marlboro) was changed to Mario Star.

Japan International
Warning: Highly explosive A nice Italian restaurant

Luigip (a pun on Agip) was changed to Luigi's, itself appearing to be a parody of the now-defunct Bradlees chain of discount stores.

Japan International
Warning: Highly eggsplosive. Sorry What about him?

Yoshi1 (a pun on Mobil1) was changed to Yoshi, with a pawprint similar to the one added to English versions of Super Mario World.

Japan International
Color change... ...and done

The Koopa Air sign is colored yellow and blue in the Japanese version (a pun on Goodyear). It's white and violet in international versions.

Japan International
Color change... ...and done. Have I already said that?

The Nintendo logo billboard is blue in the Japanese version and red internationally, reflecting its most common depictions in each region.

Japan International
Orange you glad you avoided a trademark infringement lawsuit? Yeah yeah, I know. Blue ball

The orange 64 ball in Luigi's Raceway (a parody of the 76 gas station) was changed to blue and the 64 was given a different design.

You can't destroy me!

Since none of the track preview icons were updated, the orange ball can however still be seen on the track preview even in international versions. In Mario Kart 7's version of the track, the ball was changed to yellow, but is otherwise based on its Japanese design.


The Luigip and Yoshi1 billboards can still be seen in the icon for Mario Raceway and the Yoshi1 billboard in Royal Raceway's icon.

Luigi's Raceway

The Japanese version has collision on the grass above the tunnel on Luigi's Raceway, which can be reached by bouncing off another racer and flying over the wall. The collision was removed in international versions so trying the same there just leads to you falling into the tunnel (or out of bounds, if unlucky).

Moo Moo Farm

The course "Moo Moo Farm" is called "Moh Moh Farm" in Japan. This is because mooing in Japanese is pronounced with a long "O" sound, which sounds like "moh moh".

Japan North America
Moh no! Moo moo moo, moo moo moo moo.
(Source: The Mushroom Kingdom)

On NTSC-J 1.0, moles can be hit while using a boo item, causing them to be launched away. All other versions have no mole collision while in this state.

(Source: abney317)

Toad's Turnpike

On NTSC-J 1.0, when getting stuck out of bounds, Lakitu places you back based on where you last touched the ground. In all other versions, Lakitu places you back on the track based on where you got stuck out of bounds.

Trophy Ceremony

The trophy ceremony in the Japanese version displays the text "You are in (position)". The international versions change this to "You placed (position)". The punctuation was also removed, and the position itself is made purple.

Japan International
YOU ARE SUPER RACER! Punctuation is for squares
(Source: The Mushroom Kingdom)

Course Ghost

The course ghost text is different depending on the region.

Japan International
MK64GhostJAP.png MK64GhostINT.png

Time Trial Replay Bug

In time trials on NTSC-J 1.0 when the race ends, if the autopilot driver hits something that would normally make it so you can't replay or save your ghost, then it disables the replay option.

(Source: abney317)

Course Names

Courses have different names depending on the region.

Japanese International
Luigi Circuit Luigi Raceway
Moh Moh Farm Moo Moo Farm
Noko Noko Beach Koopa Troopa Beach
Kara Kara Desert Kalamari Desert
Kinopio Highway Toad's Turnpike
Mario Circuit Mario Raceway
Peach Circuit Royal Raceway
Koopa Castle Bowser's Castle
Donkey Jungle Park DK's Jungle Parkway
Hyūdoro Lake Banshee Boardwalk
Big Donuts Big Donut
Block Toride Block Fort
Matenrou Skyscraper

Credits Differences

In the Japanese version, completing the Special Cup on Extra Mode will display a Japanese-language version of the credits. This was removed from the English version for obvious reasons.

Additionally, the Japanese version has six voice actors, while the English version only has three. Charles Martinet (the voice of Mario) is the only one to be credited in both versions. Additionally, his name is misspelled as "Charles Martinee" in the Japanese version. Thomas Spindler (the voice of Wario) and John Hulaton (the announcer) also have their names misspelled.

Japan International
The Japanese don't believe in one word having two "T"s. Who needs those guys?
(Source: The Mushroom Kingdom)

Wii Virtual Console Differences

Although the Wii Virtual Console releases use the exact same ROMs as the cartridges, some minor visual differences exist due to emulation errors and in-memory patches. These changes are not present in the Wii U Virtual Console release.

Nintendo 64 Wii Virtual Console
MK64-trainn64.png MK64-trainwii.png
  • The color scheme for the train in Kalimari Desert was changed.
Nintendo 64 Wii Virtual Console
MK64-waterfalln64.png MK64-waterfallwii.png
  • The waterfall on Koopa Troopa Beach is a brighter blue instead of grey.
  • The characters/numbers of the timer are spaced out by 1 pixel.
  • The flash from using lightning was toned down to avoid risk of seizures.
To do:
  • Figure out what these changes in the Wii U version do and document them.

iQue Player Differences

The game was released in China for the iQue Player in December 2003. Like most games for the system, it is based on the international version.

International iQue Player
Mario Kart 64.png MK64iQue-title.png
  • The game's title was changed from Mario Kart 64 to just Mario Kart.
International iQue Player
MK64-cup.png MK64iQue-cup.png
  • The Special Cup was renamed to "iQue Cup".
International iQue Player
MK64BallJP.png MK64iQue-64ball.png
  • The 64 ball now has a square instead of "64" on it.
International iQue Player
Shot! MK64.png IQue MK64 iQue.png
  • The "Shot!" billboard was replaced with an iQue billboard.
International iQue Player
MK64MarioStar.png Mario Star MK64 iQue.png
International iQue Player
MK64Luigis.png Luigi MK64 iQue.png
International iQue Player
MK64Yoshi.png Yoshi MK64 iQue.png
International iQue Player
MK64KoopaAirINT.png MK64 Sponsor Koopa Air iQue.png
  • The billboards have been translated.
  • Most references to the Nintendo 64 were replaced with ones to the iQue Player. The only exception being the train in Kalamari Desert which still has the number 64 on the front.
  • The Controller Pak manager is inaccessible since the iQue Player handles Controller Paks differently to the Nintendo 64, as each game that requires a Controller Pak has its own .pak file on the iQue Player's NAND.
  • An audio glitch occurs when entering a race, going back to the main menu, going to the data screen, and then backing out to the main menu again that causes the menu music to play in a slow and low pitched tone.
  • When improving your best lap in time trials, instead of the usual flashing lap time, the time is not visible during the race at all.