diff options
Diffstat (limited to 'arm9/lib/include/PAD_pad.h')
-rw-r--r-- | arm9/lib/include/PAD_pad.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/arm9/lib/include/PAD_pad.h b/arm9/lib/include/PAD_pad.h new file mode 100644 index 00000000..0cb8a6f0 --- /dev/null +++ b/arm9/lib/include/PAD_pad.h @@ -0,0 +1,38 @@ +#ifndef NITRO_PAD_PAD_H_ +#define NITRO_PAD_PAD_H_ + + +//================================================================================ +// BUTTONS + +//---- masked value +#define PAD_PLUS_KEY_MASK 0x00f0 // mask : cross keys +#define PAD_BUTTON_MASK 0x2f0f // mask : buttons +#define PAD_DEBUG_BUTTON_MASK 0x2000 // mask : debug button +#define PAD_ALL_MASK 0x2fff // mask : all buttons +#define PAD_RCNTPORT_MASK 0x2c00 // mask : factors ARM7 can read from RCNT register +#define PAD_KEYPORT_MASK 0x03ff // mask : factors ARM7/9 can read from KEY register + +#define PAD_DETECT_FOLD_MASK 0x8000 // mask : folding + +//---- button and key +#define PAD_BUTTON_A 0x0001 // A +#define PAD_BUTTON_B 0x0002 // B +#define PAD_BUTTON_SELECT 0x0004 // SELECT +#define PAD_BUTTON_START 0x0008 // START +#define PAD_KEY_RIGHT 0x0010 // RIGHT of cross key +#define PAD_KEY_LEFT 0x0020 // LEFT of cross key +#define PAD_KEY_UP 0x0040 // UP of cross key +#define PAD_KEY_DOWN 0x0080 // DOWN of cross key +#define PAD_BUTTON_R 0x0100 // R +#define PAD_BUTTON_L 0x0200 // L +#define PAD_BUTTON_X 0x0400 // X +#define PAD_BUTTON_Y 0x0800 // Y +#define PAD_BUTTON_DEBUG 0x2000 // Debug button + +static inline BOOL PAD_DetectFold(void) +{ + return (BOOL)((*(vu16 *)HW_BUTTON_XY_BUF & PAD_DETECT_FOLD_MASK) >> 15); +} + +#endif //NITRO_PAD_PAD_H_ |