From ae6715c8edd0bed182931b9623477bd4c4da95e3 Mon Sep 17 00:00:00 2001 From: Marius Alwan Meyer <22202402+sporqist@users.noreply.github.com> Date: Thu, 1 Jun 2023 00:07:46 +0200 Subject: [PATCH] [big] move keymap to json file; move oled code to oled.c; adjust oled code. --- .../aurora/corne/keymaps/sporq/keymap.c | 1138 ----------------- .../aurora/corne/keymaps/sporq/keymap.json | 26 + .../splitkb/aurora/corne/keymaps/sporq/oled.c | 493 +++++++ .../aurora/corne/keymaps/sporq/rules.mk | 3 + 4 files changed, 522 insertions(+), 1138 deletions(-) delete mode 100644 keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.c create mode 100644 keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.json create mode 100644 keyboards/splitkb/aurora/corne/keymaps/sporq/oled.c diff --git a/keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.c b/keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.c deleted file mode 100644 index d2dfb03955..0000000000 --- a/keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.c +++ /dev/null @@ -1,1138 +0,0 @@ - -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include QMK_KEYBOARD_H -#include <stdio.h> - -#define frame_size 512 -#define logo_glitch_count 5 -#define logo_glitch_dirty_count 2 -#define text_glitch_count 7 -#define text_glitch_dirty_count 3 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, MO(2), - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, MO(1), KC_SPC, LCTL(KC_BSPC), KC_CAPS, KC_LALT - //`--------------------------' `--------------------------' - - ), - - [1] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TRNS, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_NO, KC_4, KC_5, KC_6, KC_0, KC_NO, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_ESC, KC_TAB, KC_INSERT, KC_ENTER, KC_UNDO, KC_0, KC_1, KC_2, KC_3, KC_NO, KC_NO, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ), - - [2] = LAYOUT_split_3x6_3( - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, KC_MPLY, KC_AUDIO_VOL_UP, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_NO, RGB_RMOD, KC_NO, KC_AUDIO_VOL_DOWN, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, RGB_TOG, KC_AUDIO_MUTE, KC_TRNS, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS - //`--------------------------' `--------------------------' - ) -}; - -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - // debug_enable=true; - // debug_matrix=true; - // debug_keyboard=true; - // debug_mouse=true; -} - -#ifdef OLED_ENABLE - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_master()) { - return OLED_ROTATION_0; // flips the display 180 degrees if offhand - } - return OLED_ROTATION_270; -} - -// Arasaka Code - -static bool glitch = true; -static bool dirty = false; -static uint8_t frame_count = 15; -static bool show_text = true; -static uint16_t arasaka_timer; - -static const char PROGMEM logo_clean[frame_size] = { - 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0xc3, 0xe3, 0xf3, 0xfb, 0xfb, - 0xfb, 0xfb, 0xf3, 0xe3, 0xc3, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, - 0xf8, 0xfe, 0x07, 0xe1, 0xf0, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf3, 0xe7, 0x0f, 0x1f, 0xff, - 0xff, 0x1f, 0x0f, 0xe7, 0xf3, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe1, 0x07, 0xfe, 0xf8, - 0x1f, 0x7f, 0xe0, 0x81, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x0f, 0x1d, 0x38, 0x70, 0xff, - 0xff, 0x70, 0x38, 0x1d, 0x0f, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x81, 0xe0, 0x7f, 0x1f, - 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0xc0, 0xdf, - 0xdf, 0xc0, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x20, 0xc0, 0x00, 0xe0, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x08, 0x07, 0x00, 0x09, 0x09, 0x09, 0x06, 0x80, 0x80, 0x81, - 0x81, 0x80, 0x80, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0xc3, 0x43, 0xc7, 0xc7, 0xc7, - 0xc7, 0x47, 0xc7, 0x43, 0x43, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, - 0x00, 0xff, 0x40, 0x5f, 0xd1, 0x51, 0xd1, 0xdf, 0x40, 0x7f, 0x84, 0xf2, 0x86, 0x3f, 0x43, 0xee, - 0x0c, 0xe2, 0xca, 0xa4, 0x86, 0xad, 0xdc, 0xff, 0x40, 0x5f, 0x51, 0xd1, 0x51, 0x5f, 0xc0, 0xff, - 0x00, 0xff, 0xee, 0x42, 0x48, 0x3d, 0x14, 0x25, 0x55, 0x19, 0xb1, 0xca, 0x53, 0x80, 0x78, 0x12, - 0x9e, 0xab, 0x9c, 0x04, 0x9a, 0x25, 0x14, 0x47, 0xb4, 0x6b, 0xfb, 0x94, 0xd9, 0x11, 0xd6, 0xff, - 0x00, 0xff, 0x15, 0xde, 0x5d, 0x56, 0x5d, 0xd3, 0x15, 0xfe, 0xc3, 0x43, 0x82, 0xed, 0x78, 0xa7, - 0xd5, 0xf3, 0xbe, 0x4b, 0x9e, 0xeb, 0x05, 0x75, 0x50, 0x74, 0x07, 0xbe, 0xa7, 0xc9, 0xa8, 0xff, - 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x12, 0x1e, 0x1c, 0x16, 0x10, 0x13, - 0x12, 0x17, 0x13, 0x11, 0x15, 0x1c, 0x13, 0x1d, 0x1e, 0x17, 0x10, 0x1c, 0x1c, 0x12, 0x1d, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x06, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0xc6, 0x46, - 0xc6, 0x46, 0x46, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x40, 0x5f, 0x51, 0xd1, 0x51, 0x5f, 0x40, 0x7f, 0x1d, 0x38, - 0x56, 0x38, 0x85, 0x7f, 0x40, 0xdf, 0xd1, 0xd1, 0x51, 0xdf, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x13, 0xd1, 0x52, 0x53, 0x5c, 0xd2, 0x15, 0xf9, 0x03, 0xff, - 0xb1, 0x0f, 0xb5, 0x0f, 0x52, 0x0f, 0xb5, 0xae, 0x54, 0xc5, 0x5a, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x11, 0x17, - 0x1a, 0x1f, 0x15, 0x1f, 0x12, 0x1f, 0x15, 0x1f, 0x12, 0x1e, 0x15, 0x1f, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM logo_glitch[logo_glitch_count][frame_size] = { - { - // frame 1 - 0x00, 0x00, 0x20, 0x30, 0x98, 0xc8, 0x48, 0x02, 0x02, 0x03, 0x23, 0x33, 0x3b, 0xfb, 0xfb, 0xfb, - 0xf3, 0xe3, 0xc3, 0xc6, 0xc6, 0xcc, 0xcc, 0x18, 0x30, 0x20, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, - 0x18, 0xd8, 0xc0, 0xc6, 0xd7, 0xd9, 0xd8, 0xd8, 0xdc, 0xdc, 0xdc, 0x34, 0x20, 0xcb, 0xdb, 0x3b, - 0x3b, 0xdb, 0xcb, 0xe3, 0xf3, 0xfb, 0xfb, 0xf8, 0x78, 0x78, 0x78, 0x30, 0x60, 0x40, 0x39, 0x3b, - 0x10, 0x71, 0xe3, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x00, 0x10, 0x37, 0x77, 0xf0, - 0xf0, 0x75, 0x37, 0x17, 0x07, 0x07, 0x0f, 0x0f, 0x0e, 0x0a, 0x00, 0x00, 0x86, 0xe6, 0x78, 0x18, - 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, 0x04, 0x0c, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0xc3, - 0xc3, 0xdc, 0xdc, 0xc0, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x1a, 0x0f, 0x05, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0x00, 0xc0, 0x20, 0xe0, 0x20, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, 0x40, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x08, 0x07, 0x00, 0x09, 0x09, 0x09, 0x06, 0x80, 0x80, 0x81, - 0x81, 0x80, 0x80, 0x00, 0x0e, 0x02, 0x00, 0x01, 0x00, 0x1c, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x0f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0xc3, 0x43, 0xc7, 0xc7, 0xc7, 0xc7, 0x47, - 0xc7, 0x43, 0x43, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, - 0x00, 0xff, 0x40, 0x5f, 0xd1, 0x51, 0xd1, 0xdf, 0x40, 0x7f, 0x84, 0xf2, 0x86, 0x3f, 0x43, 0xee, - 0x0c, 0xe2, 0xca, 0xa4, 0x86, 0x5b, 0xb8, 0xfe, 0x80, 0xbe, 0xa2, 0xa2, 0xa2, 0xbf, 0x80, 0xfe, - 0x00, 0x07, 0x06, 0xfa, 0xe8, 0x45, 0x4c, 0x3d, 0x15, 0x21, 0x51, 0x1a, 0xb3, 0xc8, 0x50, 0x82, - 0x7e, 0x13, 0x9c, 0xac, 0x9a, 0x0b, 0x39, 0x4f, 0x28, 0x86, 0x66, 0xd9, 0xf2, 0x22, 0xbd, 0x2f, - 0x00, 0x1f, 0x15, 0xfe, 0x1d, 0xd6, 0x5d, 0x53, 0x55, 0xde, 0x03, 0xe3, 0xc2, 0x4d, 0x98, 0xe7, - 0x75, 0xb3, 0xde, 0xeb, 0xbe, 0x96, 0x0b, 0xea, 0x20, 0xe8, 0x8f, 0xfc, 0x0f, 0x53, 0x51, 0xbe, - 0x00, 0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x12, 0x1e, 0x1c, 0x16, - 0x10, 0x13, 0x12, 0x17, 0x13, 0x22, 0x2b, 0x39, 0x26, 0x3a, 0x3c, 0x2e, 0x20, 0x39, 0x39, 0x25, - 0x00, 0x00, 0x00, 0x00, 0x04, 0xc4, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0xc6, 0x46, - 0xc6, 0x46, 0x46, 0xc6, 0x46, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x0c, 0x04, 0x04, 0x00, - 0x00, 0x00, 0x00, 0xf0, 0x40, 0x5f, 0x50, 0xdf, 0x51, 0x51, 0x41, 0x7f, 0x10, 0x3f, 0x5d, 0x38, - 0x86, 0x78, 0x45, 0xdf, 0xd0, 0xbe, 0xa2, 0xa2, 0x82, 0xfe, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x03, 0xfd, 0x12, 0xd3, 0x50, 0x52, 0x5d, 0xd1, 0x17, 0xfb, 0x01, 0xff, - 0xb1, 0x0f, 0x6c, 0x1e, 0xa2, 0x39, 0xd0, 0xb5, 0x59, 0x1d, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x11, 0x17, - 0x1a, 0x1f, 0x2b, 0x3e, 0x24, 0x7c, 0x56, 0x7e, 0x49, 0x7b, 0x55, 0x7f, 0x00, 0x00, 0x00, 0x00, - }, - { - // frame 2 - 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0xc3, 0xe3, 0xf3, 0xfb, 0xfb, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x04, 0x04, 0x0c, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, - 0xfe, 0xc7, 0x21, 0xf0, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf3, 0xe7, 0xcf, 0x1f, 0x3f, 0xff, - 0xdf, 0x0f, 0x27, 0xf3, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe1, 0xc7, 0x3e, 0xf8, 0xc0, - 0x1f, 0x7f, 0x60, 0x01, 0x83, 0x87, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x0f, 0x1d, 0x38, 0x70, 0x7f, - 0x7f, 0xf0, 0xb8, 0x1d, 0x0f, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x60, 0xff, 0x9f, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x16, 0x3c, 0x38, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0xc0, 0xd0, - 0xd0, 0xcf, 0xcf, 0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x10, 0x00, 0x08, 0x0c, 0x06, 0x03, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0xa0, 0x40, 0x00, 0xe0, 0x20, 0xa0, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x00, 0xa0, 0x20, 0x20, 0x60, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x08, 0x07, 0x00, 0x09, 0x09, 0x09, 0x06, 0x80, - 0x80, 0x81, 0x81, 0x80, 0x80, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0xc3, 0x43, 0xc7, - 0xc7, 0xc7, 0xc7, 0x47, 0xc7, 0x43, 0x43, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x78, 0xc0, 0x5f, 0xd0, 0xd7, 0x51, 0x59, 0x81, 0xff, 0x80, 0x37, 0x44, 0xfa, 0x06, 0xef, - 0xcb, 0xa6, 0x8c, 0xa2, 0xc2, 0xec, 0x5e, 0x7d, 0x44, 0xdf, 0x50, 0x57, 0xd1, 0xd9, 0x01, 0x3f, - 0xee, 0x42, 0x48, 0x3d, 0x14, 0x25, 0x55, 0x19, 0xb1, 0xca, 0x53, 0x80, 0x78, 0x12, 0x9e, 0xab, - 0x9c, 0x04, 0x9a, 0x25, 0x14, 0x47, 0xb4, 0x6b, 0xfb, 0x94, 0xd9, 0x11, 0xd6, 0xff, 0x00, 0x00, - 0x01, 0x1e, 0xe1, 0x1a, 0xe9, 0x8b, 0x89, 0x9a, 0xe3, 0x1f, 0xfa, 0x49, 0xd0, 0x9f, 0xcd, 0x17, - 0x7a, 0x5f, 0xf6, 0x6b, 0x31, 0xbd, 0x80, 0x6c, 0xab, 0xce, 0xe3, 0x15, 0x94, 0x9b, 0x54, 0xbc, - 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x03, 0x03, 0x02, 0x02, - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x02, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, - 0x46, 0xc6, 0xc6, 0x46, 0xc6, 0x46, 0x46, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, - 0x00, 0x00, 0xc0, 0x40, 0x40, 0x7c, 0xc0, 0x5c, 0x50, 0x53, 0x50, 0x1f, 0x01, 0x7d, 0x1d, 0xbb, - 0x54, 0x7b, 0xc5, 0xfc, 0xc2, 0x5c, 0xd1, 0xd3, 0xd0, 0x1f, 0x01, 0x3d, 0x01, 0x03, 0x00, 0x03, - 0x00, 0x00, 0x1f, 0x13, 0x11, 0xf2, 0x13, 0xdc, 0x52, 0x55, 0x59, 0xc3, 0x1f, 0xf1, 0x0f, 0xf5, - 0xaf, 0x12, 0xaf, 0x15, 0x4e, 0x14, 0xa5, 0xba, 0x5f, 0xc0, 0x40, 0xe0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x11, 0x17, - 0x1a, 0x1f, 0x15, 0x1f, 0x12, 0x1f, 0x15, 0x1f, 0x12, 0x1e, 0x15, 0x1f, 0x00, 0x00, 0x00, 0x00, - }, - { - // frame 3 - 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0xc3, 0xe3, 0xf3, 0xfb, 0xfb, 0xfb, 0xfb, - 0xf3, 0xe3, 0xc3, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x7e, 0x87, 0xe1, 0x70, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf3, 0xe7, 0x8f, 0x9f, 0x7f, - 0x7f, 0x9f, 0x8f, 0x67, 0x73, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe1, 0x87, 0xfe, 0x78, - 0x00, 0x60, 0xff, 0x9f, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x2f, 0x7d, 0xf8, - 0xf0, 0x7f, 0x3f, 0x10, 0x18, 0x1d, 0x0f, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x87, 0xe3, 0x61, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x0e, 0x1c, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0xc0, 0xd8, 0xdf, - 0xc7, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x08, 0x04, 0x06, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x20, 0xe0, 0xc0, 0xe0, 0x60, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x20, 0x20, 0xe0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x08, 0x0b, 0x07, 0x01, 0x09, 0x09, 0x0a, 0x06, 0x80, 0x81, 0x81, - 0x81, 0x80, 0x80, 0x02, 0x0d, 0x01, 0x00, 0x00, 0x02, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xfc, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0xc3, 0x43, 0xc7, 0xc7, 0xc7, - 0xc7, 0x47, 0xc7, 0x43, 0x43, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, - 0x00, 0xff, 0x40, 0x5f, 0xd1, 0x51, 0xd1, 0xdf, 0x40, 0x7f, 0x84, 0xf2, 0x86, 0x3f, 0x43, 0xee, - 0x0c, 0xe2, 0xca, 0xa4, 0x86, 0xad, 0xdc, 0xff, 0x40, 0x5f, 0x51, 0xd1, 0x51, 0x5f, 0xc0, 0xff, - 0x00, 0xff, 0xee, 0x42, 0x48, 0x3d, 0x14, 0x25, 0x55, 0x19, 0xb1, 0xca, 0x53, 0x80, 0x78, 0x12, - 0x9e, 0xab, 0x9c, 0x04, 0x9a, 0x25, 0x14, 0x47, 0xb4, 0x6b, 0xfb, 0x94, 0xd9, 0x11, 0xd6, 0xff, - 0x00, 0xff, 0x15, 0xde, 0x5d, 0x56, 0x5d, 0xd3, 0x15, 0xfe, 0xc3, 0x43, 0x82, 0xed, 0x78, 0xa7, - 0xd5, 0xf3, 0xbe, 0x4b, 0x9e, 0xeb, 0x05, 0x75, 0x50, 0x74, 0x07, 0xbe, 0xa7, 0xc9, 0xa8, 0xff, - 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x12, 0x1e, 0x1c, 0x16, 0x10, 0x13, - 0x12, 0x17, 0x13, 0x11, 0x15, 0x1c, 0x13, 0x1d, 0x1e, 0x17, 0x10, 0x1c, 0x1c, 0x12, 0x1d, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x06, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0xc6, 0x46, - 0xc6, 0x46, 0x46, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x1c, 0x00, 0xff, 0x50, 0x53, 0x51, 0x5d, 0x41, 0x5f, 0x5c, 0x7b, 0x95, 0x38, - 0x46, 0xbc, 0x81, 0xff, 0x50, 0xd3, 0xd1, 0xdd, 0x41, 0x5f, 0x40, 0x63, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0f, 0x03, 0x01, 0x02, 0xf3, 0x1c, 0xd2, 0x55, 0x59, 0x53, 0xdf, 0x11, 0xff, 0x05, 0xff, - 0xb2, 0x0f, 0xb5, 0x0e, 0x54, 0x05, 0xba, 0xaf, 0x50, 0xc0, 0x50, 0xf0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x11, 0x17, - 0x1a, 0x1f, 0x15, 0x1f, 0x12, 0x1f, 0x15, 0x1f, 0x12, 0x1e, 0x15, 0x1f, 0x00, 0x00, 0x00, 0x00, - }, - { - // frame 4 - 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0xc3, 0xe3, 0xf3, 0xfb, 0xfb, - 0xfb, 0xfb, 0xf3, 0xe3, 0xc3, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, - 0xf8, 0xfe, 0xe7, 0xe1, 0xf0, 0xf8, 0xfc, 0xfc, 0xec, 0xec, 0x08, 0x03, 0xe7, 0xef, 0x0f, 0x0f, - 0xef, 0xef, 0xef, 0xe7, 0xe3, 0xe8, 0xec, 0xec, 0xec, 0xec, 0x08, 0xe0, 0xe1, 0x07, 0x0e, 0x08, - 0x1d, 0x7f, 0xe3, 0x83, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0d, 0x04, 0x0c, 0x0f, 0x0b, 0x00, 0x0c, - 0x0d, 0x03, 0x0b, 0x0f, 0x0f, 0x07, 0x0f, 0x0f, 0x0f, 0x0d, 0x04, 0x03, 0x83, 0xe0, 0x7c, 0x1c, - 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0xc0, 0xdf, - 0xdf, 0xc0, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0x41, 0x3e, 0x00, 0x4f, 0x49, 0x49, 0x31, 0x00, 0x00, 0x08, - 0x08, 0x00, 0x00, 0x01, 0x71, 0x09, 0x07, 0x00, 0x01, 0x71, 0x09, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, - 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, - 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0xc0, 0x40, 0xc0, 0xc0, 0xc0, - 0xc0, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, - 0x00, 0xff, 0x40, 0x5f, 0xd1, 0x51, 0xd1, 0xdf, 0x40, 0x7f, 0x84, 0xf2, 0x86, 0x3f, 0x43, 0xee, - 0x0c, 0xe2, 0xca, 0xa4, 0x86, 0xad, 0xdc, 0xff, 0x40, 0x5f, 0x51, 0xd1, 0x51, 0x5f, 0xc0, 0xff, - 0x00, 0xff, 0xee, 0x42, 0x48, 0x3d, 0x14, 0x25, 0x55, 0x19, 0xb1, 0xca, 0x53, 0x80, 0x78, 0x12, - 0x9e, 0xab, 0x9c, 0x04, 0x9a, 0x25, 0x14, 0x47, 0xb4, 0x6b, 0xfb, 0x94, 0xd9, 0x11, 0xd6, 0xff, - 0x00, 0xff, 0x15, 0xde, 0x5d, 0x56, 0x5d, 0xd3, 0x15, 0xfe, 0xc3, 0x43, 0x82, 0xed, 0x78, 0xa7, - 0xd5, 0xf3, 0xbe, 0x4b, 0x9e, 0xeb, 0x05, 0x75, 0x50, 0x74, 0x07, 0xbe, 0xa7, 0xc9, 0xa8, 0xff, - 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x12, 0x1e, 0x1c, 0x16, 0x10, 0x13, - 0x12, 0x17, 0x13, 0x11, 0x15, 0x1c, 0x13, 0x1d, 0x1e, 0x17, 0x10, 0x1c, 0x1c, 0x12, 0x1d, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, - 0x46, 0xc6, 0xc6, 0x46, 0xc6, 0x46, 0x46, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x40, 0x5f, 0x51, 0xd1, 0x51, 0x5f, - 0x40, 0x7f, 0x1d, 0x38, 0x56, 0x38, 0x85, 0x7f, 0x40, 0xdf, 0xd1, 0xd1, 0x51, 0xdf, 0xc0, 0xff, - 0x00, 0xfe, 0x12, 0xd0, 0x52, 0x52, 0x5c, 0xd2, 0x14, 0xf9, 0x03, 0xff, 0xb0, 0x0f, 0xb4, 0x0e, - 0x53, 0x0f, 0xb5, 0xaf, 0x55, 0xc5, 0x5b, 0xff, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, - 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x11, 0x17, 0x1a, 0x1f, 0x15, 0x1f, - 0x12, 0x1f, 0x15, 0x1f, 0x12, 0x1e, 0x15, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - // frame 5 - 0x00, 0x00, 0x00, 0x00, 0x80, 0xd0, 0x78, 0x2c, 0x0c, 0x06, 0x06, 0x03, 0x03, 0xd3, 0xfb, 0xfb, - 0xfb, 0xfb, 0xf3, 0xe3, 0xe3, 0xe6, 0xc6, 0x0c, 0x0c, 0x18, 0x10, 0x00, 0x20, 0x60, 0xc0, 0x80, - 0xf8, 0xfc, 0x04, 0xe2, 0xf3, 0xf9, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe4, 0x0f, 0x1f, 0xff, - 0xff, 0x1f, 0x0f, 0xe7, 0xf3, 0xfb, 0xff, 0xfc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x04, 0xfd, 0xfb, - 0xdf, 0xbf, 0x20, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x0f, 0x5d, 0xf8, 0xf0, 0x7f, - 0x3f, 0x30, 0x38, 0x1d, 0x0f, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x87, 0xc3, 0x41, 0x20, 0x3f, 0x1f, - 0x01, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0xc0, 0xdf, 0xdf, 0xc0, - 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x20, 0xc0, 0x00, 0xe0, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x08, 0x07, 0x00, 0x09, 0x09, 0x09, 0x06, 0x80, 0x80, 0x81, - 0x81, 0x80, 0x80, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0xc3, 0x43, 0xc7, 0xc7, 0xc7, - 0xc7, 0x47, 0xc7, 0x43, 0x43, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, - 0x00, 0xff, 0x40, 0x5f, 0xd1, 0x51, 0xd1, 0xdf, 0x40, 0x7f, 0x84, 0xf2, 0x86, 0x3f, 0x43, 0xee, - 0x0c, 0xe2, 0xca, 0xa4, 0x86, 0xad, 0xdc, 0xff, 0x40, 0x5f, 0x51, 0xd1, 0x51, 0x5f, 0xc0, 0xff, - 0x00, 0xff, 0xee, 0x42, 0x48, 0x3d, 0x14, 0x25, 0x55, 0x19, 0xb1, 0xca, 0x53, 0x80, 0x78, 0x12, - 0x9e, 0xab, 0x9c, 0x04, 0x9a, 0x25, 0x14, 0x47, 0xb4, 0x6b, 0xfb, 0x94, 0xd9, 0x11, 0xd6, 0xff, - 0x00, 0xff, 0x15, 0xde, 0x5d, 0x56, 0x5d, 0xd3, 0x15, 0xfe, 0xc3, 0x43, 0x82, 0xed, 0x78, 0xa7, - 0xd5, 0xf3, 0xbe, 0x4b, 0x9e, 0xeb, 0x05, 0x75, 0x50, 0x74, 0x07, 0xbe, 0xa7, 0xc9, 0xa8, 0xff, - 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x12, 0x1e, 0x1c, 0x16, 0x10, 0x13, - 0x12, 0x17, 0x13, 0x11, 0x15, 0x1c, 0x13, 0x1d, 0x1e, 0x17, 0x10, 0x1c, 0x1c, 0x12, 0x1d, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x06, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0xc6, 0x46, - 0xc6, 0x46, 0x46, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x40, 0x5f, 0x51, 0xd1, 0x51, 0x5f, 0x40, 0x7f, 0x1d, 0x38, - 0x56, 0x38, 0x85, 0x7f, 0x40, 0xdf, 0xd1, 0xd1, 0x51, 0xdf, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x13, 0xd1, 0x52, 0x53, 0x5c, 0xd2, 0x15, 0xf9, 0x03, 0xff, - 0xb1, 0x0f, 0xb5, 0x0f, 0x52, 0x0f, 0xb5, 0xae, 0x54, 0xc5, 0x5a, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x11, 0x17, - 0x1a, 0x1f, 0x15, 0x1f, 0x12, 0x1f, 0x15, 0x1f, 0x12, 0x1e, 0x15, 0x1f, 0x00, 0x00, 0x00, 0x00 - } -}; - -static const char PROGMEM logo_glitch_dirty[logo_glitch_dirty_count][frame_size] = { - { - // frame 1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x80, 0x80, 0x80, 0x80, 0xf8, 0x7c, - 0x7c, 0x80, 0x80, 0x0c, 0x06, 0x06, 0x03, 0x03, 0x73, 0x7b, 0x7b, 0x7b, 0xfb, 0xf3, 0x63, 0x43, - 0xf0, 0xf0, 0xf0, 0xe0, 0xce, 0x9e, 0x3e, 0x7f, 0x7f, 0xff, 0x9f, 0x8f, 0xe7, 0xf3, 0x05, 0x0c, - 0x0c, 0x0f, 0x0f, 0x00, 0x00, 0x80, 0x80, 0x80, 0xfc, 0xfc, 0x78, 0x70, 0x61, 0x07, 0x7e, 0x78, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xe3, 0x43, 0x03, 0xc0, 0xdc, - 0xdc, 0xc0, 0xc0, 0x04, 0x0c, 0x1d, 0x3b, 0xb3, 0xff, 0x7f, 0x30, 0x38, 0x1c, 0x0c, 0x04, 0x0c, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x60, 0x40, 0x10, 0x20, 0x23, 0x63, 0x60, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc2, 0x73, 0x71, 0x38, 0x2c, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x20, 0x20, 0x20, 0x00, 0x00, 0x81, - 0x81, 0x80, 0x80, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x20, 0x1f, 0x00, 0x09, 0x09, 0x09, 0x06, 0x00, 0xfd, 0xfd, - 0xfd, 0xcd, 0xcf, 0x80, 0x8e, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x30, 0x70, 0x70, 0x70, 0x7c, 0x7d, 0xc0, 0xc3, - 0xc3, 0x47, 0xc7, 0xcf, 0xcf, 0x8f, 0x8f, 0x8e, 0x82, 0x82, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xc0, 0xc0, 0x40, 0xc0, 0x23, 0x8e, - 0x2c, 0xd2, 0xfa, 0x47, 0x47, 0x47, 0xc7, 0xc3, 0x43, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0x40, 0x70, 0x40, 0x30, 0xc0, 0x00, 0xc0, 0x30, 0x30, 0x40, 0xe0, 0x80, 0xe0, 0x40, 0x10, 0xa1, - 0x5f, 0x11, 0xbd, 0xc5, 0xd5, 0xd5, 0xdd, 0xd0, 0x5f, 0x44, 0x72, 0x86, 0x0f, 0x08, 0x82, 0x8e, - 0x01, 0x3f, 0x39, 0x09, 0x23, 0x34, 0x13, 0x16, 0x05, 0x79, 0x61, 0x4a, 0xc3, 0xb0, 0x7e, 0xab, - 0xc4, 0xf5, 0xb1, 0xc4, 0xda, 0x05, 0xf4, 0x17, 0x14, 0x2b, 0x1b, 0x04, 0x19, 0x21, 0x16, 0x4f, - 0x70, 0xc8, 0x50, 0x7e, 0x0e, 0x08, 0x0c, 0x30, 0x19, 0xe7, 0xd5, 0x52, 0x9f, 0xeb, 0x17, 0x10, - 0x1f, 0x12, 0x1e, 0x55, 0x86, 0xff, 0x06, 0x69, 0x49, 0x7f, 0x00, 0xa0, 0xa0, 0xc0, 0xa0, 0xe0, - 0x00, 0x03, 0x00, 0x03, 0x01, 0x01, 0x01, 0x03, 0x1f, 0x10, 0x17, 0x14, 0x14, 0x14, 0xc6, 0x46, - 0xc6, 0x46, 0x46, 0x1c, 0x16, 0x10, 0x13, 0x12, 0x17, 0x13, 0x11, 0x15, 0x1c, 0x13, 0x1d, 0x1e, - 0x08, 0x08, 0x08, 0x08, 0x18, 0x18, 0x18, 0x18, 0x46, 0x46, 0x46, 0x46, 0x46, 0xc6, 0x51, 0x10, - 0x1e, 0x40, 0x3d, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x44, 0x44, 0xc4, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x0d, 0x41, 0x41, 0xfd, 0x43, 0x5c, 0x53, 0x55, 0x5f, - 0x53, 0xdf, 0x15, 0x9f, 0x78, 0x57, 0xf9, 0xc5, 0xfd, 0x43, 0xdc, 0xd3, 0x10, 0x10, 0x1c, 0x00, - 0x00, 0x18, 0x08, 0x00, 0x08, 0x28, 0x17, 0x0d, 0x05, 0x00, 0x0b, 0xf6, 0x10, 0xdf, 0x10, 0x14, - 0x18, 0x1f, 0x14, 0xff, 0x05, 0xfc, 0xb3, 0x0f, 0xb0, 0x00, 0x59, 0x08, 0xb0, 0xa0, 0x50, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x40, 0x50, 0x14, 0x14, 0x14, 0x17, 0x10, 0x1f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x11, 0x1f, 0x16, 0x1f, 0x11, 0x1f, 0x16, 0x1f, 0x01, 0x03, 0x02, 0x02, - }, - { - // frame 2 - 0xc4, 0xc4, 0x04, 0x04, 0x00, 0x18, 0x18, 0x18, 0x50, 0xf0, 0xf0, 0xc1, 0xc1, 0xc9, 0xcf, 0xcf, - 0xcf, 0xf7, 0xb3, 0x23, 0x23, 0x22, 0x2a, 0x2a, 0x6a, 0x42, 0x82, 0x82, 0x00, 0x00, 0x00, 0x20, - 0x7a, 0xf8, 0xf9, 0xf9, 0xf8, 0xe8, 0xa8, 0x90, 0xd4, 0xf6, 0xba, 0x0b, 0x4b, 0xff, 0xff, 0x7f, - 0x77, 0xf3, 0xfb, 0xfd, 0xfd, 0xec, 0xac, 0xdc, 0xf4, 0xf4, 0xfc, 0x7a, 0xfb, 0xfd, 0xfc, 0xfc, - 0x5f, 0x5f, 0x1f, 0x1f, 0x17, 0x17, 0x17, 0x37, 0xbd, 0x8c, 0x0f, 0x0b, 0x03, 0x4b, 0x4f, 0x4f, - 0x47, 0x0f, 0x0d, 0x35, 0x3c, 0xbe, 0xbb, 0x31, 0x3c, 0x1c, 0x1b, 0x0b, 0x47, 0x47, 0x07, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x94, 0x94, 0x83, 0x83, 0x80, 0x80, 0x80, 0xa8, 0xb8, 0xb0, - 0x20, 0x04, 0x44, 0x40, 0x42, 0x43, 0x51, 0x58, 0x58, 0x40, 0x40, 0x60, 0x60, 0x60, 0x60, 0x40, - 0x00, 0xc0, 0x20, 0x20, 0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0xa0, 0x20, - 0x00, 0x20, 0x20, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x08, 0x08, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0b, 0x84, 0x80, - 0x81, 0x80, 0x8b, 0x85, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x02, - 0x00, 0x08, 0x08, 0x08, 0x48, 0x4a, 0x4e, 0x6e, 0x6e, 0x7e, 0x7e, 0x7e, 0x7e, 0x76, 0x76, 0x74, - 0x34, 0x35, 0xb1, 0x91, 0x91, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x00, 0x00, - 0x40, 0x40, 0x42, 0x42, 0x42, 0x42, 0xc6, 0x46, 0x46, 0x46, 0x46, 0x46, 0x40, 0x40, 0xc0, 0xc0, - 0xc1, 0x41, 0xc1, 0xc1, 0xc1, 0xc1, 0x41, 0xc1, 0x41, 0x41, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0x40, - 0x40, 0x4c, 0x41, 0xcc, 0x47, 0x51, 0xa7, 0x5d, 0xb1, 0x9c, 0x77, 0x50, 0xa2, 0xdc, 0xe7, 0x1f, - 0x2e, 0x96, 0x6a, 0xc4, 0xe2, 0xca, 0xc9, 0xce, 0xc1, 0xcc, 0x57, 0x55, 0x67, 0xfd, 0x75, 0x7c, - 0x12, 0x04, 0x1c, 0x1c, 0x14, 0x88, 0x98, 0x01, 0x12, 0x52, 0x78, 0x61, 0x5e, 0x03, 0xb7, 0x8d, - 0x71, 0x8e, 0x1d, 0x6c, 0xd6, 0x98, 0xd2, 0x37, 0x90, 0x10, 0x3c, 0x1f, 0x96, 0x1f, 0xb6, 0xd7, - 0xa1, 0x03, 0x00, 0x13, 0x9b, 0x12, 0x9b, 0x98, 0x31, 0x9f, 0xd5, 0x16, 0xef, 0xe6, 0xe7, 0xc3, - 0x7d, 0xac, 0xd0, 0x51, 0x72, 0x0f, 0x7b, 0x4c, 0xad, 0xd3, 0xf7, 0xb3, 0xc7, 0xb3, 0xef, 0xa7, - 0x04, 0x00, 0x04, 0x04, 0x04, 0x00, 0x08, 0x00, 0x04, 0x03, 0x10, 0x17, 0x14, 0x10, 0x1c, 0x17, - 0x1c, 0x1b, 0x16, 0x16, 0x10, 0x16, 0x14, 0x17, 0x16, 0x17, 0x1f, 0x15, 0x1d, 0x1c, 0x17, 0x15, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x42, 0x42, 0x46, 0x46, 0x46, 0x46, 0xc6, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x06, 0x86, 0x86, 0x06, 0x86, 0x06, 0x06, 0x86, 0x06, 0x06, 0x06, 0x06, - 0x11, 0x15, 0x11, 0x11, 0x01, 0x14, 0x11, 0x35, 0x14, 0x10, 0x84, 0x11, 0x45, 0x56, 0xd9, 0x77, - 0x59, 0x71, 0x41, 0x76, 0x49, 0x26, 0x08, 0xc8, 0x0a, 0x00, 0xc8, 0xc2, 0xc8, 0x62, 0xc8, 0xc0, - 0x02, 0x02, 0x04, 0x42, 0x04, 0x70, 0x52, 0xd6, 0x50, 0xd6, 0x1d, 0x57, 0x13, 0xf6, 0x05, 0xbe, - 0x34, 0x85, 0xfb, 0x07, 0x99, 0x01, 0x79, 0x61, 0xd9, 0xc0, 0x19, 0xb1, 0x08, 0x80, 0x01, 0x08, - 0x14, 0x14, 0x14, 0x14, 0x10, 0x14, 0x10, 0x14, 0x10, 0x14, 0x17, 0x14, 0x13, 0x1c, 0x14, 0x14, - 0x13, 0x14, 0x17, 0x15, 0x03, 0x0a, 0x03, 0x01, 0x0b, 0x0a, 0x03, 0x09, 0x03, 0x0a, 0x02, 0x09 - } -}; - -static const char PROGMEM text_clean[frame_size] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x1f, 0x1f, 0x1f, - 0x1c, 0x1e, 0x1f, 0x1f, 0x1f, 0x9f, 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xe0, 0xf8, 0xff, 0xff, 0x3f, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xfe, 0xf9, 0xf1, 0xc3, 0x83, 0x03, 0x03, - 0x03, 0x83, 0xc3, 0xf1, 0xf9, 0xfc, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, - 0x3e, 0x1f, 0x7f, 0x7f, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x1f, 0x1f, 0x1f, - 0x1c, 0x1e, 0x1f, 0x1f, 0x1f, 0x9f, 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xe0, 0xf8, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xe1, 0x01, 0x03, 0x03, 0x07, 0x07, - 0x87, 0xc3, 0xf3, 0xf9, 0xf9, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xe0, 0xf8, 0xfc, 0xfe, - 0x3f, 0x1f, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x8f, 0xc3, 0xc1, 0xc0, - 0x00, 0x9e, 0xde, 0xde, 0xdf, 0xdf, 0xcf, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0x1f, 0x0f, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0xc7, 0xe7, 0xf7, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xf0, 0xf0, - 0xf0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xf8, 0xfc, 0xfc, 0x3c, 0x3c, 0x01, 0x01, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, - 0xc0, 0xf0, 0xf8, 0xfe, 0x7f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x8f, 0xcf, 0xef, 0xef, 0xef, - 0x87, 0xc3, 0xef, 0xef, 0xef, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0xfe, 0xff, 0x0f, 0x07, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0xe3, 0xf3, 0xfb, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, - 0xf8, 0x78, 0x7c, 0x3f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM text_glitch[text_glitch_count][frame_size] = { - { - // frame 1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x1f, 0x1f, 0x1f, - 0x1f, 0x1c, 0x1e, 0x1f, 0x1f, 0x9f, 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xe0, 0xf8, 0xff, 0xff, 0x3f, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xfe, 0xf9, 0xf1, 0xc3, 0x83, 0x03, 0x03, - 0x03, 0x83, 0xc3, 0xf1, 0xf9, 0xfe, 0x7f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, - 0x7e, 0x3f, 0x1f, 0x7f, 0x7b, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0x3e, 0x3f, - 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1c, 0x1e, 0x9f, 0xdf, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x0f, 0x3b, 0xf3, 0xf3, 0xf0, 0xe0, 0xc0, - 0xc0, 0xc0, 0xc8, 0xcc, 0xec, 0xfc, 0xf7, 0xf3, 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x80, 0xc1, 0xc3, 0x07, 0x07, - 0x07, 0x03, 0x33, 0xbb, 0xfb, 0xfb, 0xf9, 0xf8, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0xbe, 0xbf, 0xc1, 0xe1, 0xf9, 0x7c, 0x7e, - 0x3e, 0x1e, 0x86, 0x87, 0xff, 0xff, 0x7f, 0x7f, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x8f, 0xc3, 0xc1, 0xc0, 0xc0, 0x1e, - 0x9e, 0xde, 0xdf, 0xdf, 0xcf, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0x3f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0xc7, 0xe7, 0xf7, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x3e, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf0, - 0xf0, 0xf2, 0xfb, 0x7f, 0x7f, 0x3d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xf8, 0xfc, 0xfc, 0x3c, 0x3c, 0x01, 0x01, - 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x80, 0xc0, - 0xf0, 0xf8, 0xf8, 0x7e, 0x3f, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x8f, 0xcf, 0xef, 0xef, 0xef, 0x87, - 0xc3, 0xef, 0xef, 0xef, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7c, 0xfe, 0xff, 0xef, 0x07, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0xf3, 0xfb, 0xfb, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, - 0xf8, 0x78, 0x7c, 0x3f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // frame 2 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x50, 0x78, 0x7c, 0x7e, 0x7f, 0x3f, 0x1f, - 0x1f, 0x1f, 0x1c, 0x9e, 0x9f, 0x9f, 0x1f, 0x1f, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x43, 0x3f, 0xfe, 0x7e, 0xf8, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xe1, 0xf9, 0xff, 0xff, 0xbe, 0xc6, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x7e, 0xff, 0xf9, 0xf0, 0xc3, 0x83, 0x03, 0x03, - 0x03, 0x83, 0xc3, 0xf1, 0xf9, 0xff, 0x7f, 0x1e, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, 0x7e, 0x7f, - 0x3f, 0x1f, 0x7b, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x1c, 0x1e, - 0x1f, 0x1f, 0x1d, 0x1e, 0x1e, 0x9f, 0xdf, 0xdf, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x0f, 0x3f, 0xf8, 0xf0, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc8, 0xef, 0xff, 0xff, 0xf7, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc1, 0x21, 0x21, 0x03, 0x03, 0x03, - 0x87, 0xc7, 0xc7, 0xc3, 0xf3, 0xfa, 0xf8, 0xf8, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x38, 0x38, 0xce, 0xef, 0xf7, 0xf7, 0xf9, 0x38, 0x18, 0x0c, - 0x0e, 0xf6, 0xf7, 0xff, 0xff, 0x0f, 0x0f, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x8f, 0xc3, 0xc0, 0xc0, - 0xc0, 0xde, 0xde, 0x1f, 0x9f, 0xdf, 0xcf, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x44, 0x46, 0x77, 0x7f, 0x3f, 0x3f, 0x3f, - 0x0f, 0x07, 0x87, 0x87, 0x87, 0x87, 0x47, 0x47, 0x40, 0x60, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x3e, 0x78, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, - 0xf8, 0xfe, 0xff, 0x7f, 0x7f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xe4, 0xfc, 0x3c, 0x3c, 0x39, 0x39, - 0x39, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x20, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0xb0, - 0xf8, 0xfc, 0xfc, 0xfe, 0x4f, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x8f, 0xcf, 0xef, 0xef, 0xef, - 0xe7, 0xe3, 0xef, 0x8f, 0xcf, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xf8, 0xf8, 0xfc, 0x0e, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, - 0x03, 0x03, 0xe3, 0xf3, 0xfb, 0xf3, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf8, 0x78, - 0x7c, 0x3f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // frame 3 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0xfe, 0xff, 0x0f, 0x0f, 0x07, 0x07, 0x07, - 0x1f, 0x1f, 0x7c, 0x7c, 0x7c, 0x7c, 0xdf, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe7, 0xdf, 0x3f, 0x3f, 0xf8, 0xf0, 0xf0, 0xf0, - 0xc0, 0xc0, 0x80, 0xe0, 0xfc, 0xfe, 0x3f, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x0f, 0x1e, 0x7e, 0xfe, 0xf0, 0xe0, - 0x81, 0x01, 0x0f, 0x0f, 0x0f, 0xc3, 0xe7, 0xff, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x8f, 0x9f, 0xdf, - 0xdf, 0xdf, 0xf8, 0x7e, 0xff, 0xff, 0xef, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0xfe, 0xff, 0x1f, 0x0f, 0x0f, - 0x07, 0x07, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0xdf, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x7f, 0xf8, 0xf0, - 0xf0, 0xf0, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xfe, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xf8, 0x04, 0x04, 0x00, 0x00, 0x80, - 0x81, 0xc1, 0xdf, 0xef, 0xef, 0xef, 0xe7, 0xe3, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0xf8, 0xf8, 0xfe, 0x7f, 0x3f, 0x3f, 0x1f, 0x07, - 0x07, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe3, 0xe3, 0xf0, 0xf0, 0xf0, 0xc0, 0xde, 0xde, - 0xde, 0xdf, 0x7f, 0xcf, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1f, 0xff, 0xff, 0xff, 0xc7, 0x03, 0x01, 0x01, 0x01, - 0x06, 0x07, 0x1f, 0x07, 0x1f, 0x1c, 0x98, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x87, 0x8f, 0x3f, 0x3e, 0x7c, 0x7c, 0xfc, - 0xf0, 0xf0, 0x20, 0xe0, 0xf8, 0x3f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xe0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xe0, 0xc0, - 0xf0, 0xf8, 0xf8, 0xfc, 0xff, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xe1, 0xf1, 0xf3, 0xfb, 0xfb, 0xfb, 0xe7, - 0xe3, 0xef, 0xbf, 0x81, 0xbc, 0xc0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x0f, 0xff, 0xf9, 0xf8, 0xe0, 0x00, 0x01, - 0x03, 0x03, 0x0f, 0x0f, 0x0b, 0x0b, 0x98, 0xd0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x1f, 0x1e, - 0x3e, 0x3e, 0xe0, 0xe0, 0xf0, 0x00, 0xff, 0xff, 0x7f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // frame 4 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0xf8, 0xfc, 0xfe, 0xfe, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, - 0x1c, 0x1e, 0x1f, 0x1f, 0x1f, 0x9f, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xa3, 0x5f, 0xff, 0xfc, 0xfc, 0xe0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xe0, 0xfb, 0xff, 0x3f, 0xff, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x3f, 0x7c, 0xf8, 0xfb, 0xc3, 0x83, 0x03, - 0x03, 0x03, 0x83, 0xc1, 0xf1, 0xfe, 0xff, 0x7f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x3c, 0x3c, 0x3c, 0x7d, 0x7f, 0x7f, 0x7f, 0x3e, - 0x1c, 0x7e, 0x7f, 0x7f, 0x0f, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x7e, 0x3e, 0x3f, 0x1f, 0x1f, 0x1f, - 0x1f, 0x1f, 0x1c, 0x1e, 0x9f, 0xdf, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x7f, 0xff, 0xfc, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xe0, 0xf8, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf0, 0xc1, 0x03, 0x03, 0x07, 0x07, 0x07, - 0x83, 0xf3, 0xfb, 0xf9, 0xf8, 0xf8, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x1f, 0x10, 0x10, 0x18, 0xec, 0xee, - 0xff, 0xff, 0xf7, 0x37, 0x1f, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x8f, - 0xc3, 0xc1, 0xc0, 0xc0, 0xde, 0x1e, 0x4f, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0xfe, 0xff, 0x1f, 0x0f, - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf7, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x3f, 0xff, 0xff, 0xf8, - 0xf0, 0xf0, 0xf0, 0xf0, 0x10, 0x18, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, 0xfc, 0xfe, 0xfe, 0x3c, 0x3c, 0x01, - 0x01, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xe0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xff, 0xff, 0x07, 0x07, 0x07, 0x80, - 0xc0, 0xf0, 0xf8, 0xf8, 0x7f, 0x3f, 0x0f, 0x07, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x87, 0xc7, 0xcf, 0xef, - 0xef, 0xeb, 0xe7, 0xe7, 0x8f, 0xc8, 0xe8, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xfe, 0xff, 0xff, 0x87, 0x07, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xe3, 0xf3, 0xfb, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x1f, 0x7f, 0x7f, 0xfc, 0xf8, - 0xf8, 0x78, 0x78, 0x38, 0x3c, 0x1f, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // frame 5 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x1f, 0x1f, - 0x1f, 0x1f, 0x1c, 0x1e, 0x1f, 0x1f, 0x9f, 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xe0, 0xf8, 0xff, 0xff, 0x3f, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xfe, 0xf9, 0xf1, 0xc3, 0x83, 0x03, - 0x03, 0x03, 0x83, 0xc3, 0xf1, 0xf9, 0xfe, 0x7f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0x7e, - 0x7c, 0x3e, 0x1f, 0x7f, 0x7f, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0x3e, 0x3f, 0x1f, - 0x1f, 0x1c, 0x1e, 0x1f, 0x1f, 0x1f, 0x9f, 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x27, 0xff, 0xff, 0xf8, 0xf8, 0xc0, 0xc0, - 0xc0, 0xc0, 0xe0, 0xe0, 0xf8, 0xff, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0x01, 0x03, 0x03, 0x03, 0x07, - 0xc7, 0xf3, 0xfb, 0xfb, 0xf9, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xe0, 0xf8, 0xfc, 0xfe, - 0x1f, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x8b, 0xc1, 0xc0, - 0xc6, 0xde, 0x1e, 0x9f, 0xdf, 0xdf, 0xcf, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0xfe, 0x3f, 0x0f, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0xc7, 0xe7, 0xf7, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xf0, - 0xf0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xf8, 0xfc, 0xfc, 0x3c, 0x3c, 0x01, - 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x80, 0xf0, 0xf8, 0xfe, 0x7f, 0x3f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x8f, 0xcf, 0xef, 0xef, - 0xef, 0xe3, 0x8f, 0xcf, 0xef, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0xfe, 0xff, 0x0f, 0x07, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0xe3, 0xf3, 0xfb, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, - 0xf8, 0x78, 0x7c, 0x3f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // frame 6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x7c, 0x7c, 0x1c, - 0x1e, 0x1f, 0x1f, 0x8f, 0xcf, 0xef, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xe1, 0x80, 0x00, 0x00, 0x00, 0xc0, - 0xc0, 0xe0, 0xf8, 0xff, 0x7f, 0x9f, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0xfb, 0xe7, 0xc7, 0x0f, 0x0f, 0x0f, 0x0f, 0x03, - 0x83, 0xc3, 0xf1, 0xfc, 0x7e, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe3, 0xef, 0xff, 0xff, 0xfe, 0xf8, 0xf0, 0x3e, - 0x1f, 0x7f, 0x7f, 0xbd, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xe1, 0xf1, 0xf9, 0x7d, 0x7d, 0x7d, 0x1c, - 0x1e, 0x1f, 0x1f, 0x8f, 0xcf, 0xef, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xe1, 0x80, 0x00, 0x00, 0x00, 0xc0, - 0xc0, 0xe0, 0xf8, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x87, 0x07, 0x0f, 0x0f, 0x1f, 0x1f, 0x87, - 0xc3, 0xf3, 0xf9, 0xfc, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfe, 0x00, 0x80, 0xe0, 0xf0, 0xf9, - 0x3f, 0x1f, 0x07, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, 0x0f, 0x07, 0x03, - 0x00, 0x9e, 0xde, 0xde, 0xef, 0xef, 0xe7, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x1f, 0x1f, 0x1f, - 0x07, 0x07, 0x07, 0x07, 0xe3, 0xf3, 0xfb, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xc0, 0xc0, 0xc0, - 0xf0, 0xf0, 0xf8, 0x7e, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xf1, 0xf1, 0xf3, 0xf3, 0x07, 0x07, - 0x01, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, - 0xc0, 0xf0, 0xf8, 0xfe, 0xbf, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0xbc, 0xbc, 0xbe, - 0x87, 0xc3, 0xef, 0xef, 0xf7, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3e, 0x1f, 0x0f, 0x0f, 0x0f, - 0x03, 0x03, 0x03, 0x03, 0xf1, 0xf9, 0xfd, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x7f, 0xff, 0xfc, 0xf0, 0xe0, 0xe0, 0xe0, - 0xf8, 0x78, 0x7c, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - // frame 7 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf0, 0xf8, 0x7c, 0xf8, 0x7c, 0x7c, 0x1f, - 0x1c, 0x1e, 0x1f, 0x1f, 0xc7, 0xe7, 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0xff, 0xff, 0xf8, 0x80, 0x00, 0x00, 0xc0, - 0xc0, 0xc0, 0xe0, 0xf8, 0x7f, 0x3f, 0x3f, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0xfe, 0xf9, 0xf1, 0x0f, 0x0f, 0x0f, 0x03, - 0x03, 0x83, 0xc3, 0xf1, 0xfe, 0x3f, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x78, 0x7b, 0x7f, 0xff, 0xfe, 0xf8, 0x7c, - 0x3e, 0x1f, 0x7f, 0x7f, 0xde, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf0, 0xf8, 0x7c, 0xf9, 0x7d, 0x7d, 0x1f, - 0x1c, 0x1e, 0x1f, 0x1f, 0xc7, 0xe7, 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x80, 0x00, 0x00, 0xc0, - 0xc0, 0xc0, 0xe0, 0xf8, 0x7f, 0x3f, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xe1, 0x01, 0x0f, 0x0f, 0x1f, 0x07, - 0x87, 0xc3, 0xf3, 0xf9, 0xfe, 0xfe, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x3f, 0x3f, 0xc0, 0x80, 0xe0, 0xf0, 0xfe, - 0x3f, 0x1f, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x0f, 0x07, 0xc0, - 0x00, 0x9e, 0xde, 0xde, 0xf7, 0xf7, 0xcf, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xfe, 0xfc, 0xfe, 0x1f, 0x3e, 0x1f, 0x1f, 0x07, - 0x07, 0x07, 0x07, 0x07, 0xf1, 0xf9, 0xf7, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x7f, 0x7e, 0xe0, 0xc0, 0xc0, 0xf0, - 0xf0, 0xf0, 0xf8, 0x7e, 0x1f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xf8, 0xfc, 0xfc, 0xf3, 0xf3, 0x07, 0x01, - 0x01, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, - 0xc0, 0xf0, 0xf8, 0xfe, 0xdf, 0x07, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x0f, 0x8f, 0x3c, 0xbc, 0xbc, 0xef, - 0x87, 0xc3, 0xef, 0xef, 0xfb, 0xf8, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xff, 0xfe, 0xff, 0x0f, 0x1f, 0x0f, 0x0f, 0x03, - 0x03, 0x03, 0x03, 0x03, 0xf8, 0xfc, 0xfb, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x3f, 0x3f, 0xf0, 0xe0, 0xe0, 0xf8, - 0xf8, 0x78, 0x7c, 0x3f, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } -}; - -static const char PROGMEM text_glitch_dirty[text_glitch_dirty_count][frame_size] = { - { - // frame 1 - 0x00, 0x00, 0x00, 0x40, 0x60, 0x70, 0x78, 0x78, 0x38, 0x18, 0x98, 0x9c, 0x9e, 0x9f, 0x1f, 0x1f, - 0x07, 0x07, 0x07, 0x07, 0x1f, 0x1f, 0x5f, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3c, 0xfc, 0xfc, 0xf8, 0xe0, 0xc0, 0xc3, 0xc3, - 0xc3, 0xc3, 0xe0, 0xf8, 0xfc, 0xfc, 0x3c, 0xc4, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1e, 0x19, 0x11, 0x03, 0x03, 0x83, 0xe3, - 0xe3, 0xe3, 0xe3, 0x51, 0x19, 0x1e, 0x9f, 0x1f, 0x00, 0xc0, 0xe0, 0xe0, 0xe0, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x3b, 0x3f, 0x3f, 0x3f, 0x3e, 0x7c, 0x7e, 0x7f, 0x60, 0x60, 0x5f, - 0x5f, 0x5b, 0x60, 0x20, 0x20, 0x00, 0x00, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf0, 0xf0, 0x30, 0x30, 0x10, 0x18, 0x1c, 0x0c, 0x0c, - 0x0c, 0x1e, 0x1f, 0x13, 0x13, 0x13, 0x1f, 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x8f, 0xc0, 0xc0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xe0, 0xf8, 0xf8, 0xf8, 0x38, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x07, 0x06, 0x86, 0xc2, 0xf2, 0xfa, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x40, 0x60, 0xf8, 0xfc, 0xfe, - 0xbf, 0x9f, 0x07, 0x07, 0x7f, 0x7f, 0xff, 0xff, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x88, 0xc0, 0xc0, 0xc0, 0xc0, 0xd8, 0xd8, 0xdf, 0xdf, 0xdb, 0xc9, 0xc0, - 0x00, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x73, 0x7b, 0xff, 0xff, 0xbf, 0x8f, 0x07, 0x07, 0x07, - 0x04, 0x04, 0x04, 0x04, 0x44, 0x64, 0xf4, 0xf4, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x60, 0x6c, 0xfc, 0xff, 0xff, 0xfb, 0xf2, 0xf0, 0xf0, - 0x70, 0x70, 0x38, 0x1c, 0x1c, 0x1e, 0x0f, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x20, 0x38, 0x38, - 0x3c, 0x3d, 0x3d, 0x3d, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x0c, 0x8f, 0x8f, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x88, - 0x8c, 0x8c, 0xbc, 0xbe, 0x03, 0x43, 0x43, 0x77, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x40, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x8f, 0xcf, 0xef, 0xef, 0xef, - 0xe7, 0xe3, 0xef, 0xef, 0xef, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x1c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x03, 0x63, 0x63, 0x63, 0x63, - 0x83, 0x83, 0x93, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf8, 0x78, 0x7c, 0x3f, 0x3f, 0x1f, 0x07, 0x00 - }, - { - // frame 2 - 0x00, 0x00, 0x10, 0x18, 0x1c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7e, 0xfe, 0x9f, 0x9f, 0x9f, 0x1f, 0x1f, - 0x1f, 0x1f, 0x03, 0x03, 0x03, 0x03, 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa2, 0x5e, 0xff, 0xfd, 0xfd, 0xe1, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xe0, 0xfa, 0xfe, 0x3e, 0xff, 0x05, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x0e, 0x0c, 0x08, 0x0a, 0x02, 0x02, 0x03, 0x03, 0x33, 0x72, 0xf0, 0xf1, 0xcf, 0x8f, 0x0f, - 0x09, 0x01, 0x81, 0xc1, 0xf1, 0xf0, 0xf1, 0x71, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x24, 0x24, 0x64, 0x65, 0x77, 0x77, 0x3f, 0x1e, - 0x7c, 0x7e, 0x7f, 0x1f, 0x1f, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x18, 0x18, 0xf8, 0xf8, 0xf8, 0xf8, 0x7c, - 0x3e, 0x3e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x07, 0x07, 0x87, 0xc7, 0xc7, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x70, 0x70, 0x70, 0x60, 0x4c, 0x4c, 0xcc, 0xcc, 0xc1, 0xe3, 0xf3, 0xf3, 0xf0, - 0xb0, 0x80, 0x88, 0x8c, 0x8c, 0x0c, 0x04, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xf0, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xf3, 0xf3, 0xf7, 0xf7, 0xf7, - 0xf3, 0xc3, 0x0b, 0x09, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x1f, 0x17, 0x17, 0x1f, 0x68, 0x68, 0x78, 0xfc, 0xf6, - 0xb7, 0x9f, 0x8f, 0x7f, 0x7f, 0x07, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, - 0x01, 0x01, 0x00, 0x8e, 0x8e, 0xc2, 0xc1, 0xc1, 0xc0, 0xde, 0xde, 0xce, 0xc6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x18, 0x08, 0x00, 0x00, 0x40, 0xc4, 0xc6, 0xc7, 0x37, 0x37, - 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x20, 0x38, 0x78, 0x78, 0x78, - 0x70, 0x77, 0x77, 0x77, 0x17, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x04, 0x04, 0x06, 0x06, 0x04, 0x04, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, - 0xf8, 0xf8, 0xf8, 0xf8, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xe0, 0xf8, 0x00, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x40, 0x40, 0x40, 0x77, 0x7f, 0x3f, 0x3f, 0x3f, 0x08, - 0x40, 0x48, 0xc0, 0xc0, 0xc7, 0x87, 0x87, 0x07, 0x07, 0x07, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc8, 0xe8, 0xe8, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x07, 0xef, 0xe7, 0xe7, 0xef, 0xe8, 0xe8, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, - 0x06, 0x06, 0x06, 0x06, 0x03, 0x3b, 0x39, 0x39, 0x39, 0x01, 0x00, 0x40, 0x40, 0x40, 0x00, 0x80, - 0x80, 0x83, 0x83, 0x03, 0x03, 0x03, 0x23, 0x33, 0x3b, 0x3b, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, - 0x02, 0x06, 0x06, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x1e, 0x7e, 0x7e, 0xfe, 0xf9, - 0xf9, 0x79, 0x79, 0x38, 0x38, 0x18, 0x08, 0x08, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00 - }, - { - // frame 3 - 0x00, 0xe1, 0x9f, 0xff, 0xff, 0xf0, 0x01, 0x00, 0x00, 0x1f, 0x1c, 0x1e, 0x1f, 0x1f, 0xc7, 0xe7, - 0xdf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0f, 0x3f, 0x3d, 0x33, 0x23, 0x1f, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, - 0x03, 0x03, 0x00, 0xc0, 0xc0, 0xc0, 0x20, 0x38, 0x3c, 0xfc, 0xfc, 0xc4, 0xc0, 0xc0, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0xf0, 0xf6, 0xfe, 0xfe, 0xfc, 0xf0, 0x02, - 0x02, 0x82, 0xc2, 0xf1, 0xff, 0x3f, 0x3e, 0x0e, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, - 0x08, 0x03, 0x0b, 0x1b, 0x0e, 0x18, 0x1c, 0x9e, 0x9e, 0x9f, 0x9f, 0x9e, 0x9e, 0xf0, 0xf0, 0x7c, - 0x3e, 0x1f, 0x7f, 0x7f, 0x5e, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x81, 0x9f, 0xff, 0xff, 0xf0, 0x41, 0x40, 0x00, 0x30, - 0x30, 0x30, 0x30, 0x30, 0xf0, 0xd0, 0xd0, 0x90, 0x10, 0x10, 0x00, 0x20, 0x18, 0x18, 0x00, 0x00, - 0x01, 0x03, 0x03, 0x0f, 0x0e, 0x4e, 0x4f, 0x0f, 0x17, 0x17, 0x33, 0x0c, 0x8c, 0x80, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x1f, 0x1f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x7c, 0x7c, 0x00, 0x03, 0x43, 0x63, 0xf8, - 0x38, 0x38, 0x38, 0x38, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x3e, 0x1e, 0x06, 0x06, 0xfe, 0xbf, 0xff, 0xff, 0xc1, 0x01, 0x01, 0x01, 0x01, 0xc0, 0xc0, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0xc0, - 0x00, 0x80, 0xc0, 0xc0, 0xff, 0xff, 0xcf, 0xc7, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x17, 0x17, 0x0f, - 0x00, 0x00, 0x00, 0x00, 0x30, 0xf0, 0xf0, 0xfc, 0x1e, 0x3c, 0x1e, 0x1f, 0x0e, 0x0f, 0x0f, 0x07, - 0x07, 0xf7, 0xf7, 0xf7, 0xe1, 0x09, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x40, 0x40, 0xc0, 0xc2, 0xc2, 0xc2, - 0xc2, 0xdd, 0xdd, 0x5d, 0x01, 0x00, 0x00, 0x10, 0x10, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xf8, 0xfe, 0xf8, 0x3c, 0x3c, 0x33, 0x33, 0x07, 0x01, - 0xc1, 0xc0, 0xc0, 0xc0, 0x00, 0x20, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x7c, 0x7c, 0x7c, 0x7c, 0xfc, 0x80, 0x80, 0x82, - 0x83, 0x43, 0x73, 0x7b, 0xfc, 0xdc, 0x84, 0x8c, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x88, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, - 0x3f, 0xbc, 0xbc, 0xec, 0x87, 0xc7, 0xeb, 0xef, 0xff, 0xfb, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, - 0x7e, 0x7e, 0x0e, 0x1e, 0x0f, 0x0e, 0x03, 0x83, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x03, 0x03, 0xf9, 0xfd, 0xfb, 0xf3, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x3f, 0x3f, 0xf0, 0xe0, 0xe0, 0xf8, 0xf8, - 0x78, 0x7c, 0x3f, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } -}; - -void arasaka_text_clean(void) -{ - oled_write_raw_P(text_clean, frame_size); -} - -void arasaka_text_glitch_dirty(void) -{ - oled_write_raw_P(text_glitch_dirty[rand() % text_glitch_dirty_count], frame_size); -} - -void arasaka_text_glitch(bool can_be_dirty) -{ - uint8_t frame = can_be_dirty - ? rand() % (text_glitch_count + text_glitch_dirty_count) - : rand() % text_glitch_count - ; - - if (frame < text_glitch_count) { - oled_write_raw_P(text_glitch[frame], frame_size); - - return; - } - - arasaka_text_glitch_dirty(); -} - -void arasaka_logo_clean(void) -{ - oled_write_raw_P(logo_clean, frame_size); -} - -void arasaka_logo_glitch_dirty(void) -{ - oled_write_raw_P(logo_glitch_dirty[rand() % logo_glitch_dirty_count], frame_size); -} - -void arasaka_logo_glitch(bool can_be_dirty) -{ - uint8_t frame = can_be_dirty - ? rand() % (logo_glitch_count + logo_glitch_dirty_count) - : rand() % logo_glitch_count - ; - - if (frame < logo_glitch_count) { - oled_write_raw_P(logo_glitch[frame], frame_size); - - return; - } - - arasaka_logo_glitch_dirty(); -} - -void arasaka_draw(void) { - uint16_t timer = timer_elapsed(arasaka_timer); - - if (timer < 150) { - show_text ? arasaka_text_glitch_dirty() : arasaka_logo_glitch_dirty(); - - return; - } - - if (timer < 250) { - show_text ? arasaka_text_glitch(true) : arasaka_logo_glitch(true); - - return; - } - - if (timer > 9750 && timer < 9850) { - show_text ? arasaka_text_glitch(true) : arasaka_logo_glitch(true); - - return; - } - - if (timer > 9850 && timer < 10000) { - show_text ? arasaka_text_glitch_dirty() : arasaka_logo_glitch_dirty(); - - return; - } - - if (timer > 10000) { - show_text = !show_text; - arasaka_timer = timer_read(); - } - - if (glitch && 0 != frame_count) { - frame_count--; - show_text ? arasaka_text_glitch(true) : arasaka_logo_glitch(true); - - return; - } - - glitch = false; - dirty = false; - - show_text ? arasaka_text_clean() : arasaka_logo_clean(); - - if (1 == rand() % 60) { - glitch = true; - frame_count = 1 + rand() % 4; - - return; - } - - if (1 == rand() % 60) { - glitch = true; - frame_count = 1 + rand() % 10; - dirty = frame_count > 5; - } -} - -// End of Arasaka Code - - -// Spaceship OLED Code Starts Here - -unsigned int state = 0; - -static const char PROGMEM space_row_1[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0xe1, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x38, 0x38, - 0x78, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x03, 0x03, 0x1f, 0xff, - 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0xf8, 0xfc, 0xe6, 0xb2, 0x3e, 0xbe, 0xfe, 0xec, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, - 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, - 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0xe1, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x38, 0x38, - 0x78, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x03, 0x03, 0x1f, 0xff, - 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM space_row_2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, - 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x38, 0x00, 0x00, 0x03, 0x03, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x07, 0x05, 0x03, 0x00, 0x00, - 0x00, 0x01, 0x03, 0x03, 0x02, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x60, 0x20, 0x20, - 0x38, 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, - 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x38, 0x00, 0x00, 0x03, 0x03, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM space_row_3[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, - 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0xb8, 0x38, 0x3c, 0x7c, 0xfc, 0xfc, - 0xfc, 0xfe, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xe0, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x0e, 0x0e, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x06, 0x0c, 0x18, 0x30, - 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, - 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0xb8, 0x38, 0x3c, 0x7c, 0xfc, 0xfc, - 0xfc, 0xfe, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xe0, 0xc0, 0x00, 0x00 -}; - -static const char PROGMEM space_row_4[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0e, 0x0e, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x38, 0x31, 0x71, 0x70, 0x30, 0x3c, 0x1f, - 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x03, 0x01, 0x03, 0x03, 0x02, 0x02, 0x06, 0x04, 0x04, 0x0c, 0x0c, 0x08, 0x18, 0x18, - 0x10, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x07, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7e, 0x7e, 0x7c, 0x3c, 0x3c, 0x1c, 0x1c, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0e, 0x0e, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x38, 0x31, 0x71, 0x70, 0x30, 0x3c, 0x1f, - 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM ship_row_1[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM ship_row_2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x7e, 0x3e, 0x7c, 0xfc, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM ship_row_3[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1e, 0x1f, 0x1f, 0x0f, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM ship_row_4[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -static const char PROGMEM mask_row_1[] = { - 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -}; - -static const char PROGMEM mask_row_2[] = { - 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, - 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -}; - -static const char PROGMEM mask_row_3[] = { - 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, - 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -}; - -static const char PROGMEM mask_row_4[] = { - 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -}; - -static void render_space(void) { - char wpm = get_current_wpm(); - char render_row[128]; - int i; - oled_set_cursor(0,0); - for(i=0; i<wpm/4; i++) { - render_row[i] = pgm_read_byte(space_row_1+i+state); - }; - for(i=wpm/4; i<128; i++) { - render_row[i] = (pgm_read_byte(space_row_1+i+state)&pgm_read_byte(mask_row_1+i-wpm/4)) | pgm_read_byte(ship_row_1+i-wpm/4); - }; - - oled_write_raw(render_row, 128); - // oled_write_raw_P(space_row_1, 128); - oled_set_cursor(0,1); - for(i=0; i<wpm/4; i++) { - render_row[i] = pgm_read_byte(space_row_2+i+state); - }; - for(i=wpm/4; i<128; i++) { - render_row[i] = (pgm_read_byte(space_row_2+i+state)&pgm_read_byte(mask_row_2+i-wpm/4)) | pgm_read_byte(ship_row_2+i-wpm/4); - }; - oled_write_raw(render_row, 128); - oled_set_cursor(0,2); - for(i=0; i<wpm/4; i++) { - render_row[i] = pgm_read_byte(space_row_3+i+state); - }; - for(i=wpm/4; i<128; i++) { - render_row[i] = (pgm_read_byte(space_row_3+i+state)&pgm_read_byte(mask_row_3+i-wpm/4)) | pgm_read_byte(ship_row_3+i-wpm/4); - }; - - oled_write_raw(render_row, 128); - oled_set_cursor(0,3); - for(i=0; i<wpm/4; i++) { - render_row[i] = pgm_read_byte(space_row_4+i+state); - }; - for(i=wpm/4; i<128; i++) { - render_row[i] = (pgm_read_byte(space_row_4+i+state)&pgm_read_byte(mask_row_4+i-wpm/4)) | pgm_read_byte(ship_row_4+i-wpm/4); - }; - - oled_write_raw(render_row, 128); - - state = (state + 1 + (wpm/15)) % (128*2); -} - -// End of space oled stuff - - -bool oled_task_user(void) { - if (is_keyboard_master()) { - arasaka_draw(); - } else { - render_space(); - } - return false; -} -#endif diff --git a/keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.json b/keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.json new file mode 100644 index 0000000000..5b89d39bef --- /dev/null +++ b/keyboards/splitkb/aurora/corne/keymaps/sporq/keymap.json @@ -0,0 +1,26 @@ +{ + "keyboard": "splitkb/aurora/corne/rev1", + "keymap": "sporq", + "layout": "LAYOUT_split_3x6_3", + "layers": [ + ["KC_ESC","KC_X","KC_V","KC_L","KC_C","KC_W", "KC_K","KC_H","KC_G","KC_F","KC_Q","RALT(KC_S)", + "KC_LSFT","KC_U","KC_I","KC_A","KC_E","KC_O", "KC_S","KC_N","KC_R","KC_T","KC_D","KC_Y", + "KC_LCTL","RALT(KC_Y)","RALT(KC_P)","RALT(KC_Q)", "KC_P", "KC_Z", "KC_B","KC_M","KC_COMM","KC_DOT","KC_J","MO(3)", + "KC_LGUI","MO(2)","KC_SPC", "LCTL(KC_BSPC)","MO(1)","KC_LALT"], + + [ "KC_NO","KC_NO","KC_UNDS","KC_LBRC","KC_RBRC","KC_CIRC", "KC_EXLM","LSFT(KC_COMM)","LSFT(KC_DOT)","KC_EQL","KC_AMPR","KC_NO", + "KC_NO","KC_BSLS","KC_SLSH","KC_LCBR","KC_RCBR","KC_ASTR", "KC_QUES","KC_LPRN","KC_RPRN","KC_MINS","KC_COLN","KC_AT", + "KC_NO","KC_HASH","KC_DLR","KC_PIPE","KC_TILD","KC_GRV", "KC_PLUS","KC_PERC","KC_DQUO","KC_QUOT","KC_SCLN","KC_NO", + "KC_NO","KC_NO","KC_NO", "KC_NO","KC_NO","KC_NO"], + + ["KC_TRNS","KC_PGUP","KC_BSPC","KC_UP","KC_DEL","KC_PGDN", "KC_NO","KC_7","KC_8","KC_9","KC_NO","KC_NO", + "KC_TRNS","KC_HOME","KC_LEFT","KC_DOWN","KC_RIGHT","KC_END", "KC_NO","KC_4","KC_5","KC_6","KC_0","KC_NO", + "KC_TRNS","KC_ESC","KC_TAB","KC_INSERT","KC_ENTER","KC_UNDO", "KC_0","KC_1","KC_2","KC_3","KC_NO","KC_NO", + "KC_TRNS","KC_TRNS","KC_NO", "KC_NO","KC_TRNS","KC_TRNS"], + + ["KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO", "KC_NO","KC_NO","KC_NO","RGB_MOD","KC_MPLY","KC_AUDIO_VOL_UP", + "KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6", "KC_NO","KC_NO","KC_NO","RGB_RMOD","KC_NO","KC_AUDIO_VOL_DOWN", + "KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12", "KC_NO","KC_NO","KC_NO","RGB_TOG","KC_AUDIO_MUTE","KC_TRNS", + "KC_TRNS","KC_TRNS","KC_NO", "KC_NO","KC_TRNS","KC_TRNS"] + ] +} diff --git a/keyboards/splitkb/aurora/corne/keymaps/sporq/oled.c b/keyboards/splitkb/aurora/corne/keymaps/sporq/oled.c new file mode 100644 index 0000000000..758dfe02bb --- /dev/null +++ b/keyboards/splitkb/aurora/corne/keymaps/sporq/oled.c @@ -0,0 +1,493 @@ + +#include QMK_KEYBOARD_H +#include <stdio.h> + +#ifdef OLED_ENABLE +// NOTE: Most of the OLED code was originally written by Soundmonster for the Corne, +// and has been copied directly from `crkbd/soundmonster/keymap.c` + +enum layers { + _DEFAULT, + _LOWER, + _RAISE, + _ADJUST +}; + +static uint16_t animation_timer = 0; +// 40 fps +#define FRAME_TIMEOUT (1000/40) +// 30 sec +#define SLEEP_TIMEOUT 30000 + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + animation_timer = timer_read(); + if (!is_keyboard_master()) { + return OLED_ROTATION_0; // flips the display 180 degrees if offhand + } + return OLED_ROTATION_270; +} + + +// Spaceship OLED Code Starts Here + +unsigned int state = 0; + +static const char PROGMEM space_row_1[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0xe1, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x38, 0x38, + 0x78, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x03, 0x03, 0x1f, 0xff, + 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0xf8, 0xfc, 0xe6, 0xb2, 0x3e, 0xbe, 0xfe, 0xec, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0xe1, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x38, 0x38, + 0x78, 0x78, 0x7b, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x03, 0x03, 0x1f, 0xff, + 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM space_row_2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, + 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x38, 0x00, 0x00, 0x03, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x07, 0x05, 0x03, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x02, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x40, 0x60, 0x20, 0x20, + 0x38, 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, + 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x38, 0x00, 0x00, 0x03, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM space_row_3[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, + 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0xb8, 0x38, 0x3c, 0x7c, 0xfc, 0xfc, + 0xfc, 0xfe, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xe0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x0e, 0x0e, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x06, 0x0c, 0x18, 0x30, + 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, + 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0xb8, 0x38, 0x3c, 0x7c, 0xfc, 0xfc, + 0xfc, 0xfe, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xe0, 0xc0, 0x00, 0x00 +}; + +static const char PROGMEM space_row_4[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0e, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x38, 0x31, 0x71, 0x70, 0x30, 0x3c, 0x1f, + 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x03, 0x01, 0x03, 0x03, 0x02, 0x02, 0x06, 0x04, 0x04, 0x0c, 0x0c, 0x08, 0x18, 0x18, + 0x10, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x07, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7e, 0x7e, 0x7c, 0x3c, 0x3c, 0x1c, 0x1c, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0e, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x38, 0x31, 0x71, 0x70, 0x30, 0x3c, 0x1f, + 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM ship_row_1[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM ship_row_2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x7e, 0x3e, 0x7c, 0xfc, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM ship_row_3[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1e, 0x1f, 0x1f, 0x0f, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM ship_row_4[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM mask_row_1[] = { + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; + +static const char PROGMEM mask_row_2[] = { + 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, + 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; + +static const char PROGMEM mask_row_3[] = { + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, + 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; + +static const char PROGMEM mask_row_4[] = { + 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static void render_space_animation(void) { + const char wpm = get_current_wpm(); + char render_row[128]; + int i; + oled_set_cursor(0,0); + for(i=0; i<wpm/4; i++) { + render_row[i] = pgm_read_byte(space_row_1+i+state); + }; + for(i=wpm/4; i<128; i++) { + render_row[i] = (pgm_read_byte(space_row_1+i+state)&pgm_read_byte(mask_row_1+i-wpm/4)) | pgm_read_byte(ship_row_1+i-wpm/4); + }; + + oled_write_raw(render_row, 128); + // oled_write_raw_P(space_row_1, 128); + oled_set_cursor(0,1); + for(i=0; i<wpm/4; i++) { + render_row[i] = pgm_read_byte(space_row_2+i+state); + }; + for(i=wpm/4; i<128; i++) { + render_row[i] = (pgm_read_byte(space_row_2+i+state)&pgm_read_byte(mask_row_2+i-wpm/4)) | pgm_read_byte(ship_row_2+i-wpm/4); + }; + oled_write_raw(render_row, 128); + oled_set_cursor(0,2); + for(i=0; i<wpm/4; i++) { + render_row[i] = pgm_read_byte(space_row_3+i+state); + }; + for(i=wpm/4; i<128; i++) { + render_row[i] = (pgm_read_byte(space_row_3+i+state)&pgm_read_byte(mask_row_3+i-wpm/4)) | pgm_read_byte(ship_row_3+i-wpm/4); + }; + + oled_write_raw(render_row, 128); + oled_set_cursor(0,3); + for(i=0; i<wpm/4; i++) { + render_row[i] = pgm_read_byte(space_row_4+i+state); + }; + for(i=wpm/4; i<128; i++) { + render_row[i] = (pgm_read_byte(space_row_4+i+state)&pgm_read_byte(mask_row_4+i-wpm/4)) | pgm_read_byte(ship_row_4+i-wpm/4); + }; + + oled_write_raw(render_row, 128); + + state = (state + 1 + (wpm/20)) % (128*2); +} + +// End of space oled stuff + +static void render_space(void) { + oled_write_P(PSTR(" "), false); +} + +static void render_mod_status_gui_alt(uint8_t modifiers) { + static const char PROGMEM gui_off_1[] = {0x85, 0x86, 0}; + static const char PROGMEM gui_off_2[] = {0xa5, 0xa6, 0}; + static const char PROGMEM gui_on_1[] = {0x8d, 0x8e, 0}; + static const char PROGMEM gui_on_2[] = {0xad, 0xae, 0}; + + static const char PROGMEM alt_off_1[] = {0x87, 0x88, 0}; + static const char PROGMEM alt_off_2[] = {0xa7, 0xa8, 0}; + static const char PROGMEM alt_on_1[] = {0x8f, 0x90, 0}; + static const char PROGMEM alt_on_2[] = {0xaf, 0xb0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_1, false); + } else { + oled_write_P(gui_off_1, false); + } + + if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_1, false); + } else { + oled_write_P(alt_off_1, false); + } + + if(modifiers & MOD_MASK_GUI) { + oled_write_P(gui_on_2, false); + } else { + oled_write_P(gui_off_2, false); + } + + if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_GUI) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_ALT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_ALT) { + oled_write_P(alt_on_2, false); + } else { + oled_write_P(alt_off_2, false); + } +} + +static void render_mod_status_ctrl_shift(uint8_t modifiers) { + static const char PROGMEM ctrl_off_1[] = {0x89, 0x8a, 0}; + static const char PROGMEM ctrl_off_2[] = {0xa9, 0xaa, 0}; + static const char PROGMEM ctrl_on_1[] = {0x91, 0x92, 0}; + static const char PROGMEM ctrl_on_2[] = {0xb1, 0xb2, 0}; + + static const char PROGMEM shift_off_1[] = {0x8b, 0x8c, 0}; + static const char PROGMEM shift_off_2[] = {0xab, 0xac, 0}; + static const char PROGMEM shift_on_1[] = {0xcd, 0xce, 0}; + static const char PROGMEM shift_on_2[] = {0xcf, 0xd0, 0}; + + // fillers between the modifier icons bleed into the icon frames + static const char PROGMEM off_off_1[] = {0xc5, 0}; + static const char PROGMEM off_off_2[] = {0xc6, 0}; + static const char PROGMEM on_off_1[] = {0xc7, 0}; + static const char PROGMEM on_off_2[] = {0xc8, 0}; + static const char PROGMEM off_on_1[] = {0xc9, 0}; + static const char PROGMEM off_on_2[] = {0xca, 0}; + static const char PROGMEM on_on_1[] = {0xcb, 0}; + static const char PROGMEM on_on_2[] = {0xcc, 0}; + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_1, false); + } else { + oled_write_P(ctrl_off_1, false); + } + + if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) { + oled_write_P(on_on_1, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_1, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_1, false); + } else { + oled_write_P(off_off_1, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_1, false); + } else { + oled_write_P(shift_off_1, false); + } + + if(modifiers & MOD_MASK_CTRL) { + oled_write_P(ctrl_on_2, false); + } else { + oled_write_P(ctrl_off_2, false); + } + + if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) { + oled_write_P(on_on_2, false); + } else if(modifiers & MOD_MASK_CTRL) { + oled_write_P(on_off_2, false); + } else if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(off_on_2, false); + } else { + oled_write_P(off_off_2, false); + } + + if(modifiers & MOD_MASK_SHIFT) { + oled_write_P(shift_on_2, false); + } else { + oled_write_P(shift_off_2, false); + } +} + +static void render_logo(void) { + static const char PROGMEM aurora_logo[] = { + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xc0, 0xf8, 0xe0, 0xc0, 0xfc, 0x00, 0x7e, 0x18, 0x00, 0x80, + 0x00, 0x02, 0x80, 0xf0, 0x00, 0xc0, 0x80, 0xf8, 0xc0, 0xe0, 0x70, 0x60, 0x3c, 0x38, 0x3c, 0x1c, + 0x00, 0x3f, 0x0c, 0x0f, 0x1f, 0x03, 0x07, 0x01, 0xc3, 0x00, 0xe0, 0x80, 0x00, 0xe0, 0x80, 0xf8, + 0x80, 0xc0, 0xf7, 0xc7, 0x6f, 0x7b, 0x39, 0x30, 0x00, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0xc2, 0xe0, + 0x00, 0x40, 0x38, 0x30, 0x38, 0x1e, 0x18, 0x1e, 0x0f, 0x0c, 0x07, 0x07, 0x07, 0x03, 0x03, 0x21, + 0x21, 0x31, 0x30, 0x18, 0x18, 0x1c, 0x08, 0x0c, 0x0e, 0x07, 0x06, 0x07, 0x03, 0xc3, 0x03, 0x01, + 0x4c, 0xcc, 0xc2, 0xc2, 0x41, 0x49, 0x09, 0x2b, 0x2a, 0x6a, 0x6e, 0x24, 0x24, 0x04, 0x92, 0x92, + 0xb1, 0xf1, 0xf1, 0xf2, 0xe6, 0xa4, 0xa4, 0x04, 0x04, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 + }; + oled_write_raw_P(aurora_logo, sizeof(aurora_logo)); + oled_set_cursor(0, 4); +} + +static void render_logo_text(void) { + oled_write_P(PSTR("corne"), false); +} + +static void render_kb_LED_state(void) { + // Host Keyboard LED Status + led_t led_usb_state = host_keyboard_led_state(); + oled_write_P(led_usb_state.num_lock ? PSTR("N ") : PSTR(" "), false); + oled_write_P(led_usb_state.caps_lock ? PSTR("C ") : PSTR(" "), false); + oled_write_P(led_usb_state.scroll_lock ? PSTR("S ") : PSTR(" "), false); +} + +static void render_layer_state(void) { + static const char PROGMEM default_layer[] = { + 0x20, 0x94, 0x95, 0x96, 0x20, + 0x20, 0xb4, 0xb5, 0xb6, 0x20, + 0x20, 0xd4, 0xd5, 0xd6, 0x20, 0}; + static const char PROGMEM raise_layer[] = { + 0x20, 0x97, 0x98, 0x99, 0x20, + 0x20, 0xb7, 0xb8, 0xb9, 0x20, + 0x20, 0xd7, 0xd8, 0xd9, 0x20, 0}; + static const char PROGMEM lower_layer[] = { + 0x20, 0x9a, 0x9b, 0x9c, 0x20, + 0x20, 0xba, 0xbb, 0xbc, 0x20, + 0x20, 0xda, 0xdb, 0xdc, 0x20, 0}; + static const char PROGMEM adjust_layer[] = { + 0x20, 0x9d, 0x9e, 0x9f, 0x20, + 0x20, 0xbd, 0xbe, 0xbf, 0x20, + 0x20, 0xdd, 0xde, 0xdf, 0x20, 0}; + if(layer_state_is(_LOWER)) { + oled_write_P(lower_layer, false); + } else if(layer_state_is(_RAISE)) { + oled_write_P(raise_layer, false); + } else if(layer_state_is(_DEFAULT)) { + oled_write_P(default_layer, false); + } else { + oled_write_P(adjust_layer, false); + } +} + +bool oled_task_user(void) { + // time for the next frame? + if (timer_elapsed(animation_timer) < FRAME_TIMEOUT) { + return false; + } + if (is_keyboard_master()) { + animation_timer = timer_read(); + // Renders the current keyboard state (layers and mods) + render_logo(); + render_logo_text(); + render_space(); + render_layer_state(); + render_space(); + render_mod_status_gui_alt(get_mods()|get_oneshot_mods()); + render_mod_status_ctrl_shift(get_mods()|get_oneshot_mods()); + render_kb_LED_state(); + } else { + // time for the next frame? + if (timer_elapsed(animation_timer) > FRAME_TIMEOUT) { + animation_timer = timer_read(); + render_space_animation(); + } + } + return false; +} +#endif diff --git a/keyboards/splitkb/aurora/corne/keymaps/sporq/rules.mk b/keyboards/splitkb/aurora/corne/keymaps/sporq/rules.mk index 490b12a14b..3f33aae96c 100644 --- a/keyboards/splitkb/aurora/corne/keymaps/sporq/rules.mk +++ b/keyboards/splitkb/aurora/corne/keymaps/sporq/rules.mk @@ -6,3 +6,6 @@ CONVERT_TO = promicro_rp2040 WPM_ENABLE = yes LTO_ENABLE = yes VIA_ENABLE = no + +# source oled code +SRC += oled.c