Tool-assisted game movies
When human skills are just not enough

Submission #7078: kierio04's Wii Mario Kart Wii "100%" in 00:19.1

Console: Wii
Game name: Mario Kart Wii
Game version: USA
ROM filename: Mario Kart Wii [NTSC-U].iso
Branch: 100%
Emulator: Dolphin 5.0 Stable
Movie length: 00:19.1
FrameCount: 6893
Re-record count: 74
Author's real name: Kieran Sinclair-Lomax
Author's nickname: kierio04
Submitter: kierio04
Submitted at: 2021-04-01 20:43:09
Text last edited at: 2021-04-05 04:49:25
Text last edited by: Samsara
Download: Download (2053 bytes)
Status: decision: rejected
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:
Mario Kart Wii was released in 2008. Almost 13 years later, there has not been a full game TAS created, until now. 100% in Mario Kart Wii means unlocking everything. The way you can tell you have unlocked everything is the "license" shows full gold boxes. In this TAS, I reach this game state in record time - without ever leaving the menu screen.

(Link to video)

General information

  • Emulator used: Dolphin 5.0 LUA Core (custom dolphin build by SwareJonge, Malleo, THC98, LuigiM, and Kierio04. Download)

  • Game objectives
    • Aims for fastest time
    • Abuses programming errors in the game
    • Major skip glitch
    • 100% completion
    • Genre: Racing

To sync the run

You need to use the following gecko code that prevents the edits to the emulator from corrupting the ROM:

48000000 809B8F88
DE000000 90009380
5A010000 000000AC
60000003 00000001
6000001F 00000000
14000000 00000100
18000004 00000000
20180004 00000000
5A010000 00000070
62000000 00000000
5A010000 00008188
14000000 FFFFFFFF
14000004 031FFFFC
5A010000 00000468
62000000 00000001
E0000000 80008000

MD5 checksum: b55f61c8e814558f5c487670aa11c5a1


Mario Kart Wii polls for inputs multiple times per frame. By having (gamecube) controller 1 pressing half of the inputs, and controller 2 pressing the exact negative of those inputs, the game cancels out the inputs and reads only half the size on all following frames (until power off), so by inputting all possible inputs on 2 controllers on the next frame (which will fill up double the amount of space - so 4 controllers), you can use the third controller to read past the 4 controllers’ memory region and into “garbage” data. After the input region of memory are the event and save regions. Because an event is already occurring (power on -> menu screen), changing these values will only affect the screen itself until the event that’s running is already over, as long as the value is changed by the time the event is over. What I do is run an event in the background, unlocking each individual aspect that goes towards having 100% of the game unlocked, which writes to the save region after the event memory, meanwhile on certain frames that I need to actually input A. I do so on the rewritten double scaled input table, so it turns out I have to actually hold 64 input units right on the C stick of controller 1. The unlock events only occur for one frame so by doing one event every frame I can unlock all required things before the power on -> menu screen event finishes. I finally finish by proving that everything is unlocked by creating the new license and returning to the main menu screen with B (which involves pressing 64 input units left on the control stick of controller 1 due to the doubled input range).

Potential Improvements

If there was a way to load the unlocked license without creating it then that would skip going in and creating the license, saving multiple seconds.

Screenshot Suggestion

Samsara: no question, it's the supra mayro kratt TAS we've been waiting for

Samsara: what a wonderful thing

Samsara: hang on this is some kinda supra mayro kratt knockoff, i can't accept this!!!

Similar submissions (by title and categories where applicable):