That's absolutely right, Gaming Dude. I see an opportunity to actually teach some of you something, here... Here's how to convert a code between regions.
Step 1) First, you'll need to figure out the numerical difference between the addresses of the two regions. That difference will be the same for all codes. I've done this step for you. The difference between the Japanese addresses and the English addresses in THIS game is 0x5840. Notice the prefix "0x". '0x' implies that the number after it is in Hexadecimal, or, uses a Base-16 form of counting. 1-10 would be 1-2-3-4-5-6-7-8-9-A-B-C-D-E-F-10... and so on and so forth.
Step 2) Let's find an Action Replay code we want to convert. For the purposes of this example, I'll be using a PART of the "Press L+R to Have All Cards" code.
94000130 FCFF0000
C0000000 00000092
2211441A 00000063
DC000000 00000004
D2000000 00000000
Step 3) Now, a more difficult part for beginners. Which sections of this code should we be adding 0x5840 to? We'll use a reference of Action Replay code types, located
here. Now, let's look at each individual line...
3a) 94000130 FCFF0000 //This line is what's called a "Button Activator." The following code will ONLY activate while you are pressing L+R. I could go into more details, but we don't need to. The address of this code (located AFTER the first "9"; it's 0x4000130) is universal; the address doesn't point anywhere inside the game, but the DS itself. Therefore, we do not need to convert it. Leave this line as-is.
3b) C0000000 00000092 //The code type is "C". Let's check the reference and look for that code type... Ah! We see that this is code type defines the start of a loop; this code will repeat 0x92 times. As you can see, there is no address in this code. We leave it as-is.
3c) 2211441A 00000063 // Ah HA! If we check our reference for the code type "2" (Do you see a pattern here? The code type is defined by the first 1 or 2 numbers in the code line. Lines that contain an address will usually only contain 1 letter, as that's all that will fit. Thus, the code type is "2"), we see that this is an 8-bit write code. It will write 0x63 to the address 0x211441A. See? An address! We must take out our trusty Windows Calculator, put it in Hex mode, and type in this address. Once we've typed in the address, we will add 0x5840 (remember, we're still in Hex mode) to that address. We end up with 0x2119C5A. So, 0x211441A in the Japanese version is actually 0x2119C5A in the US version. The right side of this code line contains the value to write, not an address, so we leave that side as-is.
3d)DC000000 00000004 //The code type "DC" adds a number to the "offset", which I won't bother explaining to you right now. Basically, if you use this combined with the Loop code, you can save yourself many, many lines of codes. (The offset gets added again and again, and the offset will change the address you write to...) No address is involved with this line. We will leave it as-is.
3e)D2000000 00000000 //This code's type is "D2". It marks the end of a loop, which means once the code sees this type, it will go back and repeat starting at the defined beginning (the code with the type C), and, once the code has looped a certain number of times (in this case 0x92 times), the code will end. This code also clears the offset back to zero, so other codes can be run along with this one without any problems. Again, there is no address here. We leave it as-is.
So, as it turns out, we only had to change one half of a code line. How hard was that? Once you learn how to do it, you can convert many, many codes very quickly.