Use the Intended Mii Stats
WARNING — Online unsafe
All versions of this hack may give the player an unfair advantage, so you should not use it on online Worldwides or Regionals, else you might get banned.
Overview
Use the Intended Mii Stats is a cheat code created by B_squo. It fixes a small oversight in the code that results in the game loading the wrong stat slots for the Miis, resulting in them having assigned unintended stat values.
These are the stats the developers coded for the Miis, as driverParam.bin has these stats written in the slots intended for each Mii. These are the ones displayed in the vehicle selection screen as well.
Intended stats | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Weight Class | Weight | Speed | Acceleration | Handling | Drift | Mini-Turbo | Off-Road Speed | Off-Road Rotation | |||||||||||||
Not drifting | Drifting | ||||||||||||||||||||
Normal | in Turn | A0 | A1 | A0 | A1 | Manual | Auto | Manual | Auto | 0x02 | 0x03 | 0x04 | 0x05 | 0x01 | 0x02 | 0x03 0x04 |
0x05 | ||||
Light | 0.252 | 0.53 | 0 | 0 | 0 | 0.09 | 0.01 | 0 | 0 | 0.000265 | 0.000222 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Medium | 0.252 | 0.53 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.0171 | 0.0184 | 0.0113 | 0.00641 | 0.00263 | 0.00368 | 0.00263 | 0.00211 | |
Heavy | 0 | 0.53 | 0 | 0.025 | 0.035 | 0.09 | 0.01 | 0.000555 | 0.00029 | 0.000265 | 0.000222 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
However, the ones that are actually read in gameplay are as follows:
The stats that are actually read in gameplay | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Weight Class | Weight | Speed | Acceleration | Handling | Drift | Mini-Turbo | Off-Road Speed | Off-Road Rotation | |||||||||||||
Not drifting | Drifting | ||||||||||||||||||||
Normal | in Turn | A0 | A1 | A0 | A1 | Manual | Auto | Manual | Auto | 0x02 | 0x03 | 0x04 | 0x05 | 0x01 | 0x02 | 0x03 0x04 |
0x05 | ||||
Light | 0 | 0.53 | 0.000947 | 0 | 0 | 0 | 0 | 0.000555 | 0.00029 | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Medium | 0.252 | 0.53 | 0 | 0 | 0 | 0.09 | 0.01 | 0 | 0 | 0.000265 | 0.000222 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Heavy | 0.252 | 0.53 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.0171 | 0.0184 | 0.0113 | 0.00641 | 0.00263 | 0.00368 | 0.00263 | 0.00211 |
How the Game Determines the Stat Slot to Load for Miis
The assignment of a stat slot to a Mii is made in two steps:
1. Determine the weight class of the Mii being loaded. Miis have many character identifiers assigned to them: one for each combination of weight class, outfit and gender. So, before proceeding, the game needs to know which of the three weight classes corresponds to the Mii being loaded.
To do this, the game first substracts the actual character ID of the Mii being loaded with the one assigned to small Mii Outfit A (male), which is 0x18. With this, we obtain another number that identifies each Mii, ranging from 0 (small Mii Outfit A, male) to 0x11 (large Mii Outfit C, female).
After that, the game multiplies the result of this operation with the constant 0x2AAAAAAB. Finally, the upper 32-bits of this product identifies the weight class:
- 0 = Small
- 1 = Medium
- 2 = Large
For example, if we're loading a large Mii Outfit A (female), the first operation would be 0x25 - 0x18 = 0x0D, and then, 0x2AAAAAAB * 0x0D = 0x22AAAAAAF. When taking the upper 32-bits of 0x22AAAAAAF, we obtain 2 (large).
2. Specifing the stat slot to be read. The stat slot identifier for each character matches their character ID. The only exception are Miis, as they have three slots depending on their weight class.
To obtain the corresponding value for each Mii, the game adds the stat slot ID for small Mii Outfit A (male) (0x18) with the weight class value obtained above. This should result in the following:
- 0x18 = Small Mii
- 0x19 = Medium Mii
- 0x1A = Large Mii
Using the example above, we should get 0x18 + 2 = 0x1A (large Mii).
The Bug
The problem in both steps resides in the ID number specified for small Mii Outfit A (male). As stated above, this value should be 0x18. However, the one that is actually written in the code is 0x17 (the immediate value corresponding to the instructions at 0x80592140 and 0x80592160 in RAM, PAL) – this is the ID for Rosalina.
So, when doing the addition at step two with this wrong value, we get that the stat slots that are assigned to each Mii are as follows:
- 0x17 (Rosalina) = Small Mii
- 0x18 (Small Mii) = Medium Mii
- 0x19 (Medium Mii) = Large Mii
In other words:
- Small Miis use Rosalina's intended stats.
- Medium Miis use small Mii's intended stats.
- Large Miis use medium Mii's intended stats.
This bug also results in the following quirks:
- Rosalina and small Miis share the same stat slot. This means that, for example, if one modifies Rosalina's stats, they would also change the ones for Small Miis and vice versa.
- The intended stats for large Miis go completely unused, as they do not get assigned to any character.
Cheat Codes
The cheat code corrects the ID specified for small Mii Outfit A (male) to be 0x18 when the game reads the stats for the Miis.
Use the Intended Mii Stats, PAL
Use the Intended Mii Stats, NTSC-U
Use the Intended Mii Stats, NTSC-J
Use the Intended Mii Stats, NTSC-K
Retro Tracks:
old_mario_gc_hayasi –
old_mario_gc_narita –
old_mario_gc_yabuki
Ported Arenas:
TMDKR Minigame Course
Cheat Codes:
Use the Intended Mii Stats
Other Mods:
Fixed Stat Bars Display – Perfect CPU Actions