Difference between revisions of "Padscore.rpl"
Jump to navigation
Jump to search
Marionumber1 (talk | contribs) (padscore.rpl is likely optional for the application) |
NWPlayer123 (talk | contribs) (Wiimote Data) |
||
Line 16: | Line 16: | ||
===Wii Remote Data=== | ===Wii Remote Data=== | ||
Can be gotten using WPADRead(). | Can be gotten using WPADRead(). | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Name | ||
+ | !Prototype | ||
+ | |- | ||
+ | |WPADStatus | ||
+ | | | ||
+ | <syntaxhighlight lang="C"> | ||
+ | #define WPAD_BUTTON_LEFT 0x0001 | ||
+ | #define WPAD_BUTTON_RIGHT 0x0002 | ||
+ | #define WPAD_BUTTON_DOWN 0x0004 | ||
+ | #define WPAD_BUTTON_UP 0x0008 | ||
+ | #define WPAD_BUTTON_PLUS 0x0010 | ||
+ | #define WPAD_BUTTON_2 0x0100 | ||
+ | #define WPAD_BUTTON_1 0x0200 | ||
+ | #define WPAD_BUTTON_B 0x0400 | ||
+ | #define WPAD_BUTTON_A 0x0800 | ||
+ | #define WPAD_BUTTON_MINUS 0x1000 | ||
+ | #define WPAD_BUTTON_Z 0x2000 | ||
+ | #define WPAD_BUTTON_C 0x4000 | ||
+ | #define WPAD_BUTTON_HOME 0x8000 | ||
+ | |||
+ | #define WPAD_EXT_CORE 0 | ||
+ | #define WPAD_EXT_NUNCHUK 1 | ||
+ | #define WPAD_EXT_CLASSIC 2 | ||
+ | #define WPAD_EXT_MPLUS 5 | ||
+ | #define WPAD_EXT_MPLUS_NUNCHUK 6 | ||
+ | #define WPAD_EXT_MPLUS_CLASSIC 7 | ||
+ | |||
+ | typedef struct { | ||
+ | uint16 x; /* Resolution is 1024 */ | ||
+ | uint16 y; /* Resolution is 768 */ | ||
+ | uint16 size; | ||
+ | uint8 ID; | ||
+ | uint8 pad; | ||
+ | } IRObject; | ||
+ | |||
+ | typedef struct { | ||
+ | uint16 buttons; /* See WPAD_BUTTON */ | ||
+ | uint16 accelX; /* Resolution is 1024 */ | ||
+ | uint16 accelY; /* Resolution is 1024 */ | ||
+ | uint16 accelZ; /* Resolution is 1024 */ | ||
+ | IRObject IR[4]; /* Max number of objects */ | ||
+ | uint8 ext; /* Extension, see WPAD_EXT */ | ||
+ | uint8 err; /* Error codes */ | ||
+ | } WPADStatus; /* Normal Wiimote */ | ||
+ | |||
+ | typedef struct { | ||
+ | uint16 buttons; /* See WPAD_BUTTON */ | ||
+ | uint16 accelX; /* Resolution is 1024 */ | ||
+ | uint16 accelY; /* Resolution is 1024 */ | ||
+ | uint16 accelZ; /* Resolution is 1024 */ | ||
+ | IRObject IR[4]; /* Max number of objects */ | ||
+ | uint8 ext; /* Extension, see WPAD_EXT */ | ||
+ | uint8 err; /* Error codes */ | ||
+ | uint16 ncAccX; /* Resolution is 1024 */ | ||
+ | uint16 ncAccY; /* Resolution is 1024 */ | ||
+ | uint16 ncAccZ; /* Resolution is 1024 */ | ||
+ | uint16 ncStickX; /* Resolution is 256 */ | ||
+ | uint16 ncStickY; /* Resolution is 256 */ | ||
+ | } WPADNCStatus; /* Nunchuk extension */ | ||
+ | |||
+ | typedef struct { | ||
+ | uint16 buttons; /* See WPAD_BUTTON */ | ||
+ | uint16 accelX; /* Resolution is 1024 */ | ||
+ | uint16 accelY; /* Resolution is 1024 */ | ||
+ | uint16 accelZ; /* Resolution is 1024 */ | ||
+ | IRObject IR[4]; /* Max number of objects */ | ||
+ | uint8 ext; /* Extension, see WPAD_EXT */ | ||
+ | uint8 err; /* Error codes */ | ||
+ | uint16 pad[6]; /* Padding, Classic/Nunchuk? */ | ||
+ | uint8 status; /* WiiMotionPlus */ | ||
+ | uint8 reserved; | ||
+ | uint16 pitch; /* WiiMotionPlus */ | ||
+ | uint16 yaw; /* WiiMotionPlus */ | ||
+ | uint16 roll; /* WiiMotionPlus */ | ||
+ | } WPADMPStatus; /* WiiMotionPlus */ | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |} |
Revision as of 19:49, 5 April 2015
This library handles communication with controllers other than the Gamepad. It includes functions for the Wii Remote (WPAD), the Wii Balance Board (WBC), and a higher-level abstraction (KPAD). Unlike vpad.rpl for the Gamepad, this library appears to be optional, being loaded much closer to the application binary.
Functions
Wii Remote
Name | Prototype | Description |
---|---|---|
WPADRead | int WPADRead(int chan, void *buffer); | Stores raw controller data for the specified Wii Remote in buffer |
Structures
Wii Remote Data
Can be gotten using WPADRead().
Name | Prototype |
---|---|
WPADStatus |
#define WPAD_BUTTON_LEFT 0x0001
#define WPAD_BUTTON_RIGHT 0x0002
#define WPAD_BUTTON_DOWN 0x0004
#define WPAD_BUTTON_UP 0x0008
#define WPAD_BUTTON_PLUS 0x0010
#define WPAD_BUTTON_2 0x0100
#define WPAD_BUTTON_1 0x0200
#define WPAD_BUTTON_B 0x0400
#define WPAD_BUTTON_A 0x0800
#define WPAD_BUTTON_MINUS 0x1000
#define WPAD_BUTTON_Z 0x2000
#define WPAD_BUTTON_C 0x4000
#define WPAD_BUTTON_HOME 0x8000
#define WPAD_EXT_CORE 0
#define WPAD_EXT_NUNCHUK 1
#define WPAD_EXT_CLASSIC 2
#define WPAD_EXT_MPLUS 5
#define WPAD_EXT_MPLUS_NUNCHUK 6
#define WPAD_EXT_MPLUS_CLASSIC 7
typedef struct {
uint16 x; /* Resolution is 1024 */
uint16 y; /* Resolution is 768 */
uint16 size;
uint8 ID;
uint8 pad;
} IRObject;
typedef struct {
uint16 buttons; /* See WPAD_BUTTON */
uint16 accelX; /* Resolution is 1024 */
uint16 accelY; /* Resolution is 1024 */
uint16 accelZ; /* Resolution is 1024 */
IRObject IR[4]; /* Max number of objects */
uint8 ext; /* Extension, see WPAD_EXT */
uint8 err; /* Error codes */
} WPADStatus; /* Normal Wiimote */
typedef struct {
uint16 buttons; /* See WPAD_BUTTON */
uint16 accelX; /* Resolution is 1024 */
uint16 accelY; /* Resolution is 1024 */
uint16 accelZ; /* Resolution is 1024 */
IRObject IR[4]; /* Max number of objects */
uint8 ext; /* Extension, see WPAD_EXT */
uint8 err; /* Error codes */
uint16 ncAccX; /* Resolution is 1024 */
uint16 ncAccY; /* Resolution is 1024 */
uint16 ncAccZ; /* Resolution is 1024 */
uint16 ncStickX; /* Resolution is 256 */
uint16 ncStickY; /* Resolution is 256 */
} WPADNCStatus; /* Nunchuk extension */
typedef struct {
uint16 buttons; /* See WPAD_BUTTON */
uint16 accelX; /* Resolution is 1024 */
uint16 accelY; /* Resolution is 1024 */
uint16 accelZ; /* Resolution is 1024 */
IRObject IR[4]; /* Max number of objects */
uint8 ext; /* Extension, see WPAD_EXT */
uint8 err; /* Error codes */
uint16 pad[6]; /* Padding, Classic/Nunchuk? */
uint8 status; /* WiiMotionPlus */
uint8 reserved;
uint16 pitch; /* WiiMotionPlus */
uint16 yaw; /* WiiMotionPlus */
uint16 roll; /* WiiMotionPlus */
} WPADMPStatus; /* WiiMotionPlus */ |