Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 674
» Latest member: Dawnofthed Games
» Forum threads: 1,867
» Forum posts: 15,691

Full Statistics

Online Users
There are currently 142 online users.
» 0 Member(s) | 138 Guest(s)
Bing, Discord, Google, Yandex

Latest Threads
INCOMPLETE: How to create...
Forum: Other
Last Post: Luporion
2 hours ago
» Replies: 5
» Views: 1,224
Make it to 10,000
Forum: General Discussion
Last Post: WaluigiisFluffy
2 hours ago
» Replies: 8,803
» Views: 6,504,846
Looking for the Movement ...
Forum: Code Support / Help / Requests
Last Post: _Ro
05-12-2025, 09:42 PM
» Replies: 4
» Views: 156
Instant Respawn [davidevg...
Forum: Offline Non-Item
Last Post: Vega
05-12-2025, 03:05 PM
» Replies: 2
» Views: 6,002
Customize Unlock Screen [...
Forum: Incomplete & Outdated Codes
Last Post: B_squo
05-11-2025, 11:43 PM
» Replies: 1
» Views: 90
Bring up specific unlock ...
Forum: Offline Non-Item
Last Post: B_squo
05-11-2025, 11:39 PM
» Replies: 0
» Views: 56
Blue Shell Explosion Visu...
Forum: Offline; Item
Last Post: SonGotanTheSaiyan
05-10-2025, 01:16 AM
» Replies: 5
» Views: 15,660
How to Make your own Chea...
Forum: PowerPC Assembly
Last Post: Vega
05-09-2025, 07:20 PM
» Replies: 73
» Views: 151,131
Ghost Always Saves (Compe...
Forum: Misc/Other
Last Post: B_squo
05-08-2025, 11:08 PM
» Replies: 0
» Views: 100
No Record Uploading on Co...
Forum: Misc/Other
Last Post: B_squo
05-08-2025, 10:52 PM
» Replies: 0
» Views: 81

 
  Mario Kart Wii Exception Handler
Posted by: pandemonium - 08-17-2018, 01:45 PM - Forum: Resources and References - No Replies

When the game has crashed, press the following buttons (in order) on the 1st Wii Remote (Vertical) to bring up the exception handler.

1) Up
2) 1
3) Down
4) 2
5) Right
6) -
7) Left
8) +
9) B
10) A

Source: Skawo (https://www.youtube.com/watch?v=p6RLSFQeeRM)

Print this item

  Yo
Posted by: Huili - 08-17-2018, 12:47 PM - Forum: Introductions - Replies (1)

Hey. I got a lot of codes from here for something I've made.

For those of you who don't me, I made the MKW Hack Pack, a custom track pack that aims to represent the underdogs of the custom track community, while still being relevant by putting in mainstream tracks in small numbers.

I can't promise I'll be very active though, just so you know.

Thanks for reading this in advance!

Print this item

  Force Track Selection Online [Vega]
Posted by: Vega - 08-15-2018, 04:12 PM - Forum: Incomplete & Outdated Codes - No Replies

Force Track Selection Online [Vega]

NOTE: Outdated by my single line version.

Also known as Track Modifier Online.

No matter what track you select on the course selection map screen, you will always choose the track value you used in the code.

Example: You have code track value on WGM. No matter what you select, WGM will be chosen for you in the lottery.

NOTE: Using a Battle track value for VS will stall everyone at the voting screen for a few minutes, then everyone will disconnect.
NOTE: Using a VS track value for Battle will stall everyone at the voting screen for a few minutes, then everyone will disconnect.

NTSC-U
C2658824 00000002
38C000TT 98C3001E
60000000 00000000

PAL
C2660760 00000002
38C000TT 98C3001E
60000000 00000000

NTSC-J
C265FDCC 00000002
38C000TT 98C3001E
60000000 00000000

NTSC-K
C264EA78 00000002
38C000TT 98C3001E
60000000 00000000

TT (Track Values):
00 = Mario Circuit
01 = Moo Moo Meadows
02 = Mushroom Gorge
03 = Grumble Volcano
04 = Toads Factory
05 = Coconut Mall
06 = DK´s Snowboard Cross
07 = Wario´s Gold Mine
08 = Luigi Circuit
09 = Daisy Circuit
0A = Moonview Highway
0B = Maple Treeway
0C = Bowser´s Castle
0D = Rainbow Road
0E = Dry Dry Ruins
0F = Koopa Cape
10 = GCN Peach Beach
11 = GCN Mario Circuit
12 = GCN Waluigi Stadium
13 = GCN DK Mountain
14 = DS Yoshi Falls
15 = DS Desert Hills
16 = DS Peach Gardens
17 = DS Delphino Square
18 = SNES Mario Circuit 3
19 = SNES Ghost Valley 2
1A = N64 Mario Raceway
1B = N64 Sherbet Land
1C = N64 Bowser´s Castle
1D = N64 DK´s Jungle Parkway
1E = GBA Bowser Castle 3
1F = GBA Shy Guy Beach
20 = Defino Pier
21 = Block Plaza
22 = Chain Chomp Roulette
23 = Funky Stadium
24 = Thwomp Desert
25 = GCN Cookie Land
26 = DS Twilight House
27 = SNES Battle Course 4
28 = GBA Battle Course 3
29 = N64 Skyscraper

Source
li r6, 0x00TT #Load 00TT value into Register 6
stb r6, 0x001E (r3) #Store byte of Register 6 to address of Register 3 plus offset 0x001E
nop #Necessary nop for odd amount of ASM instructions

Code creator: Vega

Print this item

  Client ID Spoofer [Vega]
Posted by: Vega - 08-15-2018, 03:03 PM - Forum: Online Non-Item - No Replies

Client ID Spoofer [Vega]

This code will spoof the Client ID of all your Mii's to a desired value. It is temporary meaning once you play the game again w/o this code, all your Mii's Client ID's go back to normal. This is a must have code if you want to protect your MAC Address from possibly being viewed in the game's Memory by other users online.

WWWWZZZZ = Desired Client ID Value

If you are not sure what value to set this to, then use this value: C2428998
C2428998 is the default Client ID value of the famous My Avatar Editor program.

When you launch the game with the code applied, all of your Mii faces on your licenses will be gone (this is normal), simply re-select w/e Mii you wanna play with. The next time you launch the game withOUT the code applied, the same effect re-occurs.

NTSC-U
C20C6B1C 00000003
3D80WWWW 618CZZZZ
91840004 38600000
60000000 00000000

PAL
C20C6BBC 00000003
3D80WWWW 618CZZZZ
91840004 38600000
60000000 00000000

NTSC-J
C20C6ADC 00000003
3D80WWWW 618CZZZZ
91840004 38600000
60000000 00000000

NTSC-K
C20C6C1C 00000003
3D80WWWW 618CZZZZ
91840004 38600000
60000000 00000000

Source:
lis r12, 0xWWWW #Load WWWW value into upper 16 bits of Register 12
ori r12, r12, 0xZZZZ #Load ZZZZ value into lower 16 bits of Register 12
stw r12, 0x0004 (r4) #Store the word (WWWWZZZZ) of Register 12 to address of Register 4 plus offset 0x0004
li r3, 0 #Load the value 0 immediately into Register 3; Default Instruction

Code creator: Vega

Print this item

  Avatar ID Spoofer [Vega]
Posted by: Vega - 08-15-2018, 02:57 PM - Forum: Online Non-Item - No Replies

Avatar ID Spoofer [Vega]

This code will spoof the Avatar ID of all your Mii's to a desired value. It is temporary meaning once you play the game again w/o this code, all your Mii's Avatar ID's go back to normal. Please NOTE that you will not have a Mii on your license and will need to select one. Don't worry none of your Miis are wiped. When you select a Mii for your license, you will be forced to always use your 1st Mii (slot #0) when choosing a Mii to use in the License Settings. This is because the Wii lists your Miis based on Avatar ID. Since Avatar IDs are all the same, the Wii forces you to use Mii slot #0 as a 'failsafe' if you will.

NTSC-U
C20C6B18 00000003
3D80XXXX 618CYYYY
91840000 80040000
60000000 00000000

PAL
C20C6BB8 00000003
3D80XXXX 618CYYYY
91840000 80040000
60000000 00000000

NTSC-J
C20C6AD8 00000003
3D80XXXX 618CYYYY
91840000 80040000
60000000 00000000

NTSC-K
C20C6C18 00000003
3D80XXXX 618CYYYY
91840000 80040000
60000000 00000000

XXXXYYYY = Desired Avatar ID Value

Source
lis r12, 0xXXXX #Load XXXX value into upper 16 bits of Register 12
ori r12, r12, 0xYYYY #Load YYYY value into lower 16 bits of Register 12
stw r12, 0 (r4) #Store the word (XXXXYYYY) from Register 12 to address of Register 4
lwz r0, 0 (r4) #Load the word from address of Register 4 into Register 0 (default ASM function of address)
nop #Necessary nop for odd amount of ASM functions

Code creator: Vega

Print this item

  Mii Name Changer [Anarion]
Posted by: Vega - 08-15-2018, 04:01 AM - Forum: Online Non-Item - No Replies

Mii Name Changer [Anarion]

aka Change Mii Name Online

This code will allow you to change your mii name. It effects all your Miis. Changes are NOT permanent. Once you run your game w/o this code, all your Mii names go back to normal.

NTSC-U
C20C6D38 00000009
3C80nnnn 6084pppp
909E0002 3C80qqqq
6084rrrr 909E0006
3C80tttt 6084uuuu
909E000A 3C80vvvv
6084xxxx 909E000E
3C80yyyy 6084zzzz
909E0012 A09E0000
60000000 00000000

PAL
C20C6DD8 00000009
3C80nnnn 6084pppp
909E0002 3C80qqqq
6084rrrr 909E0006
3C80tttt 6084uuuu
909E000A 3C80vvvv
6084xxxx 909E000E
3C80yyyy 6084zzzz
909E0012 A09E0000
60000000 00000000

NTSC-J
C20C6CF8 00000009
3C80nnnn 6084pppp
909E0002 3C80qqqq
6084rrrr 909E0006
3C80tttt 6084uuuu
909E000A 3C80vvvv
6084xxxx 909E000E
3C80yyyy 6084zzzz
909E0012 A09E0000
60000000 00000000

NTSC-K
C20C6E38 00000009
3C80nnnn 6084pppp
909E0002 3C80qqqq
6084rrrr 909E0006
3C80tttt 6084uuuu
909E000A 3C80vvvv
6084xxxx 909E000E
3C80yyyy 6084zzzz
909E0012 A09E0000
60000000 00000000

Mii Name Ascii Hex Values
nnnn = 1st character
pppp = 2nd character
qqqq = 3rd character
rrrr = 4th character
tttt = 5th character
uuuu = 6th character
vvvv = 7th character
xxxx = 8th character
yyyy = 9th character
zzzz = 10th character

Ascii Hex Value Examples (Use an online Ascii to Hex converter for help if needed)
0000 = Nothing
0020 = Space
0036 = 6
0041 = A (upper case)
007A = z (lower case)

For any values you don't use, fill them with '0000'.

Source (0123456789 used as the Mii Name):
lis r4, 0x0030 #Load 0x0030 into upper 16 bits of r4
ori r4, r4, 0x0031 #Load 0x0031 into lower 16 bits of r4
stw r4, 0x2 (r30) #Store the word of r4 to address of r30 offset 0x2
lis r4, 0x0032 #Load 0x0032 into upper 16 bits of r4
ori r4, r4, 0x0033 #Load 0x0033 into lower 16 bits of r4
stw r4, 0x6 (r30) #Store the word of r4 to address of r30 offset 0x6
lis r4, 0x0034 #Load 0x0034 into upper 16 bits of r4
ori r4, r4, 0x0035 #Load 0x0035 into lower 16 bits of r4
stw r4, 0xA (r30) #Store the word of r4 to address of r30 offset 0xA
lis r4, 0x0036 #Load 0x0036 into upper 16 bits of r4
ori r4, r4, 0x0037 #Load 0x0037 into lower 16 bits of r4
stw r4, 0xE (r30) #Store the word of r4 to address of r30 offset 0xE
lis r4, 0x0038 #Load 0x0038 into upper 16 bits of r4
ori r4, r4, 0x0039 #Load 0x0039 into lower 16 bits of r4
stw r4, 0x12 (r30) #Store the word of r4 to address of r30 offset 0x12
lhz r4, 0 (r30) #Default instruction; Load the word from address of r30 into r4

Code creator: Anarion
Code credits: Vega (fixed code, it was partially working beforehand)

Print this item

  Change Character/Vehicle In Between Races Online #1 [Vega]
Posted by: Vega - 08-14-2018, 10:10 PM - Forum: Incomplete & Outdated Codes - No Replies

Change Character/Vehicle In Between Races Online #1 [Vega]

NOTE: Outdated by MrBean's version

Code allows you to change character & vehicle in between races online. Press your activator(s) anytime from the VR results screen til before you select your track. Whatever character you started the WW session with will always be the character that shows on the course selection map screen.

NOTE: Setting KK/VV value to 00/00 will blackscreen everyone in WW (won't work on Wiimmfi)
NOTE: Setting KK/VV value to FF/FF will stall the WW then D/C everyone (won't work on Wiimmfi)

NTSC-U
2834XXXX YYYYZZZZ
C265881C 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
C265881C 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 80008000

PAL
2834XXXX YYYYZZZZ
C2660758 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
C2660758 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 80008000

NTSC-J
2834XXXX YYYYZZZZ
C265FDC4 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
C265FDC4 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 80008000

NTSC-K
2833XXXX YYYYZZZZ
C264EA70 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 00000000
2833XXXX YYYYZZZZ
C264EA70 00000002
388000KK 38A000VV
9883001C 00000000
E0000000 80008000

KK Values:
00 = Mario
01 = Baby Peach
02 = Waluigi
03 = Bowser
04 = Baby Daisy
05 = Dry Bones
06 = Baby Mario
07 = Luigi
08 = Toad
09 = Donkey Kong
0A = Yoshi
0B = Wario
0C = Baby Luigi
0D = Toadette
0E = Koopa
0F = Daisy
10 = Peach
11 = Birdo
12 = Diddy Kong
13 = King Boo
14 = Bowser Jr.
15 = Dry Bowser
16 = Funky Kong
17 = Rosalina
18 = S Mii AM
19 = S Mii AF
1A = S Mii BM
1B = S Mii BF
1C = S Mii CM
1D = S Mii CF
1E = M Mii AM
1F = M Mii AF
20 = M Mii BM
21 = M Mii BF
22 = M Mii CM
23 = M Mii CF
24 = L Mii AM
25 = L Mii AF
26 = L Mii BM
27 = L Mii BF
28 = L Mii CM
29 = L Mii CF
2A = M Mii
2B = S Mii
2C = L Mii

VV Values:
00 = Standard Kart S
01 = Standard Kart M
02 = Standard Kart L
03 = Booster Seat
04 = Classic Dragster
05 = Offroader
06 = Mini Beast
07 = Wild Wing
08 = Flame Flyer
09 = Cheep Charger
0A = Super Blooper
0B = Piranha Prowler
0C = Tiny Titan
0D = Daytripper
0E = Jetsetter
0F = Blue Falcon
10 = Sprinter
11 = Honeycoupe
12 = Standard Bike S
13 = Standard Bike M
14 = Standard Bike L
15 = Bullet Bike
16 = Mach Bike
17 = Flame Runner
18 = Bit Bike
19 = Sugarscoot
1A = Wario Bike
1B = Quacker
1C = Zip Zip
1D = Shooting Star
1E = Magikruiser
1F = Sneakster
20 = Spear
21 = Jet Bubble
22 = Dolphin Dasher
23 = Phantom

Source
li r4, 0x00KK #Load KK value (character) into Register 4
li r5, 0x00VV #Load VV value (vehicle) into Register 5
stb r4, 0x001C (r3) #Store the byte of Register 4 to address of Register 3 plus offset of 0x001C

Code creator: Vega

Print this item

  Room Message Spoofer (Host Only) [Star]
Posted by: pandemonium - 08-14-2018, 05:45 PM - Forum: Online Non-Item - No Replies

Room Message Spoofer (Host Only) [Star]

This code will spoof the messages you send in a private room.

(NTSC-U)
C2656A38 00000003
548C063E 3C80MM00
6084PP00 7C846214
9083000C 00000000

(PAL)
C265AEC0 00000003
548C063E 3C80MM00
6084PP00 7C846214
9083000C 00000000

(NTSC-J)
C265A52C 00000003
548C063E 3C80MM00
6084PP00 7C846214
9083000C 00000000

(NTSC-K)
C26491D8 00000003
548C063E 3C80MM00
6084PP00 7C846214
9083000C 00000000

[MM Values]
01 = Start an Event
# [PP Values]
# 00 = VS Race
# 01 = Team VS Race
# 02 = Ballon Battle
# 03 = Coin Runners

02 = "Player and I are friends now!" Message
# [PP Value]
# 00

03 = "Here I am!" Message
# [PP Value]
# 00

04 = Send a Room Message
# [PP Values]
# 00 = Hello!
# ...
# 5F = See you next time!

Code Creator: Star

Print this item

  How to Make your own Cheat Codes
Posted by: Vega - 08-12-2018, 12:34 AM - Forum: PowerPC Assembly - Replies (73)

How to Make your own Cheat Codes

IMPORTANT: This guide shows the steps on re-creating a primitive version of a C2 (Insert ASM) cheat code in MKWii I have personally made during my early days of learning how to create codes. It's not important to worry about having the ability to exactly mimic the creation of this code (considering the fact there may be readers here who don't own MKWii and want to make codes for other Wii games). What's important is to understand how the code was made (methods & tools used) and know how to apply that methodology to other codes that you desire to make in the future.

NOTE: All screenshots were taken from older versions of Dolphin Emulator & Dolphin-Memory-Engine. Therefore, there may be some slight visual discrepancies.



Chapter 1. Requirements

**Certain codes may not work in Dolphin or a code could work on Dolphin but not on the Wii/Wii U Console. Therefore it's recommended to have some sort of Console so you can test your new codes on both the Console and Dolphin.



Chapter 2. Overview of Dolphin

The Dolphin Emulator is software installed on your computer meant to emulate the Wii Console and its games. Dolphin comes with a debugger mode. There are a variety of panels/tabs that come with the debugger mode. However, we will only be focusing on the following three:
  • Breakpoints
  • Code (will be called Code View in this guide)
  • Registers

There is another panel/tab called Memory to view the game's memory, but we will use Aldelaro5's Dolphin-memory-engine instead because Dolphin's default memory view is not live.

How to Enable Dolphin Debug Mode:
Launch Dolphin how you normally would. Once Dolphin has booted. Go to Options, then Configuration. Click on the Interface Tab. You should see a tickable box that says "Enable Debugging UI". Click in the box to checkmark it. Once it has been checkmarked. Close the Tab. You should see a myriad of new menus/items if this was your first time enabling the Debugger Mode.

---

Once Dolphin Debugger Mode has been enabled: At the top, click on View, you will see a list of features including the ones that I have mentioned earlier. Select the following: Breakpoints, Code View, and Registers. The Tabs will now appear on Dolphin. It's recommended that you click on each tab/panel and hold/drag them, so they each become their own movable 'window'. This will allow you to view all 3 of these tabs/panels at the same time.

---

Breakpoints:

[Image: Breakpoint.png]

This is how all codes begin. A user sets a breakpoint predicting that breakpoint will effect a certain instruction of the game. If their prediction is correct, the game will pause and they would work from there.

There are two main breakpoints: Instruction & Memory

Without going into too much detail...

Instruction Breakpoints are used when you are working on an existing code (want to modify it). You use these on static memory.

Memory Breakpoints are used when you are making a new code from scratch. You use these on dynamic memory.

Code View:

[Image: CodeView.png]

Dolphin should already be running, launch your MKWii ISO/WBFS. Once it has launched, pause the Dolphin Emulator. You can now see the Code View.

The Code View lets you view a section of the game's instructions. It takes the assembled hexadecimal byte code of the game's memory and disassembles it all so it can be readable to a Coder/Developer. The code view can only be seen when the emulation is paused.

Registers:

[Image: Registers.png]

Your emulation should still be paused (unless you have un-paused it yourself). This panel will allow you to view the values of all the Registers. The Register tab can be viewed at anytime, BUT it only updates the values when the emulation has been paused.



Chapter 3. Overview of Dolphin-memory-engine

Dolphin should already be opened with the emulation paused. Launch Dolphin-memory-engine. Please note that on newer versions of the Memory-Engine, the "Open memory viewer" big button has been removed. You will need to click on View at the top. Then click on Memory Viewer.

[Image: RAMViewer.png] - 

Here's a pic of Dolphin-memory-engine with the Memory Viewer opened while MKWii is playing

[Image: LiveViewMemory.png]

Overview of Dolphin-memory-engine:
  • First scan = Initiates a search in memory (changes to two options of Next Scan and Reset Scan once a first scan has been issued)
  • Byte w/ drop down arrow = List of options to specify the length of the data that will be searched
  • Exact Value w/ drop down arrow = List of options for conditional searching
  • Empty Field bar immediately underneath = The data/value to search for

The Memory Viewer opens up a new tab that shows a live view of a particular region of the Game's Memory. The large left hand box displays the results (memory addresses) of your scans. The bottom box will contain results that you decide to add into it and can save them for later use. The rest of program is pretty much self-explanatory.

Pic of many panels (emulation paused)~

[Image: AllPanels.png]



Chapter 4. Cheat Code Assembler

[Image: codewrite.png]

An Assembler is a tool that takes written Assembly (ASM) Instructions and changes the Instructions to their corresponding Hexadecimal values. You need an Assembler (one that is designed for Wii Gecko Codes) to make your Codes. Unfortunately, Dolphin doesn't come with an Assembler. We will use the CodeWrite Assembler. It is the easiest to install.

Download CodeWrite - HERE (Linux users will need the Wine emulator to run it)

Move the zip package to a desired folder. Extract/unzip the package. Launch the Codewrite.exe file. This is the Assembler.

The left hand box is where you would write your Aseembly instructions from scratch! The right hand box is the C2 ASM Gecko Code that has been assembled. If you have some ASM instructions in the left hand box and hit the right arrow key, your code will be assembled. If there are any errors on your part, the code will not assemble and the program will give a broad answer on why assembling fail.

Obviously, you can insert an already made C2 ASM Code in the right hand box, and then disassemble it by hitting the left arrow button. Finally, Insertion Address is for your code's address.

Can't get CodeWrite Assembler to launch on your computer?
There is another Assembler called PyiiASMH, it has more features, but requires other files to be installed on your computer beforehand. Guide to install PyiiASMH - https://mkwii.com/showthread.php?tid=1529 When assembling with PyiiASMH, be sure the 'C2/D2' option is checked.



Chapter 5. PowerPC Assembly

Before continuing any further in this guide, you MUST learn PowerPC Assembly language. This is the language of the Wii's CPU. There's no way around it. You have to learn this.

When you read the following thread... you MUST ACTUALLY READ THE THREAD! Don't be inpatient and 'skim' through just looking for things that catch your eye. You have to buckle down and take the time to read everything.

Assembly Tutorial - http://mkwii.com/showthread.php?tid=940

Once you have finished the Assembly Tutorial, come back here and continue onto Chapter 6.



Chapter 6. Making your first code (Pt 1)

Let's get Started!

Alright for this guide, we want to make a code to that forces our CC mode chosen in Grand Prix in MKWii regardless of what we select in the game.

Launch Dolphin debugger mode, bring up the Code View, Breakpoints, and Registers. Boot your game first then launch Dolphin-memory-engine. On the memory-engine, click the Memory Viewer button to launch the live view of the game's memory.

Select any license, choose Single Player, choose Grand Prix. At this point you will see options for 50cc, 100cc, 150cc (and Mirror Mode if it's unlocked). Whenever you make codes, sometimes you will need to do some brainstorming or guess work on what numerical values the game uses for various items. For what we are working on, we will make the assumption that the game uses the value '0' for 50cc, '1' for 100cc, and '2' for 150cc.

Select the 50cc option! You should now be at the character select screen.

On your Dolphin-memory-engine, make sure Byte is selected on the drop down menu. Change 'Base to Use' from Decimal to Hex. Enter 0 for the search field. Even though in this tutorial we will be using basic numerical values in the search field (0, 1, 2), you want to get into the habit of always having the 'Base to Use' option on Hex.

If you have everything setup correctly, Dolphin-memory-engine should look like this...

[Image: 0003.png]

Click First Scan!

The memory-engine will scan for any instance of the hex byte value of '00' in memory. Obviously, we will have millions of results. The objective is to narrow down those results down to a few, and work from there. On this instance I did for this tutorial, I had over 57 million results after the first scan. In fact, it's so many results, the program won't even bother listing all the memory address's. See below.

[Image: 0004.png]

Exit out of the character selection screen back to the Grand Prix CC selection screen. Select 100cc option!

You will notice that the button for First Scan is no longer present on the program. It has now split into two buttons: Next Scan, and Reset Scan. We will now be using the Next Scan button to help shorten down that list of 57 million results.

On Dolphin-memory-engine, change the byte value of 0 to 1.

Click Next Scan!

The Next Scan feature will use the current 57 million results and rerun the search using '01' this time, thus eliminating any of the '00' results. Let's take a look at how many results we have now...

[Image: 0006.png]

Now we are down to 5153 results. Do not be concerned if you are not getting the exact result amounts that I am getting. In fact, if you repeat this tutorial again and again, your result amount will not be the exact same for the initial first few searches.

This list is still too large. Exit out of the character selection screen again. Select the 150cc option! Change the byte value from 1 to 2. Click NEXT scan to further narrow down the list.

[Image: 0008.png]

At this point you see there are only 34 results. For yourself, you should be under 100 at this point. The list is now small enough where the program has listed the results on the left handside. You will notice that some of the results are constantly changing values every split second. It's obviously those specific results are not what we are looking for. We can easily filter these 'flickering' results out. Stay at the character selection, do NOT navigate back to the CC selection. Do NOT change the Byte value, Keep it on 2. 

Now just keep hitting Next Scan repeatedly for about 15-20 straight seconds. You will weed out the 'flickering' results and will be left with 5 or less. If you are down to 3 great. If not, you will need to back out to the CC selection change it, re-enter character selection, update the byte value in the memory-engine accordingly (0 for 50cc, 1 for 100cc, 2 for 150cc), then finally hit Next Scan. That should get your list of results down to just 3.

[Image: 0010.png]

Mem9 addresses are Dynamic memory addresses, meaning if you did this guide again and again those 3 addresses will be slightly different every time. This is normal.

Please remember that your list will be slightly different than what you see in the above picture! Your addresses should still be in mem9 like the list shown. If you had trouble getting down to 3 results (maybe stuck at 4, 5 or 6), or if you have any mem80 addresses, you can get rid of them. I already know which result is the exact one we want, You obviously don't know this if this is your first time doing this tutorial, but for the sake of saving time and getting to other important things, we've covered enough of how to search for addresses. It's time to move onto the more fun stuff. Just be aware that doing searches like this can be a real pain with constantly having to narrow down a list.

Click the 'Add All' button in Dolphin-memory-engine to put all the addresses in the lower box.

Your Dolphin-memory-engine should now look like this...

[Image: 0011.png]

Right click on your first address (which in the picture shown that would be 909A802F), and select 'Browse memory at this address'. Your memory viewer will auto navigate to that address. In your memory viewer, the byte value that you've last searched for will be at that address. It will at the very top left of the memory viewer.

[Image: 0012.png]

Now that we have our list of addresses, it's time to use our Breakpoints! Obviously, we will start with the first address on the list (spoiler alert: this address is the one that will work for making this code). Keep in mind that in many cases, the first address listed will not pan out in making your desired code.

It's Breakpoint time!

Go to your Breakpoints tab. Click the New button. Select Memory Breakpoint. We choose Memory Breakpoint because our Address is in Dynamic Memory.

Set the Address value to what you got for your top result (should be a mem9 address if you have been following along correctly).

Set Condition to Write (I will explain why shortly) and set Action to 'Break'. Your Breakpoint window should look like this...

[Image: 0013.png]

Let's talk about Read Vs Write Breakpoints before continuing any further:

Which one do we set? Read or Write? Well this all depends on the scenario. Let's say you have a value in memory, and you know that the game reads said value later on during a certain event in the game. Well, you would use a Read Breakpoint because we want to know what address/instruction that's read the value before utilizing it.

Let's say we have a value that changes while you are in the race, or changes periodically after certain events in the game, or a value that's constantly changing nonstop. We would use a Write Breakpoint because we need to figure out what address/instruction in memory is writing the value.

Just use some common sense, that's all. We will set a Write Breakpoint to make our code. We want to know what address/instruction is responsible for writing the byte value that we have been searching for.

---

CLICK OK! to set your Breakpoint. Your Breakpoint window will now look like this (but with slightly different address ofc)

[Image: 0014.png]

Your emulation should still be running, we want our Breakpoint to be 'hit' and that will auto-pause your emulation. To do this, simply back out to CC selection again and re-enter back to character selection.

The emulation will instantly pause, and we will be able to see the Code View. If the emulation doesn't pause, your assumptions were incorrect and the Breakpoint failed. Remember, you will fail a lot when making codes! Re-read the earlier steps and try again.

Take a look at your Code View. The address that the game 'broke' on will be highlighted in GREEN.

The address that the game broke on should be one of the following 4 (depending on what region of MKWii you are using)
  • NTSC-U = 8082509C
  • PAL = 8083FAFC
  • NTSC-J = 8083F168
  • NTSC-K = 8082DEBC

The address has this instruction: stw r0, 0x175C (r5)

[Image: 0015.png]

This is called the default instruction. If a coder was to say what's the default instruction of your code? You now know what that coder is referring to. Some coders may also call this the 'original instruction'.



Chapter 7. Making your first code (Pt 2)

Alright at this point, you now have the address you need for making the code, and we have the address's default instruction. We can now move onto to actually making/writing the code via some Assembly!

So we have our code's default instruction: stw r0, 0x175C (r5)

Let's break it down.

stw = Store the Word
The game is deciding to use an entire word value (instead of just storing a byte) to store the CC value to memory. This isn't an issue at all, I will explain more on this shortly.

stw r0 = Store the Word of Register 0
Go to your Registers tab. Take a look at what is in r0. It will be the last value that you had searched for on Dolphin-memory-engine.

stw r0, 0x175C (r5)
Store the Word of r0 (CC value) to the memory address of r5+0x175C. Take the value of r5 and add 0x175C (use a hex calculator). The address in r5 is very close to the address of your Breakpoint. The reason that it is off is because the game is storing the CC value as a word (0000000x), instead of a byte. If you simply add 0x3 to what's in r5 (to mimic a store-byte instruction), and then add the 0x175C, you will see that value would then exactly match your Memory Breakpoint Address.

This stw instruction is telling us that we our storing the CC selection word value to dynamic memory (mem9).

Our goal is to modify this r0 value before the stw instruction writes it to memory.


TIME TO WRITE SOME ASM!

First, we need to manually change the value of r0. We do this with a simple Load Immediate instruction. From reading the ASM tutorial, you should know how to do this.

li r0, X

X being the CC value you want to apply to r0. We can use 0, 1, or 2. Let's use the value of 0 to force 50cc.

li r0, 0

Alright, we have r0 set to the CC value we want, now all we need to do for the next instruction is use the address's original instruction to allow the forced 50cc value to be written to memory.

So we have the following two instructions...

li r0, 0
stw r0, 0x175C (r5)

CAUTION: in MOST codes you will need to have the default instruction, or else you could break some other function of the game or the code might not work at all.

Open up CodeWrite! Time to assemble!

Put the two instructions into the large lefthand box. The green highlighted address from the Code View goes into the Insert Address field (the Mem80 address, NOT the Mem9 address!). You can simply right click on it in Code View, and select Copy Address. Then you can use CTRL+V on your keyboard within CodeWrite's Insertion Address field to paste it in.

Codewrite should now look like this... (your mem80 address must be one of the ones from the list of 4 I've listed from Chapter 6, make sure it matches the region of your MKWii game). For the following picture, I'm using NTSC-U.

[Image: 0017.png]

Click the right arrow button to assemble the Code!

You should now have an assembled C2 Gecko code on the righthand side!

[Image: 0018.png]


Let's break down the assembled Code of the above picture one 'word' at a time.

C282509C = The C2 byte is for the Gecko code handler to designate an Insert ASM Code. The 82509C is for the static memory address 8082509C.
00000002 = The amount of lines (in hex) below.
38000000 = li r0, 0
9005175C = stw r0, 0x175C (r5); default instruction
60000000 = nop; auto added by the Assembler so code can have odd amount of instructions. nop = no operation. In other words, it's an instruction that literally does nothing.
00000000 = For the code handler to know it's the end of the code, all Insert ASM codes will have a final word of 00000000

You can remove the final '0' digit on '38000000' and plug in an 'X' value to allow you to force a different CC option, since the CC value can only be 0, 1, or 2.

NTSC-U Force CC Selection on Grand Prix
C282509C 00000002
3800000X 9005175C
60000000 00000000

Keep in mind this is a primitive version. A better version (that allows utilizing Mirror Mode in other CC's) is located HERE Feel free to analyze the better version if you want to take a crack to learn how I was able to add more features.



Chapter 8. Testing Your Codes

Read this thread HERE to learn how to apply cheat codes in Dolphin.

Testing codes can be annoying at times, but thorough testing is always recommended.  Some codes won't work on Dolphin or a code could work in Dolphin but not on the Wii/Wii U Console. If possible, test your codes on both Dolphin and Console.

Print this item

  MKW Coder/Developer of the Year
Posted by: Vega - 08-11-2018, 08:34 PM - Forum: Coding & Hacking General Discussion - Replies (13)

MKW Coder/Developer of the Year

This page will list what I believe are the best coders/developers of each calendar year for Mario Kart Wii. Please note that these listings are my personal opinions. You may find some biases in this list. Also this is kind of corny, haha.

2008 - Volderbeek

Volderbeek was the first ever to create a license unlock code that works on all 4 licenses simultaneously (based on Cross1955's original singular license unlock). He would then create the first ever VR/BR Modifier code. During the end of the year, he would open up the Volderbeek forums, an iconic/legendary Wii Coding forum later surpassed by Mdmwii's forums.



2009 - Mdmwii

Mdmwii would hop into the MKWii coding scene in 2009. He made an enormous amount of legendary codes during this year. A few of them are Live Replay (GCN), Ultimate License Unlocker, and Rapidfire (GCN). Some of the codes he created in 2009 are still used on a regular basis today. One could argue that his original Live Replay Code was the single greatest achievement in MKWii Coding history. Also during this time, mdmwii had a very popular Youtube channel. It brought a lot of attention to MKWii coding/hacking which would later bring in a good amount of other coders. Without mdmwii, MKWii coding/hacking would not be where it is today.



2010 - Mdmwii

Mdmwii would get Coder/Dev of the year again due to the advanced codes that he created during the earlier months of the year. He created the first ever online Lightning Warning and Blue Shell Warning codes based on the work of Guru's Shared Item code.



2011 - XeR

Xer would easily get Coder/Dev of the Year for 2011 pretty much solely on the creation of the Invisible Code. Obviously, his Invisible Code was considered to the most 'powerful' created at that point in time. He would create other impressive codes as well such as God's Controller (GCN). Also in July, Xer was the first ever to access China Region ID via hacks (before this occurred, nobody outside of iQue knew that a China Region exists). He would make an alt YouTube channel called 'ChinaMKW' with various videos of Chinese Regional TT Champs and Chinese Regional Top Tens.



2012 - Bully

Bully was originally a COD MW3 code creator who would start creating MKWii codes in the summer of 2012. By the end of the year, his YT channel became the main homestead for MKWii code demos/releases. He would create the very useful Time Trial Record Resetter code. The code that allows you to wipe certain TT personal records. Before Bully, nobody really put any time into Battle codes. He would create many Battle specific codes. The greatest would be the Battle Points Manipulation Online. During this year, he also made other good codes such as Item Warning Online, original Invincible Online, Show Item Early, etc. Also in 2012, he created the legendary BullyWiiHacks.com forum.



2013 - Bully

Bully would keep making many codes in 2013. The amount of codes he created in this year was at that time the most ever done in a single year. The most important code being the first ever Freeze WW code. Another amazing code he created in 2013 was the first ever Live Replay code for Wii Remote controllers. Not only that, he would create one the most useful codes ever... No Disconnect. There are simply way to many codes he created in 2013 to list them all.

Anyway, here's a list of some other codes he created in 2013:

Coin Pile Modifier, Play in AutoDrive, Dropped Item Modifier, Starting Timer Modifier, Starting Lap Modifier, Luck Wheelie Bot, Perfect Start Everytime, Stand Still MT Bot, Remove HUD, Wii Wheel Icon.



2014 - Wiimm

Nintendo WFC would shut down on May 20, 2014. During this time, Wiimm was working on a project called Wiimmfi that would be a replacement service for Nintendo Wifi services. On May 10, 2014, Wiimm launches Wiimmfi. As of 2025, Wiimmfi is the main server used for online DS & Wii gaming. One can easily argue that Wiimm is the most influential coder/dev of all time simply because of Wiimmfi and it's impact on the Wii community as a whole.



2015 - Geeh

Geeh pretty much came out of nowhere onto the MKWii coding scene. He helped start the coding group called Spaghetti Noppers. He co-created the Rave Code, one of the best HUD-type codes ever created. He would also co-create many Rainbow codes and other Color Mod Codes.



2016 - MrBean / Chadderz (co-champs)

Regarding Chadderz: Chadderz would do quite a bit of major updates to CTGP. The most major being the Ghost System which allows users to have their ghosts uploaded to a database for later download. Chadderz would add TT rankings on the CTGP website along with many other features such as downloading ghosts to your computer, viewing flap rankings, etc. Since CTGP has many security features built in to stop use of cheats/codes, people in the community can use the Ghost Database on the CTGP website as a reliable source of legit TT's.

Regarding MrBean: MrBean made a few awesome codes to go with the updates done on CTGP. The Enhanced Ghost Replay code was created by MrBean during this year. Still to this day, many TT recorders are using this Enhanced Ghost Replay code. He also made Multi Ghost Replay Code. The Multi Ghost Replay Code almost had as big of impact on the community as when Mdmwii released his Live Replay code way back in 2009.

MrBean and Chadderz would both co-create codes such as High Data Rate and Ultra Uncut.



2017 - Atlas

At this point Atlas already made some good computer programs the year before such as rksys.dat extractor, and RKG Viewer. He would continue on to make more useful programs. Some of those programs would be miiDispParan.bin editor, brftn2tpl editor, and Patch-that-BRSAR.



2018 - Star / Vega (co-champs)

Regarding Vega: Vega would start the mkwii.org forums, which would later become the mkwii.com forums. The first ever website to put all of the codes ever created for MKWii into one centralized listing. The forums also supply various hacking & softmodding guides. Plus, mkwii.org was the first site to supply high quality PowerPC ASM tutorials to help noobies become legit code creators. Vega was the first (since Nutmeg in 2012) to change region ID's in between online races. After Vega learned ASM in July 2018, he would go on to create over 60 codes for the rest of the year. On August 1st, Vega would become the first to figure out how exactly each MKW Game determined its Region ID. He used his findings to create the Region ID Algorithm Modifier Code.

Other codes Vega created are Force CC on Grand Prix Code, Equal Item Probability, Never Pickup Certain Item From Box, Change Reg ID, Flag, & Globe Loc Live in Room & in between Races, Region ID Changer w/o Data Save Reset, Remove Mushroom Bug, Show Everyone's True Region ID, and Customizable Flag, Globe Loc, + FC for Friend Roster.

Regarding Star: Star would purchase a USB Gecko in Feb 2018 right around when the MKWii.org forums were founded. Star was completely self taught, and made a lot of epic codes for the year 2018. He would also teach Vega many things about PowerPC ASM and help Vega with improving the forums. Star's first major code was the Replace Item w/ Shared Item Code. He would later improve that code to make another code called Perfect Replace Item w/ Shared Item which is arguably one of the best item-based codes ever created. In other words it was the first ever Never Get Certain Item From Box code (essentially same code as Vega's but works in an entirely different fashion).

With continuing his work on Guru's Shared Item Code, he would also create the Shared Item Cheat Detection code. Some more codes Star created are Always Win Track Vote (Host only), Room Message Spoofer, Graphical Speedometer, Mii Name Extender, and Random Item From Item Box, and a self-modifying Change Region ID In Between Races code.



2019 - Star

Star would become the first person ever to 'bypass' CTGP and use any desired cheats/codes during gameplay. Many in the community would agree that this is the greatest achievement in MKWii Hacking/Modding History. For more information of this, view this link - http://www.chadsoft.co.uk/reports/2019-0...ident.html

Star would continue to make more codes in 2019. In fact, he would create arguably the greatest code ever - Remote Code Execution (RCE). RCE allows the code user to essentially take control of somebody else's Wii over the network and execute basic code/functions. Not only did Star create RCE, he would also create Target Freeze Code. He would co-create (along with Riidefi) the first ever Custom Exception Handler Code, and Draw Text to Screen Code. The Screenshot code (a neat code that allows the user to take a photo of their gameplay and save it to their Wii) was created by Star during this year. For a long time in the game's history, the community wanted a code that would allow a player to join any friends' regional race. Star would achieve this by creating the Join Any Friends Regional Race Code.



2020 - Star / JoshuaMK (co-champs)

Star would upgrade his RCE code to be able to inject codes/executable-instructions to the Client without the Game crashing. Thus, you can now use RCE to force other users online use cheat codes during the race/battle. He also created a very good code called 'A step above God'. This code can disable any particular item from online gameplay. Some would argue that this is the best online & item based code ever created for MKWii. Star created another great code, the very anticipated - 'Never Get Passed TC' code. With help from RiiDefi, he would co create Draw Image to Screen, and Join Friend on Game Launch.

JoshuaMK would continue releasing good codes since learning ASM the year prior. Here are the codes: Item Timer, Fancy HUD + Speedometer, All-New Millisecond Display Mod, All-New Max Speed Modifier, End Race on Command, Mii Heads on Minimap, various Tracking Codes, and a version 3.1 of his work on Dynamic Gravity. JoshuaMK also made an upgraded version of the Gecko Code handler to solve various issues with the old one. Not only that, the coding community needed an upgraded ASM Gecko Code Compiler+Decompiler as other programs were outdated or full of bugs, JoshuaMK would improve the legacy PyiiASMH and create PyiiASMH3. Did I forget to mention that JoshuaMK also created the GeckoLoader program. An all new program for GCT injection in game's that can allow literally 1000's of lines of codes.



2021 - Stebler

For his awesome Pretty Speedometer code (now used in almost every TT Recording Video), and his Items on Minimap Code.



2022 - Stebler

The creation of MKW-SP. Nuff said.



2023 - Unnamed

Yes, his name is Unnamed. Unnamed made a handful of codes and improvements of codes. Those are Allow Trip Nana/Shells while holding Trip Nana/Shells, Online Auto Use Dodge Item When Shocked, Call Item Function Anytime, Dropped Item Direction Modifier, and 3-in-1 Item Probability Modifier (a "Perfect Item" code which 3 different options)



2024 - Ro

Ro published over 90 Cheat Codes in 2024! Which included many QoL (Quality of Life) Codes and many other codes that were requested for quite some time.

Notable codes are: Item Reset v2 (co creator), Accurate Item Roulette v2, CPU Control Cycler, Disconnect Redirects to Main Menu, Auto POW Hop Dodge w/ Wheelies, Anti Late Start Online, Item Usage in Any State, Fully Controllable Bullet Bill, MKDS Star Animation, Drop Coins on Command, VS Vechicles in Battle Anti Freeze, and many more. Ro would also make his own improved versions of classic codes such as Toyota Moving Forward, and Force Character Animation.



2025 Contenders: Ro, B_squo, Vega



Honorable mentions and others that can be argued to be 'champ' of said year:

2008 - Cross1955 (original selective License Unlock, various Speed Mod codes, various CPU/Grand Prix codes)
2008 - Dexter0 (first ever Item Hack)
2009 - Guru (Shared Item Code)
2010 - Hamster (released MKW Code Generator)
2010 - NinArm (the first to port many codes to Korea, first to release Korea RAM Dump, modified source of Mdmwii's MAC code to include spoofing entire MAC)
2013 - Anarion (made most of his codes in this year)
2014 - Chadderz (introduction of CTGP 1.03)
2015 - Chadderz (introduction of IIB in CTGP)
2016 - Geeh (made a bit more rainbow/hud codes during beginning of this year)
2016 - Wiimm (many improvements to Wiimmfi during this year such as top ten charts)
2016 - Atlas (made some quality windows exe programs such as RKG Viewer, rksys.dat extractor, etc)
2019 - Vega (Race as Ghost on Ghost Replay, Steal-Mii, Automated License Unlock + VR/BR Mod, TAS/Live Replay codes that work for all controllers, Choose Any Position to Start Race As, Ultimate Region ID Cycler, Perfect Shock Invincibility, Mushroom Bug Item Modifier)
2019 - RiiDefi (co-created Draw Text to Screen code, co-created Custom Exception Handler code)
2019 - JoshuaMK (Perfect Start Everytime that works universally, Disable All Bumping, Wheelie Never Times Out, Vehicle Stats Modifier, End Race on Command, Racer XYZ Modifer, Custom Laps, Customizeable Remove HUD)
2019 - Seeky (Auto Dodge POW, Timed Auto Item usage)
2019 - MrBean (24 player mode on offline)
2020 - WhatIsLoaf (Custom Top Ten Leaderboard code, Advanced Live Replay)
2020 - MrBean (first ever online match exceeding 12 players)
2020 - Vega (upgraded his Unlocker code to be 'Perfect', included Star Rank & Wii Wheel stat, also created first ever MKW Unlocker HBC app)
2020 - Scruffy (Rejoin Room, Mii Outfit C, Mii Outfit C Anti-Freeze, Skip License Screen, Player No. on Mini Map, plus more codes)
2020 - RiiDefi (co created Draw Image to Screen, co created Join Friend on Game Launch, BRRES Anti Flicker, Conditional OOB)
2020 - Seeky (RCE Protection, new RCE (based on DWC Network), GitHub Page of Various MKW Structures
2023 - Kazuki (Mii Icon Override, Online BRSTM Maker, Fix BRSTM w/ Fewer Audio Tracks)
2024 - See Post #10 for details. Sponge, B_Squo, Unnamed, Kazuki, Scruffy, & Star

Print this item