The advantage to using the MASK bits in button activators is that it allows you to also press other buttons at the same time, since they will be masked out (ignored). This is really nice in many cases. I'll give you an example: The Metroid Prime: Hunters "Levitate" code allows you to fly by holding B. If I wanted to fly to the top of the map and snipe enemies, I would just have to hold B until I reached the top, and I wouldn't come down until I released B. Sounds perfect, right? Well, consider if the code was not masking out any other buttons... What happens if I shoot (L or R buttons) while I'm holding B at the top of the map? Well, the activator fails when you press L or R! And then you start to fall. This is because B [~0x0002] != B + R [~0x0102] != B + L [~0x0202] != B + R + L [~0x0302]
If you are checking the pad register for a simple equality, then your activator will fail under this kind of condition (pressing your activator button combination + any other button). The mask feature can effectively solve this problem. This is why I originally suggested the universal activators in that form.
To answer your other question, there has been some recent talk on a related subject:
viewtopic.php?f=17&t=7240 Just read the whole thread.
How do you use a code like that? Well, here's the code:
Code:
Button-Down Activator Enabler
023FE074 012FFF11
E0000000 00000034
E9F00024 E9F02024
E05000B0 E1D212BC
E1800001 E05210B0
E04200B0 E1E00000
E0000001 E1C200B2
E12FFF1E 04000130
027FFF7C 00000000
023FE074 E3520003
Just place that into its own code on your AR. It will give you a new special 16-bit variable at address 0x027FFF7E. This variable records only button-down transitions.
To use it:
Code:
927FFF7E 0000xxxx
For xxxx:
0001: A
0002: B
0004: Select
0008: Start
0010: Right
0020: Left
0040: Up
0080: Down
0100: R
0200: L
0400: X
0800: Y
2000: Debug Button (not available on commercial NDS)
8000: NDS not folded
Now you have an activator that will only trigger once when a button is pressed. The first problem with this code is that you cannot reliably combine multiple buttons. Another problem with this code is that you can't just hold the button to continue firing the activator. (Like holding a key on your keyboard... it won't automagically do that.) I'll fix those problems if someone doesn't get to it before I do.
Anyway, this should solve your immediate problem. Just replace the original universal activator with this one, and remember to turn on the button-down activator enabler as above. Let me know how it works for you.