NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
WPADHIDParser.h
1
#ifndef RVL_SDK_WPAD_HID_PARSER_H
2
#define RVL_SDK_WPAD_HID_PARSER_H
3
#include <types.h>
4
#ifdef __cplusplus
5
extern
"C"
{
6
#endif
7
8
#define RPT_REPORT_ID 0
9
#define RPT_MAX_SIZE 21
10
11
// Limits
12
#define RPTID_OUT_LO RPTID_SET_RUMBLE
13
#define RPTID_OUT_HI RPTID_SET_DPD_CSB
14
15
#define RPTID_IN_LO RPTID_STATUS
16
#define RPTID_IN_HI RPTID_DATA_BTN_ACC_DPD18_2
17
18
// All outgoing reports
19
#define RPT_OUT_FLAGS 1
20
21
#define RPT_OUT_FLAG_ENABLE_FEATURE 2
22
#define RPT_OUT_FLAG_REQUEST_ACK_RPT 1
23
#define RPT_OUT_FLAG_RUMBLE 0
24
25
// All incoming reports with Button data (all except 0x3d)
26
#define RPT_BTN0 1
27
#define RPT_BTN1 2
28
29
// All incoming reports with Accelerometer (Standard) data (0x31, 0x33, 0x35,
30
// 0x37)
31
#define RPT_ACC_OFFSET 1
32
#define RPT_ACC_SIZE 3
33
34
/**
35
*
36
* Outgoing reports (from POV of the host)
37
*
38
*/
39
// Report 0x10: Set rumble status
40
#define RPTID_SET_RUMBLE 0x10
41
#define RPT10_SIZE 1
42
43
#define RPT10_RUMBLE 0
44
45
// Report 0x11: Set LED lights
46
#define RPTID_SET_PORT 0x11
// internally called SetPort
47
#define RPT11_SIZE 1
48
49
#define RPT11_LED 0
50
51
// Report 0x12: Set data reporting mode
52
#define RPTID_SET_DATA_REPORT_MODE 0x12
53
#define RPT12_SIZE 2
54
55
#define RPT12_CONT_REPORT 0
56
#define RPT12_DATA_REPORT_MODE 1
57
58
// Report 0x13: Enable IR camera
59
#define RPTID_ENABLE_DPD 0x13
// internally called the DPD
60
#define RPT13_SIZE 1
61
62
#define RPT13_DPD_ENABLE 0
63
64
// Report 0x14: Enable IR camera
65
#define RPTID_ENABLE_SPEAKER 0x14
66
#define RPT14_SIZE 1
67
68
#define RPT14_SPEAKER_ENABLE 0
69
70
// Report 0x15: Request status report
71
#define RPTID_REQUEST_STATUS 0x15
72
#define RPT15_SIZE 1
73
74
// Report 0x16: Write data
75
#define RPTID_WRITE_DATA 0x16
76
#define RPT16_SIZE RPT_MAX_SIZE
77
78
#define RPT16_DATA_DST_ADDRESS 0
79
#define RPT16_DATA_LENGTH 4
80
#define RPT16_DATA 5
81
82
// Report 0x17: Read data
83
#define RPTID_READ_DATA 0x17
84
#define RPT17_SIZE 6
85
86
#define RPT17_DATA_SRC_ADDRESS 0
87
#define RPT17_DATA_LENGTH 4
88
89
// Report 0x18: Send speaker data
90
#define RPTID_SEND_SPEAKER_DATA 0x18
91
#define RPT18_SIZE RPT_MAX_SIZE
92
93
#define RPT18_DATA_LENGTH 0
94
#define RPT18_DATA 1
95
96
// Report 0x19: Mute speaker
97
#define RPTID_MUTE_SPEAKER 0x19
98
#define RPT19_SIZE 1
99
100
#define RPT19_SPEAKER_MUTE 0
101
102
// Report 0x1A: WPADiSendDPDCSB (?)
103
#define RPTID_SEND_DPD_CSB 0x1A
104
#define RPT1A_SIZE 1
105
106
#define RPT1A_DPD_CSB 0
107
108
/**
109
*
110
* Incoming reports (from POV of the host)
111
*
112
*/
113
// Report 0x20: Status report
114
#define RPTID_STATUS 0x20
115
#define RPT20_FLAGS 3
116
#define RPT20_PROTO_FW 5
117
#define RPT20_BATTERY 6
118
119
// Report 0x21: Read Wiimote data
120
#define RPTID_DATA_READ 0x21
121
#define RPT21_SIZE_ERR 3
122
#define RPT21_ADDR0 4
123
#define RPT21_ADDR1 5
124
#define RPT21_DATA 6
125
126
// Report 0x22: Acknowledgement and request result
127
#define RPTID_ACK 0x22
128
#define RPT22_ACKED_RPT_ID 3
129
#define RPT22_ERR_CODE 4
130
131
// Reports 0x23-0x2F: Unused
132
133
// Report 0x30: Buttons
134
#define RPTID_DATA_BTN 0x30
135
136
// Report 0x31: Buttons, Accelerometer (Standard)
137
#define RPTID_DATA_BTN_ACC 0x31
138
139
// Report 0x32: Buttons, Extension (8 bytes)
140
#define RPTID_DATA_BTN_EXT8 0x32
141
#define RPT32_EXT_OFFSET 3
142
#define RPT32_EXT_LENGTH 8
143
144
/**
145
* Report 0x33: Buttons, Accelerometer (Standard), IR Camera (Standard, 12
146
* bytes)
147
*/
148
#define RPTID_DATA_BTN_ACC_DPD12 0x33
149
#define RPT33_DPD_OFFSET 6
150
#define RPT33_DPD_LENGTH 12
151
152
// Report 0x34: Buttons, Extension (19 bytes)
153
#define RPTID_DATA_BTN_EXT19 0x34
154
#define RPT34_EXT_OFFSET 3
155
#define RPT34_EXT_LENGTH 19
156
157
// Report 0x35: Buttons, Accelerometer (Standard), Extension (16 bytes)
158
#define RPTID_DATA_BTN_ACC_EXT16 0x35
159
#define RPT35_EXT_OFFSET 6
160
#define RPT35_EXT_LENGTH 16
161
162
// Report 0x36: Buttons, IR Camera (Basic, 10 bytes), Extension (9 bytes)
163
#define RPTID_DATA_BTN_DPD10_EXT9 0x36
164
#define RPT36_DPD_OFFSET 3
165
#define RPT36_DPD_LENGTH 10
166
#define RPT36_EXT_OFFSET 13
167
#define RPT36_EXT_LENGTH 9
168
169
/**
170
* Report 0x37: Buttons, Accelerometer (Standard), IR Camera (Basic, 10 bytes),
171
* Extension (6 bytes)
172
*/
173
#define RPTID_DATA_BTN_ACC_DPD10_EXT9 0x37
174
#define RPT37_DPD_OFFSET 6
175
#define RPT37_DPD_LENGTH 10
176
#define RPT37_EXT_OFFSET 16
177
#define RPT37_EXT_LENGTH 6
178
179
// Report 0x38-0x3C: Unused
180
181
// Report 0x3D: Extension (21 bytes)
182
#define RPTID_DATA_EXT21 0x3D
183
#define RPT3D_EXT_OFFSET 1
184
#define RPT3D_EXT_LENGTH 21
185
186
/**
187
* Report 0x3E: Buttons, Accelerometer (Interleaved 1), IR Camera (Full 1, 18
188
* bytes)
189
*/
190
#define RPTID_DATA_BTN_ACC_DPD18_1 0x3E
191
#define RPT3E_DPD0 0
192
#define RPT3E_DPD0_OFFSET 4
193
#define RPT3E_DPD1 1
194
#define RPT3E_DPD1_OFFSET 13
195
196
/**
197
* Report 0x3F: Buttons, Accelerometer (Interleaved 2), IR Camera (Full 2, 18
198
* bytes)
199
*/
200
#define RPTID_DATA_BTN_ACC_DPD18_2 0x3F
201
#define RPT3F_DPD2 2
202
#define RPT3F_DPD2_OFFSET 4
203
#define RPT3F_DPD3 3
204
#define RPT3F_DPD3_OFFSET 13
205
206
s32 WPADiHIDParser(u8 port, u8* p_rpt);
207
208
#ifdef __cplusplus
209
}
210
#endif
211
#endif
include
lib
revolution
WPAD
WPADHIDParser.h
Made with ❤️ by
CLF78
and
RootCubed
. Logos by
Chasical
and
B1
. Website generated by
Doxygen
1.13.2