Submission Text Full Submission Page
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.

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

Explanation

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!!!


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15537
Location: 127.0.0.1
This topic is for the purpose of discussing #7078: kierio04's Wii Mario Kart Wii "100%" in 00:19.10
Pixiuchu
She/Her
Player (146)
Joined: 9/27/2015
Posts: 106
Unfortunately, not an actual 100% run. Try again next year! I would love to watch a 100% run. Edit: I read the "Happy april fools" as "first tiddy (???)". Thanks to Samsara's porn submission.
Player (52)
Joined: 4/1/2016
Posts: 292
Location: Cornelia Castle
This is cheated, no vote.
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Skilled player (1737)
Joined: 9/17/2009
Posts: 4979
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
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).
Is this a real bug, or you just made it up, and the entire reason this even occurs is the gecko code?
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2783
Location: The dark corners of the TASVideos server
om, nom, nom
JosJuice
She/They
Editor, Emulator Coder
Joined: 7/3/2010
Posts: 193
Location: Sweden
jlun2 wrote:
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).
Is this a real bug, or you just made it up, and the entire reason this even occurs is the gecko code?
The latter.
Post subject: what i actually did
kierio04
He/Him
Joined: 12/25/2018
Posts: 14
Location: New Zealand
The gecko code I used was an "ultimate license unlocker" which essentially automatically completes the game 100% for you. I just made up an ACE-like scenario and mocked the fact that Dolphin syncs are so difficult to keep under control that it required that specific gecko code to make the movie sync.