Welcome, Guest |
You have to register before you can post on our site.
|
Online Users |
There are currently 102 online users. » 0 Member(s) | 99 Guest(s) Bing, Discord, Google
|
Latest Threads |
Miniturbos and Inside Dri...
Forum: Coding & Hacking General Discussion
Last Post: JerryHatrick
4 hours ago
» Replies: 1
» Views: 835
|
Thunder Cloud Effect Modi...
Forum: Offline; Item
Last Post: JerryHatrick
4 hours ago
» Replies: 10
» Views: 1,007
|
Make it to 10,000
Forum: General Discussion
Last Post: Vega
10 hours ago
» Replies: 7,336
» Views: 5,665,785
|
Code request???
Forum: Code Support / Help / Requests
Last Post: DrTap
Yesterday, 06:06 PM
» Replies: 3
» Views: 4,927
|
CPUs/Online Players Have ...
Forum: Visual & Sound Effects
Last Post: Zeraora
Yesterday, 02:26 AM
» Replies: 2
» Views: 494
|
Offline Hide and Seek
Forum: Code Support / Help / Requests
Last Post: FelX
01-08-2025, 03:43 PM
» Replies: 11
» Views: 714
|
Show Nametags During Coun...
Forum: Visual & Sound Effects
Last Post: _Ro
01-08-2025, 07:48 AM
» Replies: 1
» Views: 662
|
Item Reset Code with Time...
Forum: Code Support / Help / Requests
Last Post: WaluigiisFluffy
01-07-2025, 11:20 PM
» Replies: 6
» Views: 230
|
Racer Count Modifier
Forum: Offline Non-Item
Last Post: Vega
01-07-2025, 06:30 PM
» Replies: 1
» Views: 117
|
Motion Sensor Bomb (Hamst...
Forum: Incomplete & Outdated Codes
Last Post: Vega
01-07-2025, 06:29 PM
» Replies: 1
» Views: 84
|
|
|
Room Message Spoofer (Host Only) [Star] |
Posted by: Star - 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
|
|
|
How to Make your own Cheat Codes |
Posted by: Vega - 08-12-2018, 12:34 AM - Forum: PowerPC Assembly
- Replies (61)
|
|
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:
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:
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:
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.
-
Here's a pic of Dolphin-memory-engine with the Memory Viewer opened while MKWii is playing
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)~
Chapter 4. Cheat Code Assembler
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...
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.
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...
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.
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.
Mem9 addresses are Fynamic 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...
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.
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...
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)
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)
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 7, make sure it matches the region of your MKWii game). For the following picture, I'm using NTSC-U.
Click the right arrow button to assemble the Code!
You should now have an assembled C2 Gecko code on the righthand side!
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
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.
|
|
|
MKW Coder/Developer of the Year |
Posted by: Vega - 08-11-2018, 08:34 PM - Forum: Coding & Hacking General Discussion
- Replies (8)
|
|
MKW Coder/Developer of the Year
This page will list what I believe are the best coders/developers of each calendar year. 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 that works on all 4 licenses simultaneously (based on Cross1955's original selective 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. Before mdmwii, there wasn't really a Wii code creator that focused solely on Mario Kart Wii. Mdmwii 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 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 (which also made him the first other than Nintendo/iQue to see a China Region ID 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. With his ASM skills he learned from coding on other games, he would quickly create a ton of good codes for MKWii. 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. He really did put in a lot of hard work into the game.
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 2020, Wiimmfi is the main server used for online DS & Wii gaming. One can easily argue that Wiimm is the best 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 colors and 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 80 codes for the rest of the year. Some of those codes are Perfect Item Code, Never Pickup Certain Item From Box, Advantageous Char/Vehicle selection, Never Pickup Certain Item From Box, Change Reg ID, Flag, & Globe Loc Live in Room, and Custom 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. 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 Region ID Changer 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 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
2024 Contenders (so far):
Ro, Sponge, Unnamed, Skullface, B_squo
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, Perfect Character/Vehicle Selection, TAS/Live Replay codes that work for all controllers, Choose Any Position to Start Race As, Dump Everyone's Info to NAND, Ultimate Region ID Cycler, Perfect Shock Invincibility)
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, Data Save mapping)
2020 - TheLordScruffy (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)
|
|
|
TAS Code (Wii Remote) [Bully] |
Posted by: Vega - 08-11-2018, 07:26 PM - Forum: Incomplete & Outdated Codes
- No Replies
|
|
TAS Code (Wii Remote) [Bully]
NOTE: Outdated by Vega's version which works for all controllers
Works for any Wii Remote Dependent Controller (Wheel, Chuck, & Classic) This is simply a Live Replay Code with an activator and deactivator. Allows you to create Tool Assisted Speedruns.
NTSC-U
2834XXXX YYYYZZZZ
C251C7C0 00000002
B01ED81C B01E0004
60000000 00000000
C251C87C 00000002
D01E000C D01ED824
D07ED820 00000000
C251C8B4 00000005
98DE0012 98DED82A
899E0010 999ED828
899E0011 999ED829
899E0013 999ED82B
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
0451C7C0 B01E0004
0451C87C D01E000C
0451C8B4 98DE0012
E0000000 80008000
PAL
2834XXXX YYYYZZZZ
C2520C34 00000002
B01ED81C B01E0004
60000000 00000000
C2520CF0 00000002
D01E000C D01ED824
D07ED820 00000000
C2520D28 00000005
98DE0012 98DED82A
899E0010 999ED828
899E0011 999ED829
899E0013 999ED82B
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
04520C34 B01E0004
04520CF0 D01E000C
04520D28 98DE0012
E0000000 80008000
NTSC-J
2834XXXX YYYYZZZZ
C25205B4 00000002
B01ED81C B01E0004
60000000 00000000
C2520670 00000002
D01E000C D01ED824
D07ED820 00000000
C25206A8 00000005
98DE0012 98DED82A
899E0010 999ED828
899E0011 999ED829
899E0013 999ED82B
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
045205B4 B01E0004
04520670 D01E000C
045206A8 98DE0012
E0000000 80008000
NTSC-K
2833XXXX YYYYZZZZ
C250EC58 00000002
B01ED81C B01E0004
60000000 00000000
C250ED14 00000002
D01E000C D01ED824
D07ED820 00000000
C250ED4C 00000005
98DE0012 98DED82A
899E0010 999ED828
899E0011 999ED829
899E0013 999ED82B
60000000 00000000
E0000000 00000000
2833XXXX YYYYZZZZ
0450EC58 B01E0004
0450ED14 D01E000C
0450ED4C 98DE0012
E0000000 80008000
Code creator: Bully
Code credits: Mdmwii (original GCN live replay)
|
|
|
Always Win Race [Vega] |
Posted by: Vega - 08-10-2018, 09:18 PM - Forum: Online Non-Item
- No Replies
|
|
Always Win Race [Vega]
This functions like mdmwii's classic perfect timer / always win code. So the 'Always Win effect/strength' is the same as his code. The difference with this code compared to his is that your timer will still function normally on your HUD, except the lap splits will still be effected.
NTSC-U
08530F58 60000000
20020004 00000000
PAL
08535AA0 60000000
20020004 00000000
NTSC-J
08535420 60000000
20020004 00000000
NTSC-K
08523AF8 60000000
20020004 00000000
Code creator: Vega
|
|
|
Hide Your Wii ID on User Record [Vega] |
Posted by: Vega - 08-04-2018, 09:56 PM - Forum: Online Non-Item
- No Replies
|
|
Hide Your Wii ID on User Record [Vega]
This code will allow you to put a spoofed Wii ID number on your USER record/packet. This will NOT spoof the Wii ID number that is read by the server when getting online! This code is just meant to stop Mem90 RAM Viewers/Packet sniffers from seeing your real Wii ID number when they are in your WW.
NTSC-U
C2660FB0 00000004
3D80XXXX 618CYYYY
91847580 3D80WWWW
618CZZZZ 91847584
80047580 00000000
PAL
C2663094 00000004
3D80XXXX 618CYYYY
91847580 3D80WWWW
618CZZZZ 91847584
80047580 00000000
NTSC-J
C2662700 00000004
3D80XXXX 618CYYYY
91847580 3D80WWWW
618CZZZZ 91847584
80047580 00000000
NTSC-K
C26513AC 00000004
3D80XXXX 618CYYYY
91847580 3D80WWWW
618CZZZZ 91847584
80047580 00000000
XXXXYYYYWWWWZZZZ = Spoofed Wii ID number in Hex
Source
lis r12, 0xXXXX #Load XXXX value into higher 16 bits of register 12. Lower 16 bits are cleared
ori r12, r12, 0xYYYY #Load YYYY value into lower 16 bits of register 12
stw r12, 0x7580 (r4) #Store the word of Register 12 at address of Register 4 plus offset 0x7580
lis r12, 0xWWWW #Load WWWW value into higher 16 bits of register 12
ori r12, r12, 0xZZZZ #Load ZZZZ value into lower 16 bits of register 12
stw r12, 0x7584 (r4) #Store the word of Register 12 at address of Register 4 plus offset 0x7584
lwz r0, 0x7580 (r4) #Load the word at address Register 4 plus offset 7580 into Register 0; Default ASM
Code creator: Vega
|
|
|
DWC_Authdata Spoofer [Vega] |
Posted by: Vega - 08-04-2018, 06:19 PM - Forum: Online Non-Item
- No Replies
|
|
DWC_Authdata Spoofer [Vega]
Also known as User ID Spoofer. This code allows a user to have a fully spoofed DWC_Authdata/User ID. Do not exceed the value of 000009184E729FFF (9999999999999 in decimal). Legit authdatas cannot exceed that limit. If you exceed that limit, a server mod/admin will instantly know you are using spoofing codes. Thus, if you follow this rule, your WWWW value will always be 0000.
Another thing to know, is that you can only make new FCs with your spoofed DWC_Authdata. If you use this code and connect online with an FC made on your 'legit' DWC_Authdata, you will receive error code 60000.
NTSC-U
C20ED364 00000004
3CE0WWWW 60E7XXXX
90E601B0 3CE0YYYY
60E7ZZZZ 90E601B4
80E601B0 00000000
PAL
C20ED404 00000004
3CE0WWWW 60E7XXXX
90E601B0 3CE0YYYY
60E7ZZZZ 90E601B4
80E601B0 00000000
NTSC-J
C20ED324 00000004
3CE0WWWW 60E7XXXX
90E601B0 3CE0YYYY
60E7ZZZZ 90E601B4
80E601B0 00000000
NTSC-K
C20ED47C 00000004
3CE0WWWW 60E7XXXX
90E601B0 3CE0YYYY
60E7ZZZZ 90E601B4
80E601B0 00000000
WWWWXXXXYYYYZZZZ = Your desired DWC_Authdata in HEX
Source:
lis r7, 0xWWWW #Load the WWWW value into the upper 16 bits of Register 7, clear the lower 16 bits
ori r7, r7, 0xXXXX #Load the XXXX value into the lower 16 bits of Register 7
stw r7, 0x01B0 (r6) #Store the word (WWWWXXXX) of Register 7 at the address of Register 6 plus offset of 0x01B0
lis r7, 0xYYYY #Load the YYYY value into the upper 16 bits of Register 7, clear the lower 16 bits
ori r7, r7, 0xZZZZ #Load the ZZZZ value into the lower 16 bits of Register 7
stw r7, 0x01B4 (r6) #Store the word (YYYYZZZZ) of Register 7 at the address of Register 6 plus offset of 0x01B4
lwz r7, 0x01B0 (r6) #Load the word at address of Register 6 plus offset 0x01B0 into Register 7; Default Instruction
Code creator: Vega
|
|
|
Spoof FC on User Record [Vega] |
Posted by: Vega - 08-03-2018, 11:02 PM - Forum: Online Non-Item
- No Replies
|
|
Spoof FC on User Record [Vega]
This code will spoof the FC that is sent on your USER record/packet in Mem90. If anybody is viewing the USER packets (via a RAM viewer or packet sniffer program) of a race/WW, they will read your spoofed FC. If you are too lazy to fill in the values, you can simply nop the address to put the FC as 0000000000000001 (0000-0000-0001).
And No, this doesn't hide your FC on the Wiimmfi MKW page.
NTSC-U
C2660FD4 00000004
3C60XXXX 6063YYYY
907F00B0 3C60WWWW
6063ZZZZ 907F00B4
60000000 00000000
PAL
C26630B8 00000004
3C60XXXX 6063YYYY
907F00B0 3C60WWWW
6063ZZZZ 907F00B4
60000000 00000000
NTSC-J
C2662724 00000004
3C60XXXX 6063YYYY
907F00B0 3C60WWWW
6063ZZZZ 907F00B4
60000000 00000000
NTSC-K
C26513D0 00000004
3C60XXXX 6063YYYY
907F00B0 3C60WWWW
6063ZZZZ 907F00B4
60000000 00000000
XXXXYYYYWWWWZZZZ = Spoofed FC in HEX.
For example, if you want the spoofed FC to be 2468-0990-5553. Put that value in a decimal to hex converter (with no dashes), and use the hex result for the code.
Source
lis r3, 0xXXXX #Load XXXX value into higher 16 bits of Register 3. Lower 16 bits are cleared.
ori r3, r3, 0xYYYY #Load YYYY value into lower 16 bits of Register 3.
stw r3, 0x00B0 (r31) #Store the word (XXXXYYYY value) to the address of Register 31 plus offset of 0x00B0; Default ASM
lis r3, 0xWWWW #Load WWWW value into higher 16 bits of Register 3. Lower 16 bits are cleared.
ori r3, r3, 0xZZZZ #Load ZZZZ value into lower 16 bits of Register 3.
stw r3, 0x00B4 (r31) #Store the word (WWWWZZZZ value) to the address of Register 31 plus offset of 0x00B4
nop #Necessary nop for odd amount of ASM instructions
Code creator: Vega
|
|
|
|