Here's a quick guide on how to make AR codes for tags. I won't explain some stuff (like hex counting) and won't be organized. Feel free to make a friendlier guide, anyone.
Template:
04XXXXXX AAAAAAAA
04YYYYYY BBBBBBBB
XXXXXX is the first address without the 80 or 81 that's at the beginning.
YYYYYY is the same except for the second address.
AAAAAAAA and BBBBBBBB are the number values of the in-game characters (letters/numbers/symbols) squished together.
04 is the AR code type for 32-bit write. This is used to overwrite values in the memory. I believe it's the same for Gecko/Ocarina/WiiRD so the same code should work for that.
Here's an example:
I want my first tag to be aaaabbbb.
I would find the memory address for the first tag (8045d850). Take out the first two numbers (In this case it's 80, but it can also be 81).
That leaves me with 45d850.
You add 04 where the 80 was, because that tells action replay to write to that address.
0445d850
But it's missing the second half, what action replay writes to that address.
0445d850 ????????
So the values for a and b are 41 and 42. That would make it 41 41 41 41 42 42 42 42.
Squish them all together and try to fit as much as I can into the eight spots in the first address:
I can only put in 41414141 (aaaa) into the first address.
0445d850 41414141
I put what's left in the second address (just add 4 to the first address (in hex) to get the second).
0445d854 42424242
It fits perfectly, 8 numbers in each address (that's the maximum for this).
0445d850 41414141
0445d854 42424242
This would change the first tag to aaaabbbb. (These are all two-number character values. 41 = lowercase a, 42 = lowercase b, You can find more values (2-number and 4-number) scattered in posts on the last pages)
Using two-number character values allows for more characters to be stored in the memory addresses.
If I only wanted it to be aaabbb, I would have
0445d850 41414142
0445d854 42420000
Whatever spots are left extra, you add a 0 there. Each half of a line has to have 8 numbers/letters. No more, no less.
Name tag memory addresses (without the 80) for 1.02:
First tag
45d850
45d854
Second
45d9f4
45d9f8
Third
45db98
45db9c
Fourth
45dd3c
45dd40
Name tag memory addresses for 1.00:
First:
45b888
45b88c
If you want to find more, you can use this hex calculation:
First address: 45d850 + (1a4 * x)
Second address: First Address + 4
'x' being the placement of the name tag minus one (First name tag would be 0, second would be 1, third would be 2, etc)
The second memory address is always the one after the first (+4).
If there's something missing or wrong, tell me. If you have any questions, ask.