-
Notifications
You must be signed in to change notification settings - Fork 0
/
ringfit_megaman_squatbuster.gpc
218 lines (176 loc) · 5.29 KB
/
ringfit_megaman_squatbuster.gpc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
#pragma METAINFO("github.com/Minyus/RingFit_MegaMan", 2, 00, "Yusuke Minami")
/*
Ring Fit Mega Man Version 2: Squat for Buster
https://github.com/Minyus/RingFit_MegaMan
*/
/*
References:
https://www.consoletuner.com/wiki/index.php?id=t2:gpc_scripting
https://www.consoletuner.com/wiki/index.php?id=t2:gpc_scripting:examples_1
https://www.consoletuner.com/wiki/index.php?id=t2:switch_gph
*/
#ifndef SWITCH_GPH_
#define SWITCH_GPH_
#define SWITCH_HOME BUTTON_1
#define SWITCH_MINUS BUTTON_2
#define SWITCH_PLUS BUTTON_3
#define SWITCH_R BUTTON_4
#define SWITCH_ZR BUTTON_5
#define SWITCH_RS BUTTON_6
#define SWITCH_L BUTTON_7
#define SWITCH_ZL BUTTON_8
#define SWITCH_LS BUTTON_9
#define SWITCH_UP BUTTON_10
#define SWITCH_DOWN BUTTON_11
#define SWITCH_LEFT BUTTON_12
#define SWITCH_RIGHT BUTTON_13
#define SWITCH_X BUTTON_14
#define SWITCH_A BUTTON_15
#define SWITCH_B BUTTON_16
#define SWITCH_Y BUTTON_17
#define SWITCH_CAPTURE BUTTON_18
#define SWITCH_SL BUTTON_19
#define SWITCH_SR BUTTON_20
#define SWITCH_RX STICK_1_X
#define SWITCH_RY STICK_1_Y
#define SWITCH_LX STICK_2_X
#define SWITCH_LY STICK_2_Y
#define SWITCH_ACCX ACCEL_1_X
#define SWITCH_ACCY ACCEL_1_Y
#define SWITCH_ACCZ ACCEL_1_Z
#define SWITCH_JOYACCX ACCEL_2_X
#define SWITCH_JOYACCY ACCEL_2_Y
#define SWITCH_JOYACCZ ACCEL_2_Z
#define SWITCH_GYROX GYRO_1_X
#define SWITCH_GYROY GYRO_1_Y
#define SWITCH_GYROZ GYRO_1_Z
#endif /* SWITCH_GPH_ */
char SQUAT_TRIGGERING_BUTTON;
fix32 SQUAT_TRIGGERING_VALUE;
char LEFT_TRIGGERING_BUTTON;
fix32 LEFT_TRIGGERING_VALUE;
char RIGHT_TRIGGERING_BUTTON;
fix32 RIGHT_TRIGGERING_VALUE;
char UP_TRIGGERING_BUTTON;
fix32 UP_TRIGGERING_VALUE;
char DOWN_TRIGGERING_BUTTON;
fix32 DOWN_TRIGGERING_VALUE;
fix32 SQUAT_THRESHOLD;
fix32 RIGHT_THRESHOLD;
fix32 LEFT_THRESHOLD;
fix32 LEFT_TO_RIGHT_THRESHOLD;
fix32 RIGHT_TO_LEFT_THRESHOLD;
fix32 UP_THRESHOLD;
fix32 DOWN_THRESHOLD;
char SHORTCUT_TRIGGERING_BUTTON1;
fix32 SHORTCUT_TRIGGERING_VALUE1;
char SHORTCUT_TRIGGERING_BUTTON2;
fix32 SHORTCUT_TRIGGERING_VALUE2;
char SHORTCUT_SOURCE;
fix32 SHORTCUT_THRESHOLD;
/**/
init {
SQUAT_TRIGGERING_BUTTON = SWITCH_Y;
SQUAT_TRIGGERING_VALUE = 100.0;
LEFT_TRIGGERING_BUTTON = SWITCH_LX;
LEFT_TRIGGERING_VALUE = -100.0;
RIGHT_TRIGGERING_BUTTON = SWITCH_LX;
RIGHT_TRIGGERING_VALUE = 100.0;
UP_TRIGGERING_BUTTON = SWITCH_LY;
UP_TRIGGERING_VALUE = -100.0;
DOWN_TRIGGERING_BUTTON = SWITCH_LY;
DOWN_TRIGGERING_VALUE = 100.0;
SQUAT_THRESHOLD = 0.0;
LEFT_THRESHOLD = -9.0;
RIGHT_THRESHOLD = 9.0;
LEFT_TO_RIGHT_THRESHOLD = 0.0;
RIGHT_TO_LEFT_THRESHOLD = 0.0;
UP_THRESHOLD = 5.0;
DOWN_THRESHOLD = -10.0;
SHORTCUT_TRIGGERING_BUTTON1 = DOWN_TRIGGERING_BUTTON;
SHORTCUT_TRIGGERING_VALUE1 = DOWN_TRIGGERING_VALUE;
SHORTCUT_TRIGGERING_BUTTON2 = SWITCH_A;
SHORTCUT_TRIGGERING_VALUE2 = 100.0;
SHORTCUT_SOURCE = SWITCH_X;
SHORTCUT_THRESHOLD = 50.0;
}
main {
if(get_val(SWITCH_JOYACCY) > RIGHT_THRESHOLD)
{
set_val(RIGHT_TRIGGERING_BUTTON, RIGHT_TRIGGERING_VALUE); /* Stick right */
}
if(get_val(SWITCH_JOYACCY) < LEFT_THRESHOLD)
{
// Stick_2_X = -100 -> Stick_2 Left
set_val(LEFT_TRIGGERING_BUTTON, LEFT_TRIGGERING_VALUE); /* Stick left */
}
if(
(get_prev(SWITCH_JOYACCY) < LEFT_TO_RIGHT_THRESHOLD) &&
(get_val(SWITCH_JOYACCY) >= LEFT_TO_RIGHT_THRESHOLD)
)
{
combo_run(LeftToRight);
}
if(
(get_prev(SWITCH_JOYACCY) >= RIGHT_TO_LEFT_THRESHOLD) &&
(get_val(SWITCH_JOYACCY) < RIGHT_TO_LEFT_THRESHOLD)
)
{
combo_run(RightToLeft);
}
if(get_val(SWITCH_JOYACCZ) >= UP_THRESHOLD)
{
set_val(UP_TRIGGERING_BUTTON, UP_TRIGGERING_VALUE); /* Stick Up */
}
if(get_val(SWITCH_JOYACCZ) < DOWN_THRESHOLD)
{
set_val(DOWN_TRIGGERING_BUTTON, DOWN_TRIGGERING_VALUE); /* Stick Down */
}
// Disable buttons covered by leg strap
set_val(SWITCH_UP, 0.00);
set_val(SWITCH_DOWN, 0.00);
set_val(SWITCH_LEFT, 0.00);
set_val(SWITCH_RIGHT, 0.00);
// Allow using the stick on Right Joy-Con by rotating 90 degrees
if((get_actual(SWITCH_RX) < -50.00) || (get_actual(SWITCH_RX) > 50.00))
{
set_val(SWITCH_LY, get_actual(SWITCH_RX));
}
if((get_actual(SWITCH_RY) < -50.00) || (get_actual(SWITCH_RY) > 50.00))
{
set_val(SWITCH_LX, -1.00 * get_actual(SWITCH_RY));
}
set_val(SWITCH_RX, 0.00);
set_val(SWITCH_RY, 0.00);
// Allow using buttons on Right JoyCon by rotating 90 degrees
set_val(SWITCH_X, get_actual(SWITCH_Y));
set_val(SWITCH_Y, get_actual(SWITCH_B));
set_val(SWITCH_B, get_actual(SWITCH_A));
set_val(SWITCH_A, get_actual(SWITCH_X));
// Squat
if(get_val(SWITCH_ACCZ) < SQUAT_THRESHOLD)
{
set_val(SQUAT_TRIGGERING_BUTTON, SQUAT_TRIGGERING_VALUE);
}
// Shortcut for sliding
if(get_val(SHORTCUT_SOURCE) >= SHORTCUT_THRESHOLD)
{
set_val(SHORTCUT_SOURCE, 0.0);
set_val(SHORTCUT_TRIGGERING_BUTTON1, SHORTCUT_TRIGGERING_VALUE1);
set_val(SHORTCUT_TRIGGERING_BUTTON2, SHORTCUT_TRIGGERING_VALUE2);
}
}
// Switch direction to right
combo LeftToRight
{
set_val(RIGHT_TRIGGERING_BUTTON, RIGHT_TRIGGERING_VALUE);
wait(1);
set_val(RIGHT_TRIGGERING_BUTTON, 0.0);
}
// Switch direction to left
combo RightToLeft
{
set_val(LEFT_TRIGGERING_BUTTON, LEFT_TRIGGERING_VALUE);
wait(1);
set_val(LEFT_TRIGGERING_BUTTON, 0.0);
}