This is an old revision of this page, as edited by
Weatherton at
6/14/2015 1:46 PM
The purpose of this page is to document aspects of Mario Kart 64 that are important to Tool Assisted Speedrunning.
For Lua scripts that partially automate optimal maneuvers and provide helpful information while TASing Mario Kart 64 see
this GitHub repository
Methods of Gaining Speed
Race Start Boost
As Lakitu counts down at the start of the race, holding "A" revs your engine. The largest boost is obtained by holding "A" for the entire pre-race sequence except for a single frame. Releasing "A" for additional frames (inclusive of this frame) may still receive a boost but it will be smaller. On some levels a smaller boost may be faster (e.g. to receive an optimal jump off another driver).
The frame where A must be released to receive the boost:
[To Do: Enter picture of correct frame]
Shrooming
The start boost is actually the same effect as using a mushroom. When using a mushroom, it is optimal to slide...
Lakitu Rev Start
After going out of bounds, when Lakitu is placing you on the ground, the fastest way to accelerate is to hold "A" at the first possible frame that will not spin you out (i.e. any earlier and your driver spins out). This frame depends on whether you fell into ice water or not, because the ice shattering animation takes additional time.
Triple-Tap "A"
In many cases you may lose speed as consequence of a maneuver. The fastest way to regain speed (without the use of an item). The fastest way to regain speed is to triple-tap "A", which is optimally performed by alternating holding and releasing "A" each frame (i.e. A_A_AAAA...). This technique is effective from a complete stop as well as from a partial loss of speed.
Mini Turbo (MT)
MT Phase | Frames | ΣFrames | Phase Description |
---|
1. Inward jump | 6 | 6 | Jump and turn (on the same frame) in the direction you wish to MT. 6 frames assumes flat ground. |
2. First outward slide | 9 | 15 | Once you land, immediately turn the opposite direction and hold the slide to charge. |
3. First inward toggle | 1 | 16 | Toggle inward to change smoke from yellow to orange |
4. Second outward slide | 4 | 20 | Immediately toggle back outward and hold the slide to charge. |
5. Second inward toggle | 1 | 21 | Toggle inward to change smoke from orange to red. Release "R" immediately and, if done frame-perfect, the red smoke will not be visible |
6. Glide turn | 8-12 | 29-33 | Once you release the slide an MT boost is active for 14 frames. During this boost you can turn without losing speed. This MT glide allows you to angle yourself correctly coming out of the MT |
7. Untilt | 1-2 | 30-35 | Once angled correctly, you must toggle the opposite direction for at least one frame to align your kart to the track. If you do not do this the kart drives at an angle or is "tilted" to its direction of travel and loses speed. |
Note that optimal MT spacing is situation dependent. However, assuming an infinitely long, flat surface, optimal spacing would be XX (To do: test exact value) frames after the MT boost starts.
MT Phase | X | Y | R | A | Comment |
---|
1. Inward jump | +65 | 000 | R | A}} | |
---|
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | -35 | 000 | R | A}} | For unknown reasons, values as low as -35 are permitted on this frame. |
1. Inward jump | +65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
---|
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
3. First inward toggle | +39 | 000 | R | A}} | A toggle of magnitude of at least 39 is almost always required to charge an MT. |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
5. Second inward toggle | +39 | 000 | R | A}} | |
---|
6. Glide turn | -65 | 000 | | A}} | Beginning a glide turn with max turning allows the fastest possible adjustment back to straight |
---|
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
7. Untilt | +63 | 000 | | A}} | |
---|
8. MT Spacing | 000 | 000 | | A}} | |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | |
MT Phase | X | Y | R | A | Comment |
---|
1. Inward jump | +62 | 000 | R | A}} | |
---|
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | -35 | 000 | R | A}} | |
1. Inward jump | +64 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
---|
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
3. First inward toggle | +39 | 000 | R | A}} | |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
5. Second inward toggle | +50 | 000 | R | A}} | |
---|
6. Glide turn | -56 | 000 | | A}} | |
---|
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
7. Untilt | +61 | 000 | | A}} | |
---|
8. MT Spacing | 000 | 000 | | A}} | |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | |
MT Phase | X | Y | R | A | Comment |
---|
1. Inward jump | +65 | 000 | R | A}} | |
---|
1. Inward jump | +65 | 000 | R | A}} | |
1. Inward jump | +65 | 000 | R | A}} | |
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | +20 | 000 | R | A}} | |
1. Inward jump | +65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
---|
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
2. First outward slide | -60 | 000 | R | A}} | |
3. First inward toggle | +39 | 000 | R | A}} | |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
5. Second inward toggle | +40 | 000 | R | A}} | |
---|
6. Glide turn | -55 | 000 | | A}} | |
---|
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
7. Untilt | +65 | 000 | | A}} | |
---|
8. MT Spacing | 000 | 000 | | A}} | |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
MT Phase | X | Y | R | A | Comment |
---|
1. Inward jump | +65 | 000 | R | A}} | |
---|
1. Inward jump | +65 | 000 | R | A}} | |
1. Inward jump | +65 | 000 | R | A}} | |
1. Inward jump | +65 | 000 | R | A}} | |
1. Inward jump | +65 | 000 | R | A}} | |
1. Inward jump | +65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
---|
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
2. First outward slide | -65 | 000 | R | A}} | |
3. First inward toggle | +39 | 000 | R | A}} | |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
---|
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
4. Second outward slide | -50 | 000 | R | A}} | |
5. Second inward toggle | +39 | 000 | R | A}} | |
---|
6. Glide turn | -65 | 000 | | A}} | |
---|
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -65 | 000 | | A}} | |
6. Glide turn | -40 | 000 | | A}} | |
7. Untilt | +65 | 000 | | A}} | |
---|
8. MT Spacing | 000 | 000 | | A}} | |
---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | |
MT in mneumonic formats:
|..| 65, 0,.................r|
|..| 20, 0,.................r|
|..| 20, 0,.................r|
|..| 20, 0,.................r|
|..| -35, 0,.................r|
|..| 65, 0,.................r|
|..| -65, 0,.................r|
|..| -65, 0,.................r|
|..| -60, 0,.................r|
|..| -60, 0,.................r|
|..| -60, 0,.................r|
|..| -60, 0,.................r|
|..| -60, 0,.................r|
|..| -60, 0,.................r|
|..| -60, 0,.................r|
|..| 39, 0,.................r|
|..| -50, 0,.................r|
|..| -50, 0,.................r|
|..| -50, 0,.................r|
|..| -50, 0,.................r|
|..| 39, 0,.................r|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| -65, 0,..................|
|..| 63, 0,..................|
|..| 0, 0,..................|
Reverse
Holding "B" and down while stopped allows you to reverse. One unique aspect of reverse is that acceleration is instantaneous. A reverse speed of 12 (from 0) is achieved in a single frame.
Drafting
If you follow closely behind another character for several seconds, you receive a draft boost. This boost is not very significant, however, and an MT would be more effective in all known cases.
Methods of Turning
Degree of Turn | Method |
---|
Slight | Slight adjustments in direction can be made without losing much speed by nudging the control stick in the desired direction for a few frames and then nudging back in the opposite direction for one or two frames to untilt the kart and realign to the new path. This should only be done in a TAS if necessary but is common in realtime speedrunning to make small adjustments. |
Small | |
Normal | |
Tight | |
Spin | |
Driver Attributes
Classes
Capabilities
Acceleration curve
Top speed
Off road
Turning
Weight
Driver States
Note: States are not (necessarily) mutually exclusive. Many can be active concurrently.
Bit | 0x0F6A4C | 0x0F6A4D | 0x0F6A4E | 0x0F6A4F | 0x0F6A5B |
---|
1000 0000 (128) | Boo active | Face south | Dazed (e.g. penguin hit) | Spin-out (hit object) | Frozen |
0100 0000 (64) | Struck by lightning | "REVERSE" | unknown | Spin-out "WHIRRR!" | unknown |
0010 0000 (32) | Outward sliding | Draft boost | Shrooming | AB Spinning | Defrosting |
0001 0000 (16) | unknown | Acceleration(type unknown) | CPU controlled (After losing GP race) | "BOING!" speed (can slide) | Frosty (blue tint after ice breaks) |
0000 1000 (8) | Un-flattening | Face south | Spin-out (banana) | Off Ground | Stuck (out of bounds) |
0000 0100 (4) | Flattened | unknown | Tumble rotation (momentum) | Zipper boost | Low opacity (Lakitu fade-out) |
0000 0010 (2) | Directional tumble (i.e. green shell) | Slightly off ground | Star power | Jumped (pressed "R") | Lakitu holding |
0000 0001 (1) | Vertical tumble (i.e. fake item box) | Wall tumble | MT boost active | Braking | Water (out of bounds) |
Other States
Driving while underwater is indicated by 0x0E9F74 = 1.
Shrooming
MT Boost
AB Spinning
Off ground
It is important to know when you are off the ground as this generally means that you are losing speed. Being on the ground allows you to maintain your speed while driving on flat ground, charge a MT more quickly and accelerate while going down hill. The acceleration possible while going downhill is significant but can be tricky to initiate as your kart will tend to want to go airborne on steeper slopes. The right combination of pre-jumping and/or tapping "A" can help stick your kart to the down-slope.
Kart Location / Speed
Shortcuts
Wall Jumps
Seam Jumps / Breaks
Tenko Jumps
Collision Jumps
Lakitu Warps
Lakitu Effect
Finish line glitches
Items
Probabilities
Item | Code | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th | 8th |
---|
Banana | 1 | 30% | | | | | | | |
Banana Bunch | 2 | 5% | 5% | | | | | | |
Green Shell | 3 | 30% | 5% | | | | | | |
Triple Green Shell | 4 | 5% | 10% | 10% | | | | | |
Red Shell | 5 | 5% | 15% | 20% | 15% | 10% | | | |
Triple Red Shell | 6 | | 20% | 20% | 20% | 20% | 20% | 20% | 20% |
Spiny Shell | 7 | | | | 5% | 5% | 10% | 10% | 15% |
Thunder Bolt | 8 | | 5% | 5% | 10% | 10% | 15% | 20% | 20% |
Fake Item Box | 9 | 10% | 5% | | | | | | |
Super Star | A | | 5% | 10% | 15% | 15% | 20% | 30% | 30% |
Boo | B | 5% | 5% | | | | | | |
Mushroom | C | 10% | 5% | 5% | 5% | 5% | | | |
Triple Mushrooms | E | | 15% | 20% | 20% | 25% | 25% | 10% | 5% |
Super Mushroom | F | | 5% | 10% | 10% | 10% | 10% | 10% | 10% |
Total | | 100% | 100% | 100% | 100% | 100% | 100% | 100% | 100% |
This table is a summary of the entries that start at memory address 0x1A7A90.
Item | Code | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th | 8th |
---|
Banana | 1 | 60% | 50% | 40% | 35% | 30% | 30% | 30% | 25% |
Banana Bunch | 2 | | | | | | | | |
Green Shell | 3 | 25% | 25% | 25% | 25% | 20% | 20% | 20% | 20% |
Triple Green Shell | 4 | | 5% | 10% | 15% | 20% | 20% | 20% | 20% |
Red Shell | 5 | | | | | | | | |
Triple Red Shell | 6 | | | | | | | | |
Spiny Shell | 7 | | | | | | | | |
Thunder Bolt | 8 | | | | | | | | 1% |
Fake Item Box | 9 | 10% | 10% | 10% | 10% | 5% | 5% | | |
Super Star | A | | | | | 5% | 5% | 10% | 10% |
Boo | B | 5% | 5% | 5% | 5% | | | | |
Mushroom | C | | 5% | 10% | 10% | 20% | 20% | 20% | 24% |
Triple Mushrooms | E | | | | | | | | |
Super Mushroom | F | | | | | | | | |
Total | | 100% | 100% | 100% | 100% | 100% | 100% | 100% | 100% |
This table is a summary of the entries that start at memory address 0x1A7DBO.
Item | Code | 1st | 2nd |
---|
Banana | 1 | 25% | |
Banana Bunch | 2 | 10% | 5% |
Green Shell | 3 | 30% | |
Triple Green Shell | 4 | 5% | 5% |
Red Shell | 5 | 5% | 5% |
Triple Red Shell | 6 | | 15% |
Spiny Shell | 7 | | 5% |
Thunder Bolt | 8 | | 15% |
Fake Item Box | 9 | 10% | |
Super Star | A | | 15% |
Boo | B | 5% | |
Mushroom | C | 10% | |
Triple Mushrooms | E | | 15% |
Super Mushroom | F | | 20% |
Total | | 100% | 100% |
This table is a summary of the entries that start at memory address 0x1A80D0.
Item | Code | 1st | 2nd | 3rd |
---|
Banana | 1 | 35% | 5% | |
Banana Bunch | 2 | 5% | 5% | |
Green Shell | 3 | 30% | | |
Triple Green Shell | 4 | | 10% | |
Red Shell | 5 | 5% | 15% | 10% |
Triple Red Shell | 6 | | 15% | 20% |
Spiny Shell | 7 | | | 10% |
Thunder Bolt | 8 | | 5% | 15% |
Fake Item Box | 9 | 10% | 5% | |
Super Star | A | | 5% | 15% |
Boo | B | 5% | 5% | |
Mushroom | C | 10% | 5% | |
Triple Mushrooms | E | | 20% | 20% |
Super Mushroom | F | | 5% | 10% |
Total | | 100% | 100% | 100% |
This table is a summary of the entries that start at memory address 0x1A8198.
Item | Code | 1st | 2nd | 3rd | 4th |
---|
Banana | 1 | 35% | 5% | | |
Banana Bunch | 2 | 5% | 5% | 5% | |
Green Shell | 3 | 30% | 5% | | |
Triple Green Shell | 4 | | 10% | 5% | |
Red Shell | 5 | 5% | 15% | 10% | |
Triple Red Shell | 6 | | 15% | 15% | 20% |
Spiny Shell | 7 | | | 5% | 10% |
Thunder Bolt | 8 | | | 10% | 15% |
Fake Item Box | 9 | 10% | 5% | 5% | |
Super Star | A | | 5% | 10% | 20% |
Boo | B | 5% | 5% | | |
Mushroom | C | 10% | 5% | 5% | |
Triple Mushrooms | E | | 25% | 25% | 25% |
Super Mushroom | F | | | 5% | 10% |
Total | | 100% | 100% | 100% | 100% |
This table is a summary of the entries that start at memory address 0x1A82C4.
Item | Code | Active Players |
---|
Banana | 1 | 10% |
Banana Bunch | 2 | 5% |
Green Shell | 3 | 5% |
Triple Green Shell | 4 | 20% |
Red Shell | 5 | 20% |
Triple Red Shell | 6 | |
Spiny Shell | 7 | |
Thunder Bolt | 8 | |
Fake Item Box | 9 | 15% |
Super Star | A | 20% |
Boo | B | 5% |
Mushroom | C | |
Triple Mushrooms | E | |
Super Mushroom | F | |
Total | | 100% |
This table is a summary of the entries that start at memory address 0x1A8454.
Manipulation
Lap Progress Trick
Miscellaneous Tricks
Shells
Item cancel jump.
Fake Item Box
Vertical speed multiplier
Bananas
Although probably not useful in a TAS, it's worth documenting that spinning out from a banana results in a set speed. Normally this speed is slower than you could otherwise travel. However, if you have been shrunken by lightning spinning out on a banana peel, the spin out speed is faster than you could otherwise travel.
Lag Reduction
Helpful Game Shark Codes
When testing new strategies, particularly shortcuts, it can be helpful to change some memory addresses to test concepts. The following codes are particularly helpful for this purpose:
"Turn in Mid Air"
800F6A4F 0000
D00F6915 0020
810F69C8 4000
800F699D 0000
"Drive Through Walls"
8002E000 0010
8002E058 0010