#include <Adafruit_ILI9341.h>
#include <Adafruit_GFX.h>
#include "pitches.h"
// JOSTICK CONFIGURATION
#define VERT_PIN A2 // Vertical
#define HORZ_PIN A1 // Horizontal
#define SEL_PIN 2 // Pushbutton
// SCREEN SIZE
const unsigned int WIDTH = 320;
const unsigned int HEIGHT = 240;
// ADAFRUIT DISPLAY CONFIGURATION
const byte TFT_SCK = 52;
const byte TFT_MISO = 50;
const byte TFT_MOSI = 51;
const byte TFT_DC = 8;
const byte TFT_CS = 10;
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCK, TFT_MISO);
// Logos Bitmap
// 'mtu_logo', 80x33px
const uint16_t bitmap_mtu_logo [] PROGMEM = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8c32, 0x7bf2, 0x41cd, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad,
0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad,
0x39ad, 0x39ad, 0x41ae, 0x39ad, 0x39ac, 0x39cd, 0x398b, 0x5aae, 0x8411, 0x0000, 0x0000, 0x0000, 0xb5b5, 0x7bad, 0xac0f, 0xb2cb,
0xc22a, 0xc9a7, 0xc9c7, 0xc1a6, 0xc1c6, 0xc9a6, 0xc9c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc9c7, 0xc9c7, 0xc1c7, 0xc1c7, 0xc9c7,
0xc9c7, 0xc1c7, 0xc9c7, 0xc1c7, 0xc9c7, 0xc9c6, 0xc9a6, 0xc9c7, 0xc1c7, 0xc9a7, 0xc9a7, 0xb9e8, 0x9a49, 0xa3ef, 0x8bcf, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9492, 0x7371, 0x39cc, 0x41ef, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41cf, 0x41cf, 0x41f0, 0x39ad, 0x83d4, 0x7bd1, 0x0000, 0x0000, 0x0000, 0x83ad, 0xabee, 0xaa89, 0xc1c8,
0xd967, 0xe946, 0xe986, 0xe165, 0xe985, 0xe965, 0xe966, 0xe986, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966,
0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe965, 0xe965, 0xe985, 0xe985, 0xe966, 0xe966, 0xd9a7, 0xb2aa, 0xa3cf, 0xa4b3, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7bd0, 0x398c, 0x41cd, 0x41cf, 0x41cf, 0x41d0, 0x41f0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41cf, 0x41f0, 0x41f0, 0x41cd, 0x8c55, 0x83f1, 0x0000, 0x0000, 0x0000, 0xa3ce, 0xc269, 0xc986, 0xd986,
0xe1a7, 0xe166, 0xe986, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966,
0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe186, 0xe186, 0xe186, 0xe185, 0xe966, 0xe966, 0xc9a6, 0xab4c, 0x8bce, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8c33, 0x49f1, 0x41f0, 0x41f0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41ef, 0x41cf, 0x41f0, 0x39ae, 0x7371, 0x83d1, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaec, 0xc9a6, 0xe9a6, 0xe186,
0xe165, 0xe186, 0xe986, 0xe166, 0xe186, 0xe966, 0xe966, 0xe966, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe966, 0xe966, 0xe986, 0xb9e7, 0xa430, 0x742f, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7371, 0x41d0, 0x41d0, 0x41f0, 0x41d0, 0x41d0, 0x41cf, 0x41d0, 0x41d0,
0x41cf, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41cf, 0x41f0, 0x41f0, 0x318c, 0x9453, 0x7bcf, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa6a, 0xd1c7, 0xe186, 0xe186,
0xe186, 0xe986, 0xe165, 0xe9a6, 0xe186, 0xe966, 0xe966, 0xe966, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe966, 0xe186, 0xe186, 0xc2aa, 0x93ef, 0xa595, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa4f4, 0x5a8e, 0x41f0, 0x41d0, 0x41d0, 0x41ef, 0x41d0, 0x41ef, 0x41ef, 0x41d0,
0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41ef, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x49f0, 0x41f0, 0x41d0, 0x420d, 0x9453, 0x9471, 0x0000, 0x0000, 0x0000, 0x0000, 0xb1e8, 0xd1a8, 0xe187, 0xe187,
0xe187, 0xe186, 0xe186, 0xe186, 0xe185, 0xe966, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe187, 0xd986, 0xd1c7, 0xbb2d, 0x8baf, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8c32, 0x4a0d, 0x41f0, 0x41cf, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef,
0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x49f1, 0x41cf, 0x62f0, 0x8411, 0xb5b6, 0x0000, 0x0000, 0x0000, 0x0000, 0xc1a8, 0xd9a7, 0xe187, 0xe187,
0xe186, 0xe186, 0xe186, 0xe186, 0xe986, 0xe966, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe187, 0xe187, 0xe186, 0xd1c7, 0xb38e, 0x836e, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8412, 0x39ae, 0x41cf, 0x49ef, 0x41ef, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41f0, 0x41af, 0x49ce, 0x8c74, 0x7c10, 0x0000, 0x0000, 0x0000, 0x0000, 0x736d, 0xe166, 0xe186, 0xe185, 0xe966,
0xe966, 0xe966, 0xe186, 0xe186, 0xe186, 0xe166, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe166, 0xe966, 0xe186, 0xe166, 0xe966, 0xc9a6, 0x93ce, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7bcf, 0x8412, 0x41d0, 0x41ef, 0x41cf, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41f0, 0x49d0, 0x418e, 0x7bd0, 0x0000, 0x0000, 0x0000, 0x0000, 0xbd55, 0x9b8e, 0xe166, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe986, 0xe166, 0xe986, 0xe186, 0xd966, 0xc229, 0x7c10, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7bf0, 0x7370, 0x41d0, 0x41ef, 0x41d0, 0x41d0, 0x41ef, 0x41d0, 0x41ef, 0x41ef, 0x41d0,
0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41ef, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x4210, 0x41d0, 0x41ce, 0x7bcf, 0x0000, 0x0000, 0x0000, 0x0000, 0x93ef, 0xb3cf, 0xe186, 0xe986, 0xe986, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe166, 0xe186, 0xd9a6, 0xc9a7, 0xbaab, 0xa556, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x7baf, 0x8c53, 0x41ec, 0x41d0, 0x41ef, 0x41d0, 0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41ef, 0x41d0,
0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41f0, 0x39ae, 0x62f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x93ae, 0xc2eb, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe166, 0xd1a7, 0xb208, 0xb3ae, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x7bd0, 0x7bd2, 0x41ed, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41cf, 0x39ad, 0x7bd3, 0x0000, 0x0000, 0x0000, 0x0000, 0x94d3, 0x9bef, 0xba49, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xd1a7, 0xb28a, 0xabaf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x83f1, 0x6311, 0x41ce, 0x41d0, 0x41d0, 0x41f0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41d0, 0x41d1, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41ed, 0x8c54, 0x0000, 0x0000, 0x0000, 0x0000, 0x7c10, 0xabf0, 0xb9c7, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xc9a7, 0xb32c, 0x8bae, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x9492, 0x8c32, 0x524e, 0x41ce, 0x41d0, 0x41d0, 0x41f0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41d0, 0x41d1, 0x41d0,
0x41d0, 0x41d0, 0x49f0, 0x528e, 0x8453, 0x0000, 0x0000, 0x0000, 0x0000, 0x83cf, 0xab8e, 0xc1c7, 0xe165, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xc1c7, 0xab8e, 0x83ae, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x7bcf, 0x7bb2, 0x39ad, 0x41cf, 0x41ef, 0x41cf, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef,
0x41ef, 0x41ef, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x49cf, 0x8433, 0x73cf, 0x0000, 0x0000, 0x0000, 0x0000, 0xabef, 0xaa6a, 0xd1a7, 0xe9a7, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xd1a6, 0xc2aa, 0x93cf, 0xa576, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x8412, 0x5aaf, 0x41ae, 0x41d0, 0x41ef, 0x41f0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41f0, 0x41ef,
0x41ef, 0x41ef, 0x41f0, 0x41f0, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41ef, 0x41ef, 0x41ef, 0x41d0, 0x41d0, 0x41d0,
0x41d0, 0x41d0, 0x41ce, 0x8c53, 0x8451, 0x0000, 0x0000, 0x0000, 0x0000, 0xb38e, 0xb1e7, 0xd9c7, 0xe166, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe986, 0xe186, 0xc1c6, 0xbb2c, 0x8bae, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x8414, 0x398c, 0x41ef, 0x41cf, 0x41cf, 0x41f0, 0x41d0, 0x41af, 0x4a10, 0x41f0, 0x41cf, 0x49f0, 0x41cf,
0x41ef, 0x49f0, 0x41d0, 0x49f0, 0x41cf, 0x41cf, 0x41f0, 0x41cf, 0x41cf, 0x41ef, 0x41ef, 0x41ef, 0x41cf, 0x41f0, 0x41d0, 0x41cf,
0x41f0, 0x41cf, 0x39ac, 0x73d0, 0x0000, 0x0000, 0x0000, 0x0000, 0x94f2, 0xc269, 0xd9a7, 0xd986, 0xe166, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe966, 0xaa8a, 0xa3cf, 0xa492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x9492, 0x524e, 0x41ce, 0x41cf, 0x4a10, 0x41cf, 0x41cf, 0x41f0, 0x41d0, 0x41f0, 0x41ef, 0x41ef, 0x41cf, 0x41f0,
0x41d0, 0x41f0, 0x41cf, 0x4a10, 0x41cf, 0x41d0, 0x49f1, 0x41d0, 0x41cf, 0x41ef, 0x41f0, 0x41d0, 0x41cf, 0x41f0, 0x41f0, 0x41ef,
0x41ef, 0x41cf, 0x528e, 0x9cd4, 0x0000, 0x0000, 0x0000, 0x0000, 0x83ae, 0xc9c7, 0xe986, 0xe986, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe166, 0xe987, 0xabcf, 0x7bcf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x8410, 0x39ad, 0x41cf, 0x41ef, 0x41cf, 0x41d0, 0x41ef, 0x49f0, 0x41d0, 0x41f0, 0x41ef, 0x41ef, 0x41f0, 0x41b0,
0x41d0, 0x41d0, 0x41ef, 0x41ce, 0x314c, 0x314c, 0x41d0, 0x41d0, 0x49f0, 0x49f0, 0x41d0, 0x41d0, 0x41f0, 0x41d0, 0x41cf, 0x41ef,
0x41ef, 0x41f0, 0x6b70, 0x0000, 0x0000, 0x0000, 0x0000, 0xbd75, 0x9bae, 0xd1c6, 0xe966, 0xe986, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xa3ef, 0x7c30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x7bd0, 0x398d, 0x49f0, 0x41cf, 0x41d0, 0x41d0, 0x41cf, 0x41d0, 0x41d1, 0x41d0, 0x41cf, 0x41cf, 0x49f0, 0x49f1,
0x41d0, 0x49f0, 0x292a, 0x5ab0, 0xa4f9, 0xd67f, 0x41cf, 0x49f0, 0x41cf, 0x41cf, 0x41d0, 0x49f1, 0x41d0, 0x41f0, 0x41cf, 0x49f0,
0x41cf, 0x41f0, 0x8412, 0x0000, 0x0000, 0x0000, 0x0000, 0x9c51, 0xabae, 0xd1a6, 0xe165, 0xe966, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe187, 0xd986, 0x9bef, 0x9d34, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0xa535, 0x8432, 0x41ae, 0x41cf, 0x39ae, 0x314c, 0x396d, 0x316c, 0x314c, 0x314d, 0x398d, 0x314c, 0x316b, 0x292b, 0x314d,
0x41cf, 0x316c, 0xf77f, 0xffdf, 0xffbf, 0xad38, 0x316b, 0x318c, 0x316c, 0x314c, 0x41ae, 0x41af, 0x49f0, 0x316d, 0x398d, 0x398e,
0x49f0, 0x49f0, 0x8c53, 0x0000, 0x0000, 0x0000, 0x0000, 0x838e, 0xbb6d, 0xd9a6, 0xe166, 0xe966, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xd9a7, 0x8bae, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x7bf0, 0x83d3, 0x41ce, 0x39ad, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf,
0x6b11, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffff, 0x4a2d, 0x39ad, 0x4a2e, 0xffff, 0xffdf, 0x5ab1,
0x39ae, 0x39ac, 0x7bd0, 0x0000, 0x0000, 0x0000, 0x9cf4, 0x9c10, 0xba6a, 0xe186, 0xe186, 0xe186, 0xe986, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe986, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xd1c7, 0x9450, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x7bf0, 0x6b31, 0x398d, 0x83f5, 0xffdf, 0xffff, 0x4a2d, 0x7bb4, 0xffff, 0xffdf, 0x526f, 0x420d, 0x6b51, 0xffff, 0xffdf,
0x4a4e, 0x398c, 0xffff, 0xffff, 0xd67c, 0x39ac, 0x4a2f, 0x41ec, 0xad37, 0xffff, 0x398d, 0x398d, 0x9475, 0xffff, 0xef5f, 0x398e,
0x41cf, 0x39ac, 0x83f1, 0x0000, 0x0000, 0x0000, 0x73af, 0xa3f0, 0xc1e8, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe966, 0xe985, 0xe185,
0xe185, 0xe186, 0xe966, 0xe186, 0xe186, 0xe986, 0xc9a6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x94d2, 0x9473, 0x526f, 0x314c, 0xc5fd, 0xffff, 0xffff, 0x314b, 0xb55b, 0xffff, 0xdebf, 0x312b, 0x316c, 0x9cd7, 0xffff, 0xef3f,
0x316b, 0x20ca, 0xffff, 0xffff, 0x8414, 0x398d, 0x41cf, 0x290a, 0xef3f, 0xffdf, 0x314d, 0x290b, 0xd69d, 0xffff, 0xc5fb, 0x292c,
0x41cf, 0x4a4d, 0x9cb3, 0x0000, 0x0000, 0x0000, 0x83af, 0xab6e, 0xc9c7, 0xe986, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe966, 0xe186, 0xe185,
0xe186, 0xe186, 0xe966, 0xe186, 0xe186, 0xe966, 0xc1a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x8c53, 0x5aaf, 0x39ae, 0xa4f8, 0xffff, 0xffff, 0xe71e, 0x39ad, 0xffdf, 0xffdf, 0x398c, 0x39ad, 0x7bd3, 0xffff, 0xffdf, 0x41cd,
0x41ce, 0xef5f, 0xffff, 0xdefd, 0xa4f6, 0xbd9b, 0x292b, 0xce1d, 0xffff, 0xffff, 0xad37, 0xd67b, 0xffff, 0xe6df, 0x292a, 0x49ee,
0x4a0d, 0x8c53, 0x0000, 0x0000, 0x0000, 0x834e, 0xb38e, 0xb1e8, 0xd9a7, 0xe186, 0xe186, 0xe186, 0xe967, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe966, 0xe186, 0xe186, 0xe186, 0xe186,
0xe986, 0xe186, 0xe186, 0xe186, 0xd9a6, 0xc1c7, 0xbb0c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x8c33, 0x4a0d, 0x4a0f, 0xffdf, 0xffdf, 0xffdf, 0xb57a, 0x290a, 0xffdf, 0xffff, 0x292b, 0x290b, 0xdedf, 0xffdf, 0xdebe, 0x20ea,
0x41ef, 0xffdf, 0xffff, 0xffff, 0xffbf, 0xffdf, 0x290a, 0xef1f, 0xffbf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0x7b94, 0x398d, 0x41ee,
0x5acf, 0x8432, 0x0000, 0x0000, 0x0000, 0x938e, 0xbb0c, 0xc1c7, 0xe186, 0xe186, 0xe186, 0xe186, 0xe967, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe986, 0xe186, 0xe186, 0xe186, 0xe186,
0xe966, 0xe986, 0xe186, 0xe186, 0xd1c7, 0xb208, 0xb38e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x7bd2, 0x39cc, 0x41ce, 0x7bb5, 0x7373, 0x7374, 0x4a30, 0x39ae, 0x7373, 0x7394, 0x39af, 0x41af, 0x7b95, 0x7353, 0x5a91, 0x39af,
0x41d0, 0x4a0f, 0x7372, 0x6b52, 0x7394, 0x6b33, 0x41cf, 0x41ae, 0x7b94, 0x7374, 0x7353, 0x7353, 0x7393, 0x398e, 0x41ef, 0x316c,
0x7bb2, 0x83f2, 0x0000, 0x0000, 0x0000, 0x9bef, 0xc28a, 0xd986, 0xe186, 0xe186, 0xe186, 0xe186, 0xe166, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe986, 0xe985, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe966, 0xe966, 0xe966, 0xe186, 0xc9c7, 0xaa8a, 0xabcf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x6b51, 0x39ad, 0x4a0f, 0x39ae, 0x398e, 0x39af, 0x41af, 0x41d0, 0x398e, 0x398e, 0x49f1, 0x39af, 0x398e, 0x41ce, 0x39ae, 0x49f0,
0x41d0, 0x41cf, 0x39ae, 0x39ae, 0x398e, 0x398e, 0x41cf, 0x41cf, 0x398e, 0x398e, 0x398e, 0x398e, 0x398e, 0x41d0, 0x41cf, 0x41cc,
0x8c33, 0x7390, 0x0000, 0x0000, 0x0000, 0xa3ef, 0xc1e7, 0xe166, 0xe986, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186, 0xe986, 0xe986, 0xe186, 0xe186, 0xe186, 0xe186, 0xe186,
0xe966, 0xe966, 0xe186, 0xe186, 0xc9c7, 0xab0c, 0x93ce, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x420d, 0x41ef, 0x41af, 0x41cf, 0x41cf, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0,
0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41f0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41ef, 0x39ac, 0x83f2,
0x7bd0, 0x0000, 0x0000, 0x0000, 0x0000, 0x9b2d, 0xc1c7, 0xe186, 0xe166, 0xe966, 0xe166, 0xe185, 0xe186, 0xe166, 0xe165, 0xe165,
0xe165, 0xe165, 0xe165, 0xe165, 0xe165, 0xe165, 0xe165, 0xe165, 0xe166, 0xe166, 0xe166, 0xe166, 0xe166, 0xe166, 0xe966, 0xe965,
0xe166, 0xe186, 0xd9a7, 0xd9c7, 0xc28a, 0xac10, 0x9471, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x4a2d, 0x39ae, 0x49f0, 0x41d0, 0x41d0, 0x41cf, 0x41cf, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d1, 0x41d0,
0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41d0, 0x41cf, 0x41cf, 0x41d0, 0x41d0, 0x41d1, 0x41d0, 0x41ef, 0x39ac, 0x7371, 0x8411,
0x9492, 0x0000, 0x0000, 0x0000, 0x0000, 0xa3ae, 0xc1a7, 0xe145, 0xf146, 0xf146, 0xe966, 0xe985, 0xe185, 0xe986, 0xe966, 0xe966,
0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe966, 0xe986, 0xe986, 0xe965, 0xe965, 0xe985, 0xe165,
0xe946, 0xe146, 0xd9a8, 0xc1c8, 0xabef, 0x7b6d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x7bb2, 0x41cc, 0x39ad, 0x398d, 0x39ad, 0x398d, 0x398d, 0x398d, 0x398d, 0x398d, 0x398d, 0x398d, 0x39ad, 0x39ad, 0x398d, 0x398d,
0x398d, 0x39ad, 0x398d, 0x398d, 0x398d, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x39ad, 0x398e, 0x39ad, 0x420d, 0x7bd2, 0x8c32, 0x8410,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9c0f, 0xba6a, 0xc9c8, 0xc9a7, 0xc987, 0xc9a7, 0xc1c6, 0xc1c6, 0xc1c7, 0xc1c7, 0xc1c7,
0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c7, 0xc1c6, 0xc1c6, 0xc9a6, 0xc9a6, 0xc1c6, 0xc9e7,
0xc9a7, 0xc1c8, 0xb9e9, 0xbaec, 0x838d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x7bf0, 0x8c32, 0x83f3, 0x83f3, 0x83f3, 0x8412, 0x8412, 0x8412, 0x8412, 0x8412, 0x8412, 0x8412, 0x8411, 0x8411, 0x8412, 0x8412,
0x8412, 0x8412, 0x8412, 0x8413, 0x8413, 0x8412, 0x83f3, 0x83f3, 0x8412, 0x8411, 0x8412, 0x8412, 0x8411, 0x73af, 0x9492, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b6d, 0x9bce, 0xabcf, 0xa3ce, 0xa3af, 0xa3af, 0xa3ae, 0xa3af, 0xa3af, 0xa3ae, 0xa3af,
0xa3ae, 0xa3ae, 0xa3af, 0xa3ae, 0xa3af, 0xa3ae, 0xa3af, 0xa3ae, 0xa3ae, 0xa3ae, 0xa3ae, 0xabae, 0xabaf, 0xabae, 0xa3ae, 0xa38e,
0xabae, 0xa3ae, 0xa3ef, 0x93ce, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x9cf4, 0x8c52, 0x8c52, 0x8c32, 0x8c52, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c50, 0x8c50, 0x8c50, 0x8c50, 0x8c51,
0x8c51, 0x8c51, 0x8c51, 0x8c32, 0x8c32, 0x8c52, 0x8c32, 0x8c32, 0x8c31, 0x8c50, 0x8c51, 0x8c51, 0x9cd2, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa534, 0x8c91, 0x8450, 0x8451, 0x8451, 0x8451, 0x8c31, 0x8c51, 0x8c51, 0x8c51,
0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c51, 0x8c31, 0x8c31, 0x8c31, 0x8c31, 0x8451, 0x8c51,
0x840f, 0x94b1, 0x9d33, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
};
const char* games[10] = {"Game1", "Game2", "Game3", "Game4", "Game5", "Game6", "Game7", "Game8", "Game9", "Game10"};
int currentSelection = 0;
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(ILI9341_BLACK);
drawMenu();
}
void drawMenu() {
tft.setTextSize(2);
tft.setTextColor(ILI9341_WHITE);
int y = tft.height() / 3;
for (int i = 0; i < 10; i++) {
tft.setCursor(10, y + (i * 20));
tft.print(games[i]);
}
drawMenu();
}
void loop() {
TSPoint p = ts.getPoint();
if (p.z > ts.pressureThreshhold) {
int y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());
int gameIndex = (y - tft.height() / 3) / 20;
if (gameIndex >= 0 && gameIndex < 10) {
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(10, 10);
tft.print("Selected: ");
tft.print(games[gameIndex]);
}
}
}
void setup() {
// SCREEN INITIATION
tft.begin(); //initialize screen
tft.setRotation(3); //rotate screen
tft.fillScreen(0x0000); //make beginning screen black
// SERIAL MONITOR INITIATION
Serial.begin(9600);
// JOYSTICK INPUT
pinMode(VERT_PIN, INPUT);
analogWrite(VERT_PIN, LOW);
pinMode(HORZ_PIN, INPUT);
analogWrite(HORZ_PIN, LOW);
pinMode(SEL_PIN, INPUT);
digitalWrite(SEL_PIN, HIGH);
// RANDOM NUMBER SETUP
randomSeed(analogRead(0));
// STATIC ELEMENTS ON SCREEN
/*tft.fillRect(85,10,150,25,ILI9341_BLUE);
tft.setTextSize(2);
tft.setTextColor(ILI9341_WHITE);
tft.setCursor(90, 15);
tft.println("Select Game:");
}
void loop() {
//mtu Logo
tft.drawRGBBitmap(0,20, bitmap_mtu_logo,80,33);
tft.fillRect(5,10,77,60,ILI9341_PINK);
//RR logo
tft.fillRect(238,10,77,60,ILI9341_PINK);
//game 1
tft.fillRect(5,90,70,60,ILI9341_GREEN);
//game 2
tft.fillRect(85,90,70,60,ILI9341_GREEN);
//game 3
tft.fillRect(165,90,70,60,ILI9341_GREEN);
//game 4
tft.fillRect(245,90,70,60,ILI9341_GREEN);
//game 5
tft.fillRect(5,170,70,60,ILI9341_GREEN);
//game 6
tft.fillRect(85,170,70,60,ILI9341_GREEN);
//game 7
tft.fillRect(165,170,70,60,ILI9341_GREEN);
//game 8
tft.fillRect(245,170,70,60,ILI9341_GREEN);
//game 9
tft.fillRect(245,170,70,60,ILI9341_GREEN);
//game 10
tft.fillRect(245,170,70,60,ILI9341_GREEN);
delay (50000);
}*/
void drawMenu() {
tft.fillScreen(ILI9341_BLACK);
tft.setTextSize(2);
tft.setTextColor(ILI9341_WHITE);
int y = HEIGHT / 3;
for (int i = 0; i < 10; i++) {
tft.setCursor(10, y + (i * 20));
if (i == currentSelection) {
tft.setTextColor(ILI9341_RED); // Highlight
current selection
}
else {
tft.setTextColor(ILI9341_WHITE);
} tft.print(games[i]); }
}
}
void loop () {
int vertValue = analogRead(VERT_PIN);
int horzValue = analogRead(HORZ_PIN);
if (vertValue < 400) { // Move selection up
currentSelection--;
if (currentSelection < 0) currentSelection = 9;
drawMenu(); delay(200); // Debounce delay
}
else if (vertValue > 600) { // Move selection down
currentSelection++;
if (currentSelection > 9) currentSelection = 0;
drawMenu(); delay(200); // Debounce delay
} if (digitalRead(SEL_PIN) == LOW) { // Select current game
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(10, 10);
tft.print("Selected: ");
tft.print(games[currentSelection]);
delay(200); // Debounce delay