This page documents information about Mario Kart DS
. Many of the tricks demonstrated here are near impossible in real time and documented for the purposes of creating Tool-assisted Speedruns.
Name | Explanation |
---|---|
Boost | The total number of frames left from all boost sources. |
MT | The number of frames left for your MT boost, followed by the MT charge timer. The charge timer shows when you can press left or right to charge a MT while drifting. When it shows 1 or lower you can charge your MT. |
Speed | Your kart's speedometer. This is usually the primary factor controlling how fast you move, but is not the only one. Hence it is not your "real" speed. |
real | The 2D difference between your karts X and Z axis location this frame and the previous frame. |
Y Sp | Vertical speed. You move up by this amount each frame. (other things can also affect upward movement) |
Your kart's current maximum speed. If this is more than Speed , you can accelerate. If it is less, then Speed immediately decreases to match Max Sp .
| |
Turn loss | If you are on the ground and not drifting, your kart's forward speed is decreased by an amount roughly proportional to the absolute value of Turn loss . It quickly goes up when you turn left on the ground and quickly goes down when you turn right on the ground. If you are not pressing left or right, it decreases by ~10%.
|
wall | Only appears on-screen, next to turn loss, if you are being slowed down by touching a wall. Your current max speed will be multiplied by this amount before being compared to current speed. This will be lower if you are moving more directly towards the wall. |
air | Only appears on-screen, next to turn loss, if you are being slowed down by being in the air. This will only apply if you are in the air without hopping, for at least 5 frames. Your current speed will be multiplied by this amount before being used to calculate movement. Goes up when fast falling and goes down if your movement direction does not match the direction your kart is facing. |
Ground/Air | Tells if you are on the ground or not. The number in parenthesis is the number of frames you have been in the air continuously. |
X, Z, Y | Your kart's "primary" location in 3D space. |
Delta | The difference between your kart's current location and its location on the previous frame. |
Collision | How much your kart was pushed by collision. (by floors, walls, objects) |
Hitbox | The difference between your kart's "primary" location and the center of your kart's hitbox. This can change depending on your kart's orientation if you are not on flat ground. The hitbox rotates around the primary location, at a distance of just over one hitbox radius. |
Angle | This is a 16-bit integer (-32,768 to 32,767) representing the direction your kart is facing. Also called "facing angle". |
Drift angle | Shown to the right of Angle , after the plus sign. (Angle + Drift angle = total) This value is added to Angle to determine the direction your kart is trying to go. It goes up/down while drifting on the ground and gradually returns to 0 when on the ground and not drifting.
|
Delta | The difference between your kart's current Angle or Drift angle and the angles from the previous frame, displayed in the same format.
|
Movement | A 3D vector representing the direction of your kart's speed in 3D space. Displayed as X, Z, Y. Multiplied by Speed (after speed is modified by turn loss, air speed, etc) to get the X, Z, and Y distances to move by. (There are other things affecting 3D movement too.) The numbers in parenthesis are the 2D (X/Z) magnitude of the movement vector and its equivalent 16-bit angle.
|
Target | A 3D vector essentially representing the direction your kart is trying to go. Movement will change by some percentage towards Target each frame (while touching a collision surface like floor or wall). The percentage depends on Surface grip .
|
Pitch | Your kart's angle up/down from fast falling or slow falling. |
Surface grip | The percentage by which Movement moves toward Target each frame. This is 3500 (or ~0.85) on regular road which makes Movement closely track Target . It is lower on off-road or slippery roads, meaning it takes longer for changes in Target (and, therefore, changes in Angle ) to be reflected in Movement .
|
sp | Surface speed. Your max speed is multiplied by this value. Changes depending on if you are on regular road of off-road. |
normal | Surface normal. This really can be ignored since other values should show everything you need. Or just use it to know when you've moved onto a slope. This is the 3D normal vector of the floor you have most recently touched. Look up "normal vector" if you do not know what that means. |
steep | The grade (steepness) of the floor you have most recently touched. 0 means flat ground, 1 means a 45 degree angle slope. |
bounce | Only shows up if it is not zero. There are 3 types of bounces. Each is a 3D vector that gets added to your kart's movement for the current frame. You can get bounces from touching walls in certain situations, or touching enemies or pinball obstacles. |
f0 | Something related to your kart's orientation. Can be useful for wall-assisted super bounces, but exactly what it does is unknown. |
Distance to ghost | The 2D difference between your karts X and Z axis location and the location of the ghost. |
Distance to nearest object | The 2D difference between your karts X and Z axis location and the "nearest" "object". It will also tell you the shape of the hitbox, if it is known. For boxy and cylindrical hitboxes, the X/Z/Y distances or Horizontal/Vertical distances will be shown underneath. Note that not all object types are supported and some are only partially supported. |
Checkpoint number | The most recent checkpoint you've touched. Followed in parenthesis by the key checkpoint ID of the most recently triggered key checkpoint. Checkpoint number determins where you will respawn if you go out of bounds. |
Movement
vector. A green line represents the surface normal vector of the floor you're on. A red line represents the surface normal vector of a surface you are touching but not pushed by.
Max Sp
, keeping it above current speed even after your boost wears out. Fast falling also increases your air
speed multiplier, if you did not jump with the R button. (Air speed multiplier does not apply during jumps.)
Turn loss
. However, there is one frame before you start moving when pressing left/right will change Turn loss
without actually turning your kart. By pressing left/right on this frame, and then the other direction the next frame, you can turn a bit without losing any speed.
air
loss and depends on the difference between Target
and Movement
. The reason having drift angle slows you down is that Target
ignores drift angle while in the air.
Turning loss
does not take effect when drifting, but is changed by pressing left/right. Press left/right just before exiting a drift to get it as low as possible. (When drifting tight, pressing 2 frames neutral, 2 frames outside, 1 frame inside to charge, 1 frame outside+release gets it very low. When drifting wide, 2 neutral, 1 inside to charge, 1 inside+release gets it very low.)
Movement
vector's X and Z components change independently, a slippery surface can result in a decrease of the movement vector's magnitude. For example, say you are moving along the X axis and have zero movement on the Z axis and then quickly turn 90 degrees. The X component of the movement vector will move towards 0 and the Z component will move towards 1 (aka 4096) at the same rate. If they both get half way, you'll be moving at a 45 degree angle but significantly slower than you would normally since 0.5 is less than the sine of 45 degrees (or, 2 times square root of 2). As a result, it is generally best to move as straight as possible through the mud in Luigi's Mansion or SNES Choco Island 2.
Target
movement vector and the wall. Moving near parallel to the wall will minimize speed loss, but increases the distance you must move in the one frame after hitting the wall. (This is because your hitbox is a sphere; if you are moving parallel to the wall and touching it you are necessarily at least 1 hitbox radius away from being fully past the end.) Boxes, pipes, and mission gates can be clipped with no speed loss.
Movment
vector's Y component is immediately set to match the Target
vector's Y component. While you are in the air, the target vector depends on kart orientation where slow falling increases the Y component. It also lags behind Pitch
, so if you slow fall and then bounce, then immediately touch a wall, you will get the increased Y component from slowfalling. This results in your Speed
moving you upward as well as forward. Combine this with a boost and a super bounce to go incredibly high. This is how the Waluigi Pinball shortcut is done. Additionally, hopping increases Target
vector's Y component with a maximum being two frames after the hop. So stopping touching the wall 2 frames after the hop will maximize height.
Movement
vector are also updated when touching a wall. They change the same as they would on the ground, and so this change depends on surface grip even when you are in the air.