In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Vpad.rpl

From WiiUBrew
Revision as of 11:59, 9 April 2015 by Filfat (talk | contribs) (→‎Keys)
Jump to navigation Jump to search

This controls communication with the Gamepad, internally called VPAD by this library. It uses the VPADBASE library internally.

Functions

Name Prototype Description
VPADRead int VPADRead(int padnum, void *buffer, int length, int *err); Stores raw controller data in buffer for the specified Gamepad

Structures

VPAD Data

Can be gotten using VPADRead(), length seems to control the max amount of "datasets" to keep. A single dataset containing raw controller data is 0xAC bytes.

Offset Length Description
2 2 Buttons, ABXY, Left, Right, Up, Down in that order (bits)
3 1 Buttons, ZL, ZR, L, R, +, -, Power/Home, Sync in that order (bits)
12 8 Left Joystick, vectors for X and Y
20 8 Right Joystick, vectors for X and Y
Touchscreen Input
82 2 Touchscreen X
84 2 Touchscreen Y
86 2 Flag for if touchscreen is currently being touched (1 = Yes, 0 = No)
88 2 Coordinate validation (0 = All Valid, 1 = Invalid X, 2 = Invalid Y, 3 = Both Invalid)
90 2 Modified Touchscreen X?
92 2 Modified Touchscreen Y?
94 2 Modified Flag for if touchscreen is currently being touched (1 = Yes, 0 = No)?
96 2 Modified Coordinate validation (0 = All Valid, 1 = Invalid X, 2 = Invalid Y, 3 = Both Invalid)?
98 2 Modified Touchscreen X?
100 2 Modified Touchscreen Y?
102 2 Modified Flag for if touchscreen is currently being touched (1 = Yes, 0 = No)?
104 2 Modified Coordinate validation (0 = All Valid, 1 = Invalid X, 2 = Invalid Y, 3 = Both Invalid)?
Other Data
160 1 Something related to volume slider
161 1 Battery related. Charge level? out of 6
163 1 Something related to volume slider(one less than 0xA0)
164 8 Padding?

Defines

Keys

Name Value Description
KEY_DRC_LEFT 0x0800 Left d-pad button
KEY_DRC_RIGHT 0x0400 Right d-pad button
KEY_DRC_UP 0x0200 Upper d-pad button
KEY_DRC_DOWN 0x0100 Bottom d-pad button
KEY_DRC_A 0x8000 A button
KEY_DRC_B 0x4000 B button
KEY_DRC_X 0x2000 X button
KEY_DRC_Y 0x1000 Y button
KEY_DRC_ZL 0x0080 ZL button
KEY_DRC_ZR 0x0040 ZR button
KEY_DRC_L 0x0020 L button
KEY_DRC_R 0x0010 R button
KEY_DRC_PLUS 0x0008 Plus button
KEY_DRC_MINUS 0x0004 Minus button
KEY_DRC_SYNC 0x0001 Sync button
KEY_DRC_HOME 0x0002 Home button