11-20-2019, 08:52 PM
Mario Kart Wii Code Address Map (WIP)
This is an informative work-in-progress map of the addresses of known parts of the game, such as physics, timers, and such.
It also lists what the known values of registers at the addresses are for, as well as how these have been used in the past for codes. Lastly, only relevant and up-to-date addresses will be shown.
Vehicle Speed
Volderbeek Addresses:
NTSC-U = 0x805743C8
PAL = 0x8057AC2C
NTSC-J = 0x8057A5AC
NTSC-K = 0x80568C84
Known Registers:
Unknown
Summary:
Hook address for speed cap float that is ran through during live play.
JoshuaMK Addresses:
NTSC-U = 0x80571CA4, 0x80571CF4
PAL = 0x80578508, 0x80578558
NTSC-J = 0x80577E88, 0x80577ED8
NTSC-K = 0x80566560, 0x805665B0
Known Registers:
f1 = Base Speed
f0 = Max Speed
Summary:
Hook address for speed cap + speed base floats that is read from once during race boot.
Hamster35000vr Addresses:
NTSC-U = 0x8088D550
PAL = 0x80891A68
NTSC-J = 0x808910B8
NTSC-K = 0x8087FE70
Summary:
Memory Address for reverse speed float that is read from during live play.
Gravity
JoshuaMK Addresses:
NTSC-U = 0x80590400
PAL = 0x80596C24
NTSC-J = 0x805965A4
NTSC-K = 0x80584C7C
Known Registers:
f1 = Gravity float value
Summary:
Hook Address for per racer gravity changes through a special loop during live play.
Hamster35000vr Addresses:
NTSC-U = 0x808B1C80
PAL = 0x808B6540
NTSC-J = 0x808B56A0
NTSC-K = 0x808A49B8
Summary:
Memory Address for gravity float value that is read from during live play.
Handling
JoshuaMK Addresses:
NTSC-U = 0x80574220, 0x80574268, 0x805742C0
PAL = 0x8057AA84, 0x8057AACC, 0x8057AB24
NTSC-J = 0x8057A404, 0x8057A44C, 0x8057A4A4
NTSC-K = 0x80568ADC, 0x80568B24, 0x80568B7C
Known Registers:
f3 = Handling sharpness cap (First Address)
f0 = Drift(?) sharpness cap (Second Address)
f1 = Drift(?) sharpness cap (Third Address)
Summary:
Hook addresses used to modify the cap of turning sharpness. Needs a forced branch after third address if modifying the cap.
I found this function by reverse engineering a "master" float used for a lot of the games physics.
Boost Start
JoshuaMK Addresses:
NTSC-U = 0x8058E374, 0x8058F20C
PAL = 0x80594B98, 0x80595A30
NTSC-J = 0x80594518, 0x805953B0
NTSC-K = 0x80582BF0, 0x80583A88
Known Registers:
f0 = How long you've been charging up (First Address)
Summary:
Hook address to modify how long you've "charged" during countdown. Nopping the second address disables needing to hold the A button.
This can be edited by anyone wanting to add onto this, I just thought I would put this out there, with some of my addresses + a few others as a base.
This is an informative work-in-progress map of the addresses of known parts of the game, such as physics, timers, and such.
It also lists what the known values of registers at the addresses are for, as well as how these have been used in the past for codes. Lastly, only relevant and up-to-date addresses will be shown.
Vehicle Speed
Volderbeek Addresses:
NTSC-U = 0x805743C8
PAL = 0x8057AC2C
NTSC-J = 0x8057A5AC
NTSC-K = 0x80568C84
Known Registers:
Unknown
Summary:
Hook address for speed cap float that is ran through during live play.
JoshuaMK Addresses:
NTSC-U = 0x80571CA4, 0x80571CF4
PAL = 0x80578508, 0x80578558
NTSC-J = 0x80577E88, 0x80577ED8
NTSC-K = 0x80566560, 0x805665B0
Known Registers:
f1 = Base Speed
f0 = Max Speed
Summary:
Hook address for speed cap + speed base floats that is read from once during race boot.
Hamster35000vr Addresses:
NTSC-U = 0x8088D550
PAL = 0x80891A68
NTSC-J = 0x808910B8
NTSC-K = 0x8087FE70
Summary:
Memory Address for reverse speed float that is read from during live play.
Gravity
JoshuaMK Addresses:
NTSC-U = 0x80590400
PAL = 0x80596C24
NTSC-J = 0x805965A4
NTSC-K = 0x80584C7C
Known Registers:
f1 = Gravity float value
Summary:
Hook Address for per racer gravity changes through a special loop during live play.
Hamster35000vr Addresses:
NTSC-U = 0x808B1C80
PAL = 0x808B6540
NTSC-J = 0x808B56A0
NTSC-K = 0x808A49B8
Summary:
Memory Address for gravity float value that is read from during live play.
Handling
JoshuaMK Addresses:
NTSC-U = 0x80574220, 0x80574268, 0x805742C0
PAL = 0x8057AA84, 0x8057AACC, 0x8057AB24
NTSC-J = 0x8057A404, 0x8057A44C, 0x8057A4A4
NTSC-K = 0x80568ADC, 0x80568B24, 0x80568B7C
Known Registers:
f3 = Handling sharpness cap (First Address)
f0 = Drift(?) sharpness cap (Second Address)
f1 = Drift(?) sharpness cap (Third Address)
Summary:
Hook addresses used to modify the cap of turning sharpness. Needs a forced branch after third address if modifying the cap.
I found this function by reverse engineering a "master" float used for a lot of the games physics.
Boost Start
JoshuaMK Addresses:
NTSC-U = 0x8058E374, 0x8058F20C
PAL = 0x80594B98, 0x80595A30
NTSC-J = 0x80594518, 0x805953B0
NTSC-K = 0x80582BF0, 0x80583A88
Known Registers:
f0 = How long you've been charging up (First Address)
Summary:
Hook address to modify how long you've "charged" during countdown. Nopping the second address disables needing to hold the A button.
This can be edited by anyone wanting to add onto this, I just thought I would put this out there, with some of my addresses + a few others as a base.
Super Mario Eclipse, what Super Mario Sunshine could've been.