pokemon 2.0 skin
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
const uint8_t FreeMonoBold10pt7bBitmaps[] PROGMEM = {
|
||||
0x00, 0xFF, 0xB6, 0xDB, 0x03, 0xB0, 0xCF, 0x3C, 0xF3, 0xCE, 0x20, 0x1B,
|
||||
0x06, 0xC1, 0xB0, 0xCC, 0x7F, 0x9F, 0xF3, 0x30, 0xCC, 0x7F, 0xBF, 0xE3,
|
||||
0x60, 0xD8, 0x36, 0x0D, 0x82, 0x60, 0x18, 0x18, 0x7F, 0xE7, 0xC2, 0xE0,
|
||||
0x7E, 0x1F, 0x03, 0xC3, 0xE7, 0xFE, 0x18, 0x18, 0x18, 0x70, 0xD8, 0x88,
|
||||
0x88, 0xF1, 0x0F, 0x78, 0xDE, 0x13, 0x31, 0x13, 0x1E, 0x1E, 0x1F, 0x8D,
|
||||
0x86, 0x03, 0x01, 0xC1, 0xFE, 0xDE, 0xC7, 0x3F, 0xCF, 0xE0, 0xFF, 0xE0,
|
||||
0x39, 0x9C, 0xC6, 0x73, 0x18, 0xC7, 0x18, 0xC7, 0x18, 0x40, 0xC3, 0x1C,
|
||||
0x63, 0x1C, 0xE7, 0x39, 0x8C, 0x66, 0x73, 0x00, 0x18, 0x18, 0xDB, 0xFF,
|
||||
0x3C, 0x3C, 0x6E, 0x66, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x3F, 0xF7,
|
||||
0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x76, 0x6C, 0xC8, 0xFF, 0xDF, 0xE0,
|
||||
0xEC, 0x01, 0x03, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30,
|
||||
0x60, 0x60, 0xC0, 0xC0, 0xC0, 0x7E, 0xEE, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
|
||||
0xC3, 0xC3, 0xC7, 0x7E, 0x7C, 0x78, 0xF8, 0x98, 0x18, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0xFF, 0xFF, 0x3F, 0x3B, 0xB8, 0x68, 0x30, 0x38, 0x38,
|
||||
0x38, 0x38, 0x38, 0x38, 0xFF, 0xFF, 0xF0, 0x3F, 0x3B, 0xD0, 0x60, 0x30,
|
||||
0x70, 0xF0, 0x1E, 0x03, 0x01, 0x80, 0xFF, 0xEF, 0xE0, 0x07, 0x07, 0x83,
|
||||
0xC3, 0x63, 0xB1, 0x99, 0x8C, 0xFE, 0xFF, 0x81, 0x83, 0xE1, 0xF0, 0x7F,
|
||||
0x3F, 0x98, 0x0C, 0x07, 0xF3, 0xFC, 0x06, 0x03, 0x01, 0xA0, 0xFF, 0xEF,
|
||||
0xE0, 0x1F, 0x9F, 0x9C, 0x0C, 0x0C, 0xC7, 0xF3, 0xCD, 0xC6, 0xC1, 0x31,
|
||||
0x9F, 0xC7, 0xC0, 0xFF, 0xFF, 0xD0, 0x60, 0x60, 0x30, 0x18, 0x18, 0x0C,
|
||||
0x06, 0x06, 0x03, 0x01, 0x80, 0x7E, 0xFF, 0xC3, 0xC3, 0xC7, 0x7E, 0x7E,
|
||||
0xC3, 0xC3, 0xC3, 0xFF, 0x7E, 0x7E, 0x3F, 0xB0, 0xD8, 0x6C, 0x3B, 0xBD,
|
||||
0xFE, 0x06, 0x03, 0x03, 0x3F, 0x9F, 0x00, 0x5D, 0x80, 0x07, 0x60, 0x27,
|
||||
0x70, 0x00, 0x76, 0x6C, 0xC8, 0x00, 0x80, 0xF0, 0xF0, 0xF0, 0xF0, 0x0F,
|
||||
0x00, 0xF0, 0x0E, 0x00, 0x80, 0xFF, 0xFF, 0xF0, 0x03, 0xFE, 0xFF, 0xC0,
|
||||
0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC3, 0xC3, 0xC3, 0xC0, 0xC0, 0x00,
|
||||
0x3C, 0xFE, 0xE7, 0xC3, 0x03, 0x07, 0x1E, 0x18, 0x10, 0x00, 0x18, 0x18,
|
||||
0x1E, 0x19, 0x98, 0x48, 0x34, 0x3E, 0x7F, 0x67, 0xB3, 0xD9, 0xE7, 0xD0,
|
||||
0xC8, 0x06, 0x11, 0xF8, 0x78, 0x7E, 0x03, 0xF0, 0x0F, 0x01, 0xB8, 0x19,
|
||||
0x83, 0x18, 0x3F, 0xC3, 0xFC, 0x60, 0xEF, 0x9F, 0xF9, 0xF0, 0xFF, 0x8F,
|
||||
0xF8, 0xC3, 0x18, 0x63, 0xFC, 0x7F, 0x8C, 0x39, 0x83, 0x30, 0x7F, 0xFF,
|
||||
0xFF, 0x00, 0x0C, 0x0F, 0xF7, 0x3F, 0x03, 0xC0, 0xB0, 0x0C, 0x03, 0x00,
|
||||
0xC0, 0x38, 0x37, 0xFC, 0xFE, 0xFF, 0x8F, 0xF9, 0x83, 0x30, 0x36, 0x06,
|
||||
0xC0, 0xD8, 0x1B, 0x07, 0x60, 0xDF, 0xF3, 0xFC, 0x00, 0xFF, 0xCF, 0xF8,
|
||||
0xC3, 0x19, 0x23, 0xE0, 0x7C, 0x0D, 0x81, 0x93, 0x30, 0x7F, 0xFF, 0xFF,
|
||||
0x80, 0xFF, 0xEF, 0xFC, 0xC1, 0x99, 0x33, 0xE0, 0x7C, 0x0D, 0x81, 0x90,
|
||||
0x30, 0x1F, 0xC3, 0xF8, 0x00, 0x0E, 0x87, 0xF9, 0xC7, 0x60, 0x6C, 0x01,
|
||||
0x80, 0x30, 0x06, 0x3F, 0xC0, 0xDC, 0x19, 0xFF, 0x1F, 0xC0, 0x7B, 0xE7,
|
||||
0x38, 0xC3, 0x18, 0x63, 0xFC, 0x7F, 0x8C, 0x31, 0x86, 0x30, 0xCF, 0x3D,
|
||||
0xE7, 0x80, 0xFF, 0xFE, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF,
|
||||
0xFF, 0x1F, 0xE1, 0xF8, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x30, 0x66, 0x0C,
|
||||
0xC3, 0x1F, 0xE1, 0xF8, 0x00, 0xFD, 0xE7, 0x9C, 0x33, 0x83, 0x70, 0x3E,
|
||||
0x03, 0xF0, 0x33, 0x83, 0x18, 0x31, 0xCF, 0xCF, 0xFC, 0xF0, 0xFC, 0x3F,
|
||||
0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x0C, 0xC3, 0x30, 0xFF, 0xFF, 0xFC,
|
||||
0xF0, 0xF7, 0x0E, 0x79, 0xE7, 0x9E, 0x7F, 0xE6, 0xF6, 0x6F, 0x66, 0x66,
|
||||
0x60, 0x6F, 0x9F, 0xF9, 0xF0, 0xF3, 0xF7, 0x9E, 0x78, 0xC6, 0xCC, 0x6E,
|
||||
0xC6, 0x6C, 0x63, 0xC6, 0x3C, 0x61, 0xCF, 0x9C, 0xF8, 0xC0, 0x0E, 0x03,
|
||||
0xF0, 0xE7, 0x30, 0x76, 0x07, 0x80, 0xF0, 0x1B, 0x03, 0x60, 0x6E, 0x1C,
|
||||
0xFF, 0x0F, 0xC0, 0xFF, 0x9F, 0xF3, 0x0C, 0xC3, 0x30, 0xCF, 0xF3, 0xF8,
|
||||
0xC0, 0x30, 0x3F, 0x8F, 0xE0, 0x0E, 0x03, 0xF0, 0xE7, 0x30, 0x76, 0x07,
|
||||
0x80, 0xF0, 0x1B, 0x03, 0x60, 0x6E, 0x18, 0xFF, 0x0F, 0x81, 0xA2, 0x7F,
|
||||
0xC6, 0x70, 0xFF, 0x87, 0xFC, 0x30, 0xC3, 0x0C, 0x31, 0xC3, 0xF8, 0x3F,
|
||||
0x83, 0x18, 0x30, 0xCF, 0xCF, 0xFC, 0x70, 0x1C, 0x8F, 0xE7, 0x39, 0x86,
|
||||
0x60, 0x9F, 0x03, 0xF0, 0x0E, 0xC1, 0xF0, 0x6F, 0xFB, 0xFC, 0xFF, 0xFF,
|
||||
0xFC, 0xCF, 0x33, 0x8C, 0x83, 0x00, 0xC0, 0x30, 0x0C, 0x1F, 0xC7, 0xF0,
|
||||
0xFB, 0xF7, 0x9E, 0x60, 0xC6, 0x0C, 0x60, 0xC6, 0x0C, 0x60, 0xC6, 0x0C,
|
||||
0x30, 0xC3, 0xFC, 0x1F, 0x00, 0xF9, 0xFF, 0x0E, 0x70, 0xC3, 0x0C, 0x31,
|
||||
0xC1, 0x98, 0x19, 0x81, 0xF0, 0x0F, 0x00, 0xE0, 0x06, 0x00, 0xF9, 0xFF,
|
||||
0x0E, 0x66, 0x66, 0x66, 0x6F, 0x66, 0xF6, 0x6F, 0xC7, 0x9C, 0x39, 0xC3,
|
||||
0x9C, 0x30, 0xC0, 0xF9, 0xE7, 0x0E, 0x39, 0x81, 0xF8, 0x0F, 0x00, 0xE0,
|
||||
0x1F, 0x01, 0x98, 0x31, 0xCF, 0x9E, 0xF9, 0xE0, 0xF9, 0xEE, 0x1C, 0xE6,
|
||||
0x0D, 0xC0, 0xF0, 0x1C, 0x01, 0x80, 0x30, 0x06, 0x07, 0xF0, 0xFE, 0x00,
|
||||
0x7F, 0xBF, 0xD8, 0xCC, 0xC0, 0xE0, 0xE0, 0xE2, 0x63, 0x61, 0xFF, 0xFF,
|
||||
0xE0, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCF, 0xF0, 0x80, 0xC0, 0xC0,
|
||||
0x60, 0x60, 0x70, 0x30, 0x38, 0x18, 0x1C, 0x0C, 0x0C, 0x06, 0x06, 0x03,
|
||||
0x03, 0xFB, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0xBD, 0xE0, 0x00,
|
||||
0x18, 0x3C, 0x7E, 0xE6, 0xC3, 0x81, 0xFF, 0xF0, 0x43, 0x0C, 0x30, 0x3E,
|
||||
0x1F, 0xC4, 0x38, 0x76, 0x7F, 0xB8, 0x6C, 0x3B, 0xFF, 0x7F, 0xC0, 0xE0,
|
||||
0x1C, 0x01, 0x80, 0x33, 0x87, 0xFC, 0xF1, 0xDC, 0x1B, 0x03, 0x70, 0x6E,
|
||||
0x0F, 0xFF, 0x77, 0xC0, 0x1E, 0x9F, 0xF6, 0x1F, 0x03, 0xC0, 0x30, 0x0E,
|
||||
0x0D, 0xFF, 0x3F, 0x80, 0x03, 0x80, 0x70, 0x06, 0x0E, 0xC7, 0xF9, 0xC7,
|
||||
0x30, 0x66, 0x0C, 0xC1, 0x98, 0x31, 0xFF, 0x9F, 0xF0, 0x1E, 0x1F, 0xCE,
|
||||
0x3B, 0x07, 0xFF, 0xFF, 0xFC, 0x01, 0xFF, 0x3F, 0x80, 0x0F, 0xC7, 0xF1,
|
||||
0x81, 0xFC, 0x7F, 0x86, 0x01, 0x80, 0x60, 0x18, 0x06, 0x07, 0xF9, 0xFE,
|
||||
0x3D, 0xCF, 0xFF, 0x8E, 0x60, 0xCC, 0x19, 0x83, 0x30, 0xE3, 0xFC, 0x3F,
|
||||
0x80, 0x30, 0x06, 0x1F, 0x83, 0xE0, 0xF0, 0x0E, 0x00, 0xC0, 0x1B, 0x83,
|
||||
0xF8, 0x71, 0x8C, 0x31, 0x86, 0x30, 0xC6, 0x19, 0xE7, 0xBC, 0xF0, 0x1C,
|
||||
0x07, 0x00, 0x00, 0xF0, 0x7C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x0F,
|
||||
0xFB, 0xFE, 0x0C, 0x0C, 0x00, 0x7F, 0xFF, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x06, 0xFE, 0xFC, 0xE0, 0x38, 0x06, 0x01, 0x9E, 0x6F,
|
||||
0x9B, 0x87, 0xC1, 0xE0, 0x7C, 0x19, 0xCE, 0x7F, 0x9F, 0x7C, 0x1F, 0x00,
|
||||
0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x0F, 0xFB, 0xFE,
|
||||
0xFD, 0xCF, 0xFE, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6F, 0x77,
|
||||
0xF7, 0x70, 0x77, 0x0F, 0xF0, 0xE3, 0x18, 0x63, 0x0C, 0x61, 0x8C, 0x33,
|
||||
0xCF, 0x79, 0xE0, 0x1E, 0x1F, 0xCE, 0x3B, 0x03, 0xC0, 0xF0, 0x3E, 0x1D,
|
||||
0xFE, 0x3F, 0x00, 0x67, 0x1F, 0xF9, 0xE3, 0xB8, 0x36, 0x06, 0xE0, 0xDE,
|
||||
0x3B, 0xFE, 0x67, 0x0C, 0x01, 0x80, 0x7E, 0x0F, 0xC0, 0x1D, 0xCF, 0xFF,
|
||||
0x8E, 0x60, 0xCC, 0x19, 0x83, 0x38, 0xE3, 0xFC, 0x1D, 0x80, 0x30, 0x06,
|
||||
0x03, 0xF0, 0x7E, 0x73, 0x9D, 0xF3, 0xEC, 0xE0, 0x30, 0x0C, 0x03, 0x03,
|
||||
0xFC, 0xFF, 0x00, 0x1F, 0xBF, 0xD8, 0x6E, 0x03, 0xF0, 0x3F, 0x07, 0xFF,
|
||||
0x7F, 0x00, 0x10, 0x0C, 0x03, 0x01, 0xFC, 0xFF, 0x8C, 0x03, 0x00, 0xC0,
|
||||
0x30, 0x0C, 0x13, 0xFC, 0x7E, 0x71, 0xDE, 0x78, 0xC3, 0x18, 0x63, 0x0C,
|
||||
0x61, 0x8C, 0x71, 0xFF, 0x1F, 0xE0, 0x71, 0xEF, 0x9F, 0x30, 0xC3, 0x1C,
|
||||
0x19, 0x81, 0xB8, 0x0F, 0x00, 0xF0, 0x06, 0x00, 0x70, 0xEF, 0x1F, 0x66,
|
||||
0x66, 0x6C, 0x3F, 0xC3, 0xFC, 0x3B, 0xC3, 0x98, 0x19, 0x80, 0x31, 0xCF,
|
||||
0x3C, 0xE7, 0x0F, 0xC0, 0xE0, 0x3E, 0x0E, 0x73, 0xCF, 0x79, 0xE0, 0x70,
|
||||
0xFF, 0x3D, 0xC3, 0x18, 0x63, 0x98, 0x33, 0x07, 0xC0, 0x78, 0x06, 0x01,
|
||||
0xC0, 0x30, 0x3F, 0x07, 0xE0, 0xFF, 0xFF, 0xC6, 0xCC, 0x18, 0x30, 0x63,
|
||||
0xFF, 0xFF, 0x19, 0xCC, 0x63, 0x19, 0xDC, 0x31, 0x8C, 0x63, 0x1C, 0x60,
|
||||
0xFF, 0xFF, 0xFF, 0xFC, 0xE3, 0x8C, 0x63, 0x18, 0xE7, 0x31, 0x8C, 0x63,
|
||||
0x7B, 0x80, 0x00, 0x1E, 0x2F, 0xFB, 0x1E, 0x00, 0x00 };
|
||||
|
||||
const GFXglyph FreeMonoBold10pt7bGlyphs[] PROGMEM = {
|
||||
{ 0, 1, 1, 12, 0, 0 }, // 0x20 ' '
|
||||
{ 1, 3, 12, 12, 4, -11 }, // 0x21 '!'
|
||||
{ 6, 6, 6, 12, 3, -11 }, // 0x22 '"'
|
||||
{ 11, 10, 15, 12, 1, -12 }, // 0x23 '#'
|
||||
{ 30, 8, 15, 12, 2, -12 }, // 0x24 '$'
|
||||
{ 45, 8, 12, 12, 2, -11 }, // 0x25 '%'
|
||||
{ 57, 9, 11, 12, 1, -10 }, // 0x26 '&'
|
||||
{ 70, 2, 6, 12, 5, -11 }, // 0x27 '''
|
||||
{ 72, 5, 15, 12, 5, -11 }, // 0x28 '('
|
||||
{ 82, 5, 15, 12, 2, -11 }, // 0x29 ')'
|
||||
{ 92, 8, 8, 12, 2, -11 }, // 0x2A '*'
|
||||
{ 100, 10, 11, 12, 1, -10 }, // 0x2B '+'
|
||||
{ 114, 4, 6, 12, 3, -2 }, // 0x2C ','
|
||||
{ 117, 10, 2, 12, 1, -5 }, // 0x2D '-'
|
||||
{ 120, 3, 2, 12, 4, -1 }, // 0x2E '.'
|
||||
{ 121, 8, 16, 12, 2, -13 }, // 0x2F '/'
|
||||
{ 137, 8, 12, 12, 2, -11 }, // 0x30 '0'
|
||||
{ 149, 8, 12, 12, 2, -11 }, // 0x31 '1'
|
||||
{ 161, 9, 12, 12, 1, -11 }, // 0x32 '2'
|
||||
{ 175, 9, 12, 12, 1, -11 }, // 0x33 '3'
|
||||
{ 189, 9, 12, 12, 1, -11 }, // 0x34 '4'
|
||||
{ 203, 9, 12, 12, 1, -11 }, // 0x35 '5'
|
||||
{ 217, 9, 12, 12, 2, -11 }, // 0x36 '6'
|
||||
{ 231, 9, 12, 12, 1, -11 }, // 0x37 '7'
|
||||
{ 245, 8, 12, 12, 2, -11 }, // 0x38 '8'
|
||||
{ 257, 9, 12, 12, 2, -11 }, // 0x39 '9'
|
||||
{ 271, 3, 9, 12, 4, -8 }, // 0x3A ':'
|
||||
{ 275, 4, 12, 12, 3, -8 }, // 0x3B ';'
|
||||
{ 281, 10, 9, 12, 1, -9 }, // 0x3C '<'
|
||||
{ 293, 10, 5, 12, 1, -7 }, // 0x3D '='
|
||||
{ 300, 10, 9, 12, 1, -9 }, // 0x3E '>'
|
||||
{ 312, 8, 12, 12, 2, -11 }, // 0x3F '?'
|
||||
{ 324, 9, 15, 12, 1, -11 }, // 0x40 '@'
|
||||
{ 341, 12, 11, 12, 0, -10 }, // 0x41 'A'
|
||||
{ 358, 11, 11, 12, 0, -10 }, // 0x42 'B'
|
||||
{ 374, 10, 12, 12, 1, -11 }, // 0x43 'C'
|
||||
{ 389, 11, 11, 12, 0, -10 }, // 0x44 'D'
|
||||
{ 405, 11, 11, 12, 0, -10 }, // 0x45 'E'
|
||||
{ 421, 11, 11, 12, 0, -10 }, // 0x46 'F'
|
||||
{ 437, 11, 12, 12, 1, -11 }, // 0x47 'G'
|
||||
{ 454, 11, 11, 12, 0, -10 }, // 0x48 'H'
|
||||
{ 470, 8, 11, 12, 2, -10 }, // 0x49 'I'
|
||||
{ 481, 11, 11, 12, 1, -10 }, // 0x4A 'J'
|
||||
{ 497, 12, 11, 12, 0, -10 }, // 0x4B 'K'
|
||||
{ 514, 10, 11, 12, 1, -10 }, // 0x4C 'L'
|
||||
{ 528, 12, 11, 12, 0, -10 }, // 0x4D 'M'
|
||||
{ 545, 12, 11, 12, 0, -10 }, // 0x4E 'N'
|
||||
{ 562, 11, 12, 12, 0, -11 }, // 0x4F 'O'
|
||||
{ 579, 10, 11, 12, 0, -10 }, // 0x50 'P'
|
||||
{ 593, 11, 15, 12, 0, -11 }, // 0x51 'Q'
|
||||
{ 614, 12, 11, 12, 0, -10 }, // 0x52 'R'
|
||||
{ 631, 10, 12, 12, 1, -11 }, // 0x53 'S'
|
||||
{ 646, 10, 11, 12, 1, -10 }, // 0x54 'T'
|
||||
{ 660, 12, 11, 12, 0, -10 }, // 0x55 'U'
|
||||
{ 677, 12, 11, 12, 0, -10 }, // 0x56 'V'
|
||||
{ 694, 12, 11, 12, 0, -10 }, // 0x57 'W'
|
||||
{ 711, 12, 11, 12, 0, -10 }, // 0x58 'X'
|
||||
{ 728, 11, 11, 12, 0, -10 }, // 0x59 'Y'
|
||||
{ 744, 9, 11, 12, 1, -10 }, // 0x5A 'Z'
|
||||
{ 757, 4, 15, 12, 5, -11 }, // 0x5B '['
|
||||
{ 765, 8, 16, 12, 2, -13 }, // 0x5C '\'
|
||||
{ 781, 5, 15, 12, 2, -11 }, // 0x5D ']'
|
||||
{ 791, 8, 7, 12, 2, -12 }, // 0x5E '^'
|
||||
{ 798, 12, 1, 12, 0, 2 }, // 0x5F '_'
|
||||
{ 800, 5, 4, 12, 2, -13 }, // 0x60 '`'
|
||||
{ 803, 10, 9, 12, 1, -8 }, // 0x61 'a'
|
||||
{ 815, 11, 12, 12, 0, -11 }, // 0x62 'b'
|
||||
{ 832, 10, 9, 12, 1, -8 }, // 0x63 'c'
|
||||
{ 844, 11, 12, 12, 1, -11 }, // 0x64 'd'
|
||||
{ 861, 10, 9, 12, 1, -8 }, // 0x65 'e'
|
||||
{ 873, 10, 12, 12, 1, -11 }, // 0x66 'f'
|
||||
{ 888, 11, 13, 12, 1, -8 }, // 0x67 'g'
|
||||
{ 906, 11, 12, 12, 0, -11 }, // 0x68 'h'
|
||||
{ 923, 10, 12, 12, 1, -11 }, // 0x69 'i'
|
||||
{ 938, 8, 16, 12, 2, -11 }, // 0x6A 'j'
|
||||
{ 954, 10, 12, 12, 1, -11 }, // 0x6B 'k'
|
||||
{ 969, 10, 12, 12, 1, -11 }, // 0x6C 'l'
|
||||
{ 984, 12, 9, 12, 0, -8 }, // 0x6D 'm'
|
||||
{ 998, 11, 9, 12, 0, -8 }, // 0x6E 'n'
|
||||
{ 1011, 10, 9, 12, 1, -8 }, // 0x6F 'o'
|
||||
{ 1023, 11, 13, 12, 0, -8 }, // 0x70 'p'
|
||||
{ 1041, 11, 13, 12, 1, -8 }, // 0x71 'q'
|
||||
{ 1059, 10, 9, 12, 1, -8 }, // 0x72 'r'
|
||||
{ 1071, 9, 9, 12, 1, -8 }, // 0x73 's'
|
||||
{ 1082, 10, 12, 12, 0, -11 }, // 0x74 't'
|
||||
{ 1097, 11, 9, 12, 0, -8 }, // 0x75 'u'
|
||||
{ 1110, 12, 9, 12, 0, -8 }, // 0x76 'v'
|
||||
{ 1124, 12, 9, 12, 0, -8 }, // 0x77 'w'
|
||||
{ 1138, 11, 9, 12, 0, -8 }, // 0x78 'x'
|
||||
{ 1151, 11, 13, 12, 0, -8 }, // 0x79 'y'
|
||||
{ 1169, 8, 9, 12, 2, -8 }, // 0x7A 'z'
|
||||
{ 1178, 5, 15, 12, 3, -11 }, // 0x7B '{'
|
||||
{ 1188, 2, 15, 12, 5, -11 }, // 0x7C '|'
|
||||
{ 1192, 5, 15, 12, 3, -11 }, // 0x7D '}'
|
||||
{ 1202, 10, 5, 12, 1, -7 } }; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeMonoBold10pt7b PROGMEM = {
|
||||
(uint8_t *)FreeMonoBold10pt7bBitmaps,
|
||||
(GFXglyph *)FreeMonoBold10pt7bGlyphs,
|
||||
0x20, 0x7E, 32 };
|
||||
|
||||
// Approx. 1881 bytes
|
||||
@@ -0,0 +1,156 @@
|
||||
const uint8_t FreeMonoBold7pt7bBitmaps[] PROGMEM = {
|
||||
0x00, 0xFF, 0xF1, 0xC0, 0xD9, 0x99, 0x29, 0xA6, 0xBF, 0x69, 0xAF, 0xD6,
|
||||
0x59, 0x60, 0x31, 0xF4, 0xD0, 0x78, 0x3C, 0x7F, 0x30, 0xC1, 0x00, 0xF2,
|
||||
0x47, 0x07, 0xF8, 0x92, 0x47, 0x01, 0xE4, 0x18, 0x6F, 0xFD, 0x9F, 0xF4,
|
||||
0x0F, 0x69, 0x24, 0xC9, 0x80, 0x93, 0x26, 0xDA, 0x5A, 0x00, 0x00, 0xCF,
|
||||
0xDE, 0x39, 0xA0, 0x10, 0x60, 0xC7, 0xEF, 0xE6, 0x0C, 0x18, 0x6B, 0x40,
|
||||
0xFD, 0xFC, 0x70, 0x04, 0x10, 0xC2, 0x18, 0x43, 0x08, 0x61, 0x0C, 0x00,
|
||||
0x31, 0xEC, 0xF1, 0xC7, 0x1C, 0x53, 0x78, 0x13, 0xC3, 0x0C, 0x30, 0xC3,
|
||||
0x0C, 0xFC, 0x33, 0xE8, 0xC3, 0x18, 0xC6, 0x31, 0xFC, 0x33, 0xF0, 0x43,
|
||||
0x38, 0x30, 0x63, 0xF8, 0x18, 0x63, 0x8A, 0x4B, 0x2F, 0xC2, 0x3C, 0x79,
|
||||
0xF4, 0x1E, 0x7C, 0x10, 0x63, 0xF8, 0x1C, 0xF6, 0x10, 0xFF, 0x14, 0x59,
|
||||
0x3C, 0xFF, 0xF8, 0xC2, 0x08, 0x61, 0x04, 0x30, 0x31, 0xFC, 0x73, 0x79,
|
||||
0x3C, 0x73, 0x78, 0x39, 0xF4, 0x51, 0x7C, 0xD0, 0xC6, 0xF0, 0xF0, 0x70,
|
||||
0x6C, 0x06, 0xB4, 0x04, 0x77, 0x38, 0x38, 0x30, 0xFF, 0xF8, 0x07, 0xF0,
|
||||
0x81, 0xC0, 0xE0, 0xE7, 0x18, 0x00, 0x7B, 0x30, 0x43, 0x38, 0x41, 0x0C,
|
||||
0x01, 0xEC, 0xE1, 0xBE, 0x9A, 0x67, 0x81, 0x07, 0x80, 0x78, 0x0C, 0x0F,
|
||||
0x04, 0x87, 0xE3, 0xF1, 0x0D, 0xCE, 0xFC, 0x66, 0x62, 0x7E, 0x7E, 0x63,
|
||||
0x63, 0xFE, 0x3E, 0x63, 0x42, 0xC0, 0xC0, 0x40, 0x63, 0x3E, 0xFC, 0x46,
|
||||
0x42, 0x43, 0x43, 0x42, 0x46, 0xFC, 0xFE, 0x62, 0x6A, 0x78, 0x78, 0x6A,
|
||||
0x63, 0xFF, 0xFF, 0x63, 0x6A, 0x78, 0x78, 0x68, 0x60, 0xF8, 0x3F, 0x63,
|
||||
0x42, 0xC0, 0xCF, 0x4F, 0x63, 0x3E, 0x77, 0x62, 0x62, 0x7E, 0x7E, 0x62,
|
||||
0x62, 0xF7, 0xFC, 0xC3, 0x0C, 0x30, 0xC3, 0x3F, 0x3E, 0x18, 0x30, 0x68,
|
||||
0xD1, 0xA3, 0x7C, 0xF7, 0x66, 0x6C, 0x78, 0x6C, 0x64, 0x66, 0xF3, 0xF8,
|
||||
0x30, 0x30, 0x30, 0x30, 0x33, 0x33, 0xFF, 0xC3, 0x33, 0x99, 0xCF, 0xE5,
|
||||
0xF2, 0xD9, 0x0D, 0xCF, 0xE7, 0x62, 0x72, 0x5A, 0x4A, 0x4E, 0x46, 0xF2,
|
||||
0x3C, 0x66, 0x43, 0xC1, 0xC1, 0x43, 0x66, 0x3C, 0xFC, 0xCD, 0x8B, 0x37,
|
||||
0xCC, 0x18, 0x7C, 0x3C, 0x66, 0x43, 0xC1, 0xC1, 0x43, 0x66, 0x3C, 0x3B,
|
||||
0x3E, 0xFC, 0x66, 0x62, 0x66, 0x7C, 0x66, 0x62, 0xF3, 0x7F, 0x3C, 0x5C,
|
||||
0x3E, 0x1C, 0xFF, 0xFF, 0x6E, 0xDD, 0x83, 0x06, 0x0C, 0x3E, 0xF7, 0x42,
|
||||
0x42, 0x42, 0x42, 0x42, 0x66, 0x3C, 0xE7, 0x21, 0x98, 0x84, 0xC3, 0x41,
|
||||
0xE0, 0x60, 0x30, 0xE7, 0x43, 0x5B, 0x5A, 0x5E, 0x76, 0x66, 0x66, 0xE7,
|
||||
0x66, 0x3C, 0x18, 0x18, 0x34, 0x66, 0xE7, 0xE7, 0x66, 0x34, 0x1C, 0x18,
|
||||
0x18, 0x18, 0x3E, 0xFF, 0x3D, 0x8C, 0x21, 0x9C, 0x7F, 0xEE, 0xCC, 0xCC,
|
||||
0xCC, 0xCC, 0xE0, 0x03, 0x04, 0x18, 0x20, 0xC1, 0x06, 0x08, 0x30, 0xC1,
|
||||
0xFD, 0xB6, 0xDB, 0x6F, 0x80, 0x00, 0xC7, 0xB3, 0x04, 0xFF, 0x19, 0x80,
|
||||
0xF8, 0x19, 0xF6, 0x68, 0xDF, 0xC0, 0xC0, 0xC0, 0x40, 0x7E, 0x62, 0x43,
|
||||
0x43, 0x62, 0xFE, 0x7D, 0x8A, 0x14, 0x0C, 0x6F, 0x80, 0x06, 0x06, 0x02,
|
||||
0x3E, 0x66, 0xC2, 0xC2, 0x66, 0x3F, 0x3C, 0x66, 0xFE, 0xFF, 0x62, 0x3E,
|
||||
0x08, 0x7C, 0x87, 0xE2, 0x04, 0x08, 0x10, 0xFC, 0x3F, 0x66, 0xC2, 0xC2,
|
||||
0x66, 0x3E, 0x02, 0x3E, 0x3C, 0x60, 0xE0, 0x60, 0x7C, 0x66, 0x62, 0x62,
|
||||
0x62, 0xF7, 0x30, 0xC0, 0x3C, 0x30, 0xC3, 0x0C, 0xFC, 0x31, 0x81, 0xF1,
|
||||
0x8C, 0x63, 0x18, 0xFD, 0xC0, 0x60, 0x60, 0x20, 0x2E, 0x2C, 0x38, 0x38,
|
||||
0x2C, 0xEF, 0x71, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0xFC, 0xFE, 0x2D, 0x96,
|
||||
0xCB, 0x65, 0xB7, 0xFC, 0xFC, 0x66, 0x62, 0x62, 0x62, 0xF7, 0x79, 0x9A,
|
||||
0x1C, 0x3C, 0xCF, 0x00, 0xDE, 0x62, 0x43, 0x63, 0x7E, 0x5C, 0x40, 0xF0,
|
||||
0xF0, 0x3F, 0x66, 0xC2, 0x42, 0x7E, 0x3A, 0x02, 0x07, 0x0F, 0xFE, 0xE5,
|
||||
0x83, 0x06, 0x1F, 0x80, 0x7F, 0x3F, 0x87, 0xC7, 0xF0, 0x20, 0x43, 0xF1,
|
||||
0x02, 0x04, 0x08, 0x9F, 0xEE, 0x62, 0x62, 0x62, 0x66, 0x3B, 0xF7, 0x62,
|
||||
0x26, 0x34, 0x1C, 0x18, 0xE7, 0x5A, 0x5A, 0x7E, 0x36, 0x24, 0x77, 0x66,
|
||||
0x1C, 0x3C, 0x66, 0xF7, 0xE7, 0x62, 0x26, 0x34, 0x1C, 0x18, 0x18, 0x78,
|
||||
0xF8, 0xFF, 0x31, 0x88, 0x47, 0xF0, 0x03, 0x66, 0x6E, 0x66, 0x66, 0x30,
|
||||
0x3F, 0xFF, 0xFC, 0x0E, 0x66, 0x63, 0x26, 0x66, 0xC0, 0xE6, 0xF0, 0x80 };
|
||||
|
||||
const GFXglyph FreeMonoBold7pt7bGlyphs[] PROGMEM = {
|
||||
{ 0, 1, 1, 8, 0, 0 }, // 0x20 ' '
|
||||
{ 1, 2, 9, 8, 3, -8 }, // 0x21 '!'
|
||||
{ 4, 4, 4, 8, 2, -7 }, // 0x22 '"'
|
||||
{ 6, 6, 10, 8, 1, -8 }, // 0x23 '#'
|
||||
{ 14, 6, 11, 8, 1, -8 }, // 0x24 '$'
|
||||
{ 23, 6, 8, 8, 1, -7 }, // 0x25 '%'
|
||||
{ 29, 6, 8, 8, 1, -7 }, // 0x26 '&'
|
||||
{ 35, 2, 4, 8, 3, -7 }, // 0x27 '''
|
||||
{ 36, 3, 11, 8, 4, -8 }, // 0x28 '('
|
||||
{ 41, 3, 11, 8, 2, -8 }, // 0x29 ')'
|
||||
{ 46, 6, 6, 8, 1, -8 }, // 0x2A '*'
|
||||
{ 51, 7, 8, 8, 1, -7 }, // 0x2B '+'
|
||||
{ 58, 3, 4, 8, 2, -1 }, // 0x2C ','
|
||||
{ 60, 7, 2, 8, 1, -4 }, // 0x2D '-'
|
||||
{ 62, 2, 2, 8, 3, -1 }, // 0x2E '.'
|
||||
{ 63, 6, 12, 8, 1, -9 }, // 0x2F '/'
|
||||
{ 72, 6, 9, 8, 1, -8 }, // 0x30 '0'
|
||||
{ 79, 6, 9, 8, 1, -8 }, // 0x31 '1'
|
||||
{ 86, 6, 9, 8, 1, -8 }, // 0x32 '2'
|
||||
{ 93, 6, 9, 8, 1, -8 }, // 0x33 '3'
|
||||
{ 100, 6, 9, 8, 1, -8 }, // 0x34 '4'
|
||||
{ 107, 6, 9, 8, 1, -8 }, // 0x35 '5'
|
||||
{ 114, 6, 9, 8, 1, -8 }, // 0x36 '6'
|
||||
{ 121, 6, 9, 8, 1, -8 }, // 0x37 '7'
|
||||
{ 128, 6, 9, 8, 1, -8 }, // 0x38 '8'
|
||||
{ 135, 6, 9, 8, 1, -8 }, // 0x39 '9'
|
||||
{ 142, 2, 6, 8, 3, -5 }, // 0x3A ':'
|
||||
{ 144, 3, 8, 8, 2, -5 }, // 0x3B ';'
|
||||
{ 147, 6, 6, 8, 1, -6 }, // 0x3C '<'
|
||||
{ 152, 7, 4, 8, 1, -5 }, // 0x3D '='
|
||||
{ 156, 7, 6, 8, 1, -6 }, // 0x3E '>'
|
||||
{ 162, 6, 8, 8, 1, -7 }, // 0x3F '?'
|
||||
{ 168, 6, 11, 8, 1, -8 }, // 0x40 '@'
|
||||
{ 177, 9, 8, 8, 0, -7 }, // 0x41 'A'
|
||||
{ 186, 8, 8, 8, 0, -7 }, // 0x42 'B'
|
||||
{ 194, 8, 8, 8, 0, -7 }, // 0x43 'C'
|
||||
{ 202, 8, 8, 8, 0, -7 }, // 0x44 'D'
|
||||
{ 210, 8, 8, 8, 0, -7 }, // 0x45 'E'
|
||||
{ 218, 8, 8, 8, 0, -7 }, // 0x46 'F'
|
||||
{ 226, 8, 8, 8, 0, -7 }, // 0x47 'G'
|
||||
{ 234, 8, 8, 8, 0, -7 }, // 0x48 'H'
|
||||
{ 242, 6, 8, 8, 1, -7 }, // 0x49 'I'
|
||||
{ 248, 7, 8, 8, 1, -7 }, // 0x4A 'J'
|
||||
{ 255, 8, 8, 8, 0, -7 }, // 0x4B 'K'
|
||||
{ 263, 8, 8, 8, 0, -7 }, // 0x4C 'L'
|
||||
{ 271, 9, 8, 8, 0, -7 }, // 0x4D 'M'
|
||||
{ 280, 8, 8, 8, 0, -7 }, // 0x4E 'N'
|
||||
{ 288, 8, 8, 8, 0, -7 }, // 0x4F 'O'
|
||||
{ 296, 7, 8, 8, 0, -7 }, // 0x50 'P'
|
||||
{ 303, 8, 10, 8, 0, -7 }, // 0x51 'Q'
|
||||
{ 313, 8, 8, 8, 0, -7 }, // 0x52 'R'
|
||||
{ 321, 6, 8, 8, 1, -7 }, // 0x53 'S'
|
||||
{ 327, 7, 8, 8, 1, -7 }, // 0x54 'T'
|
||||
{ 334, 8, 8, 8, 0, -7 }, // 0x55 'U'
|
||||
{ 342, 9, 8, 8, 0, -7 }, // 0x56 'V'
|
||||
{ 351, 8, 8, 8, 0, -7 }, // 0x57 'W'
|
||||
{ 359, 8, 8, 8, 0, -7 }, // 0x58 'X'
|
||||
{ 367, 8, 8, 8, 0, -7 }, // 0x59 'Y'
|
||||
{ 375, 6, 8, 8, 1, -7 }, // 0x5A 'Z'
|
||||
{ 381, 4, 11, 8, 3, -8 }, // 0x5B '['
|
||||
{ 387, 6, 12, 8, 1, -9 }, // 0x5C '\'
|
||||
{ 396, 3, 11, 8, 2, -8 }, // 0x5D ']'
|
||||
{ 401, 6, 5, 8, 1, -8 }, // 0x5E '^'
|
||||
{ 405, 8, 1, 8, 0, 2 }, // 0x5F '_'
|
||||
{ 406, 3, 3, 8, 2, -9 }, // 0x60 '`'
|
||||
{ 408, 7, 6, 8, 1, -5 }, // 0x61 'a'
|
||||
{ 414, 8, 9, 8, 0, -8 }, // 0x62 'b'
|
||||
{ 423, 7, 6, 8, 1, -5 }, // 0x63 'c'
|
||||
{ 429, 8, 9, 8, 0, -8 }, // 0x64 'd'
|
||||
{ 438, 8, 6, 8, 0, -5 }, // 0x65 'e'
|
||||
{ 444, 7, 9, 8, 1, -8 }, // 0x66 'f'
|
||||
{ 452, 8, 9, 8, 0, -5 }, // 0x67 'g'
|
||||
{ 461, 8, 9, 8, 0, -8 }, // 0x68 'h'
|
||||
{ 470, 6, 9, 8, 1, -8 }, // 0x69 'i'
|
||||
{ 477, 5, 12, 8, 2, -8 }, // 0x6A 'j'
|
||||
{ 485, 8, 9, 8, 0, -8 }, // 0x6B 'k'
|
||||
{ 494, 6, 9, 8, 1, -8 }, // 0x6C 'l'
|
||||
{ 501, 9, 6, 8, 0, -5 }, // 0x6D 'm'
|
||||
{ 508, 8, 6, 8, 0, -5 }, // 0x6E 'n'
|
||||
{ 514, 7, 6, 8, 1, -5 }, // 0x6F 'o'
|
||||
{ 520, 8, 9, 8, 0, -5 }, // 0x70 'p'
|
||||
{ 529, 8, 9, 8, 0, -5 }, // 0x71 'q'
|
||||
{ 538, 7, 6, 8, 1, -5 }, // 0x72 'r'
|
||||
{ 544, 6, 6, 8, 1, -5 }, // 0x73 's'
|
||||
{ 549, 7, 8, 8, 0, -7 }, // 0x74 't'
|
||||
{ 556, 8, 6, 8, 0, -5 }, // 0x75 'u'
|
||||
{ 562, 8, 6, 8, 0, -5 }, // 0x76 'v'
|
||||
{ 568, 8, 6, 8, 0, -5 }, // 0x77 'w'
|
||||
{ 574, 8, 6, 8, 0, -5 }, // 0x78 'x'
|
||||
{ 580, 8, 9, 8, 0, -5 }, // 0x79 'y'
|
||||
{ 589, 6, 6, 8, 1, -5 }, // 0x7A 'z'
|
||||
{ 594, 4, 11, 8, 2, -8 }, // 0x7B '{'
|
||||
{ 600, 2, 11, 8, 3, -8 }, // 0x7C '|'
|
||||
{ 603, 4, 11, 8, 2, -8 }, // 0x7D '}'
|
||||
{ 609, 6, 3, 8, 1, -4 } }; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeMonoBold7pt7b PROGMEM = {
|
||||
(uint8_t *)FreeMonoBold7pt7bBitmaps,
|
||||
(GFXglyph *)FreeMonoBold7pt7bGlyphs,
|
||||
0x20, 0x7E, 22 };
|
||||
|
||||
// Approx. 1284 bytes
|
||||
Executable
+138
@@ -0,0 +1,138 @@
|
||||
#include "Watchy_Pokemon.h"
|
||||
|
||||
const unsigned char *pokemon_back[151] = {back_1, back_2, back_3, back_4, back_5, back_6, back_7, back_8, back_9, back_10, back_11, back_12, back_13, back_14, back_15, back_16, back_17, back_18, back_19, back_20, back_21, back_22, back_23, back_24, back_25, back_26, back_27, back_28, back_29, back_30, back_31, back_32, back_33, back_34, back_35, back_36, back_37, back_38, back_39, back_40, back_41, back_42, back_43, back_44, back_45, back_46, back_47, back_48, back_49, back_50, back_51, back_52, back_53, back_54, back_55, back_56, back_57, back_58, back_59, back_60, back_61, back_62, back_63, back_64, back_65, back_66, back_67, back_68, back_69, back_70, back_71, back_72, back_73, back_74, back_75, back_76, back_77, back_78, back_79, back_80, back_81, back_82, back_83, back_84, back_85, back_86, back_87, back_88, back_89, back_90, back_91, back_92, back_93, back_94, back_95, back_96, back_97, back_98, back_99, back_100, back_101, back_102, back_103, back_104, back_105, back_106, back_107, back_108, back_109, back_110, back_111, back_112, back_113, back_114, back_115, back_116, back_117, back_118, back_119, back_120, back_121, back_122, back_123, back_124, back_125, back_126, back_127, back_128, back_129, back_130, back_131, back_132, back_133, back_134, back_135, back_136, back_137, back_138, back_139, back_140, back_141, back_142, back_143, back_144, back_145, back_146, back_147, back_148, back_149, back_150, back_151};
|
||||
const unsigned char *pokemon_front[151] = {front_1, front_2, front_3, front_4, front_5, front_6, front_7, front_8, front_9, front_10, front_11, front_12, front_13, front_14, front_15, front_16, front_17, front_18, front_19, front_20, front_21, front_22, front_23, front_24, front_25, front_26, front_27, front_28, front_29, front_30, front_31, front_32, front_33, front_34, front_35, front_36, front_37, front_38, front_39, front_40, front_41, front_42, front_43, front_44, front_45, front_46, front_47, front_48, front_49, front_50, front_51, front_52, front_53, front_54, front_55, front_56, front_57, front_58, front_59, front_60, front_61, front_62, front_63, front_64, front_65, front_66, front_67, front_68, front_69, front_70, front_71, front_72, front_73, front_74, front_75, front_76, front_77, front_78, front_79, front_80, front_81, front_82, front_83, front_84, front_85, front_86, front_87, front_88, front_89, front_90, front_91, front_92, front_93, front_94, front_95, front_96, front_97, front_98, front_99, front_100, front_101, front_102, front_103, front_104, front_105, front_106, front_107, front_108, front_109, front_110, front_111, front_112, front_113, front_114, front_115, front_116, front_117, front_118, front_119, front_120, front_121, front_122, front_123, front_124, front_125, front_126, front_127, front_128, front_129, front_130, front_131, front_132, front_133, front_134, front_135, front_136, front_137, front_138, front_139, front_140, front_141, front_142, front_143, front_144, front_145, front_146, front_147, front_148, front_149, front_150, front_151};
|
||||
const unsigned char *bar[2] = {bar_0, bar_1};
|
||||
|
||||
#ifdef FR
|
||||
const char *pokemon_names[151] = {"BULBIZARRE","HERBIZARRE","FLORIZARRE","SALAMECHE","REPTINCEL","DRACAUFEU","CARAPUCE","CARABAFFE","TORTANK","CHENIPAN","CHRYSACIER","PAPILUSION","ASPICOT","COCONFORT","DARDARGNAN","ROUCOOL","ROUCOUPS","ROUCARNAGE","RATTATA","RATTATAC","PIAFABEC","RAPASDEPIC","ABO","ARBOK","PIKACHU","RAICHU","SABELETTE","SABLAIREAU","NIDORAN","NIDORINA","NIDOQUEEN","NIDORAN","NIDORINO","NIDOKING","MELOFEE","MELODELFE","GOUPIX","FEUNARD","RONDOUDOU","GRODOUDOU","NOSFERAPTI","NOSFERALTO","MYSTHERBE","ORTIDE","RAFFLESIA","PARAS","PARASECT","MIMITOSS","AEROMITE","TAUPIQUEUR","TRIOPIKEUR","MIAOUSS","PERSIAN","PSYKOKWAK","AKWAKWAK","FEROSINGE","COLOSSINGE","CANINOS","ARCANIN","PTITARD","TETARTE","TARTARD","ABRA","KADABRA","ALAKAZAM","MACHOC","MACHOPEUR","MACKOGNEUR","CHETIFLOR","BOUSTIFLOR","EMPIFLOR","TENTACOOL","TENTACRUEL","RACAILLOU","GRAVALANCH","GROLEM","PONYTA","GALOPA","RAMOLOSS","FLAGADOSS","MAGNETI","MAGNETON","CANARTICHO","DODUO","DODRIO","OTARIA","LAMANTINE","TADMORV","GROTADMORV","KOKIYAS","CRUSTABRI","FANTOMINUS","SPECTRUM","ECTOPLASMA","ONIX","SOPORIFIK","HYPNOMADE","KRABBY","KRABBOSS","VOLTORBE","ELECTRODE","NOEUNOEUF","NOADKOKO","OSSELAIT","OSSATUEUR","KICKLEE","TYGNON","EXCELANGUE","SMOGO","SMOGOGO","RHINOCORNE","RHINOFEROS","LEVEINARD","SAQUEDENEU","KANGOUREX","HYPOTREMPE","HYPOCEAN","POISSIRENE","POISSOROY","STARI","STAROSS","M. MIME","INSECATEUR","LIPPOUTOU","ELEKTEK","MAGMAR","SCARABRUTE","TAUROS","MAGICARPE","LEVIATOR","LOKHLASS","METAMORPH","EVOLI","AQUALI","VOLTALI","PYROLI","PORYGON","AMONITA","AMONISTAR","KABUTO","KABUTOPS","PTERA","RONFLEX","ARTIKODIN","ELECTHOR","SULFURA","MINIDRACO","DRACO","DRACOLOSSE","MEWTWO","MEW"};
|
||||
#else
|
||||
const char *pokemon_names[151] = {"BULBASAUR","IVYSAUR","VENUSAUR","CHARMANDER","CHARMELEON","CHARIZARD","SQUIRTLE","WARTORTLE","BLASTOISE","CATERPIE","METAPOD","BUTTERFREE","WEEDLE","KAKUNA","BEEDRILL","PIDGEY","PIDGEOTTO","PIDGEOT","RATTATA","RATICATE","SPEAROW","FEAROW","EKANS","ARBOK","PIKACHU","RAICHU","SANDSHREW","SANDSLASH","NIDORAN","NIDORINA","NIDOQUEEN","NIDORAN","NIDORINO","NIDOKING","CLEFAIRY","CLEFABLE","VULPIX","NINETALES","JIGGLYPUFF","WIGGLYTUFF","ZUBAT","GOLBAT","ODDISH","GLOOM","VILEPLUME","PARAS","PARASECT","VENONAT","VENOMOTH","DIGLETT","DUGTRIO","MEOWTH","PERSIAN","PSYDUCK","GOLDUCK","MANKEY","PRIMEAPE","GROWLITHE","ARCANINE","POLIWAG","POLIWHIRL","POLIWRATH","ABRA","KADABRA","ALAKAZAM","MACHOP","MACHOKE","MACHAMP","BELLSPROUT","WEEPINBELL","VICTREEBEL","TENTACOOL","TENTACRUEL","GEODUDE","GRAVELER","GOLEM","PONYTA","RAPIDASH","SLOWPOKE","SLOWBRO","MAGNEMITE","MAGNETON","FARFETCH'D","DODUO","DODRIO","SEEL","DEWGONG","GRIMER","MUK","SHELLDER","CLOYSTER","GASTLY","HAUNTER","GENGAR","ONIX","DROWZEE","HYPNO","KRABBY","KINGLER","VOLTORB","ELECTRODE","EXEGGCUTE","EXEGGUTOR","CUBONE","MAROWAK","HITMONLEE","HITMONCHAN","LICKITUNG","KOFFING","WEEZING","RHYHORN","RHYDON","CHANSEY","TANGELA","KANGASKHAN","HORSEA","SEADRA","GOLDEEN","SEAKING","STARYU","STARMIE","MR. MIME","SCYTHER","JYNX","ELECTABUZZ","MAGMAR","PINSIR","TAUROS","MAGIKARP","GYARADOS","LAPRAS","DITTO","EEVEE","VAPOREON","JOLTEON","FLAREON","PORYGON","OMANYTE","OMASTAR","KABUTO","KABUTOPS","AERODACTYL","SNORLAX","ARTICUNO","ZAPDOS","MOLTRES","DRATINI","DRAGONAIR","DRAGONITE","MEWTWO","MEW"};
|
||||
#endif
|
||||
|
||||
const float MAX_VBAT = 4.30;
|
||||
const float MIN_VBAT = 3.80;
|
||||
|
||||
WatchyPokemon::WatchyPokemon(){} //constructor
|
||||
|
||||
void WatchyPokemon::drawWatchFace(){
|
||||
|
||||
readWorldTime();
|
||||
|
||||
//Steps
|
||||
if (currentTime.Hour == 0 && currentTime.Minute == 1)
|
||||
{
|
||||
sensor.resetStepCounter();
|
||||
}
|
||||
uint32_t stepCount = sensor.getCounter();
|
||||
|
||||
//Voltage
|
||||
float VBAT = getBatteryVoltage();
|
||||
uint32_t percent = (int)(100.0 * ((VBAT - MIN_VBAT) / (MAX_VBAT - MIN_VBAT)));
|
||||
if (percent < 0)
|
||||
percent = 0;
|
||||
if (percent > 100)
|
||||
percent = 100;
|
||||
|
||||
// BG
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
display.drawBitmap(0, 0, pokemon, DISPLAY_WIDTH, DISPLAY_HEIGHT, GxEPD_BLACK);
|
||||
|
||||
display.setFont(&FreeMonoBold7pt7b);
|
||||
display.setTextColor(GxEPD_BLACK);
|
||||
|
||||
int pkm1_id = int(randomDay() * 151);
|
||||
int pkm2_id = int(randomHour() * 151);
|
||||
|
||||
// PKM
|
||||
display.drawBitmap(10, 60, pokemon_back[pkm1_id], 80, 68, GxEPD_BLACK);
|
||||
|
||||
display.setCursor(100, 90);
|
||||
display.print(pokemon_names[pkm1_id]);
|
||||
|
||||
display.setCursor(130, 100);
|
||||
#ifdef FR
|
||||
display.print(":N");
|
||||
#else
|
||||
display.print(":L");
|
||||
#endif
|
||||
display.print(percent);
|
||||
|
||||
for (int8_t i = 0; i < int(60 - (currentTime.Hour * 60 + currentTime.Minute) / 24); i++)
|
||||
{
|
||||
display.drawBitmap(120 + i, 104, bar[i % 2], 8, 4, GxEPD_BLACK);
|
||||
}
|
||||
|
||||
// ENEMY
|
||||
display.drawBitmap(120, 10, pokemon_front[pkm2_id] , 80, 68, GxEPD_BLACK);
|
||||
|
||||
display.setCursor(20, 20);
|
||||
display.print(pokemon_names[pkm2_id]);
|
||||
|
||||
display.setCursor(50, 30);
|
||||
#ifdef FR
|
||||
display.print(":N");
|
||||
#else
|
||||
display.print(":L");
|
||||
#endif
|
||||
display.print(int(stepCount * .01));
|
||||
|
||||
for (int8_t i = 0; i < (60 - currentTime.Minute); i++)
|
||||
{
|
||||
display.drawBitmap(40 + i, 34, bar[i % 2], 8, 4, GxEPD_BLACK);
|
||||
}
|
||||
|
||||
// DATE
|
||||
display.setCursor(130, 120);
|
||||
if(currentTime.Day < 10){
|
||||
display.print(' ');
|
||||
}
|
||||
display.print(currentTime.Day);
|
||||
display.print("/ ");
|
||||
if(currentTime.Month < 10){
|
||||
display.print(' ');
|
||||
}
|
||||
display.print(currentTime.Month);
|
||||
|
||||
// HOUR
|
||||
display.setFont(&FreeMonoBold10pt7b);
|
||||
#ifdef FR
|
||||
display.setCursor(11, 165);
|
||||
#else
|
||||
display.setCursor(14, 165);
|
||||
#endif
|
||||
if(currentTime.Hour < 10){
|
||||
display.print('0');
|
||||
}
|
||||
display.print(currentTime.Hour);
|
||||
display.print(':');
|
||||
if(currentTime.Minute < 10){
|
||||
display.print('0');
|
||||
}
|
||||
display.print(currentTime.Minute);
|
||||
}
|
||||
|
||||
double WatchyPokemon::randomHour()
|
||||
{
|
||||
uint32_t seed = currentTime.Year;
|
||||
seed = seed * 12 + currentTime.Month;
|
||||
seed = seed * 31 + currentTime.Day;
|
||||
seed = seed * 24 + currentTime.Hour;
|
||||
|
||||
double v = pow(seed, 6.0 / 7.0);
|
||||
v *= sin(v) + 1;
|
||||
|
||||
return v - floor(v);
|
||||
}
|
||||
|
||||
double WatchyPokemon::randomDay()
|
||||
{
|
||||
uint32_t seed = currentTime.Year;
|
||||
seed = seed * 12 + currentTime.Month;
|
||||
seed = seed * 31 + currentTime.Day;
|
||||
|
||||
double v = pow(seed, 6.0 / 7.0);
|
||||
v *= sin(v) + 1;
|
||||
|
||||
return v - floor(v);
|
||||
}
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#ifndef WATCHY_POKEMON_H
|
||||
#define WATCHY_POKEMON_H
|
||||
|
||||
#include <Watchy.h>
|
||||
#include "FreeMonoBold10pt7b.h"
|
||||
#include "FreeMonoBold7pt7b.h"
|
||||
#include "wta.h"
|
||||
|
||||
#define FR
|
||||
|
||||
#ifdef FR
|
||||
#include "pokemon_fr.h"
|
||||
#else
|
||||
#include "pokemon.h"
|
||||
#endif
|
||||
|
||||
class WatchyPokemon : public WatchySynced
|
||||
{
|
||||
public:
|
||||
WatchyPokemon();
|
||||
void drawWatchFace();
|
||||
double randomDay();
|
||||
double randomHour();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,35 @@
|
||||
from PIL import Image
|
||||
import os.path
|
||||
|
||||
ROOT_DIR = f"{os.path.dirname(__file__)}/pokemon-src/main-sprites/yellow"
|
||||
FRONT_DIR = f"{ROOT_DIR}/gray"
|
||||
BACK_DIR = f"{ROOT_DIR}/back/gray"
|
||||
|
||||
COUNT = 151
|
||||
|
||||
OUT_DIR = f"{os.path.dirname(__file__)}/pokemon-out"
|
||||
|
||||
THRESHOLD = 127
|
||||
|
||||
for i in range(1, COUNT + 1):
|
||||
with Image.open(f"{FRONT_DIR}/{i}.png") as im_src:
|
||||
w0, h0 = im_src.size
|
||||
im = Image.new(im_src.mode, (56, 56), 'white')
|
||||
im.paste(im_src, ((56 - w0) // 2, (56 - h0) // 2))
|
||||
im = im.resize((68, 68))
|
||||
im = im.point(lambda p: 1 if p > THRESHOLD else 0, mode="1")
|
||||
im0, im = im, Image.new(im.mode, (80, 68), color=1)
|
||||
im.paste(im0, (0, 0))
|
||||
im = im.convert(mode="P")
|
||||
im.save(f"{OUT_DIR}/front_{i}.bmp")
|
||||
|
||||
with Image.open(f"{BACK_DIR}/{i}.png") as im:
|
||||
w0, h0 = im.size
|
||||
im0, im = im, Image.new(im.mode, (28, 28), 'white')
|
||||
im.paste(im0, (0, 0))
|
||||
im = im.resize((68, 68))
|
||||
im = im.point(lambda p: 1 if p > THRESHOLD else 0, mode="1")
|
||||
im0, im = im, Image.new(im.mode, (80, 68), color=1)
|
||||
im.paste(im0, (0, 0))
|
||||
im = im.convert(mode="P")
|
||||
im.save(f"{OUT_DIR}/back_{i}.bmp")
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#include "Watchy_Pokemon.h"
|
||||
|
||||
WatchyPokemon watchy;
|
||||
|
||||
void setup(){
|
||||
watchy.init();
|
||||
}
|
||||
|
||||
void loop(){}
|
||||
Executable
+14216
File diff suppressed because it is too large
Load Diff
Executable
+14216
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,43 @@
|
||||
#include "wta.h"
|
||||
|
||||
RTC_DATA_ATTR int worldTimeIntervalCounter = 0;
|
||||
|
||||
void WatchySynced::readWorldTime()
|
||||
{
|
||||
if (worldTimeIntervalCounter == 0)
|
||||
{
|
||||
worldTimeIntervalCounter = WTA_UPDATE_SHORT_INTERVAL;
|
||||
if (connectWiFi())
|
||||
{
|
||||
HTTPClient http;
|
||||
http.setConnectTimeout(WTA_UPDATE_TIMEOUT);
|
||||
String queryURL = String(WTA_URL) + String(WTA_TIMEZONE);
|
||||
http.begin(queryURL.c_str());
|
||||
int httpResponseCode = http.GET();
|
||||
if (httpResponseCode == 200)
|
||||
{
|
||||
String payload = http.getString();
|
||||
JSONVar responseObject = JSON.parse(payload);
|
||||
tmElements_t tm;
|
||||
String datetime = String((const char *)responseObject["datetime"]);
|
||||
tm.Year = datetime.substring(0, 4).toInt() - YEAR_OFFSET;
|
||||
tm.Month = datetime.substring(5, 7).toInt();
|
||||
tm.Day = datetime.substring(8, 10).toInt();
|
||||
tm.Hour = datetime.substring(11, 13).toInt();
|
||||
tm.Minute = datetime.substring(14, 16).toInt();
|
||||
tm.Second = 0;
|
||||
time_t t = makeTime(tm);
|
||||
RTC.set(t);
|
||||
RTC.read(currentTime);
|
||||
worldTimeIntervalCounter = WTA_UPDATE_LONG_INTERVAL;
|
||||
}
|
||||
http.end();
|
||||
WiFi.mode(WIFI_OFF);
|
||||
btStop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
worldTimeIntervalCounter = worldTimeIntervalCounter < 0 ? 0 : worldTimeIntervalCounter - 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef WTA_H
|
||||
#define WTA_H
|
||||
|
||||
#include <Watchy.h>
|
||||
|
||||
#define WTA_URL "http://worldtimeapi.org/api/timezone/"
|
||||
#define WTA_TIMEZONE "Europe/Paris"
|
||||
#define WTA_UPDATE_SHORT_INTERVAL 30 //minutes
|
||||
#define WTA_UPDATE_LONG_INTERVAL 300 //minutes
|
||||
#define WTA_UPDATE_TIMEOUT 10000 //ms
|
||||
|
||||
class WatchySynced : public Watchy
|
||||
{
|
||||
public:
|
||||
void readWorldTime();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user