Vpad.rpl: Difference between revisions

From WiiUBrew
Jump to navigation Jump to search
Filfat (talk | contribs)
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 20: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