From 84dcb2bd5037170c0530b297eb195addefbb7d83 Mon Sep 17 00:00:00 2001 From: luke zeller Date: Tue, 28 Apr 2020 15:06:11 -0400 Subject: [PATCH] a hell of a lot changed. ported from gtk to sdl added entire font added keyboard control added cursor TODO: backspace works on every char of every line, make aware of newline add colour to drawChar --- program | Bin 19808 -> 76448 bytes program.cpp | 1262 ++++++++++++++++++++++++++--- spriteconvert/array.txt | 761 +++++++++++++++++ spriteconvert/program | Bin 0 -> 17168 bytes spriteconvert/program.cpp | 17 + spriteconvert/script.py | 47 ++ spriteconvert/sprite/letter00.png | Bin 0 -> 98 bytes spriteconvert/sprite/letter01.png | Bin 0 -> 96 bytes spriteconvert/sprite/letter02.png | Bin 0 -> 94 bytes spriteconvert/sprite/letter03.png | Bin 0 -> 98 bytes spriteconvert/sprite/letter04.png | Bin 0 -> 99 bytes spriteconvert/sprite/letter05.png | Bin 0 -> 97 bytes spriteconvert/sprite/letter06.png | Bin 0 -> 103 bytes spriteconvert/sprite/letter07.png | Bin 0 -> 95 bytes spriteconvert/sprite/letter08.png | Bin 0 -> 92 bytes spriteconvert/sprite/letter09.png | Bin 0 -> 96 bytes spriteconvert/sprite/letter10.png | Bin 0 -> 95 bytes spriteconvert/sprite/letter11.png | Bin 0 -> 91 bytes spriteconvert/sprite/letter12.png | Bin 0 -> 110 bytes spriteconvert/sprite/letter13.png | Bin 0 -> 103 bytes spriteconvert/sprite/letter14.png | Bin 0 -> 93 bytes spriteconvert/sprite/letter15.png | Bin 0 -> 100 bytes spriteconvert/sprite/letter16.png | Bin 0 -> 104 bytes spriteconvert/sprite/letter17.png | Bin 0 -> 98 bytes spriteconvert/sprite/letter18.png | Bin 0 -> 99 bytes spriteconvert/sprite/letter19.png | Bin 0 -> 90 bytes spriteconvert/sprite/letter20.png | Bin 0 -> 95 bytes spriteconvert/sprite/letter21.png | Bin 0 -> 99 bytes spriteconvert/sprite/letter22.png | Bin 0 -> 98 bytes spriteconvert/sprite/letter23.png | Bin 0 -> 103 bytes spriteconvert/sprite/letter24.png | Bin 0 -> 96 bytes spriteconvert/sprite/letter25.png | Bin 0 -> 106 bytes spriteconvert/sprite/letter26.png | Bin 0 -> 102 bytes spriteconvert/sprite/letter27.png | Bin 0 -> 109 bytes spriteconvert/sprite/letter28.png | Bin 0 -> 104 bytes spriteconvert/sprite/letter29.png | Bin 0 -> 107 bytes spriteconvert/sprite/letter30.png | Bin 0 -> 108 bytes spriteconvert/sprite/letter31.png | Bin 0 -> 107 bytes spriteconvert/sprite/letter32.png | Bin 0 -> 96 bytes spriteconvert/sprite/letter33.png | Bin 0 -> 91 bytes spriteconvert/sprite/letter34.png | Bin 0 -> 104 bytes spriteconvert/sprite/letter35.png | Bin 0 -> 93 bytes spriteconvert/sprite/letter36.png | Bin 0 -> 91 bytes spriteconvert/sprite/letter37.png | Bin 0 -> 85 bytes spriteconvert/sprite/letter38.png | Bin 0 -> 85 bytes spriteconvert/sprite/letter39.png | Bin 0 -> 104 bytes spriteconvert/sprite/letter40.png | Bin 0 -> 100 bytes spriteconvert/sprite/letter41.png | Bin 0 -> 92 bytes spriteconvert/sprite/letter42.png | Bin 0 -> 83 bytes spriteconvert/sprite/letter43.png | Bin 0 -> 90 bytes spriteconvert/sprite/letter44.png | Bin 0 -> 96 bytes spriteconvert/sprite/letter45.png | Bin 0 -> 87 bytes spriteconvert/sprite/letter46.png | Bin 0 -> 87 bytes spriteconvert/sprite/letter47.png | Bin 0 -> 90 bytes spriteconvert/sprite/letter48.png | Bin 0 -> 81 bytes spriteconvert/sprite/letter49.png | Bin 0 -> 105 bytes spriteconvert/sprite/letter50.png | Bin 0 -> 97 bytes spriteconvert/sprite/letter51.png | Bin 0 -> 87 bytes spriteconvert/sprite/letter52.png | Bin 0 -> 102 bytes spriteconvert/sprite/letter53.png | Bin 0 -> 98 bytes spriteconvert/sprite/letter54.png | Bin 0 -> 100 bytes spriteconvert/sprite/letter55.png | Bin 0 -> 113 bytes spriteconvert/sprite/letter56.png | Bin 0 -> 109 bytes spriteconvert/sprite/letter57.png | Bin 0 -> 94 bytes spriteconvert/sprite/letter58.png | Bin 0 -> 93 bytes spriteconvert/sprite/letter59.png | Bin 0 -> 106 bytes spriteconvert/sprite/letter60.png | Bin 0 -> 103 bytes spriteconvert/sprite/letter61.png | Bin 0 -> 108 bytes spriteconvert/sprite/letter62.png | Bin 0 -> 91 bytes spriteconvert/sprite/letter63.png | Bin 0 -> 81 bytes spriteconvert/sprite/letter64.png | Bin 0 -> 103 bytes spriteconvert/sprite/letter65.png | Bin 0 -> 100 bytes spriteconvert/sprite/letter66.png | Bin 0 -> 95 bytes spriteconvert/sprite/letter67.png | Bin 0 -> 90 bytes 74 files changed, 1954 insertions(+), 133 deletions(-) create mode 100644 spriteconvert/array.txt create mode 100755 spriteconvert/program create mode 100644 spriteconvert/program.cpp create mode 100644 spriteconvert/script.py create mode 100644 spriteconvert/sprite/letter00.png create mode 100644 spriteconvert/sprite/letter01.png create mode 100644 spriteconvert/sprite/letter02.png create mode 100644 spriteconvert/sprite/letter03.png create mode 100644 spriteconvert/sprite/letter04.png create mode 100644 spriteconvert/sprite/letter05.png create mode 100644 spriteconvert/sprite/letter06.png create mode 100644 spriteconvert/sprite/letter07.png create mode 100644 spriteconvert/sprite/letter08.png create mode 100644 spriteconvert/sprite/letter09.png create mode 100644 spriteconvert/sprite/letter10.png create mode 100644 spriteconvert/sprite/letter11.png create mode 100644 spriteconvert/sprite/letter12.png create mode 100644 spriteconvert/sprite/letter13.png create mode 100644 spriteconvert/sprite/letter14.png create mode 100644 spriteconvert/sprite/letter15.png create mode 100644 spriteconvert/sprite/letter16.png create mode 100644 spriteconvert/sprite/letter17.png create mode 100644 spriteconvert/sprite/letter18.png create mode 100644 spriteconvert/sprite/letter19.png create mode 100644 spriteconvert/sprite/letter20.png create mode 100644 spriteconvert/sprite/letter21.png create mode 100644 spriteconvert/sprite/letter22.png create mode 100644 spriteconvert/sprite/letter23.png create mode 100644 spriteconvert/sprite/letter24.png create mode 100644 spriteconvert/sprite/letter25.png create mode 100644 spriteconvert/sprite/letter26.png create mode 100644 spriteconvert/sprite/letter27.png create mode 100644 spriteconvert/sprite/letter28.png create mode 100644 spriteconvert/sprite/letter29.png create mode 100644 spriteconvert/sprite/letter30.png create mode 100644 spriteconvert/sprite/letter31.png create mode 100644 spriteconvert/sprite/letter32.png create mode 100644 spriteconvert/sprite/letter33.png create mode 100644 spriteconvert/sprite/letter34.png create mode 100644 spriteconvert/sprite/letter35.png create mode 100644 spriteconvert/sprite/letter36.png create mode 100644 spriteconvert/sprite/letter37.png create mode 100644 spriteconvert/sprite/letter38.png create mode 100644 spriteconvert/sprite/letter39.png create mode 100644 spriteconvert/sprite/letter40.png create mode 100644 spriteconvert/sprite/letter41.png create mode 100644 spriteconvert/sprite/letter42.png create mode 100644 spriteconvert/sprite/letter43.png create mode 100644 spriteconvert/sprite/letter44.png create mode 100644 spriteconvert/sprite/letter45.png create mode 100644 spriteconvert/sprite/letter46.png create mode 100644 spriteconvert/sprite/letter47.png create mode 100644 spriteconvert/sprite/letter48.png create mode 100644 spriteconvert/sprite/letter49.png create mode 100644 spriteconvert/sprite/letter50.png create mode 100644 spriteconvert/sprite/letter51.png create mode 100644 spriteconvert/sprite/letter52.png create mode 100644 spriteconvert/sprite/letter53.png create mode 100644 spriteconvert/sprite/letter54.png create mode 100644 spriteconvert/sprite/letter55.png create mode 100644 spriteconvert/sprite/letter56.png create mode 100644 spriteconvert/sprite/letter57.png create mode 100644 spriteconvert/sprite/letter58.png create mode 100644 spriteconvert/sprite/letter59.png create mode 100644 spriteconvert/sprite/letter60.png create mode 100644 spriteconvert/sprite/letter61.png create mode 100644 spriteconvert/sprite/letter62.png create mode 100644 spriteconvert/sprite/letter63.png create mode 100644 spriteconvert/sprite/letter64.png create mode 100644 spriteconvert/sprite/letter65.png create mode 100644 spriteconvert/sprite/letter66.png create mode 100644 spriteconvert/sprite/letter67.png diff --git a/program b/program index e645e0c3ccd3fac68ea90ee27456e3a65e40ff19..89ad4403ed3238f58b678f05c8f769eacad6338c 100755 GIT binary patch literal 76448 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%0Ab+8ST)7l80JqEfL=8>_LAk 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 diff --git a/program.cpp b/program.cpp index b68ddef..c5c35d7 100644 --- a/program.cpp +++ b/program.cpp @@ -1,146 +1,1142 @@ -#include -#include +//Z80 SCREENTEST +#include +#include +#include #include +#include +#include +#include +using namespace std; -int zoom = 2; +//define chars +bool chars[69][8][8] { -int charA[8][8] = { - {0,0,0,0,0,0,0,0}, - {0,1,1,1,1,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,1,1,1,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,0,0,0,0,0,0,0}, -}; - -int charB[8][8] = { - {0,0,0,0,0,0,0,0}, - {0,1,1,1,1,0,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,1,1,1,0,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,1,1,1,0,0,0}, - {0,0,0,0,0,0,0,0}, -}; - -int charC[8][8] = { - {0,0,0,0,0,0,0,0}, - {0,0,1,1,1,1,0,0}, - {0,1,0,0,0,0,0,0}, - {0,1,0,0,0,0,0,0}, - {0,1,0,0,0,0,0,0}, - {0,1,0,0,0,0,0,0}, - {0,0,1,1,1,1,0,0}, - {0,0,0,0,0,0,0,0}, -}; - -int charD[8][8] = { - {0,0,0,0,0,0,0,0}, - {0,1,1,1,1,0,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,0,0,0,1,0,0}, - {0,1,1,1,1,0,0,0}, - {0,0,0,0,0,0,0,0}, -}; - -int charE[8][8] = { - {0,0,0,0,0,0,0,0}, - {0,1,1,1,1,1,0,0}, - {0,1,0,0,0,0,0,0}, - {0,1,1,1,1,0,0,0}, - {0,1,0,0,0,0,0,0}, - {0,1,0,0,0,0,0,0}, - {0,1,1,1,1,1,0,0}, - {0,0,0,0,0,0,0,0}, -}; - - -static void do_drawing(cairo_t *); - -static void draw_pixel(cairo_t *cr, int x, int y, int size) -{ - - //set to white - cairo_set_source_rgb(cr, 1, 1, 1); - - //create rectange and fill it - cairo_rectangle(cr, x * size, y * size, size, size); - cairo_fill(cr); - -} - -static void draw_char(cairo_t *cr, int x, int y, int zoom, int charToDraw[8][8]) -{ - //8x8 char loop - for(int i=0;i<8;i++) - { - for(int j=0;j<8;j++) { - //get actual coords of pixels to draw - int realX = j + (x * 8); - int realY = i + (y * 8); - switch (charToDraw[i][j]) { - case 1: draw_pixel(cr, realX, realY, zoom); - break; - case 0: break; - default: std::cout << "nonstandard num in array" << std::endl; - } + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,0,1,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,0,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,0,1,0,0,0,}, + {0,0,1,1,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,1,0,0,}, + {0,0,1,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,1,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,0,0,1,0,0,}, + {0,1,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,1,1,0,0,}, + {0,1,0,0,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,1,0,0,1,0,0,0,}, + {0,0,1,1,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,0,1,0,0,}, + {0,1,0,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, +}; + +map charMap{ {SDLK_SPACE, 0}, + {SDLK_a, 1}, + {SDLK_b, 2}, + {SDLK_c, 3}, + {SDLK_d, 4}, + {SDLK_e, 5}, + {SDLK_f, 6}, + {SDLK_g, 7}, + {SDLK_h, 8}, + {SDLK_i, 9}, + {SDLK_j, 10}, + {SDLK_k, 11}, + {SDLK_l, 12}, + {SDLK_m, 13}, + {SDLK_n, 14}, + {SDLK_o, 15}, + {SDLK_p, 16}, + {SDLK_q, 17}, + {SDLK_r, 18}, + {SDLK_s, 19}, + {SDLK_t, 20}, + {SDLK_u, 21}, + {SDLK_v, 22}, + {SDLK_w, 23}, + {SDLK_x, 24}, + {SDLK_y, 25}, + {SDLK_z, 26}, + {SDLK_1, 27}, + {SDLK_2, 28}, + {SDLK_3, 29}, + {SDLK_4, 30}, + {SDLK_5, 31}, + {SDLK_6, 32}, + {SDLK_7, 33}, + {SDLK_8, 34}, + {SDLK_9, 35}, + {SDLK_0, 36}, + {SDLK_BACKQUOTE, 37}, + {SDLK_MINUS, 38}, + {SDLK_EQUALS, 39}, + {SDLK_BACKSLASH, 40}, + {SDLK_SLASH, 41}, + {SDLK_LEFTBRACKET, 42}, + {SDLK_RIGHTBRACKET, 44}, + {SDLK_SEMICOLON, 45}, + {SDLK_QUOTE, 47}, + {SDLK_COMMA, 48}, + {SDLK_PERIOD, 49}, + +}; + +map shiftMap{ {SDLK_SPACE, 0}, + {SDLK_a, 1}, + {SDLK_b, 2}, + {SDLK_c, 3}, + {SDLK_d, 4}, + {SDLK_e, 5}, + {SDLK_f, 6}, + {SDLK_g, 7}, + {SDLK_h, 8}, + {SDLK_i, 9}, + {SDLK_j, 10}, + {SDLK_k, 11}, + {SDLK_l, 12}, + {SDLK_m, 13}, + {SDLK_n, 14}, + {SDLK_o, 15}, + {SDLK_p, 16}, + {SDLK_q, 17}, + {SDLK_r, 18}, + {SDLK_s, 19}, + {SDLK_t, 20}, + {SDLK_u, 21}, + {SDLK_v, 22}, + {SDLK_w, 23}, + {SDLK_x, 24}, + {SDLK_y, 25}, + {SDLK_z, 26}, + {SDLK_1, 52}, + {SDLK_2, 62}, + {SDLK_3, 54}, + {SDLK_4, 55}, + {SDLK_5, 56}, + {SDLK_6, 63}, + {SDLK_7, 57}, + {SDLK_8, 50}, + {SDLK_9, 58}, + {SDLK_0, 59}, + {SDLK_BACKQUOTE, 67}, + {SDLK_MINUS, 64}, + {SDLK_EQUALS, 51}, + {SDLK_BACKSLASH, 43}, + {SDLK_SLASH, 53}, + {SDLK_LEFTBRACKET, 66}, + {SDLK_RIGHTBRACKET, 65}, + {SDLK_SEMICOLON, 46}, + {SDLK_QUOTE, 68}, + {SDLK_COMMA, 60}, + {SDLK_PERIOD, 61}, + +}; + + +//int screen[40][25]; but in vector +vector< vector > screen(40, vector(25)); + +const char* ver = "0.1.0-prerelease"; + +bool cursor = false; + +void drawChar(SDL_Renderer *renderer, int scale, int x, int y, int charToDraw) { + + + + + //set up + SDL_RenderSetScale(renderer, scale, scale); + + + //8x8 char loop + for(int i=0;i<8;i++) { + for(int j=0;j<8;j++) { + + //get actual coords of pixels to draw + int realX = j + (x * 8); + int realY = i + (y * 8); + + if (chars[charToDraw][i][j]) { + + SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + SDL_RenderDrawPoint(renderer, realX, realY); + + } else { + + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderDrawPoint(renderer, realX, realY); + + } + } } - } + } -static gboolean on_draw_event(GtkWidget *widget, cairo_t *cr, gpointer user_data) -{ - do_drawing(cr); +void drawScreen(SDL_Renderer *renderer, int scale, int x, int y) { + + for(int c=0;c<40;c++) { + for(int d=0;d<25;d++) { + drawChar(renderer, scale, c, d, screen[c][d]); + } + } + + if (cursor) { + + drawChar(renderer, scale, x, y, 64); + + } - return FALSE; } -static void do_drawing(cairo_t *cr) -{ +void clearScreen() { + + /*for(int c=0;c<40;c++) { + for(int d=0;d<25;d++) { + screen[c][d] = 0; + } + }*/ + + screen.clear(); + +} + +void scrollScreen() { + + for(int c=0;c<40;c++) { + for(int d=0;d<24;d++) { + screen[c][d] = screen[c][d+1]; + } + } + + for(int c=0;c<40;c++) { + + screen[c][24] = 0; + + } + +} + +int main(int argc, char* argv[]) { + + //setup + + //output version info + + SDL_version compiled; + SDL_version linked; + + SDL_VERSION(&compiled); + SDL_GetVersion(&linked); + + SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "Z80SCREENTEST %s", ver); + SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "SDL2 compile %d.%d.%d", + compiled.major, compiled.minor, compiled.patch); + SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "SDL2 link %d.%d.%d", + linked.major, linked.minor, linked.patch); + + + + //declare pointers + SDL_Window *window; + SDL_Renderer *renderer; + + //set a scale + int scale = 4; + + //prevent crash on some os's + SDL_SetMainReady(); + + //initialize SDL2 + if (SDL_Init(0) < 0) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init failed: %s", SDL_GetError()); + SDL_Quit(); + return 3; + }; + + //create window with properties: + window = SDL_CreateWindow( + "Z80 SCREENTEST", //window title + SDL_WINDOWPOS_UNDEFINED, //initial x position + SDL_WINDOWPOS_UNDEFINED, //initial y position + 320 * scale, //width, in pixels + 200 * scale, //height, in pixels + SDL_WINDOW_OPENGL //flags - see below + ); + + // Check that the window was successfully created + if (window == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_CreateWindow failed: %s", SDL_GetError()); + SDL_Quit(); + return 3; + }; + + //create renderer + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); + + if (renderer == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_CreateRenderer failed: %s", SDL_GetError()); + SDL_Quit(); + return 3; + }; + + //clear screen to black + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + + //test drawing section (will be removed once program loop is implemented +/* + SDL_RenderSetScale(renderer, scale, scale); + SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + SDL_RenderDrawPoint(renderer, 0, 0); + + + drawChar(renderer, scale, 0, 0, 0); + + SDL_RenderPresent(renderer); +*/ + + + + int a = 0; + int b = 0; + + Uint32 time = SDL_GetTicks(); + + //program loop + bool close = 0; + while (!close) { + + drawScreen(renderer, scale, a, b); + SDL_RenderPresent(renderer); + + if (SDL_TICKS_PASSED(SDL_GetTicks(), time + 500)) { + + cursor = !cursor; + time = SDL_GetTicks(); + + } + + + + + //handle events + SDL_Event event; + while (SDL_PollEvent(&event)) { + switch (event.type) { - cairo_set_source_rgb(cr, 0, 0, 0); - cairo_paint(cr); + //close + case SDL_QUIT: + close = 1; + break; + case SDL_KEYDOWN: + switch (event.key.keysym.sym) { - draw_char(cr, 0, 0, zoom, charA); - draw_char(cr, 1, 0, zoom, charB); - draw_char(cr, 2, 0, zoom, charC); - draw_char(cr, 3, 0, zoom, charD); - draw_char(cr, 4, 0, zoom, charE); -} - -//set up gtk, -int main(int argc, char *argv[]) -{ - GtkWidget *window; - GtkWidget *darea; - - gtk_init(&argc, &argv); - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - - darea = gtk_drawing_area_new(); - gtk_container_add(GTK_CONTAINER(window), darea); - - g_signal_connect(G_OBJECT(darea), "draw", - G_CALLBACK(on_draw_event), NULL); - g_signal_connect(window, "destroy", - G_CALLBACK(gtk_main_quit), NULL); - - gtk_window_set_default_size(GTK_WINDOW(window), 320 * zoom, 200 * zoom); - gtk_window_set_title(GTK_WINDOW(window), "z80 screentest"); - gtk_window_set_resizable(GTK_WINDOW(window), FALSE); - - gtk_widget_show_all(window); - - gtk_main(); - - - - return 0; + case SDLK_RETURN: + cursor = true; + a = 0; + if (b < 24) { b++; } else { b = 24; scrollScreen(); } + time = SDL_GetTicks(); + break; + + case SDLK_TAB: + a = a + 2; + break; + + case SDLK_BACKSPACE: + + cursor = true; + + if (a == 0) { + if (b != 0) { + a = 40; + b = b - 1; + } else { + break; + } + } + a = a - 1; + screen[a][b] = 0; + + time = SDL_GetTicks(); + + break; + + default: + + if (charMap.count(event.key.keysym.sym) == 0) { break; } + + cursor = true; + + if (event.key.keysym.mod == 4097) { + + screen[a][b] = shiftMap[event.key.keysym.sym]; + + } else { + + screen[a][b] = charMap[event.key.keysym.sym]; + + } + + if (a < 39) { a++; } else { a = 0; b++; } + if (b < 25) {} else { b = 24; scrollScreen(); } + + time = SDL_GetTicks(); + + break; + + } + } + } + } + + //destroy things + SDL_DestroyWindow(window); + SDL_DestroyRenderer(renderer); + + //clean up sdl + SDL_Quit(); + + return 0; } diff --git a/spriteconvert/array.txt b/spriteconvert/array.txt new file mode 100644 index 0000000..2b03af8 --- /dev/null +++ b/spriteconvert/array.txt @@ -0,0 +1,761 @@ +bool chars[69][8][8] { + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,0,1,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,0,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,0,1,0,0,0,}, + {0,0,1,1,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,1,0,0,}, + {0,0,1,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,1,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,1,0,1,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,1,1,0,0,1,0,0,}, + {0,1,1,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,1,1,0,0,}, + {0,1,0,0,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,1,0,1,0,0,0,0,}, + {0,1,0,0,1,0,0,0,}, + {0,0,1,1,0,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,1,0,0,0,}, + {0,1,0,0,0,1,0,0,}, + {0,1,0,1,0,1,0,0,}, + {0,1,0,1,1,1,0,0,}, + {0,1,0,0,0,0,0,0,}, + {0,0,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,0,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,1,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,1,0,0,0,0,0,}, + {0,0,0,1,0,0,0,0,}, + {0,0,0,1,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,1,1,1,0,1,0,0,}, + {0,1,0,1,1,1,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, + + { + {0,0,0,0,0,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,1,0,1,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, +}; \ No newline at end of file diff --git a/spriteconvert/program b/spriteconvert/program new file mode 100755 index 0000000000000000000000000000000000000000..4fbaf24cb71239fa876817c58109b7faf43c2ac2 GIT binary patch literal 17168 zcmeHOe{dXC9e$3{lDi~_$=z|c z2PuLS0t`1LP#J$P4C54a#veFiadfQX3^Wu`6c}&@ZAHc^bW9X#2-d04_WXR`zVBvl zbEnAghtBNF?0w(&^ZoJOe)sLmzTNk|y{)so%;yta{NidMxrG)IQi86lSVM@AXci0b zTPv1{Ie^P?gp}A#kCs^irj<(14@!15R4GC)wqU`Odq|Y*N|n8;0j8qb(j>bIsw&=1 zn^ZrTvfOS@BV!az{@U~qDWEWQ+EHwJ>ZDloY$&7$Ra_1!%67z(-H5UqQFctLl|ECB zC&h%0W_2EJszF9YlfOc^?RF_UH*Hn=OsNejJ5HF<_tRdNvb$K5ZiJh5Td-it?Og*q zipzT~e3`ea_DWrc11g?O)#VhchvL0!*Q_3j)(yoI*^#=D=CyTe*90@kV595;^^4k| zF|~Q?P60QE2~%N|*J82aN#1qIo$tn*fA`Arh1ZOY`+q$6+HY5^Vjt8d=};ki)g_ys zj~eOF`QICQ)CcD)2&=+DrKRoVH(rdrF#OZk9=!F2+aJF5*p0jRwy_i(zqg>i$iZ`U zxCH)O3H;g;cuxuZyCv{TfonM2WdcC4eiEj+mBG_(QVf3(crick0IwDois}$5j&cn3 z!3w)%%RMdnRvFIs~MUYIY`O>H zA0AiNaZt^>jPFx}DCNQrDE-P1d7qhAnSXJkh10#ez^cmMqYiwo13&J-xor|pIB=YR zU8WrPhip`c(+>PR2Yx`|)TRo7lz!WRJLjK+4xHyUGC1VGd5$LhumhL>ZwW;Cg#-U@ z=5fo~`}HE=MZk-I7XdE>YjdjY@rA#j({w=yxAB%knSkqfb{Jk!laJaw zJt$01evx^!)+AeN6|z0>r-Ib_4F9H!KjGqEb@4B|_~)H`!i~`s-8Px&e!*CXa_U#?74h?B8uQWQ?UWOZ#Qi1_Q`(oW(cXW6Lz@R)w$cw=(+6F zlho0PU&4HRqV}%C=BkOWp|0ni(#M)6@vti8hosVvsErhU4$-yzYlTFgJ>qhj%bp&+ z?Tjzmc*kw0^Lg}mB~Je_yvdljn;efV`3mZA{t%IU74(in&;5L&8N&TD&YmFCCuvMg zJc5qzKGGkos=bT4A^PQb3t!tgw&5GAgb07CBlnx|&W_xvaCbO&W~V+@_Xyw}oh#4M zn4YLTi&n?a`pw#gSJd_B%uRRZPPXR$9L_KPgFbr1r>}c8`xhGTpWPk4F1$N@eb_kC zKhq+eA>9c?<$Yq`8L~s(j~4+i0$v2X2zU|jBH%^9i+~paF9Kc!{%;~cUsL3FBKq#5 z^+)1EvFLj3@(i7T?;`(IU7+;6p?oTzr!|-f`aRIQK%WME9drov`M2`<--9ln&gaj7 zCP6R88tzM=9|tXe8}^{|O_Yl7mhHkfQti8F{@lv_3a5{jDfq+MUx?PZ@)Pc5sII{= z^0$0GMR=gPJy7$Bs`GBH+$%ONUBBwe%a#*Ney_uE7<$r>Kor7F9EX7SfO4U>?!z&O z_T)Fawm|hgWt$evDeFX!gxq&P=eZ2$wS|mqd8;jd4)7--ztAb~l48*c>@N(7q2f%0= zs0)8e@$(gx3j)*^D1OEHRz7b!Wfg_bIw_pj0VhYIg8J9RFfB>n(>-$UWG zMoLw9&(={T=e=gD)Cuq&vl`1>EK!t+G86Z1v=FR1W!bMNt<$LRUbqV^R!k{?aaQ1d zPbod#6UXf@Q#k9ro43vn-IWkNIm+`rtWFFc8YR#D!m?2E4=edU6<@CWe$a&Xcf0-8 zs|y%Xv`f(*MN^9IRn%?&Uir$9rMY?2ruEv2oxRzFnbp=|BW6S0x~$|HS6aN*Sl_U& zp}xNPKf0#9nl*gk9ol}pb7(G#`^B!Jc)7T>C|+TYSBHD-{+uItoEGA91&`-Kyi)LW zF2v^v9v_7`M!!8EXC!`co;_Y?P}+@(ySK>o@#8MmisAvWzbIZM4iv=!s(q-1?Jg8N zKNRBF%&IvNtL_))+xzjIQa|3Jq>Ab73$=Wq7*F;skx{!n{V z+Hv^A>^KYqr*@CK{O^(av*Y;?@M8V{rqo{~$~9C_xZNjZeW_R&B6J3S0d;EkYPFA9 zzS9DBPT~CjiT{t3iW}{#_F+8y@KPAMO0j-wvSYKy)izADWkv3bE2aP0L_PDwUxC#NQN_so+V)+2`&`%9{0`75m5A+w3C(Uxh{};Xte0hOq zi=q61VtE3Olb^B+1<${1`gydwsBHHA`-JqvS~K)lCGZm^@CD=_XN;4OWwmm3QuW7u zf4x(}&s_MSxQUQ*pok9rV)+t_rT*;uSCjoI^g&#k#H+y zB7Tm!qlEthCH#E91paIZKcX*fX3Q*h4)uwd>U< zKsA+44nRBDmr5a{V~5$3F=XW1AA@^aLf6=dAN zE0SC|y~Ua8GCRwLvT2lmmHwiVX8JN&8IgaV3uGnOkS>i6oU1G0rm*Y9vW$vm5|u~? zD(t8TX7&u5kzPN9u z45m(jX+{=)erC$+HYJw2TqpVw9Q0_)_RZ?KnW+Yuv+(+ev9+i;?RP1ArkAmzqWpi4 z;SQHQKesd0SW!{8J>?bt18XhrKd(ob@~VT^qwfAkU{7mNwm+)+&-5V*E()C^RoR}` zjd5UP!uGsgV9M)VsK}z+F)MCFjnjE zJmY5}ps~yC^Lmx@@j35a-A=YY?$=|mrBh^ke&2PkdcYom%vrcyrgLEIv=4nt|hgWGsW!JuD3Lnx(r;b_!o3$kZk|} literal 0 HcmV?d00001 diff --git a/spriteconvert/program.cpp b/spriteconvert/program.cpp new file mode 100644 index 0000000..b5360d2 --- /dev/null +++ b/spriteconvert/program.cpp @@ -0,0 +1,17 @@ +#include +#include +#include + +using namespace std; + +int main(int argc, char* argv[]) { + + //initialize SDL2 + if (SDL_Init() < 0) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init failed: %s", SDL_GetError()); + SDL_Quit(); + return 3; + }; + + +} diff --git a/spriteconvert/script.py b/spriteconvert/script.py new file mode 100644 index 0000000..062b0f4 --- /dev/null +++ b/spriteconvert/script.py @@ -0,0 +1,47 @@ +from PIL import Image + +length = 68 + +current = 0 + +f = open("array.txt", "w") + +f.write("bool chars[{}][8][8] ".format(length + 1) + "{ \n") + +f.write(""" + { + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + {0,0,0,0,0,0,0,0,}, + }, +""") + +for k in range(length): + + if current < 10: + img = Image.open("sprite/letter0{}.png".format(current)) + else: + img = Image.open("sprite/letter{}.png".format(current)) + + w,h = img.size + + f.write("\n {\n") + + for i in range(h): + f.write(" {") + for j in range(w): + + r,g,b,p = img.getpixel((j,i)) + if p == 0: + f.write("0,") + if p == 255: + f.write("1,") + f.write("},\n") + f.write(" },\n") + current += 1 +f.write("};") diff --git a/spriteconvert/sprite/letter00.png b/spriteconvert/sprite/letter00.png new file mode 100644 index 0000000000000000000000000000000000000000..5afb41a9f09636fdc7bdcbc4d8fed68b61411cd2 GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqnw~C>AsWHSDGCe{3qSqexPtk# vqISbZ$43gh5?mK}74Nb%g*^yuxV)L+{sJye6I*Wype6=SS3j3^P6Ygr+AsWHSDGCe{3qSq8c;(;` t$qAwdSS2MS9Hb7^yqe`OQ`Ewin_=q$PR<1WO=>_b44$rjF6*2UngA@p8H)e_ literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter02.png b/spriteconvert/sprite/letter02.png new file mode 100644 index 0000000000000000000000000000000000000000..2347ae8ab9607e402167ed72da003b72bca637e3 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqs-7;6AsWHSDGCe{6QBHFypr|w sL6HWPiK2(EUJ7J9;kT#n$je9ukCkkkPZ!ko05vdpy85}Sb4q9e065beDgXcg literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter03.png b/spriteconvert/sprite/letter03.png new file mode 100644 index 0000000000000000000000000000000000000000..367151856608d69921903ff9d0688d579bb48e1d GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqnw~C>AsWHSDGCe{3qSq8c;(;` v$qAwdSS2MS9Hb7^SZO~jM;OXk;vd$@?2>`Ad9OM81 literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter05.png b/spriteconvert/sprite/letter05.png new file mode 100644 index 0000000000000000000000000000000000000000..2cbd40f72deda35940084d5623447fdef124ed6e GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq8lEnWAsWHSDGCe{3qSqexPtk# uqISc^z$=f87}w2E5$1?$3}^H^&%_Y0l#SC+waf*mhr!d;&t;ucLK6Tq{TV3$ literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter06.png b/spriteconvert/sprite/letter06.png new file mode 100644 index 0000000000000000000000000000000000000000..3051e14a80722a1768684d7d6b54dbbb2f942303 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqdY&$hAsWHSDGCe{3qSqexPtk# zqISc^z$=Ti9n3h_b1Jkh(RSD-{Z4KTpK}-|!<+@2oV%PFeSta|JYD@<);T3K0RZpj B95?^~ literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter07.png b/spriteconvert/sprite/letter07.png new file mode 100644 index 0000000000000000000000000000000000000000..00b8c968ba1960891edf66fdab993a8b76eea13f GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqYMw5RAsWHSDGCe{3qSprl#ocs snIJI7e-cy4=>xMojT(*2AAHeaSht&-Gko3ZHlPj$Pgg&ebxsLQ00MU!LjV8( literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter08.png b/spriteconvert/sprite/letter08.png new file mode 100644 index 0000000000000000000000000000000000000000..9415f3f7d7a4d05203353e423561296cabf2fab1 GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq%APKcAsWHSDGCe{3qSqexPtlg pL6HMb9JvCIyjanY;ht2%#$d3JjZ>MuGY6=g!PC{xWt~$(69C*u82JDI literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter09.png b/spriteconvert/sprite/letter09.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa959f97efa45f1f8ef4721822a698fd91b3f0d GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq>Ygr+AsWHSDGCe{3qSqexPtlg uK@o-1%_4`7zFfobEI=fC<4(q-&I~eZ**I6JW?BQaFnGH9xvXv$=R*0?e4q{nPgg&ebxsLQ00_hyH~;_u literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter11.png b/spriteconvert/sprite/letter11.png new file mode 100644 index 0000000000000000000000000000000000000000..ed092ad52ce7315c33d2034d5f3e3c873e3b120a GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqN}eu`AsWHSDGCe{3qSprl#ocs o5z%e-W!zPN;N9U@MJZDm0yeU7e(cMA22{=9>FVdQ&MBb@0HDShVgLXD literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter12.png b/spriteconvert/sprite/letter12.png new file mode 100644 index 0000000000000000000000000000000000000000..e9292db42077f7032ae200531ded8e73325359f7 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqrk*a2AsWHSDGCe{3qSprl#ocs znIJHye+`2Qzopr0JQ`g Aw*UYD literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter14.png b/spriteconvert/sprite/letter14.png new file mode 100644 index 0000000000000000000000000000000000000000..1e9a572773eab36f2db24d230b7b9d109989a35c GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqDxNNmAsWHSDGCe{6QBH7-uUp5 p0h@AsWHSDGCe{3qSq8c;(;` v$qAwdSS2MS9Hb7^OcGJJ?Zm8IP$kB|u$_yu_sEeDpe6=SS3j3^P6U@(!5Q~OQLJD@HGPgg&ebxsLQ0CoBs7ytkO literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter19.png b/spriteconvert/sprite/letter19.png new file mode 100644 index 0000000000000000000000000000000000000000..23cf3b06d5cbf847959f033911bd1a40e5e78fb5 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqik>cxAsWHSDGCe{3qSqexPtlg nL6HMb9JvCIuq|fdInThLv5}3_nd7%8P%(q2tDnm{r-UW|gmM=m literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter20.png b/spriteconvert/sprite/letter20.png new file mode 100644 index 0000000000000000000000000000000000000000..8caffca97701701b8ec3f2052c3b26d01aa2ff72 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqYMw5RAsWHSDGCe{3qSprl#ocs snIJI7eul^a8Me>DcMhJ=JN_z>f%g(O=a(O{fj}J$p00i_>zopr00#IPbN~PV literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter21.png b/spriteconvert/sprite/letter21.png new file mode 100644 index 0000000000000000000000000000000000000000..e38c84f4db693290e0968c9cab0b364a360ba8c2 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqTAnVBAsWHSDGCe{3qSprl#ocs wnIJI7-<|cuw?#YHZzgK=HCOV*GPW&eAsWHSDGCe{3qSprl#ocs vnIJI7o`EZ&EO`gx%|s18w=&BxerATgOT3)SWmdOYgr+AsWHSDGCe{3qSprl#ocs tnIJHy-&erZa1)crT!Y!{4vcNf8P}fR;51y(-3rvg;OXk;vd$@?2>{sp7$*P# literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter25.png b/spriteconvert/sprite/letter25.png new file mode 100644 index 0000000000000000000000000000000000000000..3722b8d0df1071fc1fbc39e1eb1e33280c1884cd GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqhMq2tAsWHSDGCe{3qSqexPtlg zK@o-1%_4`7UKCy6v1oRKV&@u$)hfG~O3ELVsB}3oSS)1YoN_~c1yD1Cr>mdKI;Vst E0J32qCjbBd literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter26.png b/spriteconvert/sprite/letter26.png new file mode 100644 index 0000000000000000000000000000000000000000..bee5e4998a1c63f13cc47f6a1e4405d2aa17d7c1 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqx}GkMAsWHSDGCe{6QBHdzIh^v z$AHg6=t$eef?ADLnX4I|Ii%P(u5~YGZd=ayY9%}8!_dq%K#dHZu6{1-oD!M<`R^U` literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter27.png b/spriteconvert/sprite/letter27.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f84a1f514d8848bf5dd4bf352421e7cacc0fc3 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqCY~;iAsWHSDGCe{6QBH7-uUp5 z0h@CS_T0p@Ub(PJj6rh?2dBOczc^4UgQu&X%Q~loCIIe~ B8vpl~LGLgp=ars+Z9v@&p00i_>zopr E07<Ygr+AsWHSDGCe{3qSqexPtlg tL6HTgn@t{sFiby^#?+;fE0R#b#vrqijngpicL-1mgQu&X%Q~loCICR*8cP5G literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter33.png b/spriteconvert/sprite/letter33.png new file mode 100644 index 0000000000000000000000000000000000000000..02436b8d05011963d24b7d2e33ab64160af1e31c GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqN}eu`AsWHSDGCe{6QBH7-uUp5 o0h@FVdQ&MBb@0Dx~71ONa4 literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter34.png b/spriteconvert/sprite/letter34.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f6a40488f634e9d4192b7ba64113fd57b22a4a GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq`kpS1AsWHSDGCe{6QBH7-uUp5 z0h@d!}Y+9kwM`g8)vh?!33aI22WQ%mvv4FO#t;e B98UlM literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter40.png b/spriteconvert/sprite/letter40.png new file mode 100644 index 0000000000000000000000000000000000000000..529016b21b46ff4fdb6cfa5188c42b608a520edb GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq+MX_sAsWHSDGCe{g(v=}CnPYO xP7G$4eq!cJ`iCq(Y4`_9so~R+m%%E_PjdPmfRXd#vDWd literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter42.png b/spriteconvert/sprite/letter42.png new file mode 100644 index 0000000000000000000000000000000000000000..9d276a9ae733a70d5ad80e97159052e449998fd3 GIT binary patch literal 83 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqQl2i3AsWHSDGCe{7oYq$HZWMw f!RyH?F^`Qw;UF6)cV1W(P!)rxtDnm{r-UW|n?4eM literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter43.png b/spriteconvert/sprite/letter43.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1c97c93618c176322c6fdbff66c66e422b95e2 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqik>cxAsWHSDGCe{6QBH7-uUp* n39f`s3a!jb8#3G%Rmd<%Y-Ho?J~UMqsF=ai)z4*}Q$iB}q1qUa literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter44.png b/spriteconvert/sprite/letter44.png new file mode 100644 index 0000000000000000000000000000000000000000..c67029ff816542964eb9eca3705f8e8f94f94afd GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq>Ygr+AsWHSDGCe{7oYq$HZWMw tu~7SfL4OJ>%i0608JvZlC^Y3UFx*_t!g-^6(HWo?22WQ%mvv4FO#mlh8n*xd literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter45.png b/spriteconvert/sprite/letter45.png new file mode 100644 index 0000000000000000000000000000000000000000..0487a3fc6485efc37cc203f8c9e2de757fb7753c GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqa-J@ZAsWHSDGCe{7oYq$HZWMw ku~7SfK|X`Xgm)ece4Cj#@9iwP2UN-6>FVdQ&MBb@05Yf+?EnA( literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter46.png b/spriteconvert/sprite/letter46.png new file mode 100644 index 0000000000000000000000000000000000000000..946f8f607bc4110c694ff06866244662c14a24dd GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqa-J@ZAsWHSDGCe{7oYq$HZWMw kF>wvUVW$#dHYY}gNt>BCckP-S1ysr4>FVdQ&MBb@03o>*_5c6? literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter47.png b/spriteconvert/sprite/letter47.png new file mode 100644 index 0000000000000000000000000000000000000000..84065707c86ec4ea74add9ae13fa558c39baf4d5 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqik>cxAsWHSDGCe{FV{b?XJ%&Z n+WI2zz-k6(p(l(@`xqFQ)-!V&_8C_I6*G9c`njxgN@xNASh*G` literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter48.png b/spriteconvert/sprite/letter48.png new file mode 100644 index 0000000000000000000000000000000000000000..aabd917e88c5993d8a466b1f5cf68f36e4e6e102 GIT binary patch literal 81 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq5}q!OAsWHSDGCe{?TecJ^YHL! d@TtGxW-wpD$T``Hu>z=u!PC{xWt~$(698D`5eonS literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter49.png b/spriteconvert/sprite/letter49.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb71bf0a3bacdcde569f2cf00a5bb873beb942a GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq2A(dCAsWHSDGCe{7oYq$HZWMw zanQnmvqZ|()I*5v!LkV{OdjTb<`2Gb@6tCAVPbGQ&B^I%d*m%pFN3G6pUXO@geCy# Cz#GE= literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter50.png b/spriteconvert/sprite/letter50.png new file mode 100644 index 0000000000000000000000000000000000000000..9995d4c77d348281206e74bbf089bd448ca32cad GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq8lEnWAsWHSDGCe{o}nM+H#Rc5 u3LCMja55JZmS}&N)o|5P#aigF2*Zix%$)6$1OEW^FnGH9xvXx<*=?+xx!D~DfGQb0UHx3vIVCg!01GJAsWHSDGCe{6QBGyHZW-T vVIZZ$8q6T%!k%Ec$d^HLS+i(_Ef0g!dM?h7vpXAsnixD?{an^LB{Ts5t3ZpP*5j3OI2IDc}46alp{c)I$ztaD0e0su=A8B_oO literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter55.png b/spriteconvert/sprite/letter55.png new file mode 100644 index 0000000000000000000000000000000000000000..83df8027ecca4130700d3a8a3dd0395d709c4d9a GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq7M?DSAsWHSDGCe{3qSo|XksLP z=GZcZB@$|V2?{e=rn{IiJ`)nT`+_TBlE%A(1tQGM%wen+w%iO>`?)xod}`+c&0z3! L^>bP0l+XkK`C}dJ literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter56.png b/spriteconvert/sprite/letter56.png new file mode 100644 index 0000000000000000000000000000000000000000..46d33c6ab544a4c33cbc72f71ae852cf40f1fe24 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqCY~;iAsWHSDGCe{6QBHdzIh^v z$AHg6=t$eeg4!2q3tq6TRJz5IvN&+f!KWTOlz6N!*77nu-@(PXvxR>aP(OpGtDnm{ Hr-UW|3o9Xu literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter57.png b/spriteconvert/sprite/letter57.png new file mode 100644 index 0000000000000000000000000000000000000000..33bfa16cdd8a96afab19e4b2edb1378b9e4d51d1 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqs-7;6AsWHSDGCe{7oYrh{#j6% q!m8j|!mGhl62MR-ALpL*)qufZCmZMe1MxLL4Gf;HelF{r5}E+ODHsd@ literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter58.png b/spriteconvert/sprite/letter58.png new file mode 100644 index 0000000000000000000000000000000000000000..3e12a68943df45074c394908cd4b1df8d8f3aa5a GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqDxNNmAsWHSDGCe{6QBHdzIh^v qM?+=>(*&m-7IQ@f-g=1iGc!o+WaC`-G1vsCp25@A&t;ucLK6VBXBXoD literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter59.png b/spriteconvert/sprite/letter59.png new file mode 100644 index 0000000000000000000000000000000000000000..2576d7c148cfdbb4435e8e419d587763ebdb974c GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqhMq2tAsWHSDGCe{8&CXCPe^F! zUaajfktNeDtUzopr0PoQq Axc~qF literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter61.png b/spriteconvert/sprite/letter61.png new file mode 100644 index 0000000000000000000000000000000000000000..42636fa8de58c63e8d22867da792c4ddaa7a45ef GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq#-1*YAsWHSDGCe{6QBH7-uUp5 z0h@FVdQ&MBb@0GbFGUjP6A literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter63.png b/spriteconvert/sprite/letter63.png new file mode 100644 index 0000000000000000000000000000000000000000..0c41790e6c5282cd9268a3829b393c9483cff87e GIT binary patch literal 81 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFq5}q!OAsWHSDGCe{?US1RN62u0 dV{nXTV6dOT$XTD3a1^M9!PC{xWt~$(6999;5?BBL literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter64.png b/spriteconvert/sprite/letter64.png new file mode 100644 index 0000000000000000000000000000000000000000..c123d8ef53f8e49f1ee4ed910f4770f1d8235e63 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqdY&$hAsWHSDGCe{6QBHdzIh^v zM?;2P}s@Fd1b{TkTDFNu6{1-oD!M{zqmrGa(=(+jSLTm@FGMea-t@~c=lf9rO80(CHWy85}Sb4q9e0NHmKGynhq literal 0 HcmV?d00001 diff --git a/spriteconvert/sprite/letter67.png b/spriteconvert/sprite/letter67.png new file mode 100644 index 0000000000000000000000000000000000000000..0d9abbb26586e8aef3daa2924b10392a167ef45c GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqik>cxAsWHSDGCe{6QBGyHZW-T nVIZaBI*Dn`G{xBl0bC67Cs{a;O=I^0DrWF>^>bP0l+XkKO2QSt literal 0 HcmV?d00001