Mechanic · movement · kart racing
Boost pad
A marked patch of track that gives a racer a burst of speed when it drives over it.
On this page
A boost pad speeds up whoever drives over it. Diddy Kong Racing gives a racer on a zip pad a boost timer of 45 when none is running, and its ground zippers top a boost back up1.
- When idleDiddy Kong Racing (1997). A zip-pad surface sets a 45-count boost timer when none is running.1
- RefreshDiddy Kong Racing (1997). A ground zipper sets 45 whenever less than 15 is left.1
Games
| Game | Year | How | Note |
|---|---|---|---|
| Diddy Kong Racing | 1997 | When idle | a zip-pad surface sets a 45-count boost timer when none is running |
| Diddy Kong Racing | 1997 | Refresh | a ground zipper sets 45 whenever less than 15 is left |
| F-Zero X | 1998 | Refresh | a dash plate sets the boost timer to 100 on each update the machine is on it, at no energy cost |
Every claim about this mechanic, by game (2)
References
- ^ abcIn the US 1.0 version of Diddy Kong Racing, a zip-pad surface sets a racer's boost timer to 45 when it's at 0, in the car, hovercraft, and plane routines alike, and a ground zipper object sets 45 for a grounded racer within its radius whenever the timer is below 15. A Nitro sets 35, 55, or 75 at its first, second, and third level. In the car's ground routine, while the timer is above 0 after the countdown, the throttle is held open and the factor the code calls
traction, unless it's 0, becomes 2.0.CodeDavidSM64/Diddy-Kong-RacingrevisedHow we know
5420 // If driving over a zip pad, apply a boost. 5421 if (racer->boostTimer == 0 && surfaceType == SURFACE_ZIP_PAD) { 5422 racer->boostTimer = normalise_time(45);
src/racer.c lines 5420–5422 at a5eb080 · upstream ↗ 4400 switch (tempRacer->vehicleID) { 4401 case VEHICLE_CAR: 4402 update_car(updateRate, updateRateF, obj, tempRacer); 4403 break; ⋮ 4406 break; 4407 case VEHICLE_HOVERCRAFT: 4408 func_80046524(updateRate, updateRateF, obj, tempRacer); 4409 break; 4410 case VEHICLE_PLANE: 4411 func_80049794(updateRate, updateRateF, obj, tempRacer);
src/racer.c lines 4400–4411 at a5eb080 · upstream ↗ 1906 if ((racer->boostTimer == 0) && (lastWheelSurface == 3)) { 1907 racer->boostTimer = normalise_time(45);
src/racer.c lines 1906–1907 at a5eb080 · upstream ↗ 152typedef enum SurfaceType { 153 SURFACE_DEFAULT, 154 SURFACE_GRASS, 155 SURFACE_SAND, 156 SURFACE_ZIP_PAD,
include/enums.h lines 152–156 at a5eb080 · upstream ↗ 2795 if (racer->boostTimer == 0 && i == SURFACE_ZIP_PAD) { 2796 racer->boostTimer = normalise_time(45);
src/racer.c lines 2795–2796 at a5eb080 · upstream ↗ 1011 if (racer->boostTimer < 15 && racer->groundedWheels) { ⋮ 1015 if ((s32) sqrtf((diffX * diffX) + (diffY * diffY) + (diffZ * diffZ)) < obj->properties.zipper.radius) { ⋮ 1020 racer->boostTimer = normalise_time(45);
src/object_functions.c lines 1011–1020 at a5eb080 · upstream ↗ 7092 case WEAPON_NITRO_LEVEL_3: ⋮ 7094 racer->boostTimer = normalise_time(75); \ ⋮ 7097 case WEAPON_NITRO_LEVEL_2: ⋮ 7099 racer->boostTimer = normalise_time(55); \ ⋮ 7102 default: ⋮ 7104 racer->boostTimer = normalise_time(35); \
src/racer.c lines 7092–7104 at a5eb080 · upstream ↗ 5492 // Force the throttle wide open if boosting 5493 if (racer->boostTimer > 0) { 5494 if (gRaceStartTimer == 0) { 5495 racer->throttle = 1.0f; 5496 if (traction != 0.0) { 5497 traction = 2.0f; ⋮ 5499 racer->boostTimer -= updateRate;
src/racer.c lines 5492–5499 at a5eb080 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Revised after a check by a second AI model, 2026-10-22.
Sources
Code
- DavidSM64 and Diddy-Kong-Racing contributors. 2026. “Diddy-Kong-Racing: a decompilation of Diddy Kong Racing (DavidSM64/Diddy-Kong-Racing).” Commit a5eb080. DavidSM64/Diddy-Kong-Racing @ a5eb080 · licence, all uses