Ultra UnCut

From Custom Mario Kart
Revision as of 15:01, 2 May 2016 by WorldsBoss (talk | contribs) (→‎Start Line Bug: I just about understood this. Fixed a few grammatical issues whilst reading.)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ultra UnCut is a Cheat Code from MrBean35000vr and Chadderz which fixes the Start Line Bug that causes many Ultra Shortcuts.

Start Line Bug

The start line bug is a bug in Mario Kart Wii caused by a programming oversight. The bug allows a player to skip large sections of the track, if they can get behind the start line without crossing the checkpoint backwards.

Background

The bug has to do with the logic for decrementing the player's current lap variable. The current lap variable stores the lap that the racer is on, however it is not the same as the displayed lap. The displayed lap does not decrement if a player crosses the start line backwards, but the current lap does. Therefore, the players start the race with current lap of 0, which increments to 1 as they cross the start line at the beginning of the race.

Also important is the concept of mandatory check points. These form the minimum route a player must take round the track. It's okay for a player to leave the check point quadrilaterals for a time (as is the case with the SNES Ghost Valley 2 shortcut), provided that they enter all the mandatory checkpoint quadrilaterals in order on their route round to the lap. All check point quadrilaterals are associated by the game with the previous mandatory check point (unless they are a mandatory check point). When a player enters a mandatory check point quadrilateral, a variable indicating the current mandatory check point ID of a player is updated to reflect this. The game only tests a player's position against the quadrilaterals for check points associated with the current, previous and next mandatory check point. This is to allow tracks to have overlapping check point quadrilaterals, for example because the track crosses itself.

The Bug

The bug comes from the behaviour of the current lap variable when moving backwards. If the player moves from the check point quadrilateral after the start line to the one immediately before it, the current lap variable is decremented. The game checks this by detecting if the next quadrilateral after the one the player has entered is the start line quadrilateral. However if the player can move from the check point quadrilateral after the start line to one earlier than immediately before it, the current lap is not decremented. Because the player still has the current mandatory check point ID variable set to 0 (the start line), the player cannot count a lap by driving forward, as they game checks that the current mandatory check point ID variable is set to the mandatory checkpoint before the start line prior to incrementing the lap count. To count the lap and complete the ultra shortcut, the player must drive backwards to the previous mandatory check point. This then causes the player's current mandatory check point ID to be set to the one before the start line (because they have entered its quadrilateral) still without decrementing the players current lap variable. The player now has current lap set to the one they left the start line at, with current mandatory check point ID set to the one before the start line. The player can then drive forwards to the start line to count a lap.

Ultra UnCut

Ultra UnCut causes the player's current lap variable to be decremented whenever they enter a check point quadrilateral associated with a mandatory check point with ID higher than 1 from one associated with the start line (ID 0). This is a simple improvement over the game's check which checks only for entering the quadrilateral immediately before the start line. On tracks with one or fewer mandatory check point, Ultra UnCut falls back to the game's original behaviour as the improved check cannot be used.

Cheat Codes

Ultra UnCut, PAL

Ultra UnCut, NTSC/USA

Ultra UnCut, NTSC/Japan