@@ -18,52 +18,93 @@ namespace NintendoSwitch{
1818void home_to_date_time (ProControllerContext& context, bool to_date_change, bool fast){
1919 // If (fast == true) this will run faster, but slightly less accurately.
2020
21- ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 4 );
22- ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 4 );
21+ if (context-> timing_variation () == 0ms && false ){
22+ // Fast version for tick-precise.
2323
24- // Down twice in case we drop one.
25- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
26- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 4 );
24+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 4 );
25+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 4 );
2726
28- ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 0 );
27+ // Down twice in case we drop one.
28+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
29+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 4 );
30+
31+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 0 );
2932
30- // Two A presses in case we drop the 1st one.
31- ssf_press_button (context, BUTTON_A, 3 );
32- ssf_press_button (context, BUTTON_A, 3 );
33+ // Two A presses in case we drop the 1st one.
34+ ssf_press_button (context, BUTTON_A, 3 );
35+ ssf_press_button (context, BUTTON_A, 3 );
36+
37+ // Just button mash it. lol
38+ uint8_t stop0 = fast ? 51 : 52 ;
39+ for (uint8_t c = 0 ; c < stop0; c++){
40+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
41+ }
42+ // ssf_issue_scroll1(SSF_SCROLL_RIGHT, fast ? 40 : 45);
43+ // stop0 = fast ? 14 : 15;
44+ for (uint8_t c = 0 ; c < 15 ; c++){
45+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 3 );
46+ }
3347
34- // Just button mash it. lol
35- uint8_t stop0 = fast ? 51 : 52 ;
36- for (uint8_t c = 0 ; c < stop0; c++){
3748 ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
38- }
39- // ssf_issue_scroll1(SSF_SCROLL_RIGHT, fast ? 40 : 45);
40- // stop0 = fast ? 14 : 15;
41- for (uint8_t c = 0 ; c < 15 ; c++){
42- ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 3 );
43- }
49+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
50+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 10 );
51+ ssf_press_dpad (context, DPAD_DOWN, 45 , 40 );
52+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
53+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
4454
45- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
46- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
47- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 10 );
48- ssf_press_dpad (context, DPAD_DOWN, 45 , 40 );
49- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
50- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
55+ if (!to_date_change){
56+ ssf_press_button (context, BUTTON_A, 45 );
57+ return ;
58+ }
5159
52- if (!to_date_change){
53- ssf_press_button (context, BUTTON_A, 45 );
54- return ;
55- }
60+ ssf_press_button (context, BUTTON_A, 3 );
61+ uint8_t stop1 = fast ? 10 : 12 ;
62+ for (uint8_t c = 0 ; c < stop1; c++){
63+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
64+ }
65+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 0 );
5666
57- ssf_press_button (context, BUTTON_A, 3 );
58- uint8_t stop1 = fast ? 10 : 12 ;
59- for (uint8_t c = 0 ; c < stop1; c++){
60- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3 );
61- }
62- ssf_issue_scroll (context, SSF_SCROLL_DOWN, 0 );
67+ // // Insert this to move the cursor away from sleep if we messed up.
68+ // ssf_issue_scroll1(SSF_SCROLL_LEFT, 0);
69+ }else {
70+ // Slow version for tick-imprecise controllers.
71+
72+ Milliseconds delay = 200ms;
73+ Milliseconds hold = 150ms;
74+ Milliseconds cool = 150ms;
75+
76+ ssf_do_nothing (context, 1500ms);
77+
78+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, delay, hold, cool);
79+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, delay, hold, cool);
6380
81+ // Down twice in case we drop one.
82+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold, cool);
83+ // ssf_issue_scroll(context, SSF_SCROLL_DOWN, delay, hold, cool);
6484
65- // // Insert this to move the cursor away from sleep if we messed up.
66- // ssf_issue_scroll1(SSF_SCROLL_LEFT, 0);
85+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, delay, hold, cool);
86+
87+ // Two A presses in case we drop the 1st one.
88+ ssf_mash1_button (context, BUTTON_A, 200ms);
89+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 3000ms, 3000ms);
90+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 500ms, 500ms);
91+
92+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold, cool);
93+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold, cool);
94+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold, cool);
95+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 500ms, 300ms); // Scroll down
96+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold, cool);
97+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold, cool);
98+
99+ if (!to_date_change){
100+ ssf_press_button (context, BUTTON_A, delay, hold);
101+ return ;
102+ }
103+
104+ ssf_press_button (context, BUTTON_A, delay, hold);
105+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold);
106+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, delay, hold);
107+ }
67108}
68109
69110
0 commit comments