DS Ultimate banner

Action Replay Basic Code Guide by Crazasta

Thanks for reading my code guide, this explains what some of the different addresses and values of the wonderful world of Action Replay DS and Trainer Toolkit do. Notice: Things in {} markings are things you must pay attention to.


220DAB48 = This is the address for what the code actually does, the main part of the code. Please note, the above address is an example from Rapid Fire(below), you use different addresses for different codes. Putting this in... For example, some sort of "Warp Code" might not work, it depends on which game it is and whether or not the address number for levels in said game is the same address number for the rate of fire on MPH.

Example: {220DAB48} 000000FF = The address for rate of fire on Metroid Prime: Hunters with a value that speeds it up thrown in, making the “Rapid Fire” part of the code work.

000000FF = The ALL-IMPORTANT value, addresses are useless without them. Values cause the addresses to take action rather than sit there as an extra number in the code. Values use hex numbers, so don’t just type random digits in the line thinking it will be BIG AND AWESUM. FFFF = big number, type a lot of F’s to make a big value. Different values do different things depending on the address. Typing a value with a certain address might indicate a level number, or another address... just something like rate of fire. If used as a value for an activator, instead of {000000FF}, you should forget the F’s and put the value of the button you want in the back of the value line, an example of button value is: {FFFE0000} which is the value for the button A. Making activators will be explained further later.


Hexadecimal Chart (Thanks to Datel’s booklet that came with the Trainer Toolkit.)

DecimalHexadecimal (Hex Number)
0
  • 10
  • 15
  • 20
  • 30
  • 40
  • 50
  • 99
  • 100
  • 200
  • 300
  • 400
  • 500
  • 999
  • 1,000
  • 9,999
  • 10,000
  • 99,999
  • 100,000
  • 1,000,000
  • A
  • F
  • 14
  • 1E
  • 28
  • 32
  • 63
  • 64
  • C8
  • 12C
  • 190
  • 1F4
  • 3E7
  • 3E8
  • 270F
  • 2710
  • 1869F
  • 186A0
  • F4240

520D9CB8 OR 020D9CB8 = This address specifies which player the code activates for. The player number is to be put at the end of the value line, and needs to be in hex. I have no idea why some use 020 instead of 520, but either one should be used on one game while another should be used for a different game, or they just do the same thing and it doesn’t matter.

Example: {520D9CB8 00000001} = Specifies Player 2. (MPH example)

94000130 = The address that assigns activators, put a button value in to make the code activate when pressing the assigned button. To add activators simply place the wanted one in the very first line of the code. Not using an activator will just make it so the code is activated at the beginning of the game without any interaction. Some codes require activators because without them the code would only work once, thus activators are a vital part in codes. Example: {94000130 FBFF0000} = Makes it so the code will activate when the X button is pushed.

Activator Values.... (Thanks to Kodewerx Enhacklopedia for revealing Debug Button and NDS Not Folded to me.)



Known Combinator Values

To make deactivators, which basically turn off the already activated code, you must finish all the activator and all the addresses that make the code. Then, after that’s done, add a basic activator line with the wanted button value, {94000130 FFFE0000}, copy the changed addresses and values, put them under the deactivator you just made. Only this time, change the values back to their original state as if you were playing normally, basically making a “deactivator.” An example of this would be the “X for Double Damage, Y to remove” code from Metroid Prime: Hunters:

{94000130 FBFF0000} = Activates the code when the X button is pressed.
520D9CB8 00000000
020DABC4 0000FFFF
D0000000 00000000
520D9CB8 00000001
020DBAF4 0000FFFF
D0000000 00000000
520D9CB8 00000002
020DCA24 0000FFFF
D0000000 00000000
520D9CB8 00000003
020DD954 0000FFFF
D2000000 00000000
{94000130 F7FF0000} = Deactivates the code when the Y button is pressed.
520D9CB8 00000000
{020DABC4 00000000} = Same address as above yet changed back to normal.
D0000000 00000000

{D2000000 00000000} = You may notice some codes have this at the very end of them. This part of the code should be put at the end because activating some codes without these lines... will cause multiple codes activated to clash with each other, keeping them from working or making them crash the game. Basically a safety address. No value should be put after the address, just zeroes. (Thanks to Nintendudect from DSUltimate for explaining D2000000 to me)

A dissected code to show what does what (Rapid Fire from Metroid Prime: Hunters):

{520D9CB8 00000000} = Specifies Player 1
{220DAB48 000000FF} = Address+Value for weapon speed, making it cause "Rapid Fire."
{D0000000 00000000} = Not sure about this part, possibly another type of address that prevents clashing or prevents the following player from gaining the ability when the cheat is activated.
{520D9CB8 00000001} = Specifies Player 2
220DBA78 000000FF
D0000000 00000000
{520D9CB8 00000002} = Specifies Player 3
220DC9A8 000000FF
D0000000 00000000
{520d9cb8 00000003} = Specifies Player 4
220DD8D8 000000FF
{D2000000 00000000} = Safety Anti-Clash Address

An activator+deactivator however are not in the Rapid Fire code, if it was, the code would look like this:
{94000130 FFFE0000} = Assigns button A as the activator for the following code.
{520D9CB8 00000000} = Specifies Player 1
{220DAB48 000001F4} = Address+Value for weapon speed, making it cause "Rapid Fire."
{D0000000 00000000} = End-if instruction.
{520D9CB8 00000001} = Specifies Player 2
220DBA78 000001F4
D0000000 00000000
{520D9CB8 00000002} = Specifies Player 3
220DC9A8 000001F4
D0000000 00000000
{520d9cb8 00000003} = Specifies Player 4
220DD8D8 000001F4
{D2000000 00000000} = Safety Anti-Clash Address
{94000130 FFFD0000} = Assigns button B to switch the values back to their original state, being the following lines.
{520D9CB8 00000000} = Specifies Player 1
{220DAB48 00000000} = Address+Value for weapon speed, changed to its original state. (Unless I’m mistaken)
D0000000 00000000

I am unsure what an activator and/or deactivator would do to the Rapid Fire code, though.

Guide by Crazasta of DS Ultimate forums