diff options
author | obosob <obosob@users.noreply.github.com> | 2020-08-06 20:08:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-06 12:08:20 -0700 |
commit | d9fe755f7e1f6c0635780071691af0c0a20c4076 (patch) | |
tree | 407c0f9f4a7f3b29458abfa5de3ef55392c8bc00 /keyboards/arch_36 | |
parent | c8b721d7c6cf683473bcf3d0af6ec561471b1dcc (diff) | |
download | qmk_firmware-d9fe755f7e1f6c0635780071691af0c0a20c4076.tar.gz qmk_firmware-d9fe755f7e1f6c0635780071691af0c0a20c4076.zip |
[Keyboard] Add Arch-36 keyboard (#9688)
* Add Arch-36 keyboard
* Apply suggestions from code review
Update based on PR Review comments
* Apply suggestions from code review
Update to PR comments
* Fix Build
* Use full rules.mk template for Arch-36 keyboard
* Reduce default firmware size
* Update based on PR comments
* Fix Copyright statement on arch_36:obosob keymap
* Apply suggestions from code review
Diffstat (limited to 'keyboards/arch_36')
-rw-r--r-- | keyboards/arch_36/arch_36.c | 16 | ||||
-rw-r--r-- | keyboards/arch_36/arch_36.h | 43 | ||||
-rw-r--r-- | keyboards/arch_36/config.h | 58 | ||||
-rw-r--r-- | keyboards/arch_36/keymaps/default/keymap.c | 309 | ||||
-rw-r--r-- | keyboards/arch_36/keymaps/obosob/config.h | 31 | ||||
-rw-r--r-- | keyboards/arch_36/keymaps/obosob/keymap.c | 818 | ||||
-rw-r--r-- | keyboards/arch_36/keymaps/obosob/readme.md | 1 | ||||
-rw-r--r-- | keyboards/arch_36/keymaps/obosob/rules.mk | 3 | ||||
-rw-r--r-- | keyboards/arch_36/readme.md | 16 | ||||
-rw-r--r-- | keyboards/arch_36/rules.mk | 26 |
10 files changed, 1321 insertions, 0 deletions
diff --git a/keyboards/arch_36/arch_36.c b/keyboards/arch_36/arch_36.c new file mode 100644 index 000000000..d707e6419 --- /dev/null +++ b/keyboards/arch_36/arch_36.c | |||
@@ -0,0 +1,16 @@ | |||
1 | /* Copyright 2020 Obosob <obosob@riseup.net> | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | #include "arch_36.h" | ||
diff --git a/keyboards/arch_36/arch_36.h b/keyboards/arch_36/arch_36.h new file mode 100644 index 000000000..11c5e2de2 --- /dev/null +++ b/keyboards/arch_36/arch_36.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /* Copyright 2020 Obosob <obosob@riseup.net> | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | #pragma once | ||
17 | |||
18 | #include "quantum.h" | ||
19 | |||
20 | /* This a shortcut to help you visually see your layout. | ||
21 | * | ||
22 | * The first section contains all of the arguments representing the physical | ||
23 | * layout of the board and position of the keys. | ||
24 | * | ||
25 | * The second converts the arguments into a two-dimensional array which | ||
26 | * represents the switch matrix. | ||
27 | */ | ||
28 | #define LAYOUT_split_3x5_3( \ | ||
29 | L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \ | ||
30 | L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \ | ||
31 | L20, L21, L22, L23, L24, R25, R26, R27, R28, R29, \ | ||
32 | L32, L33, L34, R35, R36, R37 \ | ||
33 | ) \ | ||
34 | { \ | ||
35 | { L00, L01, L02, L03, L04 }, \ | ||
36 | { L10, L11, L12, L13, L14 }, \ | ||
37 | { L20, L21, L22, L23, L24 }, \ | ||
38 | { KC_NO, KC_NO, L32, L33, L34 }, \ | ||
39 | { R09, R08, R07, R06, R05 }, \ | ||
40 | { R19, R18, R17, R16, R15 }, \ | ||
41 | { R29, R28, R27, R26, R25 }, \ | ||
42 | { KC_NO, KC_NO, R37, R36, R35 }, \ | ||
43 | } | ||
diff --git a/keyboards/arch_36/config.h b/keyboards/arch_36/config.h new file mode 100644 index 000000000..3950c4b9a --- /dev/null +++ b/keyboards/arch_36/config.h | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | Copyright 2020 Obosob <obosob@riseup.net> | ||
3 | |||
4 | This program is free software: you can redistribute it and/or modify | ||
5 | it under the terms of the GNU General Public License as published by | ||
6 | the Free Software Foundation, either version 2 of the License, or | ||
7 | (at your option) any later version. | ||
8 | |||
9 | This program is distributed in the hope that it will be useful, | ||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | GNU General Public License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU General Public License | ||
15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | */ | ||
17 | |||
18 | #pragma once | ||
19 | #include "config_common.h" | ||
20 | |||
21 | |||
22 | /* USB Device descriptor parameter */ | ||
23 | #define VENDOR_ID 0xFEED | ||
24 | #define PRODUCT_ID 0x9CE3 | ||
25 | #define DEVICE_VER 0x0001 | ||
26 | #define MANUFACTURER obosob | ||
27 | #define PRODUCT Arch-36 | ||
28 | |||
29 | /* key matrix size */ | ||
30 | /* Rows are doubled up */ | ||
31 | #define MATRIX_ROWS 8 | ||
32 | #define MATRIX_COLS 5 | ||
33 | |||
34 | // wiring | ||
35 | #define MATRIX_ROW_PINS { D7, E6, B4, B5 } | ||
36 | #define MATRIX_COL_PINS { F7, B1, B3, B2, B6 } | ||
37 | #define UNUSED_PINS | ||
38 | |||
39 | /* COL2ROW, ROW2COL*/ | ||
40 | #define DIODE_DIRECTION COL2ROW | ||
41 | |||
42 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
43 | #define DEBOUNCE 5 | ||
44 | |||
45 | /* | ||
46 | * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. | ||
47 | */ | ||
48 | #define SOFT_SERIAL_PIN D2 | ||
49 | |||
50 | #ifdef RGBLIGHT_ENABLE | ||
51 | #define RGB_DI_PIN D3 | ||
52 | #define RGBLED_SPLIT { 6, 6 } | ||
53 | #define RGBLED_NUM 12 | ||
54 | #define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ | ||
55 | 11, 10, 9, 8, 7, 6 } | ||
56 | #endif | ||
57 | |||
58 | #define EE_HANDS | ||
diff --git a/keyboards/arch_36/keymaps/default/keymap.c b/keyboards/arch_36/keymaps/default/keymap.c new file mode 100644 index 000000000..48412f812 --- /dev/null +++ b/keyboards/arch_36/keymaps/default/keymap.c | |||
@@ -0,0 +1,309 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | |||
3 | // Defines names for use in layer keycodes and the keymap | ||
4 | enum layer_names { | ||
5 | _QWERTY, | ||
6 | _LOWER, | ||
7 | _RAISE, | ||
8 | _ADJUST | ||
9 | }; | ||
10 | |||
11 | #define LOWER MO(_LOWER) | ||
12 | #define RAISE MO(_RAISE) | ||
13 | |||
14 | // Defines for task manager and such | ||
15 | #define CALTDEL LCTL(LALT(KC_DEL)) | ||
16 | #define TSKMGR LCTL(LSFT(KC_ESC)) | ||
17 | |||
18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
19 | |||
20 | /* Qwerty | ||
21 | * | ||
22 | * ,----------------------------------. ,----------------------------------. | ||
23 | * | Q | W | E | R | T | | Y | U | I | O | P | | ||
24 | * |------+------+------+------+------| |------+------+------+------+------| | ||
25 | * | A | S | D | F | G | | H | J | K | L | ; | | ||
26 | * |------+------+------+------+------| |------+------+------+------+------| | ||
27 | * | Z | X | C | V | B | | N | M | , | . | / | | ||
28 | * `----------------------------------' `----------------------------------' | ||
29 | * ,--------------------. ,--------------------. | ||
30 | * | Ctrl | LOWER| Space| |BckSpc| RAISE| Shift| | ||
31 | * `--------------------' `--------------------. | ||
32 | */ | ||
33 | [_QWERTY] = LAYOUT_split_3x5_3( | ||
34 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, | ||
35 | KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, | ||
36 | KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, | ||
37 | KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT) | ||
38 | ), | ||
39 | |||
40 | /* Raise | ||
41 | * | ||
42 | * ,----------------------------------. ,----------------------------------. | ||
43 | * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | ||
44 | * |------+------+------+------+------| |------+------+------+------+------| | ||
45 | * | Tab | Left | Down | Up | Right| | | - | = | [ | ] | | ||
46 | * |------+------+------+------+------| |------+------+------+------+------| | ||
47 | * | Ctrl| ` | GUI | Alt | | | | | | \ | ' | | ||
48 | * `----------------------------------' `----------------------------------' | ||
49 | * ,--------------------. ,--------------------. | ||
50 | * | | LOWER| | | | RAISE| | | ||
51 | * `--------------------' `--------------------. | ||
52 | */ | ||
53 | [_RAISE] = LAYOUT_split_3x5_3( | ||
54 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, | ||
55 | KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, | ||
56 | KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, | ||
57 | _______, _______, _______, _______, _______, _______ | ||
58 | ), | ||
59 | |||
60 | /* Lower | ||
61 | * | ||
62 | * ,----------------------------------. ,----------------------------------. | ||
63 | * | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | ||
64 | * |------+------+------+------+------| |------+------+------+------+------| | ||
65 | * | Esc | | | | | | | _ | + | { | } | | ||
66 | * |------+------+------+------+------| |------+------+------+------+------| | ||
67 | * | Caps| ~ | | | | | | | | | | " | | ||
68 | * `----------------------------------' `----------------------------------' | ||
69 | * ,--------------------. ,--------------------. | ||
70 | * | | LOWER| | | | RAISE| Del | | ||
71 | * `--------------------' `--------------------. | ||
72 | */ | ||
73 | [_LOWER] = LAYOUT_split_3x5_3( | ||
74 | KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
75 | KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, | ||
76 | KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, | ||
77 | _______, _______, _______, KC_ENT, _______, KC_DEL | ||
78 | ), | ||
79 | |||
80 | /* Adjust (Lower + Raise) | ||
81 | * | ||
82 | * ,----------------------------------. ,----------------------------------. | ||
83 | * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | | ||
84 | * |------+------+------+------+------| |------+------+------+------+------| | ||
85 | * | F11 | F12 | | | | | | | |Taskmg|caltde| | ||
86 | * |------+------+------+------+------| |------+------+------+------+------| | ||
87 | * | Reset| | | | | | | | | | | | ||
88 | * `----------------------------------' `----------------------------------' | ||
89 | * ,--------------------. ,--------------------. | ||
90 | * | | LOWER| | | | RAISE| | | ||
91 | * `--------------------' `--------------------. | ||
92 | */ | ||
93 | [_ADJUST] = LAYOUT_split_3x5_3( | ||
94 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, | ||
95 | KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL, | ||
96 | RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
97 | _______, _______, _______, _______, _______, _______ | ||
98 | ) | ||
99 | }; | ||
100 | |||
101 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
102 | return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); | ||
103 | } | ||
104 | |||
105 | uint16_t rgb_edit_timer = 0; | ||
106 | uint16_t last_rgb_char = 0; | ||
107 | |||
108 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
109 | switch(keycode) { | ||
110 | case RGB_TOG: | ||
111 | case RGB_MOD: | ||
112 | case RGB_HUD: | ||
113 | case RGB_HUI: | ||
114 | case RGB_SAD: | ||
115 | case RGB_SAI: | ||
116 | case RGB_VAI: | ||
117 | case RGB_VAD: | ||
118 | rgb_edit_timer = timer_read(); | ||
119 | last_rgb_char = keycode; | ||
120 | return true; | ||
121 | } | ||
122 | return true; | ||
123 | } | ||
124 | |||
125 | #ifdef OLED_DRIVER_ENABLE | ||
126 | |||
127 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
128 | return OLED_ROTATION_180; | ||
129 | } | ||
130 | |||
131 | void render_default_layer_state(void) { | ||
132 | oled_write_P(PSTR("Layout: "), false); | ||
133 | switch (get_highest_layer(default_layer_state)) { | ||
134 | case _QWERTY: | ||
135 | oled_write_ln_P(PSTR("Qwerty"), false); | ||
136 | break; | ||
137 | } | ||
138 | } | ||
139 | |||
140 | #ifdef RGBLIGHT_ENABLE | ||
141 | bool cleared = false; | ||
142 | void render_rgb_state(void) { | ||
143 | if(!rgblight_get_mode()) { | ||
144 | if(!cleared) { | ||
145 | oled_clear(); | ||
146 | cleared = true; | ||
147 | } | ||
148 | return; | ||
149 | } | ||
150 | cleared = false; | ||
151 | uint8_t width = (OLED_DISPLAY_WIDTH/OLED_FONT_WIDTH)-10; | ||
152 | uint8_t hue = (rgblight_get_hue()*width/255), | ||
153 | sat = (rgblight_get_sat()*width/255), | ||
154 | val = (rgblight_get_val()*width/255); | ||
155 | bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_HUI || last_rgb_char == RGB_HUD); | ||
156 | bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_SAI || last_rgb_char == RGB_SAD); | ||
157 | bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_VAI || last_rgb_char == RGB_VAD); | ||
158 | |||
159 | uint8_t i; | ||
160 | |||
161 | oled_write_ln_P(PSTR(""), false); | ||
162 | |||
163 | oled_write_P(PSTR("Hue: ["), changing_hue); | ||
164 | for(i = 0; i < width; ++i) { | ||
165 | oled_write_P(i<hue?PSTR("-"):i==hue?PSTR("|"):PSTR(" "), changing_hue); | ||
166 | } | ||
167 | oled_write_P(PSTR("]"), changing_hue); | ||
168 | oled_write_P(PSTR("Sat: ["), changing_sat); | ||
169 | for(i = 0; i < width; ++i) { | ||
170 | oled_write_P(i<sat?PSTR("-"):i==sat?PSTR("|"):PSTR(" "), changing_sat); | ||
171 | } | ||
172 | oled_write_P(PSTR("]"), changing_sat); | ||
173 | oled_write_P(PSTR("Bri: ["), changing_val); | ||
174 | for(i = 0; i < width; ++i) { | ||
175 | oled_write_P(i<val?PSTR("-"):i==val?PSTR("|"):PSTR(" "), changing_val); | ||
176 | } | ||
177 | oled_write_P(PSTR("]"), changing_val); | ||
178 | } | ||
179 | #endif // RGBLIGHT_ENABLE | ||
180 | |||
181 | void render_layer_state(void) { | ||
182 | oled_write_P(PSTR("Layer: "), false); | ||
183 | switch (get_highest_layer(layer_state)) { | ||
184 | case _QWERTY: | ||
185 | oled_write_ln_P(PSTR("Base"), false); | ||
186 | break; | ||
187 | case _LOWER: | ||
188 | oled_write_ln_P(PSTR("Lower"), false); | ||
189 | break; | ||
190 | case _RAISE: | ||
191 | oled_write_ln_P(PSTR("Raise"), false); | ||
192 | break; | ||
193 | case _ADJUST: | ||
194 | oled_write_ln_P(PSTR("Adjust"), false); | ||
195 | break; | ||
196 | default: | ||
197 | oled_write_ln_P(PSTR("Unknown"), false); | ||
198 | } | ||
199 | } | ||
200 | |||
201 | void render_keylock_status(led_t led_state) { | ||
202 | oled_write_P(PSTR("Lock: "), false); | ||
203 | oled_write_P(PSTR("123"), led_state.num_lock); | ||
204 | oled_write_P(PSTR(" "), false); | ||
205 | oled_write_ln_P(led_state.caps_lock?PSTR("ABC"):PSTR("abc"), led_state.caps_lock); | ||
206 | } | ||
207 | |||
208 | void render_mod_status(uint8_t modifiers) { | ||
209 | oled_write_P(PSTR("Mods: "), false); | ||
210 | oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); | ||
211 | oled_write_P(PSTR(" "), false); | ||
212 | oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); | ||
213 | oled_write_P(PSTR(" "), false); | ||
214 | oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); | ||
215 | oled_write_P(PSTR(" "), false); | ||
216 | oled_write_ln_P(PSTR("W"), (modifiers & MOD_MASK_GUI)); | ||
217 | } | ||
218 | |||
219 | static void render_status(void) { | ||
220 | // Host Keyboard Layer Status | ||
221 | render_default_layer_state(); | ||
222 | render_layer_state(); | ||
223 | render_keylock_status(host_keyboard_led_state()); | ||
224 | render_mod_status(get_mods() | get_oneshot_mods()); | ||
225 | #ifdef RGBLIGHT_ENABLE | ||
226 | render_rgb_state(); | ||
227 | #endif // RGBLIGHT_ENABLE | ||
228 | } | ||
229 | |||
230 | static void render_logo(void) { | ||
231 | static const char PROGMEM logo[] = { | ||
232 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
233 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
234 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
235 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x1c, 0x1c, 0x38, 0xf8, | ||
236 | 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
238 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
239 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
240 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
242 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
243 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, | ||
244 | 0x03, 0x1f, 0x7f, 0xfe, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
249 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
250 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
251 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x87, 0x9f, 0x3f, 0xfc, 0xf0, | ||
252 | 0xe0, 0xc0, 0x00, 0x01, 0x07, 0x0f, 0x3f, 0x3f, 0x7f, 0xfe, 0xfe, 0xee, 0xce, 0xfe, 0x8e, 0x0e, | ||
253 | 0xfe, 0x8e, 0x0e, 0xfe, 0x8e, 0x0e, 0xfe, 0xfe, 0x7e, 0xee, 0xdc, 0x9c, 0x38, 0x78, 0xf0, 0xe0, | ||
254 | 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
255 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
257 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
258 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
259 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xe3, 0xc3, 0xc7, 0x8f, 0x0e, 0x1f, | ||
260 | 0x1f, 0x3f, 0x7f, 0x7f, 0xfe, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
261 | 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe7, 0xff, 0xdb, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, | ||
262 | 0x1f, 0xff, 0xfe, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
263 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
265 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
266 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
267 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xfc, 0xff, 0xff, 0x8f, 0x8f, 0x0f, 0x0f, 0x0f, 0x0f, | ||
268 | 0x0e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0f, 0x0f, 0x0c, 0x08, 0x0f, 0x0c, 0x08, | ||
269 | 0x0f, 0x0c, 0x08, 0x0f, 0x0c, 0x08, 0x0f, 0x0f, 0x0e, 0x07, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0x40, | ||
270 | 0x01, 0x03, 0x07, 0x1f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
271 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
272 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
273 | 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
274 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
275 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xf3, 0xf3, 0x03, 0x03, 0x03, 0x03, | ||
276 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xf3, 0xff, 0xff, 0x9f, 0x8f, 0x80, 0x80, 0xc0, 0xf0, 0xfc, | ||
277 | 0x7e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xce, 0xce, 0xef, 0x67, 0x67, 0x6f, 0x6f, 0xef, 0xee, | ||
278 | 0xce, 0x8e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, | ||
279 | 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfc, 0xff, | ||
281 | 0xbf, 0x83, 0x8f, 0xff, 0xff, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, | ||
282 | 0x1c, 0x0c, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xfc, 0x1c, 0x0e, 0x06, | ||
283 | 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0c, 0x06, 0x06, 0x06, | ||
284 | 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x33, 0x33, 0x33, 0x33, 0x33, 0x31, | ||
285 | 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0xff, | ||
286 | 0xef, 0xc7, 0x80, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x1b, 0x39, 0x70, 0xf0, | ||
287 | 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
288 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3f, 0x3f, 0x1f, 0x01, | ||
289 | 0x01, 0x01, 0x01, 0x01, 0x07, 0x3f, 0x3f, 0x3c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, | ||
290 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1c, 0x38, 0x30, | ||
291 | 0x30, 0x30, 0x30, 0x38, 0x18, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, | ||
292 | 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
293 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x3f, | ||
294 | 0x1f, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x1f, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x1f, | ||
295 | 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
296 | }; | ||
297 | |||
298 | oled_write_raw_P(logo, 1024); | ||
299 | } | ||
300 | |||
301 | void oled_task_user(void) { | ||
302 | if (is_keyboard_master()) { | ||
303 | render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) | ||
304 | } | ||
305 | else { | ||
306 | render_logo(); | ||
307 | } | ||
308 | } | ||
309 | #endif | ||
diff --git a/keyboards/arch_36/keymaps/obosob/config.h b/keyboards/arch_36/keymaps/obosob/config.h new file mode 100644 index 000000000..02be7b511 --- /dev/null +++ b/keyboards/arch_36/keymaps/obosob/config.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* Copyright 2020 Obosob <obosob@riseup.net> | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | |||
17 | #pragma once | ||
18 | |||
19 | #ifdef OLED_DRIVER_ENABLE | ||
20 | #define OLED_DISPLAY_128X64 | ||
21 | #endif | ||
22 | |||
23 | #ifdef RGBLIGHT_ENABLE | ||
24 | // #define RGBLIGHT_ANIMATIONS | ||
25 | #define RGBLIGHT_EFFECT_RAINBOW_SWIRL | ||
26 | #define RGBLIGHT_HUE_STEP 8 | ||
27 | #define RGBLIGHT_SAT_STEP 8 | ||
28 | #define RGBLIGHT_VAL_STEP 8 | ||
29 | #endif | ||
30 | |||
31 | #define PERMISSIVE_HOLD | ||
diff --git a/keyboards/arch_36/keymaps/obosob/keymap.c b/keyboards/arch_36/keymaps/obosob/keymap.c new file mode 100644 index 000000000..a938314ac --- /dev/null +++ b/keyboards/arch_36/keymaps/obosob/keymap.c | |||
@@ -0,0 +1,818 @@ | |||
1 | /* Copyright 2020 Obosob <obosob@riseup.net> | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | #include QMK_KEYBOARD_H | ||
17 | |||
18 | enum layer_names { | ||
19 | _QWERTY, | ||
20 | _COLMAK, | ||
21 | _NUM, | ||
22 | _NAV, | ||
23 | _SYM, | ||
24 | _MISC, | ||
25 | _ADJUST | ||
26 | }; | ||
27 | |||
28 | #define MY_SPC LT(_NAV, KC_SPC) | ||
29 | #define MY_ENT LT(_NUM, KC_ENT) | ||
30 | #define MY_BSPC SFT_T(KC_BSPC) | ||
31 | #define MY_DEL SFT_T(KC_DEL) | ||
32 | #define MY_ESC CTL_T(KC_ESC) | ||
33 | #define MY_TAB RALT_T(KC_TAB) | ||
34 | |||
35 | #define KC_NUPI S(KC_NUBS) | ||
36 | |||
37 | #define OS_SFT OSM(MOD_LSFT) | ||
38 | #define OS_CTL OSM(MOD_LCTL) | ||
39 | #define OS_GUI OSM(MOD_LGUI) | ||
40 | #define OS_ALT OSM(MOD_LALT) | ||
41 | |||
42 | enum keycodes { | ||
43 | QWERTY = SAFE_RANGE, | ||
44 | COLEMAK, | ||
45 | // layers | ||
46 | SYM, | ||
47 | MISC, | ||
48 | // special keys | ||
49 | ENC_PRS, | ||
50 | DOTSPC, | ||
51 | COMMSPC, | ||
52 | EXLMSPC, | ||
53 | QUESSPC, | ||
54 | DQUOT, | ||
55 | QUOT, | ||
56 | PRN, | ||
57 | BRC, | ||
58 | CBR, | ||
59 | LTGT, | ||
60 | LTGTC, | ||
61 | GRV, | ||
62 | A_TAB, | ||
63 | AS_TAB, | ||
64 | WOKE, | ||
65 | }; | ||
66 | |||
67 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
68 | |||
69 | // Qwerty ________ ________ | ||
70 | // ________| E |________ ________| I |________ | ||
71 | // | W | | R |________ ________| U | | O | | ||
72 | // ________| |________| | T | | Y | |________| |________ | ||
73 | // | Q |________| D |________| | | |________| K |________| P | | ||
74 | // | | S | | F |________| |________| J | | L | | | ||
75 | // |________| |________| | G | | H | |________| |________| | ||
76 | // | A |________| C |________| | | |________| SYM |________| : | | ||
77 | // | | X | | V |________| |________| M | | MISC | ; | | ||
78 | // |________| |________| | B | | N | |________| |________| | ||
79 | // | Z |________| |________| | | |________| |________| ? | | ||
80 | // | | | Esc |________| |________| Tab | | / | | ||
81 | // |________| | Ctrl | Enter |________ ________| Space | Alt | |________| | ||
82 | // |________| NUM | Del | | BkSp | NAV |________| | ||
83 | // ________| Shift | | Shift |________ | ||
84 | // |________| |________| | ||
85 | |||
86 | [_QWERTY] = LAYOUT_split_3x5_3( | ||
87 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, | ||
88 | KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, | ||
89 | KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, SYM, MISC, KC_SLSH, | ||
90 | MY_ESC, MY_ENT, MY_DEL, MY_BSPC, MY_SPC, MY_TAB | ||
91 | ), | ||
92 | // Colemak (Mod-DH) ________ ________ | ||
93 | // ________| F |________ ________| U |________ | ||
94 | // | W | | P |________ ________| L | | Y | | ||
95 | // ________| |________| | B | | J | |________| |________ | ||
96 | // | Q |________| S |________| | | |________| E |________| : | | ||
97 | // | | R | | T |________| |________| N | | I | ; | | ||
98 | // |________| |________| | G | | K | |________| |________| | ||
99 | // | A |________| C |________| | | |________| SYM |________| O | | ||
100 | // | | X | | D |________| |________| H | | MISC | | | ||
101 | // |________| |________| | V | | M | |________| |________| | ||
102 | // | Z |________| |________| | | |________| |________| ? | | ||
103 | // | | | Esc |________| |________| Tab | | / | | ||
104 | // |________| | Ctrl | Enter |________ ________| Space | Alt | |________| | ||
105 | // |________| NUM | Del | | BkSp | NAV |________| | ||
106 | // ________| Shift | | Shift |________ | ||
107 | // |________| |________| | ||
108 | |||
109 | [_COLMAK] = LAYOUT_split_3x5_3( | ||
110 | KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, | ||
111 | KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, | ||
112 | KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, SYM, MISC, KC_SLSH, | ||
113 | MY_ESC, MY_ENT, MY_DEL, MY_BSPC, MY_SPC, MY_TAB | ||
114 | ), | ||
115 | // Number ________ ________ | ||
116 | // ________| F3 |________ ________| 8 |________ | ||
117 | // | F2 | | F4 |________ ________| 7 | | 9 | | ||
118 | // ________| |________| | | | + | |________| |________ | ||
119 | // | F1 |________| F7 |________| | | |________| 5 |________| / | | ||
120 | // | | F6 | | F8 |________| |________| 4 | | 6 | | | ||
121 | // |________| |________| | | | 0 | |________| |________| | ||
122 | // | F5 |________| F11 |________| | | |________| 2 |________| . | | ||
123 | // | | F10 | | F12 |________| |________| 1 | | 3 | | | ||
124 | // |________| |________| | | | - | |________| |________| | ||
125 | // | F9 |________| |________| | | |________| |________| * | | ||
126 | // | | | |________| |________| | | | | ||
127 | // |________| | | |________ ________| ADJUST | | |________| | ||
128 | // |________| **** | | | | |________| | ||
129 | // |________| | | |________| | ||
130 | // |________| |________| | ||
131 | [_NUM] = LAYOUT_split_3x5_3( | ||
132 | KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_PLUS, KC_7, KC_8, KC_9, KC_SLSH, | ||
133 | KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_COMM, KC_4, KC_5, KC_6, KC_DOT, | ||
134 | KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_MINS, KC_1, KC_2, KC_3, KC_ASTR, | ||
135 | XXXXXXX, _______, XXXXXXX, _______, _______, KC_0 | ||
136 | ), | ||
137 | // Navigation ________ ________ | ||
138 | // ________| OS |________ ________| PgUp |________ | ||
139 | // | OS | Ctrl | OS |________ ________| PgDn | | End | | ||
140 | // ________| Alt |________| Shift | AltTab | | Home | |________| |________ | ||
141 | // | OS |________| Ctrl |________| | | |________| Up |________| PrtScr | | ||
142 | // | Super | Alt | | Shift |________| |________| Down | | Right | | | ||
143 | // |________| |________| | | | Left | |________| |________| | ||
144 | // | Super |________| |________| | | |________| |________| Insert | | ||
145 | // | | | | |________| |________| | | | | | ||
146 | // |________| |________| | | | | |________| |________| | ||
147 | // | |________| |________| | | |________| |________| | | ||
148 | // | | | |________| |________| | | | | ||
149 | // |________| | | ADJUST |________ ________| | | |________| | ||
150 | // |________| | | | | **** |________| | ||
151 | // |________| | | |________| | ||
152 | // |________| |________| | ||
153 | [_NAV] = LAYOUT_split_3x5_3( | ||
154 | OS_GUI, OS_ALT, OS_CTL, OS_SFT, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_PSCR, | ||
155 | KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_INS, | ||
156 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AS_TAB, A_TAB, XXXXXXX, XXXXXXX, | ||
157 | _______, _______, _______, XXXXXXX, _______, XXXXXXX | ||
158 | ), | ||
159 | // Symbol ________ ________ | ||
160 | // ________| { |________ ________| |________ | ||
161 | // | > | | } |________ ________| | | | | ||
162 | // ________| |________| | ` | | | |________| |________ | ||
163 | // | < |________| ( |________| | | |________| |________| | | | ||
164 | // | | £ | | ) |________| |________| - | | & | | | ||
165 | // |________| |________| | ^ | | _ | |________| |________| | ||
166 | // | * |________| [ |________| | | |________| |________| ~ | | ||
167 | // | | $ | | ] |________| |________| + | **** | % | | | ||
168 | // |________| |________| | @ | | = | |________| |________| | ||
169 | // | \ |________| |________| | | |________| |________| # | | ||
170 | // | | | ? |________| |________| ! | | | | ||
171 | // |________| | | ' |________ ________| . | | |________| | ||
172 | // |________| | " | | , | |________| | ||
173 | // |________| | | |________| | ||
174 | // |________| |________| | ||
175 | // | ||
176 | [_SYM] = LAYOUT_split_3x5_3( | ||
177 | KC_LT, KC_GT, KC_LCBR, KC_RCBR, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUPI, | ||
178 | KC_ASTR, KC_HASH, KC_LPRN, KC_RPRN, KC_CIRC, KC_UNDS, KC_MINS, XXXXXXX, KC_AMPR, KC_PIPE, | ||
179 | KC_NUBS, KC_DLR, KC_LBRC, KC_RBRC, KC_DQUO, KC_EQL, KC_PLUS, _______, KC_PERC, KC_NUHS, | ||
180 | KC_QUES, KC_QUOT, KC_AT, KC_COMM, KC_DOT, KC_EXLM | ||
181 | ), | ||
182 | // Miscellaneous ________ ________ | ||
183 | // ________| {|} |________ ________| |________ | ||
184 | // | </|> | | {|} |________ ________| | | | | ||
185 | // ________| |________| | | | | |________| |________ | ||
186 | // | <|> |________| (|) |________| | | |________| |________| | | ||
187 | // | | | | (|) |________| |________| | | | | | ||
188 | // |________| |________| | | | | |________| |________| | ||
189 | // | |________| [|] |________| | | |________| |________| | | ||
190 | // | | | | [|] |________| |________| | | | | | ||
191 | // |________| |________| | | | | |________| **** |________| | ||
192 | // | |________| |________| | | |________| |________| | | ||
193 | // | | | ?_^ |________| |________| !_^ | | | | ||
194 | // |________| | | '|' |________ ________| ._^ | | |________| | ||
195 | // |________| | "|" | | ,_ | |________| | ||
196 | // |________| | | |________| | ||
197 | // |________| |________| | ||
198 | // | ||
199 | [_MISC] = LAYOUT_split_3x5_3( | ||
200 | LTGT, LTGTC, CBR, CBR, GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
201 | XXXXXXX, XXXXXXX, PRN, PRN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
202 | XXXXXXX, XXXXXXX, BRC, BRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, | ||
203 | QUESSPC, QUOT, DQUOT, COMMSPC, DOTSPC, EXLMSPC | ||
204 | ), | ||
205 | // Adjust ________ ________ | ||
206 | // ________| RESET |________ ________| |________ | ||
207 | // | | EEPROM | RESET |________ ________| | | | | ||
208 | // ________| |________| | | | | |________| |________ | ||
209 | // | |________| RGB |________| | | |________| |________| | | ||
210 | // | | RGB | Hue+ | RGB |________| |________| | | | | | ||
211 | // |________| Toggle |________| Sat+ | RGB | | | |________| |________| | ||
212 | // | |________| RGB |________| Bri+ | | |________| |________| | | ||
213 | // | | RGB | Hue- | RGB |________| |________| | | | | | ||
214 | // |________| Mode |________| Sat- | RGB | | | |________| |________| | ||
215 | // | |________| |________| Bri- | | |________| |________| | | ||
216 | // | | | |________| |________| | | | | ||
217 | // |________| | | |________ ________| | | |________| | ||
218 | // |________| **** | | | | **** |________| | ||
219 | // |________| | | |________| | ||
220 | // |________| |________| | ||
221 | [_ADJUST] = LAYOUT_split_3x5_3( | ||
222 | XXXXXXX, WOKE, EEP_RST, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
223 | XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, QWERTY, COLEMAK, XXXXXXX, XXXXXXX, | ||
224 | XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
225 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX | ||
226 | ), | ||
227 | }; | ||
228 | |||
229 | bool alt_tabbing = false; | ||
230 | bool woke_mode = false; | ||
231 | uint16_t rgb_edit_timer = 0; | ||
232 | uint16_t last_rgb_char = 0; | ||
233 | |||
234 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
235 | switch (keycode) { | ||
236 | case QWERTY: | ||
237 | if (record->event.pressed) { | ||
238 | set_single_persistent_default_layer(_QWERTY); | ||
239 | } | ||
240 | return false; | ||
241 | case COLEMAK: | ||
242 | if (record->event.pressed) { | ||
243 | set_single_persistent_default_layer(_COLMAK); | ||
244 | } | ||
245 | return false; | ||
246 | case SYM: | ||
247 | if (record->event.pressed) { | ||
248 | layer_on(_SYM); | ||
249 | } else { | ||
250 | layer_off(_SYM); | ||
251 | } | ||
252 | return false; | ||
253 | case MY_SPC: | ||
254 | if (!record->event.pressed) { | ||
255 | if(alt_tabbing) { | ||
256 | unregister_code(KC_LALT); | ||
257 | alt_tabbing = false; | ||
258 | } | ||
259 | } | ||
260 | return true; | ||
261 | case MISC: | ||
262 | if (record->event.pressed) { | ||
263 | layer_on(_MISC); | ||
264 | } else { | ||
265 | layer_off(_MISC); | ||
266 | } | ||
267 | return false; | ||
268 | case DOTSPC: | ||
269 | if (record->event.pressed) { | ||
270 | tap_code(KC_DOT); | ||
271 | tap_code(KC_SPC); | ||
272 | set_oneshot_mods(MOD_LSFT); | ||
273 | } | ||
274 | return false; | ||
275 | case COMMSPC: | ||
276 | if (record->event.pressed) { | ||
277 | tap_code(KC_COMM); | ||
278 | tap_code(KC_SPC); | ||
279 | } | ||
280 | return false; | ||
281 | case EXLMSPC: | ||
282 | if (record->event.pressed) { | ||
283 | tap_code16(KC_EXLM); | ||
284 | tap_code(KC_SPC); | ||
285 | set_oneshot_mods(MOD_LSFT); | ||
286 | } | ||
287 | return false; | ||
288 | case QUESSPC: | ||
289 | if (record->event.pressed) { | ||
290 | tap_code16(KC_QUES); | ||
291 | tap_code(KC_SPC); | ||
292 | set_oneshot_mods(MOD_LSFT); | ||
293 | } | ||
294 | return false; | ||
295 | case QUOT: | ||
296 | if (record->event.pressed) { | ||
297 | tap_code(KC_QUOT); | ||
298 | tap_code(KC_QUOT); | ||
299 | tap_code(KC_LEFT); | ||
300 | } | ||
301 | return false; | ||
302 | case DQUOT: | ||
303 | if (record->event.pressed) { | ||
304 | tap_code16(KC_DQUO); | ||
305 | tap_code16(KC_DQUO); | ||
306 | tap_code(KC_LEFT); | ||
307 | } | ||
308 | return false; | ||
309 | case PRN: | ||
310 | if (record->event.pressed) { | ||
311 | tap_code16(KC_LPRN); | ||
312 | tap_code16(KC_RPRN); | ||
313 | tap_code(KC_LEFT); | ||
314 | } | ||
315 | return false; | ||
316 | case BRC: | ||
317 | if (record->event.pressed) { | ||
318 | tap_code(KC_LBRC); | ||
319 | tap_code(KC_RBRC); | ||
320 | tap_code(KC_LEFT); | ||
321 | } | ||
322 | return false; | ||
323 | case CBR: | ||
324 | if (record->event.pressed) { | ||
325 | tap_code16(KC_LCBR); | ||
326 | tap_code16(KC_RCBR); | ||
327 | tap_code(KC_LEFT); | ||
328 | } | ||
329 | return false; | ||
330 | case LTGT: | ||
331 | if (record->event.pressed) { | ||
332 | tap_code16(KC_LT); | ||
333 | tap_code16(KC_GT); | ||
334 | tap_code(KC_LEFT); | ||
335 | } | ||
336 | return false; | ||
337 | case LTGTC: | ||
338 | if (record->event.pressed) { | ||
339 | tap_code16(KC_LT); | ||
340 | tap_code(KC_SLSH); | ||
341 | tap_code16(KC_GT); | ||
342 | tap_code(KC_LEFT); | ||
343 | } | ||
344 | return false; | ||
345 | case GRV: | ||
346 | if (record->event.pressed) { | ||
347 | tap_code(KC_GRV); | ||
348 | tap_code(KC_GRV); | ||
349 | tap_code(KC_LEFT); | ||
350 | } | ||
351 | return false; | ||
352 | case AS_TAB: | ||
353 | if (record->event.pressed) { | ||
354 | register_code(KC_LSFT); | ||
355 | } else { | ||
356 | unregister_code(KC_LSFT); | ||
357 | } | ||
358 | case A_TAB: | ||
359 | if (record->event.pressed) { | ||
360 | register_code(KC_LALT); | ||
361 | register_code(KC_TAB); | ||
362 | alt_tabbing = true; | ||
363 | } else { | ||
364 | unregister_code(KC_TAB); | ||
365 | } | ||
366 | return false; | ||
367 | case WOKE: | ||
368 | if (!record->event.pressed) { | ||
369 | woke_mode = !woke_mode; | ||
370 | } | ||
371 | return false; | ||
372 | case RGB_TOG: | ||
373 | case RGB_MOD: | ||
374 | case RGB_HUD: | ||
375 | case RGB_HUI: | ||
376 | case RGB_SAD: | ||
377 | case RGB_SAI: | ||
378 | case RGB_VAI: | ||
379 | case RGB_VAD: | ||
380 | rgb_edit_timer = timer_read(); | ||
381 | last_rgb_char = keycode; | ||
382 | return true; | ||
383 | } | ||
384 | |||
385 | if (woke_mode && ((keycode >= KC_A && keycode <= KC_Z) || keycode == MY_BSPC)) { | ||
386 | if (record->event.pressed) { | ||
387 | tap_code(KC_CAPS); | ||
388 | } | ||
389 | } | ||
390 | |||
391 | return true; | ||
392 | } | ||
393 | |||
394 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
395 | state = update_tri_layer_state(state, _NAV, _NUM, _ADJUST); | ||
396 | return state; | ||
397 | } | ||
398 | |||
399 | #ifdef OLED_DRIVER_ENABLE | ||
400 | |||
401 | #define ANIM_NUM_FRAMES 4 | ||
402 | #define ANIM_FRAME_DURATION 100 | ||
403 | |||
404 | #ifdef ANIM_REVERSE | ||
405 | #define ANIM_TOTAL_FRAMES (2*((ANIM_NUM_FRAMES)-1)) | ||
406 | #else | ||
407 | #define ANIM_TOTAL_FRAMES ANIM_NUM_FRAMES | ||
408 | #endif | ||
409 | |||
410 | uint16_t anim_timer = 0; | ||
411 | uint8_t current_anim_frame = 0; | ||
412 | |||
413 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
414 | return OLED_ROTATION_180; | ||
415 | } | ||
416 | |||
417 | void render_default_layer_state(void) { | ||
418 | oled_write_P(PSTR("Layout: "), false); | ||
419 | switch (get_highest_layer(default_layer_state)) { | ||
420 | case _QWERTY: | ||
421 | if(woke_mode) { | ||
422 | oled_write_ln_P(PSTR("QwErTy"), false); | ||
423 | } else { | ||
424 | oled_write_ln_P(PSTR("Qwerty"), false); | ||
425 | } | ||
426 | break; | ||
427 | case _COLMAK: | ||
428 | oled_write_ln_P(PSTR("Colemak"), false); | ||
429 | break; | ||
430 | } | ||
431 | } | ||
432 | |||
433 | #ifdef RGBLIGHT_ENABLE | ||
434 | bool cleared = false; | ||
435 | void render_rgb_state(void) { | ||
436 | if(!rgblight_get_mode()) { | ||
437 | if(!cleared) { | ||
438 | oled_clear(); | ||
439 | cleared = true; | ||
440 | } | ||
441 | return; | ||
442 | } | ||
443 | cleared = false; | ||
444 | uint8_t width = (OLED_DISPLAY_WIDTH/OLED_FONT_WIDTH)-10; | ||
445 | uint8_t hue = (rgblight_get_hue()*width/255), | ||
446 | sat = (rgblight_get_sat()*width/255), | ||
447 | val = (rgblight_get_val()*width/255); | ||
448 | bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_HUI || last_rgb_char == RGB_HUD); | ||
449 | bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_SAI || last_rgb_char == RGB_SAD); | ||
450 | bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_VAI || last_rgb_char == RGB_VAD); | ||
451 | |||
452 | uint8_t i; | ||
453 | |||
454 | oled_write_ln_P(PSTR(""), false); | ||
455 | |||
456 | oled_write_P(PSTR("Hue: ["), changing_hue); | ||
457 | for(i = 0; i < width; ++i) { | ||
458 | oled_write_P(i<hue?PSTR("-"):i==hue?PSTR("|"):PSTR(" "), changing_hue); | ||
459 | } | ||
460 | oled_write_P(PSTR("]"), changing_hue); | ||
461 | oled_write_P(PSTR("Sat: ["), changing_sat); | ||
462 | for(i = 0; i < width; ++i) { | ||
463 | oled_write_P(i<sat?PSTR("-"):i==sat?PSTR("|"):PSTR(" "), changing_sat); | ||
464 | } | ||
465 | oled_write_P(PSTR("]"), changing_sat); | ||
466 | oled_write_P(PSTR("Bri: ["), changing_val); | ||
467 | for(i = 0; i < width; ++i) { | ||
468 | oled_write_P(i<val?PSTR("-"):i==val?PSTR("|"):PSTR(" "), changing_val); | ||
469 | } | ||
470 | oled_write_P(PSTR("]"), changing_val); | ||
471 | } | ||
472 | #endif // RGBLIGHT_ENABLE | ||
473 | |||
474 | void render_layer_state(void) { | ||
475 | oled_write_P(PSTR("Layer: "), false); | ||
476 | switch (get_highest_layer(layer_state)) { | ||
477 | case _QWERTY: | ||
478 | oled_write_ln_P(PSTR("Base"), false); | ||
479 | break; | ||
480 | case _NAV: | ||
481 | oled_write_ln_P(PSTR("Navigation"), false); | ||
482 | break; | ||
483 | case _NUM: | ||
484 | oled_write_ln_P(PSTR("Number"), false); | ||
485 | break; | ||
486 | case _SYM: | ||
487 | oled_write_ln_P(PSTR("Symbol"), false); | ||
488 | break; | ||
489 | case _MISC: | ||
490 | oled_write_ln_P(PSTR("Misc"), false); | ||
491 | break; | ||
492 | case _ADJUST: | ||
493 | oled_write_ln_P(PSTR("Adjust"), false); | ||
494 | break; | ||
495 | default: | ||
496 | oled_write_ln_P(PSTR("Unknown"), false); | ||
497 | } | ||
498 | } | ||
499 | |||
500 | void render_keylock_status(led_t led_state) { | ||
501 | oled_write_P(PSTR("Lock: "), false); | ||
502 | oled_write_P(PSTR("123"), led_state.num_lock); | ||
503 | oled_write_P(PSTR(" "), false); | ||
504 | oled_write_ln_P(led_state.caps_lock?PSTR("ABC"):PSTR("abc"), led_state.caps_lock); | ||
505 | } | ||
506 | |||
507 | void render_mod_status(uint8_t modifiers) { | ||
508 | oled_write_P(PSTR("Mods: "), false); | ||
509 | oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); | ||
510 | oled_write_P(PSTR(" "), false); | ||
511 | oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); | ||
512 | oled_write_P(PSTR(" "), false); | ||
513 | oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); | ||
514 | oled_write_P(PSTR(" "), false); | ||
515 | oled_write_ln_P(PSTR("W"), (modifiers & MOD_MASK_GUI)); | ||
516 | } | ||
517 | |||
518 | static void render_status(void) { | ||
519 | // Host Keyboard Layer Status | ||
520 | render_default_layer_state(); | ||
521 | render_layer_state(); | ||
522 | render_keylock_status(host_keyboard_led_state()); | ||
523 | render_mod_status(get_mods() | get_oneshot_mods()); | ||
524 | #ifdef RGBLIGHT_ENABLE | ||
525 | render_rgb_state(); | ||
526 | #endif // RGBLIGHT_ENABLE | ||
527 | } | ||
528 | |||
529 | static void render_logo(void) { | ||
530 | static const char PROGMEM frame[ANIM_NUM_FRAMES][1024] = { | ||
531 | { | ||
532 | // leekspin: frame 0 | ||
533 | 0xff, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0x7f, 0xf7, 0xde, 0x7c, 0xf1, 0xc6, 0x98, 0x21, 0x66, 0x9a, | ||
534 | 0xc9, 0x24, 0x33, 0xcf, 0x2f, 0xfd, 0xff, 0x6b, 0x7f, 0x9d, 0x81, 0x76, 0x14, 0x81, 0x67, 0x0f, | ||
535 | 0xfb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb, 0xff, 0xef, 0xbb, | ||
536 | 0xff, 0x6f, 0xfb, 0xdf, 0x77, 0xff, 0x0d, 0xe0, 0x3f, 0xc0, 0x0d, 0x37, 0xd0, 0x26, 0xa9, 0xd8, | ||
537 | 0xc7, 0x1d, 0xf0, 0xff, 0xff, 0xf0, 0xc7, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf1, 0xc6, | ||
538 | 0xff, 0xf7, 0xf8, 0xf3, 0xcf, 0x90, 0xf7, 0xfc, 0xe3, 0x9b, 0x2e, 0xe2, 0xfc, 0x03, 0xfc, 0x7c, | ||
539 | 0x83, 0x1b, 0x6c, 0xa5, 0xb3, 0x4e, 0x59, 0x64, 0x13, 0xdb, 0xae, 0x20, 0xdf, 0xff, 0xbb, 0xef, | ||
540 | 0xff, 0xbb, 0xef, 0xdf, 0x7b, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0x7f, 0xf7, 0xdf, 0x7b, 0xef, | ||
541 | 0xff, 0xff, 0xdd, 0x77, 0xff, 0xdd, 0x77, 0xff, 0xdd, 0x77, 0xff, 0xdd, 0x77, 0xfe, 0xdc, 0xf1, | ||
542 | 0xcc, 0x23, 0x99, 0x64, 0x26, 0x98, 0x63, 0x0f, 0x30, 0xcc, 0x33, 0x24, 0xcd, 0x19, 0xe0, 0xff, | ||
543 | 0xff, 0xde, 0x7b, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0x6f, 0xfe, 0xdb, 0x7f, 0xf6, 0xdf, 0xfd, | ||
544 | 0xb7, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0x00, 0xbd, 0x67, 0x48, 0x13, 0xfc, 0x85, 0xff, 0x5f, 0x3f, | ||
545 | 0xb7, 0x97, 0xcf, 0xcb, 0xeb, 0xcf, 0x97, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
546 | 0xef, 0x9f, 0xd7, 0xcf, 0xcb, 0xdf, 0xd7, 0xcf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xfe, 0xff, 0xf2, | ||
547 | 0x07, 0xe9, 0x3e, 0x00, 0x35, 0xef, 0xc9, 0x1b, 0xc2, 0xbc, 0x37, 0xc0, 0xff, 0xbf, 0xfb, 0x6e, | ||
548 | 0xef, 0xfb, 0xde, 0xf7, 0xb7, 0xfd, 0xef, 0xbd, 0xf7, 0x77, 0xdd, 0xff, 0xb7, 0xfd, 0xef, 0xbb, | ||
549 | 0xff, 0xff, 0xdd, 0xf7, 0x7f, 0xdd, 0xf7, 0x7f, 0xdd, 0xf7, 0x7f, 0xdd, 0xf7, 0xbf, 0xed, 0xff, | ||
550 | 0xdf, 0xf7, 0xf6, 0x7c, 0xf9, 0xb1, 0xe6, 0xcb, 0x18, 0xa4, 0xb3, 0x09, 0xfc, 0xff, 0xfb, 0x6f, | ||
551 | 0xfe, 0xdf, 0xfb, 0xbf, 0xf7, 0x7e, 0xef, 0xfd, 0xb7, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0xb6, 0xff, | ||
552 | 0x6d, 0xff, 0xdb, 0x7f, 0xf6, 0xdf, 0xf9, 0x21, 0x8e, 0xfb, 0x00, 0x7e, 0xc0, 0xff, 0xfe, 0xff, | ||
553 | 0xf7, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, | ||
554 | 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x7f, 0x37, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc0, | ||
555 | 0x6e, 0x3b, 0x09, 0xe0, 0x6f, 0x1a, 0x92, 0x64, 0x6d, 0x99, 0xf2, 0x7f, 0xef, 0xfd, 0xb7, 0xff, | ||
556 | 0x7b, 0xde, 0xf7, 0xbf, 0xfb, 0x7e, 0xef, 0xbf, 0xff, 0xfb, 0xef, 0xbe, 0xfb, 0x6f, 0xfe, 0xdb, | ||
557 | 0xff, 0xff, 0xfe, 0xf7, 0xbf, 0xfb, 0xff, 0xbf, 0xef, 0xfd, 0xdf, 0xf7, 0x7d, 0xff, 0xee, 0x7f, | ||
558 | 0xf7, 0xbd, 0xff, 0xef, 0xfb, 0xbf, 0xfd, 0x77, 0xfe, 0xa0, 0xf9, 0xfe, 0xf0, 0xef, 0xbf, 0xf7, | ||
559 | 0x7f, 0xfb, 0xde, 0xff, 0xbb, 0xff, 0xf7, 0xbe, 0xfb, 0xdf, 0xff, 0xfd, 0xb7, 0xfe, 0xef, 0x7f, | ||
560 | 0xfb, 0xbf, 0xed, 0xff, 0xf7, 0xbe, 0xfb, 0xdf, 0xf0, 0x06, 0x98, 0xe7, 0x3c, 0x03, 0xcf, 0x2f, | ||
561 | 0x1f, 0x9f, 0x7f, 0x7f, 0x7e, 0xf8, 0xf1, 0xe6, 0xf8, 0xc9, 0xca, 0xfa, 0xc8, 0xda, 0xf2, 0xcc, | ||
562 | 0xd9, 0xf2, 0xe0, 0xed, 0xf1, 0xfa, 0xfc, 0x7f, 0x7f, 0x3f, 0xbf, 0x9f, 0x0f, 0xe3, 0x34, 0x8d, | ||
563 | 0xe3, 0x18, 0x17, 0x85, 0xa0, 0x38, 0xcf, 0x13, 0xf8, 0xef, 0xdd, 0x7f, 0xff, 0xf7, 0xfd, 0xef, | ||
564 | 0xbb, 0xff, 0x7f, 0xf7, 0xfd, 0xef, 0xbf, 0xfb, 0xee, 0xff, 0xff, 0xbb, 0xef, 0x7f, 0xfb, 0xee, | ||
565 | 0xff, 0xff, 0xde, 0xf7, 0xff, 0xef, 0xbd, 0xff, 0xdb, 0xff, 0xfe, 0x77, 0x7f, 0xf7, 0xfd, 0x7f, | ||
566 | 0xf7, 0xff, 0xdb, 0x7e, 0xff, 0xef, 0xfb, 0xff, 0xb7, 0xff, 0xc8, 0xff, 0xff, 0xff, 0xfc, 0x27, | ||
567 | 0xff, 0xff, 0xff, 0xed, 0xbf, 0xfe, 0xf7, 0x7f, 0xfb, 0xdf, 0xfe, 0xf7, 0xdf, 0xff, 0xfd, 0x6f, | ||
568 | 0xff, 0xbf, 0xfb, 0xff, 0xde, 0xff, 0xf7, 0xfd, 0xbf, 0x00, 0x77, 0x6c, 0x89, 0x11, 0x04, 0xa2, | ||
569 | 0x08, 0x69, 0x46, 0x90, 0x02, 0x64, 0x94, 0x24, 0x09, 0x91, 0x85, 0x21, 0x09, 0xff, 0xf7, 0xdd, | ||
570 | 0x3d, 0x37, 0x1d, 0x1d, 0x06, 0xc6, 0x07, 0x10, 0x20, 0x83, 0x84, 0x30, 0x66, 0x19, 0x92, 0x06, | ||
571 | 0x40, 0x31, 0x0c, 0xc0, 0x14, 0xb7, 0x09, 0xfa, 0xff, 0xdf, 0xfb, 0xbf, 0xfd, 0xf7, 0xef, 0xef, | ||
572 | 0xff, 0xdf, 0xf7, 0xff, 0x6e, 0xff, 0xff, 0xde, 0xf7, 0xff, 0x7e, 0xdb, 0xff, 0xb7, 0xff, 0xee, | ||
573 | 0xff, 0xff, 0x7f, 0xf6, 0xdf, 0xfd, 0xff, 0xff, 0xef, 0xbb, 0xfe, 0x7f, 0xf7, 0xdf, 0xff, 0xf7, | ||
574 | 0xdd, 0xff, 0xff, 0xbf, 0xed, 0xff, 0xfe, 0xef, 0x3f, 0xde, 0xee, 0xc9, 0xff, 0xff, 0xdf, 0xff, | ||
575 | 0xc9, 0xff, 0x9e, 0xdf, 0xdf, 0xb7, 0xfd, 0xff, 0xef, 0xff, 0xfb, 0xef, 0xfd, 0xbf, 0xf7, 0xff, | ||
576 | 0xbb, 0xef, 0xff, 0xfd, 0xff, 0xef, 0x7e, 0xff, 0xb1, 0x06, 0x7b, 0xc9, 0x00, 0x42, 0x98, 0x31, | ||
577 | 0x46, 0x44, 0x38, 0x89, 0xc4, 0x30, 0x00, 0x42, 0x10, 0x84, 0x20, 0x08, 0x81, 0x03, 0x10, 0x80, | ||
578 | 0x24, 0x00, 0x88, 0x21, 0x04, 0xc0, 0x08, 0xa1, 0x34, 0x4c, 0x03, 0x90, 0x46, 0x00, 0x30, 0xd1, | ||
579 | 0x04, 0x69, 0x88, 0x30, 0x22, 0xcb, 0x04, 0x3f, 0xfb, 0xff, 0xfd, 0x6f, 0xfe, 0xf7, 0xbf, 0xfe, | ||
580 | 0xdb, 0xff, 0xee, 0x7f, 0xf7, 0xbf, 0xfd, 0xef, 0x7e, 0xf7, 0xff, 0xdb, 0xff, 0xb7, 0xfe, 0x7b, | ||
581 | 0xff, 0xff, 0xff, 0xbb, 0xef, 0xff, 0xf6, 0xff, 0xbf, 0xef, 0xff, 0xdf, 0xfd, 0x7f, 0xfe, 0xbf, | ||
582 | 0xef, 0xfe, 0xff, 0xdf, 0xff, 0xfe, 0xff, 0xe4, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
583 | 0xff, 0xff, 0xfe, 0xfb, 0x37, 0xfd, 0xfe, 0xff, 0xff, 0x6f, 0xff, 0xf6, 0xff, 0xbf, 0xfb, 0xdf, | ||
584 | 0xff, 0xff, 0x77, 0x7f, 0x9d, 0x9f, 0x27, 0x21, 0xcc, 0x18, 0x63, 0x84, 0x80, 0x2a, 0x29, 0x44, | ||
585 | 0x59, 0x43, 0x94, 0x34, 0x42, 0x49, 0x2c, 0x92, 0x92, 0x64, 0x0c, 0x80, 0xb8, 0x22, 0x86, 0x34, | ||
586 | 0x48, 0x23, 0x34, 0x44, 0xc9, 0x18, 0x46, 0x09, 0x80, 0x72, 0x08, 0x61, 0x80, 0x9b, 0x12, 0x64, | ||
587 | 0x8d, 0x90, 0x23, 0xa8, 0x26, 0x44, 0x59, 0x89, 0x24, 0xd3, 0x1f, 0xff, 0xfd, 0xef, 0xff, 0x7d, | ||
588 | 0xef, 0xfe, 0xf7, 0xbf, 0xfb, 0xdf, 0x7d, 0xff, 0xf7, 0xbf, 0xfe, 0xdb, 0x7f, 0xfd, 0xff, 0xcf, | ||
589 | 0xff, 0xff, 0xfb, 0xff, 0x7f, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xfd, 0xb7, 0xff, 0xfb, 0xbf, 0xff, | ||
590 | 0xef, 0xfb, 0x7e, 0xdf, 0xff, 0xf6, 0xff, 0xdf, 0xff, 0xed, 0xfb, 0xff, 0xef, 0x2f, 0xef, 0xef, | ||
591 | 0xf7, 0xf7, 0x9f, 0xfb, 0xfc, 0xff, 0xf7, 0xdf, 0xbb, 0x7f, 0xff, 0xef, 0xfe, 0xf7, 0x1f, 0x07, | ||
592 | 0xd1, 0x19, 0x22, 0x66, 0x44, 0x98, 0x8b, 0x21, 0x64, 0x1a, 0x42, 0xd4, 0x14, 0x23, 0xa8, 0x4d, | ||
593 | 0x91, 0x92, 0x64, 0x25, 0x99, 0x44, 0x23, 0x88, 0x50, 0x96, 0xa3, 0x18, 0x44, 0x65, 0x99, 0x22, | ||
594 | 0x8a, 0x69, 0x25, 0x86, 0xd8, 0x1d, 0xb7, 0x9a, 0x9e, 0x30, 0x8b, 0xe2, 0xcc, 0xd9, 0xe1, 0xfc, | ||
595 | 0xee, 0xf8, 0xfe, 0xe1, 0xc9, 0x06, 0x98, 0x69, 0x22, 0x92, 0x4c, 0x23, 0xa7, 0x1f, 0x7d, 0xff, | ||
596 | 0xff, 0xbf, 0xef, 0xfb, 0xbe, 0xef, 0x7f, 0xfb, 0xfe, 0x77, 0xff, 0xbf, 0xef, 0xfd, 0xf7, 0xff, | ||
597 | |||
598 | }, | ||
599 | { | ||
600 | // leekspin: frame 1 | ||
601 | 0xff, 0xbf, 0xfb, 0xcf, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xff, 0xdf, | ||
602 | 0x77, 0xff, 0xdb, 0xff, 0xb7, 0xff, 0xfb, 0x6f, 0xff, 0xff, 0xdd, 0xf7, 0xff, 0xff, 0xff, 0xbb, | ||
603 | 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0x6f, 0xff, 0xbb, 0xef, | ||
604 | 0xff, 0xbb, 0xef, 0x7f, 0xdb, 0xff, 0x27, 0xd0, 0x5f, 0x60, 0x8d, 0x37, 0xe0, 0x8d, 0x31, 0xd8, | ||
605 | 0xc7, 0x1d, 0xf0, 0xff, 0xff, 0xf0, 0xcf, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xc1, | ||
606 | 0xff, 0xfe, 0xf9, 0xe7, 0xcc, 0x91, 0xf7, 0xfc, 0xe3, 0x99, 0x2e, 0xe2, 0xfc, 0x03, 0xfc, 0x7c, | ||
607 | 0x03, 0x3b, 0xec, 0x85, 0x33, 0x76, 0xcd, 0xa8, 0x23, 0x5b, 0xee, 0x20, 0x9f, 0xff, 0x7b, 0xef, | ||
608 | 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0xff, 0xb7, | ||
609 | 0xff, 0xff, 0x76, 0xdf, 0xfd, 0x77, 0xde, 0xfb, 0xbf, 0xf6, 0xdf, 0xfd, 0xb7, 0xff, 0x6d, 0xff, | ||
610 | 0xfe, 0xfb, 0xdf, 0xf6, 0xbf, 0xed, 0xff, 0xef, 0xbf, 0xf6, 0xff, 0xef, 0xfb, 0xbf, 0xee, 0xfb, | ||
611 | 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0x7b, 0xdf, 0xfd, 0xb7, 0xfe, | ||
612 | 0xef, 0xbd, 0xf7, 0x7f, 0xed, 0xff, 0x00, 0x6e, 0xdb, 0x91, 0x24, 0xee, 0x09, 0xff, 0x5f, 0x3f, | ||
613 | 0xa7, 0x9f, 0xcb, 0xcb, 0xef, 0xcb, 0x9f, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
614 | 0xff, 0x8f, 0xd7, 0xdf, 0xcb, 0xcf, 0xd7, 0xdf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xf0, | ||
615 | 0x07, 0xb3, 0xec, 0x08, 0x33, 0xf7, 0x8c, 0x66, 0x11, 0xdb, 0x2e, 0xa0, 0xff, 0xdf, 0xf7, 0xbd, | ||
616 | 0xef, 0xfe, 0xbb, 0xef, 0x7e, 0xdb, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0xb6, 0xff, 0x6d, | ||
617 | 0xff, 0xff, 0xb7, 0xfd, 0xef, 0xbb, 0xff, 0x6e, 0xfb, 0xdf, 0x76, 0xff, 0xdd, 0x77, 0xff, 0xef, | ||
618 | 0xbf, 0xfb, 0xf6, 0x7f, 0xef, 0xff, 0x7f, 0xed, 0xfd, 0xf7, 0xbf, 0xff, 0xde, 0xf7, 0xfd, 0xbf, | ||
619 | 0xf7, 0xde, 0xfb, 0xbf, 0xee, 0xfb, 0xdf, 0x76, 0xff, 0xed, 0xbf, 0xfb, 0x6f, 0xfe, 0xdb, 0xff, | ||
620 | 0xb6, 0xff, 0xed, 0xbf, 0xfb, 0x6f, 0xfc, 0x83, 0x32, 0xde, 0x00, 0xbf, 0xc0, 0xff, 0xfe, 0xff, | ||
621 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
622 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc0, | ||
623 | 0xde, 0x33, 0x0c, 0xe0, 0xb7, 0x1c, 0x85, 0x70, 0x6f, 0x8d, 0xf0, 0x7f, 0xdf, 0xf7, 0xfe, 0xbb, | ||
624 | 0xef, 0x7f, 0xd9, 0xff, 0xbf, 0xf7, 0xff, 0x6f, 0xff, 0xfb, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0xdb, | ||
625 | 0xff, 0xff, 0xff, 0xed, 0xbf, 0xfb, 0xff, 0xdf, 0xf7, 0xfd, 0x7f, 0xef, 0xbb, 0xff, 0xdd, 0xff, | ||
626 | 0x77, 0xfe, 0xef, 0xbb, 0xff, 0x7d, 0xef, 0xff, 0xb6, 0xff, 0xdd, 0xff, 0x7b, 0xde, 0xff, 0xed, | ||
627 | 0x7f, 0xfb, 0xde, 0xff, 0xb7, 0xfd, 0xff, 0xdb, 0x7f, 0xfe, 0xbb, 0xef, 0x7f, 0xdb, 0xfe, 0xef, | ||
628 | 0x7b, 0xfe, 0xef, 0x7d, 0xf7, 0xbf, 0xed, 0x7f, 0xf8, 0x02, 0xc6, 0xbd, 0x34, 0x47, 0x47, 0x9f, | ||
629 | 0x1f, 0x3f, 0x3f, 0x7f, 0x7e, 0xff, 0xff, 0xfe, 0xff, 0xfd, 0xfd, 0xff, 0xfe, 0xff, 0xfd, 0xff, | ||
630 | 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0x7f, 0x9f, 0x9f, 0x0d, 0xe3, 0x3a, 0x8c, | ||
631 | 0x63, 0x58, 0x17, 0x84, 0x21, 0xb8, 0xcf, 0x63, 0xd8, 0xff, 0xef, 0xbb, 0xff, 0xff, 0xfd, 0xf7, | ||
632 | 0xdd, 0xff, 0xbf, 0x7b, 0xff, 0xf6, 0xdf, 0xff, 0xb7, 0xfd, 0xff, 0xef, 0x7d, 0xdf, 0xfb, 0xee, | ||
633 | 0xff, 0xff, 0xbe, 0xef, 0xfb, 0x7f, 0xef, 0xbe, 0xfb, 0xff, 0x77, 0xff, 0xef, 0x7d, 0xff, 0xfb, | ||
634 | 0xff, 0xed, 0xff, 0xdf, 0x7d, 0xef, 0xff, 0xf6, 0x7f, 0xdf, 0xfd, 0xb7, 0xff, 0xfb, 0xdf, 0xfd, | ||
635 | 0xff, 0xb7, 0xff, 0xed, 0x7f, 0xfe, 0xb7, 0xff, 0xfb, 0xdf, 0xff, 0xf7, 0xff, 0xef, 0xff, 0x7d, | ||
636 | 0xef, 0xff, 0xb7, 0xff, 0xfd, 0xff, 0xdf, 0x77, 0xff, 0x80, 0x36, 0xed, 0x09, 0x12, 0x44, 0x21, | ||
637 | 0x0c, 0x51, 0x51, 0x86, 0x00, 0x58, 0x46, 0x30, 0x24, 0x85, 0x09, 0x21, 0x85, 0xff, 0x7b, 0xed, | ||
638 | 0x3d, 0x1d, 0x1d, 0x47, 0x0e, 0x8e, 0x23, 0x00, 0x22, 0x02, 0xc4, 0xb0, 0x26, 0x19, 0x4c, 0x03, | ||
639 | 0xc0, 0x18, 0x06, 0x60, 0x89, 0xbd, 0x02, 0xfa, 0xff, 0xff, 0xb6, 0xff, 0xfb, 0xbe, 0xf7, 0xf7, | ||
640 | 0xdf, 0x7f, 0xf7, 0xff, 0x6f, 0xfe, 0xff, 0xdf, 0xfb, 0x6f, 0xfe, 0xdf, 0x7b, 0xff, 0xf7, 0xde, | ||
641 | 0x23, 0xcf, 0x9f, 0x37, 0x7d, 0xff, 0xff, 0xf7, 0xff, 0xfb, 0x6f, 0xff, 0xdb, 0xff, 0xbf, 0xfe, | ||
642 | 0xdb, 0xef, 0xff, 0xff, 0xb7, 0xfd, 0x7f, 0xff, 0xef, 0xfb, 0x7f, 0xf7, 0xbd, 0xff, 0xde, 0xdf, | ||
643 | 0xfb, 0xdf, 0xde, 0xd7, 0xbf, 0xef, 0xfb, 0xf7, 0xfe, 0xfb, 0xfb, 0xfd, 0x7c, 0x7f, 0xfd, 0xfe, | ||
644 | 0x7d, 0xfd, 0x9e, 0x62, 0x6f, 0xff, 0xff, 0x7f, 0xd2, 0x08, 0xef, 0x31, 0x00, 0x42, 0x48, 0x39, | ||
645 | 0x86, 0x60, 0x0c, 0xd9, 0x90, 0x20, 0x02, 0x10, 0x44, 0x08, 0x02, 0x10, 0x40, 0x03, 0x11, 0x80, | ||
646 | 0x20, 0x24, 0x81, 0x08, 0x42, 0x90, 0x04, 0xc1, 0x78, 0x06, 0x24, 0x09, 0x42, 0x40, 0x98, 0x22, | ||
647 | 0x30, 0xc9, 0x88, 0x32, 0x44, 0x4d, 0x80, 0x3f, 0xff, 0xfe, 0xf7, 0x7f, 0xed, 0xbf, 0xfe, 0xf7, | ||
648 | 0xbf, 0xfb, 0xdf, 0xfd, 0xef, 0x7f, 0xfb, 0xde, 0xff, 0xef, 0xfb, 0xbf, 0xff, 0x6d, 0xff, 0xf6, | ||
649 | 0x92, 0x24, 0x65, 0x99, 0xc6, 0x30, 0x8b, 0x67, 0x37, 0x87, 0x6f, 0xff, 0xf5, 0x77, 0x7f, 0xfe, | ||
650 | 0xff, 0xef, 0xfe, 0x7f, 0xf7, 0xed, 0x0f, 0xfe, 0xfe, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
651 | 0xff, 0xff, 0xff, 0xff, 0x7f, 0xb6, 0xec, 0xfe, 0xff, 0x7e, 0xef, 0xff, 0x7f, 0xf7, 0xff, 0xbf, | ||
652 | 0xef, 0xff, 0xf7, 0x7f, 0x1f, 0x9f, 0x63, 0x03, 0xdc, 0x90, 0x23, 0x8a, 0x20, 0x05, 0xc9, 0x5a, | ||
653 | 0x11, 0xa4, 0x8b, 0x30, 0x24, 0x4b, 0x48, 0x26, 0x34, 0xc1, 0x8c, 0x22, 0x98, 0x91, 0x66, 0x08, | ||
654 | 0x32, 0xc4, 0x99, 0x12, 0x62, 0xcc, 0x00, 0x33, 0x04, 0xc0, 0x38, 0x83, 0x40, 0x96, 0x19, 0x61, | ||
655 | 0x86, 0x18, 0x60, 0x93, 0x4c, 0x24, 0x93, 0x48, 0x6c, 0x83, 0x3f, 0xff, 0xfb, 0xff, 0xdd, 0xff, | ||
656 | 0xf7, 0xfd, 0xff, 0xde, 0xf7, 0x7f, 0xfb, 0xbf, 0xee, 0xff, 0xbd, 0xf7, 0x7f, 0xfb, 0xff, 0xde, | ||
657 | 0xfe, 0xff, 0xde, 0xfe, 0xfe, 0xfe, 0x6f, 0xfe, 0xff, 0xff, 0xff, 0xb7, 0xff, 0xdf, 0x7f, 0xff, | ||
658 | 0xd7, 0xfd, 0xef, 0xff, 0x7d, 0xff, 0xdf, 0xff, 0xf5, 0x7f, 0xf7, 0xff, 0xef, 0xef, 0xe7, 0x7f, | ||
659 | 0xfb, 0xfb, 0xfe, 0xfd, 0xff, 0xfb, 0xef, 0xfd, 0xdf, 0x7f, 0xff, 0xfb, 0xdf, 0xff, 0x0b, 0x07, | ||
660 | 0x35, 0xc9, 0x48, 0x92, 0x93, 0x6c, 0x08, 0x93, 0xc4, 0x30, 0x46, 0x99, 0xa1, 0x26, 0x48, 0x8c, | ||
661 | 0x33, 0xc4, 0x28, 0x0b, 0xd1, 0x34, 0x01, 0xc3, 0x18, 0x64, 0x86, 0x30, 0x4d, 0x90, 0xa6, 0x29, | ||
662 | 0x49, 0x44, 0xb4, 0x83, 0x5a, 0x9c, 0x37, 0x56, 0x9e, 0x21, 0xcc, 0xd1, 0xd6, 0xe4, 0xc9, 0xfc, | ||
663 | 0xec, 0xef, 0xf8, 0xe4, 0xc3, 0x19, 0xa4, 0x26, 0xd0, 0x0d, 0x24, 0xd3, 0x47, 0x1f, 0x7e, 0xff, | ||
664 | 0xff, 0x6f, 0xff, 0xd9, 0xff, 0xbf, 0xe7, 0xff, 0xf9, 0x7f, 0xff, 0xdf, 0xdf, 0xf5, 0xff, 0xfb, | ||
665 | |||
666 | }, | ||
667 | { | ||
668 | // leekspin: frame 2 | ||
669 | 0xff, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xff, 0xef, | ||
670 | 0xbf, 0xfb, 0xdf, 0xf7, 0xbf, 0xfb, 0x7f, 0x7f, 0xdb, 0xff, 0xbf, 0xfb, 0xef, 0xff, 0x7f, 0xdf, | ||
671 | 0xff, 0xf3, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, | ||
672 | 0xfb, 0xbf, 0xef, 0x7b, 0xdf, 0xf7, 0x2f, 0x60, 0xdf, 0x80, 0x2d, 0x57, 0xd0, 0x93, 0x24, 0xfc, | ||
673 | 0xc3, 0x1b, 0xf4, 0xf7, 0xff, 0xf0, 0xcf, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xc1, | ||
674 | 0xff, 0xfe, 0xf9, 0xe7, 0xcc, 0x91, 0xf7, 0xfc, 0xe3, 0x99, 0x2e, 0xe2, 0xfc, 0x03, 0xec, 0x7c, | ||
675 | 0x93, 0x2b, 0x6c, 0x95, 0x53, 0xce, 0x39, 0xc4, 0x33, 0x6b, 0xce, 0x90, 0xbf, 0xef, 0xfb, 0xbf, | ||
676 | 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xef, 0xfb, 0xbf, 0xed, | ||
677 | 0xff, 0xff, 0xee, 0xbb, 0xff, 0x6e, 0xfb, 0xdf, 0x76, 0xff, 0xdd, 0xf7, 0xbf, 0xed, 0xff, 0xff, | ||
678 | 0xee, 0xff, 0x75, 0xdf, 0xff, 0xf6, 0xdf, 0xff, 0xb7, 0xff, 0xfb, 0xef, 0xfd, 0xb7, 0xff, 0xdb, | ||
679 | 0xfe, 0x6f, 0xfb, 0xbe, 0xef, 0xfb, 0xbe, 0xef, 0xfb, 0xbe, 0xef, 0xfb, 0xbe, 0xef, 0x7b, 0xde, | ||
680 | 0xf7, 0x7d, 0xdf, 0xf7, 0xbd, 0xff, 0x00, 0xf7, 0x9c, 0x21, 0x27, 0xd8, 0x46, 0xff, 0x5f, 0x3f, | ||
681 | 0xa7, 0x9f, 0xcb, 0xcb, 0xef, 0xcb, 0xdf, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
682 | 0xef, 0x9f, 0xd7, 0xcf, 0xcb, 0xdf, 0xd7, 0xcf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xf0, | ||
683 | 0x07, 0x73, 0xdc, 0x01, 0x6e, 0x99, 0x73, 0x4e, 0x88, 0xf3, 0x1e, 0xc0, 0xff, 0x7f, 0xde, 0xf3, | ||
684 | 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0xfb, 0xbf, 0xee, 0x7b, 0xdf, 0xf6, 0xbf, 0xed, | ||
685 | 0xff, 0xff, 0x76, 0xdf, 0xfd, 0xb7, 0xff, 0xed, 0xbf, 0xfb, 0x6e, 0xff, 0xbd, 0xef, 0xfe, 0xf7, | ||
686 | 0xbf, 0xfd, 0xf7, 0xdf, 0x7f, 0xff, 0xb7, 0xfc, 0xef, 0xff, 0xf7, 0xbf, 0xfa, 0xdf, 0xfd, 0xef, | ||
687 | 0x7b, 0xff, 0xed, 0x7f, 0xde, 0xfb, 0xef, 0xbe, 0xfb, 0xdf, 0xf6, 0x7f, 0xdd, 0xf7, 0xbf, 0xed, | ||
688 | 0xff, 0xbb, 0xef, 0x7e, 0xdb, 0xff, 0x76, 0xc0, 0x1d, 0x77, 0x00, 0x7f, 0xc0, 0xff, 0xfe, 0xff, | ||
689 | 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
690 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc0, | ||
691 | 0xbb, 0x37, 0x04, 0xf0, 0xce, 0x39, 0x07, 0x70, 0xdd, 0x86, 0xf2, 0x7f, 0xdf, 0xf7, 0xfd, 0xbf, | ||
692 | 0xef, 0x79, 0xff, 0xef, 0xfd, 0xdf, 0x7b, 0xef, 0xbf, 0xfd, 0xff, 0xfb, 0xdf, 0xf6, 0xbf, 0xed, | ||
693 | 0xff, 0xff, 0xef, 0x7d, 0xff, 0xfb, 0xdf, 0xfd, 0xff, 0x6f, 0xfb, 0xbf, 0xfd, 0xef, 0x7e, 0xf7, | ||
694 | 0xbf, 0xee, 0xfb, 0x7f, 0xdf, 0xfb, 0xbf, 0xfd, 0xef, 0xfe, 0xdf, 0xfb, 0xef, 0xfe, 0xbf, 0xed, | ||
695 | 0xff, 0xf7, 0xbd, 0xff, 0x6f, 0xfb, 0xfe, 0xdf, 0xf7, 0xfd, 0xbf, 0xfb, 0x6f, 0xfe, 0xf7, 0xff, | ||
696 | 0xdd, 0x7f, 0xfb, 0xef, 0xfd, 0xdf, 0x7b, 0xff, 0xe4, 0x09, 0xc9, 0xb6, 0x36, 0x4b, 0x47, 0x9f, | ||
697 | 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xfe, 0xfe, 0xff, 0xfd, 0xff, 0xfe, 0xfd, 0xff, 0xfd, 0xff, | ||
698 | 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0x3f, 0x9f, 0xdf, 0x0d, 0xa3, 0x3a, 0x4c, | ||
699 | 0xe3, 0x18, 0x17, 0x06, 0x60, 0xd8, 0xcf, 0x33, 0xd8, 0xfe, 0xef, 0x7b, 0xdf, 0xff, 0x7f, 0xfd, | ||
700 | 0xfd, 0xf7, 0xdf, 0xff, 0xbe, 0xfb, 0xff, 0xb7, 0xdf, 0xfd, 0xff, 0x6e, 0xff, 0xdd, 0xf7, 0xbe, | ||
701 | 0xff, 0xff, 0xdd, 0xff, 0xef, 0x7b, 0xfe, 0xbf, 0xef, 0x7b, 0xff, 0xbd, 0x37, 0xff, 0xfb, 0x7f, | ||
702 | 0xf7, 0xfd, 0xef, 0xff, 0xbb, 0xff, 0xf7, 0xfe, 0xdb, 0xff, 0xee, 0xff, 0xfb, 0xbe, 0xff, 0xef, | ||
703 | 0xfb, 0x7e, 0xdf, 0xf7, 0xff, 0xbd, 0xff, 0xee, 0xff, 0xdb, 0xff, 0xf7, 0x7f, 0xff, 0xf7, 0xbe, | ||
704 | 0xff, 0x77, 0xff, 0xbb, 0xfe, 0xff, 0xff, 0xb7, 0xff, 0x00, 0xb6, 0xed, 0x09, 0x02, 0x64, 0x81, | ||
705 | 0x0c, 0x31, 0xc5, 0x48, 0x02, 0x24, 0x98, 0x62, 0x24, 0x05, 0x89, 0x21, 0x05, 0xff, 0xfb, 0x6d, | ||
706 | 0x3d, 0x9d, 0x17, 0x1c, 0x4d, 0x07, 0x26, 0x80, 0x11, 0x41, 0x84, 0xb0, 0x66, 0x19, 0x0b, 0x82, | ||
707 | 0x10, 0x64, 0x09, 0x90, 0xc6, 0x3b, 0x08, 0xf6, 0xff, 0xbf, 0xfb, 0xef, 0xff, 0xdd, 0xff, 0xbb, | ||
708 | 0xff, 0x77, 0xf7, 0xbf, 0xfb, 0xfe, 0xb7, 0xff, 0xdf, 0xfd, 0xef, 0x7f, 0xdd, 0xf7, 0xff, 0x6d, | ||
709 | 0xff, 0xff, 0x7b, 0xfe, 0xdf, 0xf7, 0xf7, 0x7d, 0xe9, 0xbe, 0xfe, 0xff, 0xff, 0xfd, 0xff, 0xf7, | ||
710 | 0xfd, 0xcf, 0xff, 0x7f, 0xef, 0xbe, 0xfb, 0xdf, 0xbd, 0xbf, 0xbb, 0xbe, 0xff, 0xbf, 0xef, 0x7d, | ||
711 | 0x77, 0xff, 0xff, 0xdb, 0xfe, 0xff, 0xef, 0x7b, 0xfe, 0xff, 0xbf, 0xfd, 0xef, 0xff, 0xfb, 0xef, | ||
712 | 0xff, 0x7b, 0xff, 0xff, 0xfe, 0xbf, 0xef, 0xff, 0xd8, 0x03, 0xbd, 0x64, 0x00, 0x89, 0xa8, 0x22, | ||
713 | 0x1c, 0xe1, 0x08, 0x56, 0x90, 0x20, 0x04, 0x90, 0x02, 0x20, 0x04, 0x10, 0x41, 0x03, 0x88, 0x20, | ||
714 | 0x04, 0x40, 0x08, 0x81, 0x30, 0x02, 0x10, 0xc4, 0x30, 0x8e, 0x21, 0x08, 0x22, 0xc1, 0x18, 0xc0, | ||
715 | 0x31, 0x0c, 0x60, 0x98, 0xc2, 0x23, 0x0c, 0x5f, 0xff, 0xfb, 0xef, 0xfe, 0x77, 0xfd, 0xff, 0xdb, | ||
716 | 0xff, 0x6f, 0xfb, 0xbf, 0xfd, 0xef, 0xff, 0xdb, 0xfe, 0x7f, 0xf7, 0xdf, 0xfd, 0xef, 0xfb, 0xbf, | ||
717 | 0xff, 0xff, 0xff, 0xf7, 0xff, 0xdd, 0xff, 0xef, 0xff, 0x7b, 0xff, 0xde, 0xff, 0xff, 0x7b, 0xff, | ||
718 | 0xf7, 0xff, 0xef, 0xef, 0xde, 0x73, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
719 | 0xff, 0xfe, 0xfe, 0xff, 0x89, 0xbf, 0xff, 0xbf, 0xf7, 0x7f, 0x7d, 0xff, 0xef, 0x7e, 0xff, 0xfb, | ||
720 | 0xdf, 0xff, 0xef, 0x7d, 0x1f, 0x97, 0xa7, 0x21, 0x1c, 0xd0, 0x23, 0x0a, 0x40, 0x14, 0xa4, 0x93, | ||
721 | 0x99, 0x24, 0x62, 0x8a, 0x19, 0x51, 0x46, 0xb0, 0x8c, 0x43, 0x18, 0xc4, 0x30, 0x26, 0xc4, 0x18, | ||
722 | 0xc9, 0x26, 0x98, 0x41, 0x4c, 0xb3, 0x80, 0x0d, 0x02, 0x70, 0x88, 0x23, 0xc4, 0x10, 0x96, 0x64, | ||
723 | 0x09, 0x93, 0x24, 0x68, 0x44, 0x95, 0x89, 0x6a, 0x10, 0xc7, 0x3f, 0xfb, 0xff, 0xff, 0x6e, 0xfb, | ||
724 | 0xbf, 0xff, 0xfb, 0xef, 0xff, 0x76, 0xff, 0x9f, 0xfd, 0xdf, 0xff, 0xbb, 0xee, 0xff, 0x3d, 0xff, | ||
725 | 0xff, 0xff, 0xde, 0xfb, 0xff, 0xff, 0xef, 0xbe, 0xff, 0xff, 0xff, 0x77, 0xfd, 0xff, 0xdf, 0xff, | ||
726 | 0xfb, 0x7e, 0xdf, 0xf7, 0xff, 0xff, 0xfe, 0xdf, 0xfd, 0xfb, 0xfb, 0xf7, 0xdf, 0xd9, 0xbf, 0xbf, | ||
727 | 0xd7, 0xf7, 0xfb, 0xfc, 0xff, 0xfb, 0xfb, 0xef, 0xb7, 0x7f, 0xff, 0xf7, 0xff, 0xee, 0x0f, 0x0e, | ||
728 | 0xae, 0x6f, 0x8c, 0x90, 0x53, 0x8c, 0x28, 0x23, 0x99, 0x48, 0x66, 0x91, 0x19, 0x66, 0x48, 0x92, | ||
729 | 0x94, 0x65, 0x24, 0x89, 0x69, 0x46, 0x12, 0xc4, 0x88, 0x32, 0x93, 0x4c, 0x48, 0x33, 0x84, 0x32, | ||
730 | 0xca, 0x0c, 0xb1, 0x22, 0xce, 0x9c, 0x33, 0x96, 0xdf, 0x18, 0xa1, 0xe6, 0xd8, 0xc6, 0xf1, 0xf8, | ||
731 | 0xee, 0xfd, 0xf9, 0xf2, 0xc2, 0x0c, 0x66, 0x90, 0x93, 0x4c, 0x48, 0x33, 0x87, 0x9f, 0x7f, 0xff, | ||
732 | 0xff, 0xff, 0xd7, 0x7d, 0xfd, 0xf7, 0xdf, 0xfb, 0xbf, 0xfe, 0x7b, 0xdf, 0xff, 0xf7, 0xf7, 0xfd, | ||
733 | }, | ||
734 | { | ||
735 | // leekspin: frame 3 | ||
736 | 0xff, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0xef, 0xbf, 0xfb, 0x6f, 0xff, 0xdb, 0x7f, 0xff, 0xff, | ||
737 | 0xbb, 0xef, 0x7f, 0xdb, 0xff, 0xb7, 0xfd, 0x5d, 0x02, 0xb8, 0xc6, 0x12, 0x30, 0xc4, 0x32, 0x4a, | ||
738 | 0x0c, 0xf1, 0xfd, 0xbf, 0xfb, 0x6d, 0xfb, 0xbb, 0x77, 0x77, 0xbb, 0xef, 0x6f, 0xfb, 0xcf, 0xdf, | ||
739 | 0xbb, 0x6f, 0x7f, 0xdb, 0xff, 0xf7, 0x0f, 0xe0, 0x3f, 0xc0, 0x0d, 0xb7, 0xe0, 0x0d, 0xa9, 0xf8, | ||
740 | 0xc7, 0x1d, 0xf0, 0xff, 0xff, 0xf0, 0xc7, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf1, 0xc6, | ||
741 | 0xff, 0xf7, 0xf8, 0xf3, 0xcf, 0x90, 0xf7, 0xfc, 0xe3, 0x99, 0x2e, 0xe2, 0xfc, 0x03, 0xfc, 0x78, | ||
742 | 0x13, 0x27, 0xec, 0x19, 0x53, 0xe6, 0x2d, 0xd8, 0x83, 0x3b, 0xee, 0x00, 0x7f, 0xff, 0xbb, 0xef, | ||
743 | 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0xff, 0xbb, 0xef, 0x7f, 0xdb, 0xff, 0xb7, | ||
744 | 0xff, 0xfb, 0x6f, 0xfe, 0xdb, 0x7f, 0xf6, 0xdf, 0xfd, 0xb7, 0xff, 0x6d, 0xff, 0xdb, 0xff, 0xf7, | ||
745 | 0xff, 0xfd, 0x9f, 0xfb, 0xf7, 0xff, 0xbb, 0x00, 0x66, 0x99, 0x4c, 0x63, 0x99, 0x8c, 0x63, 0x7c, | ||
746 | 0x1f, 0xce, 0x26, 0x35, 0xc9, 0x0b, 0x30, 0x4c, 0x83, 0xb0, 0xfc, 0x6f, 0xef, 0xdb, 0xbf, 0x6e, | ||
747 | 0x7b, 0xdf, 0xf7, 0xbe, 0xee, 0xfd, 0x00, 0xd9, 0x7b, 0x02, 0x86, 0x7c, 0x09, 0xff, 0x5f, 0x3f, | ||
748 | 0xa7, 0x9f, 0xcb, 0xcb, 0xef, 0xcb, 0xdb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
749 | 0xef, 0x9f, 0xd7, 0xcf, 0xcb, 0xdf, 0xd7, 0xcf, 0x8f, 0x3f, 0x1f, 0x7f, 0xff, 0xff, 0xfb, 0x72, | ||
750 | 0x87, 0xb9, 0x6c, 0x03, 0x3b, 0xcc, 0xd3, 0x36, 0x88, 0xdb, 0x75, 0x84, 0xff, 0xfb, 0xef, 0xbe, | ||
751 | 0xfb, 0xef, 0xfe, 0x7b, 0xef, 0xfe, 0xdb, 0xff, 0xb6, 0xff, 0xed, 0xbf, 0xfb, 0x6f, 0xfe, 0xdb, | ||
752 | 0xff, 0xff, 0x77, 0xfd, 0xef, 0x7b, 0xff, 0xb6, 0xff, 0xed, 0x7f, 0xfb, 0xdf, 0xfe, 0xb7, 0xff, | ||
753 | 0xee, 0xfe, 0xb7, 0xff, 0x7f, 0xef, 0xf9, 0x02, 0x66, 0x99, 0x92, 0x66, 0x49, 0x98, 0xa6, 0xb1, | ||
754 | 0xcd, 0xe4, 0xf3, 0xf9, 0xbc, 0xef, 0xfd, 0xde, 0x77, 0xff, 0xed, 0xbb, 0xfb, 0xf6, 0x6f, 0x1f, | ||
755 | 0x37, 0x4e, 0xce, 0x31, 0x93, 0x63, 0x4c, 0x84, 0x32, 0x59, 0x45, 0x22, 0xaa, 0xc8, 0xfe, 0xff, | ||
756 | 0xf7, 0xf7, 0xdf, 0x7f, 0x3f, 0x3f, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, | ||
757 | 0x7f, 0x3f, 0x7f, 0x7f, 0x3f, 0x3f, 0x77, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x3f, 0xc4, | ||
758 | 0xdd, 0x33, 0x82, 0xc8, 0x3f, 0x32, 0x82, 0xec, 0x33, 0x86, 0xf8, 0x7f, 0xf7, 0xdd, 0xff, 0xbb, | ||
759 | 0xee, 0x7f, 0xdd, 0xf7, 0xff, 0xee, 0xbb, 0xff, 0xf7, 0xbf, 0xfe, 0xff, 0xed, 0xbf, 0xfb, 0x6e, | ||
760 | 0xff, 0xff, 0xbf, 0xed, 0xff, 0xff, 0xb7, 0xff, 0xfd, 0xdf, 0xf7, 0xff, 0x6e, 0xfb, 0xff, 0xb7, | ||
761 | 0xfe, 0xef, 0x7d, 0xf7, 0xbf, 0xfd, 0xdf, 0xf0, 0x06, 0x99, 0xe4, 0x26, 0xff, 0xfd, 0xdf, 0xff, | ||
762 | 0xf6, 0xbf, 0xff, 0xee, 0xfb, 0x7f, 0xdd, 0xff, 0x37, 0x9f, 0xce, 0x27, 0x31, 0xcc, 0x62, 0x9b, | ||
763 | 0x89, 0x26, 0xb2, 0x98, 0x71, 0x46, 0x9e, 0x1d, 0x70, 0x86, 0x89, 0x33, 0x94, 0x87, 0x2f, 0x4f, | ||
764 | 0x1f, 0xbf, 0x3f, 0x7f, 0x7e, 0xf9, 0xe4, 0x60, 0xdb, 0xd8, 0xc6, 0xf8, 0xc9, 0xda, 0xf2, 0xcc, | ||
765 | 0xc8, 0xf3, 0xf4, 0xe0, 0xfb, 0xf8, 0xfe, 0x7f, 0x7f, 0x3f, 0x9f, 0x5f, 0x0f, 0xc9, 0x72, 0x0e, | ||
766 | 0xe1, 0x3c, 0x06, 0x09, 0x61, 0xb4, 0xd7, 0x4c, 0xf1, 0xbf, 0xff, 0xfd, 0xe7, 0xbf, 0xff, 0x7d, | ||
767 | 0xf7, 0xff, 0xed, 0xff, 0xfe, 0xcf, 0xff, 0xbe, 0xf7, 0xdd, 0xff, 0xef, 0xfe, 0x7b, 0xdf, 0xf7, | ||
768 | 0xff, 0xff, 0x7b, 0xdf, 0xfe, 0xfb, 0xdf, 0xfd, 0xef, 0xfe, 0xf7, 0xdf, 0xfb, 0xff, 0x76, 0xff, | ||
769 | 0xef, 0xfd, 0xff, 0xf7, 0xdf, 0x7d, 0xff, 0xff, 0xb0, 0xbf, 0xff, 0xff, 0xf6, 0x9f, 0xff, 0xfb, | ||
770 | 0xfe, 0xdf, 0xf7, 0xfd, 0x9f, 0xef, 0xf1, 0xf4, 0x66, 0xc9, 0xfc, 0xf3, 0xf9, 0xfc, 0xb6, 0xf8, | ||
771 | 0xf1, 0xf6, 0xdc, 0xf1, 0xf2, 0xee, 0xf1, 0xf4, 0x64, 0x01, 0xb4, 0x26, 0x49, 0x10, 0x24, 0x81, | ||
772 | 0x12, 0x94, 0x65, 0x08, 0x02, 0x64, 0x18, 0x42, 0x24, 0x19, 0x01, 0x85, 0x21, 0xbf, 0xff, 0x6d, | ||
773 | 0x5d, 0x37, 0x1d, 0x1d, 0x86, 0x26, 0x07, 0x10, 0x40, 0x09, 0x21, 0xd2, 0x4c, 0x19, 0x42, 0x13, | ||
774 | 0x40, 0x4c, 0x11, 0xc0, 0x0e, 0xbb, 0x80, 0xfe, 0xff, 0x6f, 0xfb, 0xbe, 0xf7, 0xdf, 0xfb, 0xff, | ||
775 | 0xbd, 0xef, 0xfb, 0xff, 0xbd, 0xef, 0xfb, 0xff, 0xdf, 0xfb, 0xef, 0x7e, 0xf7, 0xbf, 0xff, 0x6d, | ||
776 | 0xff, 0xff, 0xef, 0xfb, 0xbf, 0xfe, 0xef, 0x7b, 0xfe, 0xdf, 0xff, 0xf6, 0xdf, 0x7f, 0xf7, 0xdf, | ||
777 | 0xfe, 0xfb, 0xdf, 0x77, 0xff, 0xef, 0xfd, 0xff, 0x6f, 0xfc, 0xa7, 0xbf, 0xff, 0xff, 0xd9, 0xdf, | ||
778 | 0xbe, 0xbf, 0x77, 0x7e, 0xff, 0xdf, 0xfb, 0xfc, 0x7f, 0xdf, 0xff, 0xff, 0xbe, 0xfb, 0xff, 0xfd, | ||
779 | 0xdf, 0xfe, 0xff, 0x7b, 0xfe, 0xbf, 0xff, 0xef, 0xd9, 0x11, 0xef, 0x28, 0x00, 0x41, 0x4c, 0x31, | ||
780 | 0xc4, 0x0c, 0x68, 0x93, 0x10, 0x64, 0x01, 0x10, 0x04, 0x41, 0x10, 0x04, 0x00, 0x43, 0x11, 0x00, | ||
781 | 0x88, 0x22, 0x00, 0x48, 0x82, 0x90, 0x11, 0xc4, 0x30, 0x0d, 0x43, 0x10, 0x24, 0xc1, 0x10, 0xb4, | ||
782 | 0x81, 0x68, 0x24, 0x90, 0x4a, 0x2b, 0x80, 0x3f, 0xff, 0xdb, 0xff, 0xf7, 0xfd, 0xbf, 0xee, 0xff, | ||
783 | 0x7b, 0xef, 0xbe, 0xff, 0xed, 0x7f, 0xf6, 0xbf, 0xfb, 0xfe, 0x6f, 0xff, 0xdb, 0xff, 0xfd, 0x6f, | ||
784 | 0xff, 0xff, 0xfb, 0xfe, 0xef, 0xff, 0xbd, 0xff, 0xf7, 0xff, 0xbd, 0xff, 0xef, 0xff, 0xdf, 0xfe, | ||
785 | 0xff, 0xbd, 0xff, 0xdf, 0xff, 0xff, 0xf7, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
786 | 0xff, 0xf9, 0xdf, 0x5f, 0xe6, 0xfd, 0xff, 0xff, 0xf7, 0xbf, 0xfb, 0xff, 0xfd, 0xdf, 0xfe, 0xff, | ||
787 | 0xf7, 0xbd, 0xff, 0x5f, 0x37, 0x9f, 0x47, 0x61, 0x9c, 0x10, 0x63, 0x06, 0xc0, 0x09, 0x64, 0x93, | ||
788 | 0x18, 0x66, 0x82, 0x59, 0x11, 0xa6, 0xa4, 0x19, 0x42, 0x32, 0x8c, 0x44, 0x20, 0x98, 0x47, 0x68, | ||
789 | 0x08, 0xd2, 0x93, 0x24, 0x8c, 0x70, 0x02, 0x0d, 0xc0, 0x32, 0x08, 0xe1, 0x82, 0x0a, 0x3a, 0xc0, | ||
790 | 0x16, 0x44, 0x61, 0x19, 0x46, 0xc8, 0x31, 0x06, 0xd8, 0x43, 0x3f, 0xfe, 0xff, 0xf7, 0xbd, 0xff, | ||
791 | 0xdb, 0xff, 0xf7, 0xff, 0xfd, 0xbf, 0xef, 0xef, 0xff, 0x6d, 0xff, 0xf7, 0xfe, 0xfb, 0xaf, 0xff, | ||
792 | 0xff, 0xff, 0xbe, 0xef, 0xfd, 0xff, 0xff, 0xdf, 0xfd, 0xff, 0x7f, 0xfb, 0xdf, 0xfe, 0xef, 0xfd, | ||
793 | 0x7f, 0xff, 0xdb, 0xff, 0xfd, 0xdf, 0xfe, 0x7e, 0xfb, 0xef, 0xef, 0xdf, 0x9f, 0xff, 0xdf, 0xdf, | ||
794 | 0x6f, 0xef, 0xf3, 0xfc, 0xfd, 0xff, 0xf7, 0xef, 0xbf, 0x7d, 0xff, 0xfe, 0xef, 0xdf, 0x1b, 0x26, | ||
795 | 0x27, 0xc9, 0x98, 0x12, 0x63, 0x2c, 0x82, 0x5a, 0x41, 0x94, 0x93, 0x2c, 0x20, 0xd3, 0x8c, 0x24, | ||
796 | 0x53, 0x48, 0x25, 0xb4, 0x83, 0x28, 0x24, 0xc5, 0x11, 0x52, 0x8c, 0x20, 0x9b, 0xa0, 0x26, 0x59, | ||
797 | 0x82, 0x2a, 0x68, 0x86, 0x99, 0x5c, 0x37, 0x96, 0x5e, 0xb1, 0x84, 0xcc, 0xf1, 0xc6, 0xc9, 0xf8, | ||
798 | 0xfe, 0xed, 0xf8, 0xeb, 0xc2, 0x14, 0x51, 0x4d, 0xa4, 0x92, 0x18, 0x63, 0x47, 0x9f, 0x3f, 0xff, | ||
799 | 0xff, 0xff, 0xf7, 0xdc, 0xff, 0xbb, 0xff, 0xf6, 0xdf, 0x7f, 0xff, 0xde, 0xf7, 0xff, 0xfb, 0xfe | ||
800 | } | ||
801 | }; | ||
802 | |||
803 | if(timer_elapsed(anim_timer) > ANIM_FRAME_DURATION) { | ||
804 | anim_timer = timer_read(); | ||
805 | current_anim_frame = (current_anim_frame + 1) % ANIM_TOTAL_FRAMES; | ||
806 | oled_write_raw_P(frame[abs((ANIM_NUM_FRAMES-1)-current_anim_frame)], 1024); | ||
807 | } | ||
808 | } | ||
809 | |||
810 | void oled_task_user(void) { | ||
811 | if (is_keyboard_master()) { | ||
812 | render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) | ||
813 | } | ||
814 | else { | ||
815 | render_logo(); | ||
816 | } | ||
817 | } | ||
818 | #endif | ||
diff --git a/keyboards/arch_36/keymaps/obosob/readme.md b/keyboards/arch_36/keymaps/obosob/readme.md new file mode 100644 index 000000000..e7dc6952d --- /dev/null +++ b/keyboards/arch_36/keymaps/obosob/readme.md | |||
@@ -0,0 +1 @@ | |||
# Obosob's keymap for Arch-36 | |||
diff --git a/keyboards/arch_36/keymaps/obosob/rules.mk b/keyboards/arch_36/keymaps/obosob/rules.mk new file mode 100644 index 000000000..2b16ebb7b --- /dev/null +++ b/keyboards/arch_36/keymaps/obosob/rules.mk | |||
@@ -0,0 +1,3 @@ | |||
1 | EXTRAKEY_ENABLE = no # Audio control and System control | ||
2 | UNICODE_ENABLE = no # Unicode | ||
3 | LTO_ENABLE = yes | ||
diff --git a/keyboards/arch_36/readme.md b/keyboards/arch_36/readme.md new file mode 100644 index 000000000..d0e16434e --- /dev/null +++ b/keyboards/arch_36/readme.md | |||
@@ -0,0 +1,16 @@ | |||
1 | # Arch-36 | ||
2 | |||
3 | An ergonomic 30% split keyboard | ||
4 | |||
5 | * Keyboard Maintainer: [obosob](https://github.com/obosob) | ||
6 | * Hardware Supported: Pro Micro 5V/16MHz and compatible. | ||
7 | |||
8 | Make example for this keyboard (after setting up your build environment): | ||
9 | |||
10 | make arch_36:default | ||
11 | |||
12 | Example of flashing this keyboard: | ||
13 | |||
14 | make arch_36:default:flash | ||
15 | |||
16 | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | ||
diff --git a/keyboards/arch_36/rules.mk b/keyboards/arch_36/rules.mk new file mode 100644 index 000000000..588ef01e3 --- /dev/null +++ b/keyboards/arch_36/rules.mk | |||
@@ -0,0 +1,26 @@ | |||
1 | # MCU name | ||
2 | MCU = atmega32u4 | ||
3 | |||
4 | # Bootloader selection | ||
5 | BOOTLOADER = caterina | ||
6 | |||
7 | # Build Options | ||
8 | # change yes to no to disable | ||
9 | # | ||
10 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | ||
11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
13 | CONSOLE_ENABLE = no # Console for debug | ||
14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
18 | NKRO_ENABLE = no # USB Nkey Rollover | ||
19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
20 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | ||
21 | OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays | ||
22 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
23 | AUDIO_ENABLE = no # Audio output | ||
24 | SPLIT_KEYBOARD = yes # Split common | ||
25 | |||
26 | LAYOUTS = split_3x5_3 | ||