pseudo_bitmask!(Physical: u16 {
1u16 << 12 => START,
1u16 << 11 => Y,
1u16 << 10 => X,
1u16 << 09 => B,
1u16 << 08 => A,
1u16 << 06 => L,
1u16 << 05 => R,
1u16 << 04 => Z,
1u16 << 03 => DPAD_UP,
1u16 << 02 => DPAD_DOWN,
1u16 << 01 => DPAD_RIGHT,
1u16 << 00 => DPAD_LEFT,
0u16 => NONE,
});
pseudo_bitmask!(Logical: u32 {
1u32 << 31 => TRIGGER_ANALOG,
1u32 << 23 => CSTICK_RIGHT,
1u32 << 22 => CSTICK_LEFT,
1u32 << 21 => CSTICK_DOWN,
1u32 << 20 => CSTICK_UP,
1u32 << 19 => JOYSTICK_RIGHT,
1u32 << 18 => JOYSTICK_LEFT,
1u32 << 17 => JOYSTICK_DOWN,
1u32 << 16 => JOYSTICK_UP,
1u32 << 12 => START,
1u32 << 11 => Y,
1u32 << 10 => X,
1u32 << 09 => B,
1u32 << 08 => A,
1u32 << 06 => L,
1u32 << 05 => R,
1u32 << 04 => Z,
1u32 << 03 => DPAD_UP,
1u32 << 02 => DPAD_DOWN,
1u32 << 01 => DPAD_RIGHT,
1u32 << 00 => DPAD_LEFT,
0u32 => NONE,
});