This page documents some of the mistakes found in the final release of Mario Kart DS.

Programming Errors#

This section highlights errors in the game that are a result of a programming mistake.

Prolonged Rocket Boost#

It is possible to maintain the starting boost by repeating mini turbos quick enough that the boost timer doesn't run out.

Logo Sound Randomization Oversight#

When the game starts up, it is meant to play a random sound. The sound sequence for this startup sound (SEQ_LOGO) uses the sequence command randvar to generate random numbers. This results in a call to the SND_CalcRandom function on the ARM7, which generates a random number using a linear congruential generator with a fixed starting seed. The SND_CalcRandom function is also called by the SndThread function approximately once every 5.2095 milliseconds.

Because the starting seed and the frequency with which the random number generator is called are fixed, the result is that the startup sound is consistent. Timing differences between hardware revisions produce different outcomes.

Flower Cup Cursor Bug#

When selecting Shroom Ridge in Time Trials mode, return to the track select from the ghost selection menu and the cursor will be placed on Desert Hills instead of Shroom Ridge.

Waluigi Sound Bug#

When entering an 8-player race with selected characters being Bowser, Wario, Luigi, Yoshi, DK, Daisy, Mario and Waluigi, then Waluigi's voice will fail to be loaded into memory due to the driver voice sound heap being half a kilobyte too small to fit it. The game detects this failure, and, rather than crashing, leaves Waluigi mute during the race.

Swooper Collision Bug#

When hitting a Swooper, its Y-velocity (before normalization) is left uninitialized, making its direction non-deterministic.

Shrunk Driver Collision Bug#

When colliding with another driver, the effective weight of a kart is decreased if it is shrunk by thunder bolt. The check is improperly done for the kart being hit, so its weight is decreased as well only if the source kart is shrunk.

OK Button Animation Bug#

When preparing a VS or Battle Mode session in Random mode, after pressing the OK button, the button stops animating. It will not resume animating when pressing Back.

Track Errors#

This section highlights some of the design flaws in specific tracks.

Bowser Castle#

In Bowser Castle, when starting the race in 8th place, the place marker shows 7th place. This is due to the calculation of race progress losing enough precision that, in the checkpoint quad immediately before the finish line, the drivers in 7th and 8th place have equal race progress. The race progress ranges from 0.0 (no progress) to 1.0 (race complete), represented as a fixed-point number with 12 fractional bits, giving 4096 discrete race completion values. Race progress is uniformly distributed across laps. Within laps, race progress is uniformly distributed across checkpoint sections. Within checkpoint sections, the race progress is uniformly distributed across individual checkpoint quads. Bowser Castle has 3 laps and 3 checkpoint sections, with the last section having 20 checkpoints. This means that the checkpoint quad the driver starts in has about 18 distinct race progress increments, which is not enough precision to accurately determine driver race progress.

Luigi's Mansion#

In Luigi's Mansion, there exists a bug that shows up when doing a stand still turn on the first staircase. This crashes the game due to a null pointer access trying to play a sound that doesn't exist.

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-4) was last changed on 07-Oct-2024 17:18 by Garhoogin