Do you want to make your own cheat codes? This tutorial will show you how by using an example.
Download these programs:
Steps to setting up your Emucheat
- Extract all files
- Place the EMU folder on the main root of Emucheat, along with the other folders.
Make sure it looks like below
8 bit = 1 bytes
16 bits = 2 bytes
32 bits = 4 bytes
Each byte contains two nibbles or a half a hexadecimal
8 bits = 00
16 bits = 0000
32 bits is 00000000
Understanding the Concept of Codes Even more…
The idea when to use 0 , 1 , 2 is pretty straight forward….
Y – Address, X – Value
1-2 digit value will always be 8 bit – use 2 in front – 22YYYYYY 000000XX
3-4 digit value will always be 16 bit – use 1 in front – 12YYYYYY 0000XXXX
5-8 digit value will always be 32 bit – use 0 in front – 02YYYYYY XXXXXXXX
I’m afraid if you don’t understand this, you will only be able to create basic codes.
The Beginning of Creating Codes – Ninjatown Money Code
- Open up a ROM of “Ninjatown” with No$GBA 2.6A.
- Open up Emucheat, And click on the tab (Emulator Select) at the bottom and select No$GBA.
- Next, go to “Search” and on Search Type select 32bit
- Get into your game of Ninjatown. (Be aware some pics and buttons to not show up on the glitchy No$GBA [Also Press Enter to skip Intro]) Your money should be 140
- Type 140 in the target box and click on the binoculars. There should be around 5000 Addresses
- Next, Buy a Wee Ninja Hut which costs you 40 cookies. Type 100 in the Target box and press on binoculars. There should be around 2 addresses. If not, continue updating building and typing in money amount left until you get 1-3 addresses.
- Double Click on First code. Type 9999 in the value DEX box. You will notice the Value HEX is 270F.
- In Desc. Box, Type in Money or something similar. Untick the Locked box.
- Click OK.
- Go to Table, and you will see your address. This is basically the code, you just have to piece it together.
- You have to put 12 in front of the first part of the code, so it should look similar to this:
- The next part of the code is the 270F. So you have to put 0000 in front of this to add up to eight digits.
- Your code should look like this: 12211F74 0000270F
Testing Your code
Go back into No$GBA
Go Add New, add your code along with the title, click on Action Replay, and ok. Next, double click on the tick box and go ok.. See if your code works
Although, Some codes require an activator. I will talk about these below.
Activators and Codes
To acquire an activator for your code, Its very simple. Just go to R4CCE08. Add your code and at the bottom of the window should be a whole lot of numbers and boxes e.g STA SEL etc..
All you have to do is click on one and then Add.
An Offset is often needed but I will talk about this later
Other Coding Methods
Another example – Ninjatown Infinite Lives/Hearts Code
1. Open up a ROM of Ninjatown on No$gba Emulator 2.6a.
2. Open up EmuCheat, and click on the Emulator Select tab at the bottom. Click on No$gba Emulator 2.6a.
3. Click on “Search” at the top of EmuCheat, and click leave the “Search Type” as 8bit.
4. Start a new game of Ninjatown, and build a Wee Ninja Hut.
5. It will ask you to upgrade the building, so after upgrading, destroy the hut. This ensures that your ninjas do not attack the Devils. You want the devils to escape.
6. Click on the fast forward icon on the Emulator, and click “Pause Emulator” on EmuCheat.
7. Type “10” into the search box on EmuCheat, see how many results you receive. There should be thousands of results.
8. Click “Run Emulator”, and your Emulator will continue. One of the Devils will eventually escape. As soon as it does, click “Pause Emulator”.
9. Enter the new number of Lives, that is, 9.
10. You should receive about 4 results. Double click on the first one. Type 9999 in the value DEX box. The HEX value becomes 270F.
11. The the Desc. Box, type in “Infinite Lives/Hearts”, or whatever you would like it to be called.
12. Untick the Locked box, click OK, and click on “Table”.
13. This brings you to another page, and now you can piece together your code.
14. Click on Utility, type in the first part, with “02” at the start.
15. Hit the space bar, and type 270F, with “0000” at the start to sum up to 8 digits.
16. After clicking on the words “Action Replay DS” and OK, double click on your cheat and it should become ticked.
17. Click OK.
18. Your cheat is complete. You should now have infinite lives.
Another Example – Enchanted Folk and the School of Wizardry (E)
Speed Modifying Code Tutorial
1. Open no$gba and select Enchanted Folk. Also, open up EmuCheat and click the tab at the bottom and link it to no$gba.
2. Click on Options>Controls Setup and make the key B into a key close to the arrow keys on the keyboard. This will be explained later.
3. Click the Search tab on EmuCheat and we can now begin making the code.
4. First, walk right using your left hand, then use your right hand to click Pause Emulator on EmuCheat. Make sure your character is paused while he’s walking, or this won’t work.
5. Type ? into the Target box, and press enter.
6. Now unpause the emulator, but keep walking. Now pause it again, while the character’s still walking, and type = into the Target box.
7. Unpause, and hold B while walking to run. Do both of these with the same hand, and click Pause with the other hand while the character is running. Make sure you character is paused while running, or this won’t work
8. Now type ! into the Target box. This finds any values that have changed since the last time you pressed Enter.
9. Unpause the game, and go back to walking rather than running. Pause, and type ! into the Target box.
10. Keep repeating the above steps until you only have about 6-8 results. From there, start testing every code in this format:
XXXXXXXX 00000014 <—— X = the code, 00000014 = the speed you want. (for those who understand hexadecimal, 14 = 20)
When you’ve found the correct code, your character will move at an uncontrollable speed. You might even fly through the wall, so this is the best way to find out whether the code works. Now just lower the speed of the code somewhere between 7-9.
The code should be: 2236A485 00000007
However, there’s a chance that you could find a better code than this one; post it up and let us try it out.
Also, try the above code outdoors; it doesn’t work. So repeat all the above steps while you’re outside to make a new code, one for indoors and one for outdoors.
ANOTHER EXAMPLE – POINTER
Here is a pointer example. The game that we will be using for this example will be Giana Sisters DS. What we will be doing here is that we will fill the “Red Crystals” that we currently have, to their total ( the total crystals address), without overfilling. Of course, we could just find the current crystals address and input 999, but that would look weird (999/3 etc.).
First off, we will need to; find the addresses of the current and total crystals. Open up EMUCheat or whatever you use
For the current address, you can simply input the number of crystals you currently have collected, and then collect more and search again etc. for example; if you have 1 crystal, search 1, when you get another, search 2, and so on, until you only get a few addresses, and then test them. If you did it correctly, you should have come up with (02)0A3012. For the total, you can just get onto a level, search the total number of crystals you need (3 etc.), jump onto another level with a higher or lower total (2 etc.) and search that, and then repeat until you get a few addresses. Alternatively, you could have just looked at the addresses when you were looking for the current crystals variable, and just changed one of them to change the total variable (which means they are right beside each other in memory). You should have come up with (02)0A3010.
Now that we’ve found those, we will start to build the code.
We need to set the offset value to our total crystals address, which means we will use the D3 code type. This will set the total crystals address as the internal “pointer” register.
D3000000 XXXXXXXX , XX being the address.
Next, we will need to copy memory (bytes), using the 0F code type, which works in conjunction with the code types (D3, DC or B) to set the offset beforehand. Doing this will copy the bytes specified, from the internal pointer register (0A3010 or the first line) to our current crystals address (0A3012).
FXXXXXXX YYYYYYYY , XX being the address (current crystals), and YY being the number of bytes to copy. We’ll do only 1 byte, so 00000001.
And then, we finish off with the terminator D2000000 00000000, which clears AR’s internal registers. If you followed correctly, the code should be:
This means that it will copy only the total to the current variable, no more, no less. Test that out on hardware. Remember that no$gba isn’t a proper AR, so it will not work there (will bring up a ?)