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

Difference between revisions of "Vpad.rpl"

From WiiUBrew
Jump to navigation Jump to search
(→‎Keys: Convert button bitflags into C defines)
Line 106: Line 106:
  
 
== Defines ==
 
== Defines ==
=== Keys ===
+
=== Buttons ===
{| class="wikitable"
+
<syntaxhighlight lang="C">
!Name
+
#define BUTTON_A        0x8000
!Value
+
#define BUTTON_B        0x4000
!Description
+
#define BUTTON_X        0x2000
|-
+
#define BUTTON_Y        0x1000
|KEY_DRC_LEFT
+
#define BUTTON_LEFT    0x0800
|0x0800
+
#define BUTTON_RIGHT    0x0400
|Left d-pad button
+
#define BUTTON_UP      0x0200
|-
+
#define BUTTON_DOWN    0x0100
|KEY_DRC_RIGHT
+
#define BUTTON_ZL      0x0080
|0x0400
+
#define BUTTON_ZR      0x0040
|Right  d-pad button
+
#define BUTTON_L        0x0020
|-
+
#define BUTTON_R        0x0010
|KEY_DRC_UP
+
#define BUTTON_PLUS    0x0008
|0x0200
+
#define BUTTON_MINUS    0x0004
|Upper  d-pad button
+
#define BUTTON_HOME    0x0002
|-
+
#define BUTTON_SYNC    0x0001
|KEY_DRC_DOWN
+
</syntaxhighlight>
|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
 
|}
 

Revision as of 21:52, 9 April 2015

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

Buttons

#define BUTTON_A        0x8000
#define BUTTON_B        0x4000
#define BUTTON_X        0x2000
#define BUTTON_Y        0x1000
#define BUTTON_LEFT     0x0800
#define BUTTON_RIGHT    0x0400
#define BUTTON_UP       0x0200
#define BUTTON_DOWN     0x0100
#define BUTTON_ZL       0x0080
#define BUTTON_ZR       0x0040
#define BUTTON_L        0x0020
#define BUTTON_R        0x0010
#define BUTTON_PLUS     0x0008
#define BUTTON_MINUS    0x0004
#define BUTTON_HOME     0x0002
#define BUTTON_SYNC     0x0001