From de070547dd1432fb2696f38c4f3a65b085e34584 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:50:23 -0300 Subject: [PATCH 01/33] Delete src/utils/aux.c --- src/utils/aux.c | 55 ------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 src/utils/aux.c diff --git a/src/utils/aux.c b/src/utils/aux.c deleted file mode 100644 index d244a29..0000000 --- a/src/utils/aux.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "aux.h" - -#include -#include - -void reverse(char str[], u32_t length) { - u32_t start = 0; - u32_t end = length - 1; - - while (start < end) { - char temp = str[start]; - str[start] = str[end]; - str[end] = temp; - start++; - end--; - } -} - -char* itoa(u32_t num, char* str, u32_t base) { - u32_t i = 0; - u32_t isNegative = 0; - - if (num == 0) { - str[i++] = '0'; - str[i] = '\0'; - return str; - } - - if (num < 0 && base == 10) { - isNegative = 1; - num = -num; - } - - while (num != 0) { - int rem = num % base; - str[i++] = (rem > 9) ? (rem - 10) + 'a' : rem + '0'; - num = num / base; - } - - if (isNegative) { - str[i++] = '-'; - } - - str[i] = '\0'; - - reverse(str, i); - - return str; -} - -int clamp(int value, int min, int max) { - if (value < min) return min; - if (value > max) return max; - return value; -} \ No newline at end of file From 36f11d1198e0c2feafeeead3ba49ae0d9210f4b4 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:50:33 -0300 Subject: [PATCH 02/33] Delete src/utils/aux.h --- src/utils/aux.h | 43 ------------------------------------------- 1 file changed, 43 deletions(-) delete mode 100644 src/utils/aux.h diff --git a/src/utils/aux.h b/src/utils/aux.h deleted file mode 100644 index cc6e05f..0000000 --- a/src/utils/aux.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef AUX_H_ -#define AUX_H_ - -#include "types.h" // Include necessary for u32_t type definition - -/** - * @brief Reverses a string. - * - * This function reverses the characters in the given string `str` of length `length`. - * - * @param str The string to be reversed. - * @param length The length of the string. - */ -void reverse(char str[], u32_t length); - -/** - * @brief Converts an unsigned integer to a string representation in a specified base. - * - * This function converts the unsigned integer `num` to a string `str` in the given `base`. - * The base must be between 2 and 36 (inclusive). The function returns a pointer to `str`. - * - * @param num The unsigned integer to be converted. - * @param str The buffer to store the resulting string. - * @param base The base for conversion (must be between 2 and 36). - * @return A pointer to the resulting string `str`. - */ -char* itoa(u32_t num, char* str, u32_t base); - -/** - * @brief Clamps a value within a specified range. - * - * This function ensures that the given `value` is within the inclusive range specified by `min` and `max`. - * If `value` is less than `min`, it returns `min`. If `value` is greater than `max`, it returns `max`. - * Otherwise, it returns `value` unchanged. - * - * @param value The value to be clamped. - * @param min The minimum allowable value. - * @param max The maximum allowable value. - * @return The clamped value. - */ -int clamp(int value, int min, int max); - -#endif // !AUX_H_ From c710a2efc03283bb95921b821b0b6763a401f5e8 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Tue, 25 Jun 2024 19:12:06 -0300 Subject: [PATCH 03/33] feat: new sprite --- src/GraphSync.c | 374 ++++-------------------------------------------- src/main.c | 12 +- 2 files changed, 38 insertions(+), 348 deletions(-) diff --git a/src/GraphSync.c b/src/GraphSync.c index 067424b..492960c 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -197,348 +197,36 @@ void clean_background() { } } -// u8_t increase_coordinate_sprite(sprite_t *sprite, int mirror) { -// u64_t angle_rad = sprite->direction * M_PI() / 180.0; - -// int delta_x = (int)round(sprite->step_x * cos(angle_rad)); -// int delta_y = (int)round(sprite->step_y * sin(angle_rad)); - -// if (sprite->coord_x < 0 || sprite->coord_x > 639 || sprite->coord_y < 0 || sprite->coord_y > 479) { -// if (mirror) { -// // Espelhar as coordenadas do sprite -// sprite->coord_x = clamp(sprite->coord_x, 0, 639); -// sprite->coord_y = clamp(sprite->coord_y, 0, 479); -// } -// return -1; -// } - -// sprite->coord_x += delta_x; -// sprite->coord_y += delta_y; - -// sprite_t sprite_copy = *sprite; -// set_dynamic_sprite(sprite_copy); - -// return 0; -// } - -void draw_picture() { - // BACKGROUND - u64_t instruction1 = set_background_color(2, 2, 3); - - // BACKGROUND BLOCKS - ground_block_t block; - block.address = 3000; - block.R = 1; - block.G = 4; - block.B = 1; - - int i = 3600; - - for (i; i < 4800; i++) { - block.address = i; - set_background_block(block); +sprite_fixed_t set_new_sprite(u16_t sprite_offset) { + u32_t dataA, dataB; + + char instruction_str[65]; + instruction_str[64] = '\0'; + + u8_t opcode = 0b0001; + u16_t init_addr = sprite_offset * 400; + + u8_t R = 1; + u8_t G = 1; + u8_t B = 1; + + u16_t max_addr = init_addr + 400; + + for (init_addr; init_addr < max_addr; init_addr++) { + dataA = init_addr << 4 | opcode; + dataB = B << 6 | G << 3 | R; + + snprintf(instruction_str, sizeof(instruction_str), "%x%08x", dataA, dataB); + + u64_t instruction = strtoull(instruction_str, NULL, 16); + + write_data(instruction); } - // ÁRVORES - sprite_fixed_t sprite_tree1; - sprite_tree1.ativo = 1; - sprite_tree1.data_register = 1; - sprite_tree1.offset = 4; - sprite_tree1.coord_x = 100; - sprite_tree1.coord_y = 400; - - set_fixed_sprite(sprite_tree1); - - sprite_fixed_t sprite_tree2; - sprite_tree2.ativo = 1; - sprite_tree2.data_register = 2; - sprite_tree2.offset = 4; - sprite_tree2.coord_x = 150; - sprite_tree2.coord_y = 350; - - set_fixed_sprite(sprite_tree2); - - sprite_fixed_t sprite_tree3; - sprite_tree3.ativo = 1; - sprite_tree3.data_register = 3; - sprite_tree3.offset = 4; - sprite_tree3.coord_x = 200; - sprite_tree3.coord_y = 450; - - set_fixed_sprite(sprite_tree3); - - sprite_fixed_t sprite_tree4; - sprite_tree4.ativo = 1; - sprite_tree4.data_register = 4; - sprite_tree4.offset = 4; - sprite_tree4.coord_x = 320; - sprite_tree4.coord_y = 460; - - set_fixed_sprite(sprite_tree4); - - sprite_fixed_t sprite_tree5; - sprite_tree5.ativo = 1; - sprite_tree5.data_register = 5; - sprite_tree5.offset = 4; - sprite_tree5.coord_x = 360; - sprite_tree5.coord_y = 400; - - set_fixed_sprite(sprite_tree5); - - sprite_fixed_t sprite_tree6; - sprite_tree6.ativo = 1; - sprite_tree6.data_register = 6; - sprite_tree6.offset = 4; - sprite_tree6.coord_x = 230; - sprite_tree6.coord_y = 400; - - set_fixed_sprite(sprite_tree6); - - sprite_fixed_t sprite_tree7; - sprite_tree7.ativo = 1; - sprite_tree7.data_register = 7; - sprite_tree7.offset = 4; - sprite_tree7.coord_x = 295; - sprite_tree7.coord_y = 350; - - set_fixed_sprite(sprite_tree7); - - sprite_fixed_t sprite_tree8; - sprite_tree8.ativo = 1; - sprite_tree8.data_register = 8; - sprite_tree8.offset = 4; - sprite_tree8.coord_x = 30; - sprite_tree8.coord_y = 355; - - set_fixed_sprite(sprite_tree8); - - sprite_fixed_t sprite_tree9; - sprite_tree9.ativo = 1; - sprite_tree9.data_register = 9; - sprite_tree9.offset = 4; - sprite_tree9.coord_x = 40; - sprite_tree9.coord_y = 450; - - set_fixed_sprite(sprite_tree9); - - sprite_fixed_t sprite_tree10; - sprite_tree10.ativo = 1; - sprite_tree10.data_register = 10; - sprite_tree10.offset = 4; - sprite_tree10.coord_x = 500; - sprite_tree10.coord_y = 450; - - set_fixed_sprite(sprite_tree10); - - sprite_fixed_t sprite_tree11; - sprite_tree11.ativo = 1; - sprite_tree11.data_register = 11; - sprite_tree11.offset = 4; - sprite_tree11.coord_x = 550; - sprite_tree11.coord_y = 350; - - set_fixed_sprite(sprite_tree11); - - // BASE DO CASTELO - polygon_t polygon_1; - polygon_1.data_register = 14; - polygon_1.type = 0; - polygon_1.size = 14; - polygon_1.ref_point_x = 450; - polygon_1.ref_point_y = 320; - polygon_1.R = 5; - polygon_1.G = 3; - polygon_1.B = 4; - - set_polygon(polygon_1); - - // TORRES DO CASTELO - - // TORRE 1 - polygon_t pol_tower_1; - pol_tower_1.data_register = 5; - pol_tower_1.type = 0; - pol_tower_1.size = 2; - pol_tower_1.ref_point_x = 390; - pol_tower_1.ref_point_y = 235; - pol_tower_1.R = 5; - pol_tower_1.G = 3; - pol_tower_1.B = 4; - - set_polygon(pol_tower_1); - - polygon_t pol_tower_11; - pol_tower_11.data_register = 6; - pol_tower_11.type = 0; - pol_tower_11.size = 2; - pol_tower_11.ref_point_x = 390; - pol_tower_11.ref_point_y = 220; - pol_tower_11.R = 5; - pol_tower_11.G = 3; - pol_tower_11.B = 4; - - set_polygon(pol_tower_11); - - // TORRE 2 - polygon_t pol_tower_2; - pol_tower_2.data_register = 7; - pol_tower_2.type = 0; - pol_tower_2.size = 2; - pol_tower_2.ref_point_x = 510; - pol_tower_2.ref_point_y = 235; - pol_tower_2.R = 5; - pol_tower_2.G = 3; - pol_tower_2.B = 4; - - set_polygon(pol_tower_2); - - polygon_t pol_tower_22; - pol_tower_22.data_register = 8; - pol_tower_22.type = 0; - pol_tower_22.size = 2; - pol_tower_22.ref_point_x = 510; - pol_tower_22.ref_point_y = 220; - pol_tower_22.R = 5; - pol_tower_22.G = 3; - pol_tower_22.B = 4; - - set_polygon(pol_tower_22); - - // TORRE 3 - polygon_t pol_tower_3; - pol_tower_3.data_register = 9; - pol_tower_3.type = 0; - pol_tower_3.size = 2; - pol_tower_3.ref_point_x = 450; - pol_tower_3.ref_point_y = 235; - pol_tower_3.R = 5; - pol_tower_3.G = 3; - pol_tower_3.B = 4; - - set_polygon(pol_tower_3); - - polygon_t pol_tower_33; - pol_tower_33.data_register = 10; - pol_tower_33.type = 0; - pol_tower_33.size = 2; - pol_tower_33.ref_point_x = 450; - pol_tower_33.ref_point_y = 210; - pol_tower_33.R = 5; - pol_tower_33.G = 3; - pol_tower_33.B = 4; - - set_polygon(pol_tower_33); - - // TELHADOS - polygon_t pol_tel_1; - pol_tel_1.data_register = 11; - pol_tel_1.type = 1; - pol_tel_1.size = 3; - pol_tel_1.ref_point_x = 390; - pol_tel_1.ref_point_y = 185; - pol_tel_1.R = 3; - pol_tel_1.G = 1; - pol_tel_1.B = 1; - - set_polygon(pol_tel_1); - - polygon_t pol_tel_2; - pol_tel_2.data_register = 12; - pol_tel_2.type = 1; - pol_tel_2.size = 3; - pol_tel_2.ref_point_x = 510; - pol_tel_2.ref_point_y = 185; - pol_tel_2.R = 3; - pol_tel_2.G = 1; - pol_tel_2.B = 1; - - set_polygon(pol_tel_2); - - polygon_t pol_tel_3; - pol_tel_3.data_register = 13; - pol_tel_3.type = 1; - pol_tel_3.size = 5; - pol_tel_3.ref_point_x = 450; - pol_tel_3.ref_point_y = 165; - pol_tel_3.R = 3; - pol_tel_3.G = 1; - pol_tel_3.B = 1; - - set_polygon(pol_tel_3); - - // PORTA DO CASTELO - polygon_t pol_door; - pol_door.data_register = 4; - pol_door.type = 0; - pol_door.size = 5; - pol_door.ref_point_x = 450; - pol_door.ref_point_y = 365; - pol_door.R = 3; - pol_door.G = 1; - pol_door.B = 1; - - set_polygon(pol_door); - - // SOL - polygon_t pol_sun; - pol_sun.data_register = 1; - pol_sun.type = 0; - pol_sun.size = 5; - pol_sun.ref_point_x = 80; - pol_sun.ref_point_y = 80; - pol_sun.R = 7; - pol_sun.G = 5; - pol_sun.B = 0; - - set_polygon(pol_sun); - - // NÚVENS - ground_block_t block_cloud; - block_cloud.R = 7; - block_cloud.G = 7; - block_cloud.B = 7; - - block_cloud.address = 500; - set_background_block(block_cloud); - block_cloud.address = 501; - set_background_block(block_cloud); - block_cloud.address = 502; - set_background_block(block_cloud); - block_cloud.address = 503; - set_background_block(block_cloud); - - block_cloud.address = 579; - set_background_block(block_cloud); - block_cloud.address = 580; - set_background_block(block_cloud); - block_cloud.address = 581; - set_background_block(block_cloud); - block_cloud.address = 582; - set_background_block(block_cloud); - block_cloud.address = 583; - set_background_block(block_cloud); - block_cloud.address = 584; - set_background_block(block_cloud); - - block_cloud.address = 905; - set_background_block(block_cloud); - block_cloud.address = 906; - set_background_block(block_cloud); - block_cloud.address = 907; - set_background_block(block_cloud); - block_cloud.address = 908; - set_background_block(block_cloud); - - block_cloud.address = 984; - set_background_block(block_cloud); - block_cloud.address = 985; - set_background_block(block_cloud); - block_cloud.address = 986; - set_background_block(block_cloud); - block_cloud.address = 987; - set_background_block(block_cloud); - block_cloud.address = 988; - set_background_block(block_cloud); - block_cloud.address = 989; - set_background_block(block_cloud); -} + sprite_fixed_t new_sprite; + new_sprite.offset = sprite_offset; + + close_data(device_fd); + + return new_sprite; +} \ No newline at end of file diff --git a/src/main.c b/src/main.c index 8f47010..62361f8 100644 --- a/src/main.c +++ b/src/main.c @@ -9,13 +9,15 @@ #include "GraphSync.h" int main(void) { - clean_polygon(); - clean_sprite(); - clean_background(); + u16_t offset = 25; + sprite_fixed_t new_sprite = set_new_sprite(offset); - sleep(5); + new_sprite.ativo = 1; + new_sprite.coord_x = 10; + new_sprite.coord_y = 10; + new_sprite.data_register = 2; - draw_picture(); + set_fixed_sprite(new_sprite); return 0; } From f336a08869ce433c74e4774e6bc63679c17522dc Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Tue, 25 Jun 2024 19:35:56 -0300 Subject: [PATCH 04/33] Update GraphSync.c --- src/GraphSync.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/src/GraphSync.c b/src/GraphSync.c index 492960c..4197fc6 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -229,4 +229,71 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { close_data(device_fd); return new_sprite; -} \ No newline at end of file +} + +// sprite_fixed_t set_new_sprite(u16_t sprite_offset) { +// u32_t dataA, dataB; + +// char instruction_str[65]; +// instruction_str[64] = '\0'; + +// u8_t opcode = 0b0001; +// u16_t init_addr = sprite_offset * 400; + +// // Cores da imagem do cacto +// u8_t pixel_data[400][3] = { +// {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, +// {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, +// {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, +// {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 3, 1}, {0, 3, 1}, {0, 3, 1}, {0, 3, 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, 3, 1}, {2, 3, 0}, {2, 3, 0}, {3, 5, 0}, {2, 3, 0}, {0, 3, 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, 3, 1}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 3, 1}, {3, 5, 0}, {5, 7, 0}, +// {5, 7, 0}, {3, 5, 0}, {0, 3, 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, 3, 1}, {3, 5, 0}, {0, 3, 1}, {0, 0, 0}, +// {0, 0, 0}, {0, 3, 1}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {0, 3, 1}, {0, 0, 0}, +// {0, 0, 0}, {0, 3, 1}, {0, 3, 1}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 3, 1}, +// {3, 5, 0}, {0, 3, 1}, {0, 0, 0}, {0, 0, 0}, {0, 3, 1}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, +// {3, 5, 0}, {0, 3, 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, 3, 1}, {2, 3, 0}, {2, 3, 0}, {3, 5, 0}, {2, 3, 0}, {0, 3, 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, 3, 1}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, +// {3, 5, 0}, {0, 3, 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, 3, 1}, {3, 5, 0}, {0, 3, 1}, {0, 0, 0}, +// {0, 0, 0}, {0, 3, 1}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {0, 3, 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, 0}, {0, 0, 0}, {0, 0, 0}, +// {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} +// }; + +// u16_t max_addr = init_addr + 400; + +// for (u16_t addr = init_addr; addr < max_addr; addr++) { +// u16_t pixel_idx = addr - init_addr; +// u8_t R = pixel_data[pixel_idx][0]; +// u8_t G = pixel_data[pixel_idx][1]; +// u8_t B = pixel_data[pixel_idx][2]; + +// dataA = addr << 4 | opcode; +// dataB = B << 6 | G << 3 | R; + +// snprintf(instruction_str, sizeof(instruction_str), "%x%08x", dataA, dataB); + +// u64_t instruction = strtoull(instruction_str, NULL, 16); + +// write_data(instruction); +// } + +// sprite_fixed_t new_sprite; +// new_sprite.offset = sprite_offset; + +// close_data(device_fd); + +// return new_sprite; +// } From 058a3af371591fc8769b491f33e3d975fe1bb65e Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:22:41 -0300 Subject: [PATCH 05/33] Update Makefile --- src/Makefile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Makefile b/src/Makefile index 01b4653..df6f342 100644 --- a/src/Makefile +++ b/src/Makefile @@ -8,7 +8,7 @@ KERNEL_DIR = /lib/modules/$(shell uname -r)/build SOURCES = GraphSync.c main.c # All *.h files. -HEADERS = utils/ui.h utils/types.h GraphSync.h +HEADERS = utils/types.h GraphSync.h all: build kernel @@ -17,13 +17,11 @@ build: build/dir build/main build/dir: @mkdir -p build -build/main: build/GraphSync.o build/aux.o build/main.o - @gcc build/GraphSync.o build/aux.o build/main.o -o build/main +build/main: build/GraphSync.o build/main.o + @gcc build/GraphSync.o build/main.o -o build/main -build/aux.o: utils/aux.c utils/types.h - @gcc -c utils/aux.c -o build/aux.o -Isrc -Iutils -build/GraphSync.o: GraphSync.c GraphSync.h utils/ui.h utils/types.h build/aux.o +build/GraphSync.o: GraphSync.c GraphSync.h utils/ui.h utils/types.h @gcc -c GraphSync.c -o build/GraphSync.o -Isrc -Iutils build/main.o: main.c GraphSync.h utils/ui.h utils/types.h From 0cc8685262b03cc8c5eac371a4bd52575dd5b709 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:23:24 -0300 Subject: [PATCH 06/33] Update GraphSync.c --- src/GraphSync.c | 114 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 107 insertions(+), 7 deletions(-) diff --git a/src/GraphSync.c b/src/GraphSync.c index 492960c..601135b 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -11,7 +11,7 @@ #include #include -#include "utils/aux.h" +#define DEVICE_PATH "/dev/gpp_data_bus" /**< Path to device data bus */ static int device_fd = -1; @@ -206,14 +206,59 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { u8_t opcode = 0b0001; u16_t init_addr = sprite_offset * 400; - u8_t R = 1; - u8_t G = 1; - u8_t B = 1; + // Cores da imagem do cacto + u8_t pixel_data[400][3] = { + {7, 2, 2}, {7, 2, 2}, {7, 2, 2}, {7, 2, 2}, {7, 2, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; u16_t max_addr = init_addr + 400; + u16_t addr; - for (init_addr; init_addr < max_addr; init_addr++) { - dataA = init_addr << 4 | opcode; + for (addr = init_addr; addr < max_addr; addr++) { + u16_t pixel_idx = addr - init_addr; + u8_t R = pixel_data[pixel_idx][0]; + u8_t G = pixel_data[pixel_idx][1]; + u8_t B = pixel_data[pixel_idx][2]; + + dataA = addr << 4 | opcode; dataB = B << 6 | G << 3 | R; snprintf(instruction_str, sizeof(instruction_str), "%x%08x", dataA, dataB); @@ -229,4 +274,59 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { close_data(device_fd); return new_sprite; -} \ No newline at end of file +} + +// u8_t draw_sprite(void) { +// // Pixels de uma sprite vazia +// u8_t pixel_data[400][3] = { +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; + +// u16_t i, j = 0; + +// for (i; i < 400; i++) { +// pixel_data[i][0] = 5; // R +// pixel_data[i][1] = 5; // G +// pixel_data[i][2] = 5; // B +// } + +// return pixel_data; +// } From 5f5e40cb98700df1773f3a18b1e002c2c0914899 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:23:44 -0300 Subject: [PATCH 07/33] Update GraphSync.h --- src/GraphSync.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/GraphSync.h b/src/GraphSync.h index 4065009..1dfa202 100644 --- a/src/GraphSync.h +++ b/src/GraphSync.h @@ -1,7 +1,6 @@ #include #include "utils/types.h" -#include "utils/ui.h" // Structure definition for dynamic sprite typedef struct sprite_t sprite_t; @@ -124,4 +123,4 @@ void clean_polygon(); void clean_background(); -void draw_picture(); +sprite_fixed_t set_new_sprite(u16_t sprite_offset); From dd39de88670bb3da77c8f8c8c2f68f9f07ca3268 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:47:11 -0300 Subject: [PATCH 08/33] Create makingSprite.py --- src/makingSprite.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/makingSprite.py diff --git a/src/makingSprite.py b/src/makingSprite.py new file mode 100644 index 0000000..6d743b2 --- /dev/null +++ b/src/makingSprite.py @@ -0,0 +1,5 @@ +from PIL import Image + +spritePixels = Imagem.open("path") + +rgbTest = spritePixels.getPixel(00) From c22a584f48221a93426f06d5f75e9533a1b075ac Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:48:08 -0300 Subject: [PATCH 09/33] Update makingSprite.py --- src/makingSprite.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/makingSprite.py b/src/makingSprite.py index 6d743b2..2d4a964 100644 --- a/src/makingSprite.py +++ b/src/makingSprite.py @@ -3,3 +3,5 @@ spritePixels = Imagem.open("path") rgbTest = spritePixels.getPixel(00) + +#https://imasters.com.br/back-end/primeiros-passos-com-pil-a-biblioteca-de-imagens-do-python From 6c57d6e19074f74bfadbf2097bd7583f7579804e Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Fri, 28 Jun 2024 11:56:02 -0300 Subject: [PATCH 10/33] Update makingSprite.py --- src/makingSprite.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/makingSprite.py b/src/makingSprite.py index 2d4a964..84bccd1 100644 --- a/src/makingSprite.py +++ b/src/makingSprite.py @@ -2,6 +2,14 @@ spritePixels = Imagem.open("path") -rgbTest = spritePixels.getPixel(00) + +matrizRGB = [] +rgb = [] + +for line in range(20): + for col in range(20): + coordinates = line, col + rgbTest = spritePixels.getPixel(coordinates) + print(rgbTest) #https://imasters.com.br/back-end/primeiros-passos-com-pil-a-biblioteca-de-imagens-do-python From b819d03b4309856afd5ede4f7befbe09acf3e4e5 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:28:58 -0300 Subject: [PATCH 11/33] feat: making sprite --- docs/cactus-sprite-pixilart.png | Bin 0 -> 346 bytes src/makingSprite.py | 13 ++++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 docs/cactus-sprite-pixilart.png diff --git a/docs/cactus-sprite-pixilart.png b/docs/cactus-sprite-pixilart.png new file mode 100644 index 0000000000000000000000000000000000000000..7756227117d6b0407f025c83023335988402fdcf GIT binary patch literal 346 zcmV-g0j2(lP)Px$6iGxuR5(v#WS}x&BxIgMjp=`6H7{CD<7Zga z^%3qZd Date: Mon, 1 Jul 2024 14:54:42 -0300 Subject: [PATCH 12/33] Update makingSprite.py --- src/makingSprite.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/makingSprite.py b/src/makingSprite.py index 72cb3aa..c3b33a0 100644 --- a/src/makingSprite.py +++ b/src/makingSprite.py @@ -1,8 +1,6 @@ from PIL import Image spritePixels = Image.open("docs\cactus-sprite-pixilart.png") -px = spritePixels.load() -px[4, 4] = (0, 0, 0) matrizRGB = [] rgb = [] @@ -11,8 +9,19 @@ for col in range(20): coordinates = line, col rgbValues = spritePixels.getpixel(coordinates) - print(rgbValues[:3]) + #print(rgbValues[:3]) rgb.append(rgbValues[:3]) +transparentColor = [6, 7, 7] + for color in rgb: - \ No newline at end of file + if color == (0, 0, 0): + matrizRGB.append(transparentColor) + else: + newColor = [] + for number in color: + convertedRGB = int(number/32) + newColor.append(convertedRGB) + matrizRGB.append(newColor) + +print(matrizRGB) \ No newline at end of file From 9de1a03c8c43b670bf17fb1e696c2911ca94db4e Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Mon, 1 Jul 2024 16:47:39 -0300 Subject: [PATCH 13/33] Update GraphSync.c --- src/GraphSync.c | 88 ++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/src/GraphSync.c b/src/GraphSync.c index b947e07..569eab5 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -207,47 +207,53 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { u16_t init_addr = sprite_offset * 400; // Cores da imagem do cacto - u8_t pixel_data[400][3] = { - {7, 2, 2}, {7, 2, 2}, {7, 2, 2}, {7, 2, 2}, {7, 2, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; + u8_t pixel_data[400][3] = [ + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], + [ 0, 3, 1 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], + [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 3, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 0, 3, 1 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 3, 5, 0 ], + [ 5, 7, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], + [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 0, 3, 1 ], [ 5, 7, 0 ], [ 2, 3, 0 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], + [ 3, 1, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], + [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 5, 7, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], + [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], + [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], + [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], + [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], + [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], + [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], + [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], + [ 3, 5, 0 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], + [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], + [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 5, 7, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], + [ 3, 5, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 3, 5, 0 ], + [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], + [ 5, 7, 0 ], [ 2, 3, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], + [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], + [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 0, 3, 1 ], [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], + [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ] + ]; u16_t max_addr = init_addr + 400; u16_t addr; From 2642af310975e0978814954171717986328aa16e Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Mon, 1 Jul 2024 17:08:14 -0300 Subject: [PATCH 14/33] Create frog.png --- docs/frog.png | Bin 0 -> 474 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/frog.png diff --git a/docs/frog.png b/docs/frog.png new file mode 100644 index 0000000000000000000000000000000000000000..032486d9a540fb624db3f8cf2e15864d46068ad3 GIT binary patch literal 474 zcmV<00VV#4P)Px$lu1NER5(v#WWWvnL!}tel;9EvD??Wd)BC^R!2~dSfVb z4^~w8a3ai51{~rjW?(h&|Ns9CjEoQ|5F2DD2!Jd>7KgG)H&A(#FWA7lew#@)@W1=6 zbcWmCpW=xtgp?|$G{a7}nJ96A5raw_eHiZfZ(#t@_y9}|h(?ZFtOkNq;4>6ij*x-i zcmTPsQR6m4tolu?j$C|GouU4QD%eu=q=z+@K?b&&US#ZZXmue zB-TK1wgR~@_`?YXV^>bBW}e;sonftj1_D9M150W79V7m8pQ3Noxa{ta9W zOb^s%aCQKvJs2RzKxDmO1Ci4la{401h3I<021?YJf-T`P6^ExkXp&$+HWcPvSUAHh z|91K%SpSQb)9~U89vN5?E!a>H0EHdQFyzD!vmBHrk<%egLt)-Rw+t3}un0kp?*D?} zstoL^0&u5;7@(j4c>@+CFgA#W$%E*hw?8nvUwIpB9?XTXVjW*vCPt1C0IHt!5?11r Q>i_@%07*qoM6N<$g637k<^TWy literal 0 HcmV?d00001 From 4ebfa3d62dab89ef4b4cbc53653b103903efe4bf Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:05:55 -0300 Subject: [PATCH 15/33] Update main.c --- src/main.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index 62361f8..c9d80e7 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -8,16 +9,48 @@ #include "GraphSync.h" +int fd; + int main(void) { + struct input_event ev; + + fd = open("/dev/input/event0", O_RDONLY); + if (fd == -1) { + perror("Erro ao abrir o dispositivo de entrada"); + exit(EXIT_FAILURE); + } + + set_background_color(1, 1, 1); + u16_t offset = 25; sprite_fixed_t new_sprite = set_new_sprite(offset); + u16_t center_x = 320; + u16_t center_y = 10; + new_sprite.ativo = 1; - new_sprite.coord_x = 10; - new_sprite.coord_y = 10; + new_sprite.coord_x = center_x; + new_sprite.coord_y = center_y; new_sprite.data_register = 2; set_fixed_sprite(new_sprite); + while (1) { + ssize_t bytes = read(fd, &ev, sizeof(struct input_event)); + if (bytes < sizeof(struct input_event)) { + perror("Erro ao ler evento"); + exit(EXIT_FAILURE); + } + + // Atualiza a posição do cursor baseado no movimento do mouse + if (ev.type == EV_REL && ev.code == REL_X) { + new_sprite.coord_x += ev.value; + } else if (ev.type == EV_REL && ev.code == REL_Y) { + // new_sprite.coord_y += ev.value; + } + + set_fixed_sprite(new_sprite); + } + return 0; } From 97a0462caa3b0cb0a77ad11d2c1eea29fd3aba49 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:06:46 -0300 Subject: [PATCH 16/33] Update GraphSync.c --- src/GraphSync.c | 88 +++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 47 deletions(-) diff --git a/src/GraphSync.c b/src/GraphSync.c index 569eab5..e490493 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -207,53 +207,47 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { u16_t init_addr = sprite_offset * 400; // Cores da imagem do cacto - u8_t pixel_data[400][3] = [ - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], - [ 0, 3, 1 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], - [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 3, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 0, 3, 1 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 3, 5, 0 ], - [ 5, 7, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], - [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 0, 3, 1 ], [ 5, 7, 0 ], [ 2, 3, 0 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], - [ 3, 1, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], - [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 5, 7, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], - [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], - [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], - [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], - [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], - [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], - [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], - [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], - [ 3, 5, 0 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 2, 1, 0 ], - [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], - [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 2, 3, 0 ], [ 5, 7, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], - [ 3, 5, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 4, 2, 1 ], [ 4, 2, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], [ 3, 5, 0 ], - [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 3, 1, 1 ], [ 3, 1, 1 ], [ 2, 1, 0 ], [ 2, 1, 0 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 3, 5, 0 ], [ 5, 7, 0 ], - [ 5, 7, 0 ], [ 2, 3, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], [ 2, 1, 0 ], - [ 2, 1, 0 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 2, 3, 0 ], - [ 5, 7, 0 ], [ 5, 7, 0 ], [ 5, 7, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 2, 1, 0 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 0, 3, 1 ], [ 2, 3, 0 ], [ 3, 5, 0 ], [ 3, 5, 0 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 0, 3, 1 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], - [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ], [ 6, 7, 7 ] - ]; + u8_t pixel_data[400][3] = { + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, + {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {3, 7, 4}, + {3, 7, 4}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {1, 5, 2}, + {1, 5, 2}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 6, 1}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 6, 1}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, + {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, + {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, + {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, + {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, + {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, + {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {0, 2, 1}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, + {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {0, 2, 1}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; u16_t max_addr = init_addr + 400; u16_t addr; From 20456189d2fad1200b3985ca270bec257b50bcc2 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:07:23 -0300 Subject: [PATCH 17/33] Update makingSprite.py --- src/makingSprite.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/makingSprite.py b/src/makingSprite.py index c3b33a0..ba7b555 100644 --- a/src/makingSprite.py +++ b/src/makingSprite.py @@ -1,13 +1,13 @@ from PIL import Image -spritePixels = Image.open("docs\cactus-sprite-pixilart.png") +spritePixels = Image.open("docs/frog.png") matrizRGB = [] rgb = [] for line in range(20): for col in range(20): - coordinates = line, col + coordinates = col, line rgbValues = spritePixels.getpixel(coordinates) #print(rgbValues[:3]) rgb.append(rgbValues[:3]) @@ -24,4 +24,4 @@ newColor.append(convertedRGB) matrizRGB.append(newColor) -print(matrizRGB) \ No newline at end of file +print(matrizRGB) From 7f9e1474b15d2080220e80353c7f2b0d9f0d7d6a Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Thu, 4 Jul 2024 13:38:46 -0300 Subject: [PATCH 18/33] Update main.c --- src/main.c | 154 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 127 insertions(+), 27 deletions(-) diff --git a/src/main.c b/src/main.c index c9d80e7..0686bc8 100644 --- a/src/main.c +++ b/src/main.c @@ -5,52 +5,152 @@ #include #include #include +#include #include #include "GraphSync.h" -int fd; +#define HEX5_BASE 0x10 +#define HEX4_BASE 0x20 +#define HEX3_BASE 0x30 +#define HEX2_BASE 0x40 +#define HEX1_BASE 0x50 +#define HEX0_BASE 0x60 + +#define HEX5_BASE_PHY (LW_VIRTUAL + HEX5_BASE) +#define HEX4_BASE_PHY (LW_VIRTUAL + HEX4_BASE) +#define HEX3_BASE_PHY (LW_VIRTUAL + HEX3_BASE) +#define HEX2_BASE_PHY (LW_VIRTUAL + HEX2_BASE) +#define HEX1_BASE_PHY (LW_VIRTUAL + HEX1_BASE) +#define HEX0_BASE_PHY (LW_VIRTUAL + HEX0_BASE) + +#define KEY_BASE 0x0 + +#define LW_BRIDGE_SPAN 0x00005000 +#define LW_BRIDGE_BASE 0xff200000 + +// int fd; +// --------------- MÁQUINA DE ESTADOS DAS TELAS ----------------- +void change_state(u64_t state) { + switch (state) { + case 0: + set_background_color(1, 1, 1); + break; + + case 1: + set_background_color(6, 1, 1); + break; + + case 2: + set_background_color(1, 6, 1); + break; + + case 3: + set_background_color(1, 1, 6); + break; + + default: + break; + } +} + +//------------------------------------------------------------- int main(void) { - struct input_event ev; + // --------------------- TESTE DA MUDANÇA DE TELA COM OS BOTÕES ------------------------------------- + volatile u64_t *KEY_ptr; + u64_t fd = -1; + void *LW_virtual; - fd = open("/dev/input/event0", O_RDONLY); + fd = open("/dev/mem", (O_RDWR | O_SYNC)); if (fd == -1) { - perror("Erro ao abrir o dispositivo de entrada"); - exit(EXIT_FAILURE); + return -1; } - set_background_color(1, 1, 1); + LW_virtual = mmap(NULL, LW_BRIDGE_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, LW_BRIDGE_BASE); - u16_t offset = 25; - sprite_fixed_t new_sprite = set_new_sprite(offset); + if (LW_virtual == MAP_FAILED) { + close(fd); + return -1; + } - u16_t center_x = 320; - u16_t center_y = 10; + KEY_ptr = (u64_t *)(LW_virtual + KEY_BASE); - new_sprite.ativo = 1; - new_sprite.coord_x = center_x; - new_sprite.coord_y = center_y; - new_sprite.data_register = 2; + u64_t state_game; - set_fixed_sprite(new_sprite); + state_game = 0; while (1) { - ssize_t bytes = read(fd, &ev, sizeof(struct input_event)); - if (bytes < sizeof(struct input_event)) { - perror("Erro ao ler evento"); - exit(EXIT_FAILURE); - } - - // Atualiza a posição do cursor baseado no movimento do mouse - if (ev.type == EV_REL && ev.code == REL_X) { - new_sprite.coord_x += ev.value; - } else if (ev.type == EV_REL && ev.code == REL_Y) { - // new_sprite.coord_y += ev.value; + if (*KEY_ptr == 0b1111) { + // state_game = 0; + // Mantem o estado anterior + } else if (*KEY_ptr == 0b1110) { + state_game = 1; + change_state(state_game); + } else if (*KEY_ptr == 0b1101) { + state_game = 2; + change_state(state_game); + } else if (*KEY_ptr == 0b1011) { + state_game = 3; + change_state(state_game); } + } - set_fixed_sprite(new_sprite); + if (munmap(LW_virtual, LW_BRIDGE_SPAN) != 0) { + return -1; } + close(fd); + + //----------------------- TESTE DO MÓDULO DE KERNEL (VELOCIDADE QUE DESENHA E APAGA) ------------------------------- + // draw_picture(); + + // // sleep(1); + // clean_background(); + // clean_polygon(); + // clean_sprite(); + + //----------------------- TESTE DO MOVIMENTO DO MOUSE (COM SPRITE COMO CURSOR) -------------------------------- + + // struct input_event ev; + + // fd = open("/dev/input/event0", O_RDONLY); + // if (fd == -1) { + // perror("Erro ao abrir o dispositivo de entrada"); + // exit(EXIT_FAILURE); + // } + + // set_background_color(1, 1, 1); + + // u16_t offset = 25; + // sprite_fixed_t new_sprite = set_new_sprite(offset); + + // u16_t center_x = 320; + // u16_t center_y = 10; + + // new_sprite.ativo = 1; + // new_sprite.coord_x = center_x; + // new_sprite.coord_y = center_y; + // new_sprite.data_register = 2; + + // set_fixed_sprite(new_sprite); + + // while (1) { + // ssize_t bytes = read(fd, &ev, sizeof(struct input_event)); + // if (bytes < sizeof(struct input_event)) { + // perror("Erro ao ler evento"); + // exit(EXIT_FAILURE); + // } + + // // Atualiza a posição do cursor baseado no movimento do mouse + // if (ev.type == EV_REL && ev.code == REL_X) { + // new_sprite.coord_x += ev.value; + // } else if (ev.type == EV_REL && ev.code == REL_Y) { + // // new_sprite.coord_y += ev.value; + // } + + // set_fixed_sprite(new_sprite); + // } + return 0; } From cb7acd1cb7f884aae44204e9dbcf8ae2ef94f755 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Thu, 4 Jul 2024 13:39:57 -0300 Subject: [PATCH 19/33] Update GraphSync.c --- src/GraphSync.c | 322 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 322 insertions(+) diff --git a/src/GraphSync.c b/src/GraphSync.c index e490493..576fa6e 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -275,3 +275,325 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { return new_sprite; } + +void draw_picture() { + // BACKGROUND + u64_t instruction1 = set_background_color(2, 2, 3); + + // BACKGROUND BLOCKS + ground_block_t block; + block.address = 3000; + block.R = 1; + block.G = 4; + block.B = 1; + + int i = 3600; + + for (i; i < 4800; i++) { + block.address = i; + set_background_block(block); + } + + // ÁRVORES + sprite_fixed_t sprite_tree1; + sprite_tree1.ativo = 1; + sprite_tree1.data_register = 1; + sprite_tree1.offset = 4; + sprite_tree1.coord_x = 100; + sprite_tree1.coord_y = 400; + + set_fixed_sprite(sprite_tree1); + + sprite_fixed_t sprite_tree2; + sprite_tree2.ativo = 1; + sprite_tree2.data_register = 2; + sprite_tree2.offset = 4; + sprite_tree2.coord_x = 150; + sprite_tree2.coord_y = 350; + + set_fixed_sprite(sprite_tree2); + + sprite_fixed_t sprite_tree3; + sprite_tree3.ativo = 1; + sprite_tree3.data_register = 3; + sprite_tree3.offset = 4; + sprite_tree3.coord_x = 200; + sprite_tree3.coord_y = 450; + + set_fixed_sprite(sprite_tree3); + + sprite_fixed_t sprite_tree4; + sprite_tree4.ativo = 1; + sprite_tree4.data_register = 4; + sprite_tree4.offset = 4; + sprite_tree4.coord_x = 320; + sprite_tree4.coord_y = 460; + + set_fixed_sprite(sprite_tree4); + + sprite_fixed_t sprite_tree5; + sprite_tree5.ativo = 1; + sprite_tree5.data_register = 5; + sprite_tree5.offset = 4; + sprite_tree5.coord_x = 360; + sprite_tree5.coord_y = 400; + + set_fixed_sprite(sprite_tree5); + + sprite_fixed_t sprite_tree6; + sprite_tree6.ativo = 1; + sprite_tree6.data_register = 6; + sprite_tree6.offset = 4; + sprite_tree6.coord_x = 230; + sprite_tree6.coord_y = 400; + + set_fixed_sprite(sprite_tree6); + + sprite_fixed_t sprite_tree7; + sprite_tree7.ativo = 1; + sprite_tree7.data_register = 7; + sprite_tree7.offset = 4; + sprite_tree7.coord_x = 295; + sprite_tree7.coord_y = 350; + + set_fixed_sprite(sprite_tree7); + + sprite_fixed_t sprite_tree8; + sprite_tree8.ativo = 1; + sprite_tree8.data_register = 8; + sprite_tree8.offset = 4; + sprite_tree8.coord_x = 30; + sprite_tree8.coord_y = 355; + + set_fixed_sprite(sprite_tree8); + + sprite_fixed_t sprite_tree9; + sprite_tree9.ativo = 1; + sprite_tree9.data_register = 9; + sprite_tree9.offset = 4; + sprite_tree9.coord_x = 40; + sprite_tree9.coord_y = 450; + + set_fixed_sprite(sprite_tree9); + + sprite_fixed_t sprite_tree10; + sprite_tree10.ativo = 1; + sprite_tree10.data_register = 10; + sprite_tree10.offset = 4; + sprite_tree10.coord_x = 500; + sprite_tree10.coord_y = 450; + + set_fixed_sprite(sprite_tree10); + + sprite_fixed_t sprite_tree11; + sprite_tree11.ativo = 1; + sprite_tree11.data_register = 11; + sprite_tree11.offset = 4; + sprite_tree11.coord_x = 550; + sprite_tree11.coord_y = 350; + + set_fixed_sprite(sprite_tree11); + + // BASE DO CASTELO + polygon_t polygon_1; + polygon_1.data_register = 14; + polygon_1.type = 0; + polygon_1.size = 14; + polygon_1.ref_point_x = 450; + polygon_1.ref_point_y = 320; + polygon_1.R = 5; + polygon_1.G = 3; + polygon_1.B = 4; + + set_polygon(polygon_1); + + // TORRES DO CASTELO + + // TORRE 1 + polygon_t pol_tower_1; + pol_tower_1.data_register = 5; + pol_tower_1.type = 0; + pol_tower_1.size = 2; + pol_tower_1.ref_point_x = 390; + pol_tower_1.ref_point_y = 235; + pol_tower_1.R = 5; + pol_tower_1.G = 3; + pol_tower_1.B = 4; + + set_polygon(pol_tower_1); + + polygon_t pol_tower_11; + pol_tower_11.data_register = 6; + pol_tower_11.type = 0; + pol_tower_11.size = 2; + pol_tower_11.ref_point_x = 390; + pol_tower_11.ref_point_y = 220; + pol_tower_11.R = 5; + pol_tower_11.G = 3; + pol_tower_11.B = 4; + + set_polygon(pol_tower_11); + + // TORRE 2 + polygon_t pol_tower_2; + pol_tower_2.data_register = 7; + pol_tower_2.type = 0; + pol_tower_2.size = 2; + pol_tower_2.ref_point_x = 510; + pol_tower_2.ref_point_y = 235; + pol_tower_2.R = 5; + pol_tower_2.G = 3; + pol_tower_2.B = 4; + + set_polygon(pol_tower_2); + + polygon_t pol_tower_22; + pol_tower_22.data_register = 8; + pol_tower_22.type = 0; + pol_tower_22.size = 2; + pol_tower_22.ref_point_x = 510; + pol_tower_22.ref_point_y = 220; + pol_tower_22.R = 5; + pol_tower_22.G = 3; + pol_tower_22.B = 4; + + set_polygon(pol_tower_22); + + // TORRE 3 + polygon_t pol_tower_3; + pol_tower_3.data_register = 9; + pol_tower_3.type = 0; + pol_tower_3.size = 2; + pol_tower_3.ref_point_x = 450; + pol_tower_3.ref_point_y = 235; + pol_tower_3.R = 5; + pol_tower_3.G = 3; + pol_tower_3.B = 4; + + set_polygon(pol_tower_3); + + polygon_t pol_tower_33; + pol_tower_33.data_register = 10; + pol_tower_33.type = 0; + pol_tower_33.size = 2; + pol_tower_33.ref_point_x = 450; + pol_tower_33.ref_point_y = 210; + pol_tower_33.R = 5; + pol_tower_33.G = 3; + pol_tower_33.B = 4; + + set_polygon(pol_tower_33); + + // TELHADOS + polygon_t pol_tel_1; + pol_tel_1.data_register = 11; + pol_tel_1.type = 1; + pol_tel_1.size = 3; + pol_tel_1.ref_point_x = 390; + pol_tel_1.ref_point_y = 185; + pol_tel_1.R = 3; + pol_tel_1.G = 1; + pol_tel_1.B = 1; + + set_polygon(pol_tel_1); + + polygon_t pol_tel_2; + pol_tel_2.data_register = 12; + pol_tel_2.type = 1; + pol_tel_2.size = 3; + pol_tel_2.ref_point_x = 510; + pol_tel_2.ref_point_y = 185; + pol_tel_2.R = 3; + pol_tel_2.G = 1; + pol_tel_2.B = 1; + + set_polygon(pol_tel_2); + + polygon_t pol_tel_3; + pol_tel_3.data_register = 13; + pol_tel_3.type = 1; + pol_tel_3.size = 5; + pol_tel_3.ref_point_x = 450; + pol_tel_3.ref_point_y = 165; + pol_tel_3.R = 3; + pol_tel_3.G = 1; + pol_tel_3.B = 1; + + set_polygon(pol_tel_3); + + // PORTA DO CASTELO + polygon_t pol_door; + pol_door.data_register = 4; + pol_door.type = 0; + pol_door.size = 5; + pol_door.ref_point_x = 450; + pol_door.ref_point_y = 365; + pol_door.R = 3; + pol_door.G = 1; + pol_door.B = 1; + + set_polygon(pol_door); + + // SOL + polygon_t pol_sun; + pol_sun.data_register = 1; + pol_sun.type = 0; + pol_sun.size = 5; + pol_sun.ref_point_x = 80; + pol_sun.ref_point_y = 80; + pol_sun.R = 7; + pol_sun.G = 5; + pol_sun.B = 0; + + set_polygon(pol_sun); + + // NÚVENS + ground_block_t block_cloud; + block_cloud.R = 7; + block_cloud.G = 7; + block_cloud.B = 7; + + block_cloud.address = 500; + set_background_block(block_cloud); + block_cloud.address = 501; + set_background_block(block_cloud); + block_cloud.address = 502; + set_background_block(block_cloud); + block_cloud.address = 503; + set_background_block(block_cloud); + + block_cloud.address = 579; + set_background_block(block_cloud); + block_cloud.address = 580; + set_background_block(block_cloud); + block_cloud.address = 581; + set_background_block(block_cloud); + block_cloud.address = 582; + set_background_block(block_cloud); + block_cloud.address = 583; + set_background_block(block_cloud); + block_cloud.address = 584; + set_background_block(block_cloud); + + block_cloud.address = 905; + set_background_block(block_cloud); + block_cloud.address = 906; + set_background_block(block_cloud); + block_cloud.address = 907; + set_background_block(block_cloud); + block_cloud.address = 908; + set_background_block(block_cloud); + + block_cloud.address = 984; + set_background_block(block_cloud); + block_cloud.address = 985; + set_background_block(block_cloud); + block_cloud.address = 986; + set_background_block(block_cloud); + block_cloud.address = 987; + set_background_block(block_cloud); + block_cloud.address = 988; + set_background_block(block_cloud); + block_cloud.address = 989; + set_background_block(block_cloud); +} From 35fa92ca21672724b50d4eff186337d11e9fb986 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Thu, 4 Jul 2024 13:40:21 -0300 Subject: [PATCH 20/33] Update GraphSync.h --- src/GraphSync.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/GraphSync.h b/src/GraphSync.h index 1dfa202..dc43a12 100644 --- a/src/GraphSync.h +++ b/src/GraphSync.h @@ -124,3 +124,5 @@ void clean_polygon(); void clean_background(); sprite_fixed_t set_new_sprite(u16_t sprite_offset); + +void draw_picture(); From 42d71c78cf9a48426906325f82493cdebc72f229 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Thu, 4 Jul 2024 13:54:54 -0300 Subject: [PATCH 21/33] Update gpp_data_bus.c --- src/kernel/gpp_data_bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kernel/gpp_data_bus.c b/src/kernel/gpp_data_bus.c index b7a9522..4086244 100644 --- a/src/kernel/gpp_data_bus.c +++ b/src/kernel/gpp_data_bus.c @@ -158,7 +158,7 @@ static ssize_t data_bus_write(struct file *filep, const char *buffer, size_t len instruction_buffer = ioread32(wrfull_mem); while (instruction_buffer) { - msleep(10); + // msleep(10); instruction_buffer = ioread32(wrfull_mem); if (instruction_buffer == 0) { break; From 9f3f5be74b7763ac9cbf7ab90c92700070eee67f Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Thu, 4 Jul 2024 23:45:29 -0300 Subject: [PATCH 22/33] feat: sprites font images --- docs/a-font.png | Bin 0 -> 319 bytes docs/c-font.png | Bin 0 -> 324 bytes docs/h-font.png | Bin 0 -> 291 bytes docs/k-font.png | Bin 0 -> 325 bytes docs/notes.txt | 48 ------------------------------------------------ docs/o-font.png | Bin 0 -> 330 bytes docs/r-font.png | Bin 0 -> 323 bytes docs/s-font.png | Bin 0 -> 352 bytes docs/u-font.png | Bin 0 -> 305 bytes 9 files changed, 48 deletions(-) create mode 100644 docs/a-font.png create mode 100644 docs/c-font.png create mode 100644 docs/h-font.png create mode 100644 docs/k-font.png delete mode 100644 docs/notes.txt create mode 100644 docs/o-font.png create mode 100644 docs/r-font.png create mode 100644 docs/s-font.png create mode 100644 docs/u-font.png diff --git a/docs/a-font.png b/docs/a-font.png new file mode 100644 index 0000000000000000000000000000000000000000..f6bd13f29c48536f47b2ea20296c959ce1b51384 GIT binary patch literal 319 zcmV-F0l@x=P)Px#`AI}UR5(v#WWWyo;}Ay|W+W)Uz`*c-Q#%(?=J{2A1F1tX6x{}}VZPQZL>UM+ z&F&M5p~wc3Y#7W|WJ6&F;x+7Dlo(jA(6U!JT@Eu8WFS$7!Av4#=)f4b%I8IdH3`cI66mS~CYar3-hk=0sZs4W} z1_oa>QnX@M%h&`-<^Snw;JbM$D9#Z|f`lhFK$HuqZs4+Mk|>Ue%6d-Ng-b;w!D$Q| zfF&8294P7F0wA^ENFl;Nc%C0P195pH`VBbD;4TFD2A^86mx)Nya03ac1pxOFa|XJs Rim?Cy002ovPDHLkV1l~!dtU$m literal 0 HcmV?d00001 diff --git a/docs/c-font.png b/docs/c-font.png new file mode 100644 index 0000000000000000000000000000000000000000..cffdec8c453a58803d9c991f014edb6362321448 GIT binary patch literal 324 zcmV-K0lWT*P)Px#{z*hZR5(v#WIzS~(fGu28DR?H3%gp%$M>octC-px~C zfG2EFVg;psat#F;w&TZF23W!dr!APFw0|r@B22!;_Tn^X`9{u&v7Gb_>;zDJ~7SJ&z~Dr?0oguv+Iaw;prs~Ni$!u<#i<_ zd0tcHoII^A$Sk8W?$Avsh6hX2QY$R(BS9 zgh)8?woEs3k=zmDGU;G*v-Ik#hx`vrWHA4*mM2R^F`H>6>v1Dro+F}07xRI_<%%bY mYO)UMsVI3K=2clD#t`mS#bh{b{a&C)89ZJ6T-G@yGywog`EQN@ literal 0 HcmV?d00001 diff --git a/docs/k-font.png b/docs/k-font.png new file mode 100644 index 0000000000000000000000000000000000000000..e396aa9ad13f10756e2d0cf7b10ca3d35f09b018 GIT binary patch literal 325 zcmV-L0lNN)P)Px#|4BqaR5(v#WPpJGP#PP>h$e_vElBbIP3>Gb&GW1L29kprN>DA_KwoPXtcEh$ zeZnvhpV|R45bSzT(BN|2yC^XR;U{;%VFL~q0$wI)*p44x8KU1jC(b}ZE`u2c3+(@^ z=jSqbx$5IdIoPFsSadKT8%D8#8w_f}-h={h(t?Cx1OtPw8p#d>YhY}GP{^j@HSpa$ z6$YWCJ9uqFHk6^X@00000NkvXXu0mjfw*PvD literal 0 HcmV?d00001 diff --git a/docs/notes.txt b/docs/notes.txt deleted file mode 100644 index de201e4..0000000 --- a/docs/notes.txt +++ /dev/null @@ -1,48 +0,0 @@ -IDEIAS --> Fazer verificação do status da fila antes de adicionar uma nova instrução no barramento. --> Localizar quais coordenadas x e y correspondem ao centro da tela. --> Tentar animar alguma coisa no monitor. --> Tentar definir um polígono no registrador 0. --> Implementar função para definir o valor de todos os registradores como 0 após finalizar o programa ('apagar' a tela). --> Funções que poderíamos implementar também: - - animate_sprite: Uma função para animar os sprites ao longo do tempo, alterando seus frames de acordo com uma sequência predefinida de imagens. - - check_collision_bounds: Uma função para verificar se um sprite está dentro dos limites da tela ou de uma área específica, evitando que ele saia da área visível. - - handle_input: Uma função para lidar com a entrada do jogador, como movimento do teclado ou cliques do mouse, e atualizar as posições dos sprites de acordo. - - update_game_state: Uma função para atualizar o estado do jogo, processando eventos, verificando colisões, atualizando pontuações, etc. - - render_sprites: Uma função para renderizar os sprites na tela, levando em consideração sua posição, estado e quaisquer efeitos visuais. - - load_level: Uma função para carregar e inicializar um novo nível do jogo, incluindo a posição inicial dos sprites, configurações de fundo, obstáculos, etc. - - save_game_state: Uma função para salvar o estado atual do jogo, permitindo que os jogadores continuem de onde pararam em uma sessão anterior. - - handle_powerups: Uma função para lidar com power-ups ou itens especiais que os sprites podem coletar durante o jogo, alterando seu comportamento ou concedendo benefícios temporários. - - play_sound: Uma função para reproduzir efeitos sonoros ou músicas de fundo durante o jogo, melhorando a experiência auditiva do jogador. - - spawn_enemy: Uma função para gerar novos inimigos em locais específicos da tela ou em intervalos de tempo definidos, aumentando gradualmente a dificuldade do jogo. - -QUESTÕES --> A memória de sprites é volátil? Isto é, os sprites criados através da instrução WSM são mantidos após o desligamento da placa? --> Tendo em vista que cada FIFO possui a capacidade de armazenar 16 palavras de 32 bits, então elas podem armazenar, juntas, no máximo 16 instruções? --> Quantos sprites podem ser atualizados ao mesmo tempo? Isso porque se a FIFO armazenar no máximo 8 instruções, no caso de termos 9 sprites ou polígonos, apenas 8 deles poderiam ser atualizados de uma vez. --> Qual é o sinal que indica quando a tela deve ser renderizada? É o vsync? Como funciona a sincronização com o sinal start (que envia as instruções)? --> Dado que conseguimos escrever um polígono no reg 0, ele é um registrador para a escrita de polígonos no geral? --> O ideal é encher a fila e depois descarregar todas as instruções de vez ou enviar uma instrução a cada pulso? --> Qual o máximo de polígonos e sprites que conseguimos exibir na tela? (Acredito que 31 elementos no total, de qualquer natureza) - -FATOS --> A arquitetura dispões de 32 registradores. O primeiro registrador é reservado para o background e o restante aos sprites. --> A memória de sprites armazena o bitmap para cada sprite. --> A memória de sprites consiste em 12.800 palavras de 9 bits, 3 bits para cada componente RGB. --> Cada sprite deve possuir o tamanho 20x20, cada um ocupando 400 posições de memória. Sendo assim, é possível armazenar na memória de sprites 32 sprites para uso (Acho que já responde uma das questões). --> A memória de background é utilizada para modificar pequenas partes do background e consiste em 4.800 palavras de 9 bits. --> O padrão gráfico escolhido foi o VGA com uma resolução de 640x480 pixels. --> Para 'apagar' um polígono ou sprite é necessário definir o bit SP ou o tamanho do polígono como 0. --> As instruções nos registradores persistem mesmo após a finalização do programa. --> O algoritmo de geração de bitmaps ficará a cargo do desenvolvedor. --> Foi possível perceber que realizar uma animação com o limite de 31 sprites na tela ocasiona uma perda na velocidade de atualização devido ao limite de envio de 13 instruções por frame. (mas como chegamos a essa conclusão?) \ No newline at end of file diff --git a/docs/o-font.png b/docs/o-font.png new file mode 100644 index 0000000000000000000000000000000000000000..d67d3f6718e34aaceda56c6d507041a975ece9db GIT binary patch literal 330 zcmV-Q0k!^#P)Px$1W80eR5(v#WIzS~(fGu28DR?H3=jO5fLuv`1D6GHqqrz)-B-$72n}qw zA^#8Y5jJr3{9FbvSADDsxn)vNQp49Lb8s36QVR}4svEc|f`P$T4ZFpRO=wxE4tG)o zsfENc9s@~9=|jlCr6Q6HQCZJP@g0WRck@&jgrD4jgkdqCAVU?OFoRIi9kL7s8Mfoc zSBB^}&mjhaOaZylg99~J5NkTjFq8yKuA#_=!HO@KL*OnY)@2}dAa6neN&$;vC@BUa c8wO$n0B{p)2S2&}*8l(j07*qoM6N<$f|;6mr2qf` literal 0 HcmV?d00001 diff --git a/docs/r-font.png b/docs/r-font.png new file mode 100644 index 0000000000000000000000000000000000000000..27db4f539b7156f56aa25ffa60dd4092b1d64a7d GIT binary patch literal 323 zcmV-J0lfZ+P)Px#{YgYYR5(v#WPpJGP?{Wy5m^(6^M6x27dZxj_4rkO15t28;RgCzvyg2lqunRC zp;R#tY#P*1yav9D5`(*1XxS@*J^&d?Ujvr~al>5|weBlk7lM2v{NxUP7ed1YlCBQ% z;WQ8yG;jk~&(CG>a@8joMz|FGu;>804i?q_sc0Z0BvK+67<|>pb|A!MO%RH{2ELo8 zf=Gu+kTAjrK(55=LaH0MY?>t8K^`2CG%19~r376F4QQ}IOGO}tM`b<7>1()wAjL2j zAghL@Eo8B`GKg?RHyNI=2^ff6fc_`iKy3bqegpO%ih(e%<5CZfWkRU|NuH2e1_1oS VatMpb<_7=(002ovPDHLkV1lu3dbt1q literal 0 HcmV?d00001 diff --git a/docs/s-font.png b/docs/s-font.png new file mode 100644 index 0000000000000000000000000000000000000000..66579ea0f4eab0e526277ecddee8d34459dc8168 GIT binary patch literal 352 zcmV-m0iXVfP)Px$8c9S!R5(v#WIzS~(fGu28DR?H3K$R1Ia)+=B ziHRjxu)qymDk8}caG{wPy;#+3FsKEKN56Rvap7AT6%2(OCn`v?fLkU7tR5065ey8z zY6$)B=3!cZZn{v?9SjQ@n{XJoY?>rN*F|MLC*DAUrr}TkcOfWJu-Qn8!JuG5iDgil z!WJ&X7zzt>xPirdf(%uB!eG6m8VWOP$B(awWCJn?Px#>q$gGR5(v#WPpJGP#PD-NUS=L!vCAvxp122SNRPj2RD$ATDXC})+|^JWwiT* zV&MNnd^jx!sU0;CGk69^7_Oe5%i!gzk2UtVWl~UL`RkK8IAa;4797h|H*iw~1B0&` zc8eLCz~bU_nw1g&DTv$5)2vH_s8t0p?0_ zoCq@v6pXO+1unJ8F%;P_ Date: Fri, 5 Jul 2024 01:00:17 -0300 Subject: [PATCH 23/33] Update GraphSync.c --- src/GraphSync.c | 473 ++++++++++++------------------------------------ 1 file changed, 111 insertions(+), 362 deletions(-) diff --git a/src/GraphSync.c b/src/GraphSync.c index 576fa6e..6dcd0b1 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -12,6 +12,15 @@ #include #define DEVICE_PATH "/dev/gpp_data_bus" /**< Path to device data bus */ +#define FROG "frog" +#define A_font "a-font" +#define C_font "c-font" +#define H_font "h-font" +#define K_font "k-font" +#define O_font "o-font" +#define R_font "r-font" +#define S_font "s-font" +#define U_font "u-font" static int device_fd = -1; @@ -206,48 +215,9 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { u8_t opcode = 0b0001; u16_t init_addr = sprite_offset * 400; - // Cores da imagem do cacto - u8_t pixel_data[400][3] = { - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, - {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {3, 7, 4}, - {3, 7, 4}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {1, 5, 2}, - {1, 5, 2}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, - {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, - {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, - {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 6, 1}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 6, 1}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, - {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, - {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, - {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, - {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, - {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, - {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {0, 2, 1}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, - {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {0, 2, 1}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; + // Cores da imagem para a sprite + string sprite_name = FROG; + u8_t pixel_data[400][3] = select_sprite(sprite_name); u16_t max_addr = init_addr + 400; u16_t addr; @@ -276,324 +246,103 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { return new_sprite; } -void draw_picture() { - // BACKGROUND - u64_t instruction1 = set_background_color(2, 2, 3); - - // BACKGROUND BLOCKS - ground_block_t block; - block.address = 3000; - block.R = 1; - block.G = 4; - block.B = 1; - - int i = 3600; - - for (i; i < 4800; i++) { - block.address = i; - set_background_block(block); +u8_t select_sprite(u8_t sprite_name) { + u8_t pixel_data[400][3]; + + switch (sprite_name) { + case FROG: + pixel_data = { + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, + {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {3, 7, 4}, + {3, 7, 4}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {1, 5, 2}, + {1, 5, 2}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 6, 1}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 6, 1}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, + {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, + {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, + {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, + {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, + {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, + {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {0, 2, 1}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, + {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {0, 2, 1}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; + break; + + case A_font: + pixel_data = { + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, + {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, + {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, + {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, + {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {7, 0, 1}, + {7, 0, 1}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {7, 0, 1}, + {7, 0, 1}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {5, 0, 0}, + {5, 0, 0}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 4, 3}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 0, 1}, {6, 7, 7}, + {6, 7, 7}, {7, 0, 1}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {6, 7, 7}, + {6, 7, 7}, {5, 4, 3}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, + {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {6, 7, 7}, + {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, + {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, + {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 0, 1}, {7, 0, 1}, + {7, 0, 1}, {7, 0, 1}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 0, 1}, {7, 0, 1}, + {7, 0, 1}, {7, 0, 1}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {5, 0, 0}, {5, 0, 0}, + {5, 0, 0}, {5, 0, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, + {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, + {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, + {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, + {6, 7, 7}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; + break; + + case C_font: + pixel_data = ; + break; + + default: + break; } - - // ÁRVORES - sprite_fixed_t sprite_tree1; - sprite_tree1.ativo = 1; - sprite_tree1.data_register = 1; - sprite_tree1.offset = 4; - sprite_tree1.coord_x = 100; - sprite_tree1.coord_y = 400; - - set_fixed_sprite(sprite_tree1); - - sprite_fixed_t sprite_tree2; - sprite_tree2.ativo = 1; - sprite_tree2.data_register = 2; - sprite_tree2.offset = 4; - sprite_tree2.coord_x = 150; - sprite_tree2.coord_y = 350; - - set_fixed_sprite(sprite_tree2); - - sprite_fixed_t sprite_tree3; - sprite_tree3.ativo = 1; - sprite_tree3.data_register = 3; - sprite_tree3.offset = 4; - sprite_tree3.coord_x = 200; - sprite_tree3.coord_y = 450; - - set_fixed_sprite(sprite_tree3); - - sprite_fixed_t sprite_tree4; - sprite_tree4.ativo = 1; - sprite_tree4.data_register = 4; - sprite_tree4.offset = 4; - sprite_tree4.coord_x = 320; - sprite_tree4.coord_y = 460; - - set_fixed_sprite(sprite_tree4); - - sprite_fixed_t sprite_tree5; - sprite_tree5.ativo = 1; - sprite_tree5.data_register = 5; - sprite_tree5.offset = 4; - sprite_tree5.coord_x = 360; - sprite_tree5.coord_y = 400; - - set_fixed_sprite(sprite_tree5); - - sprite_fixed_t sprite_tree6; - sprite_tree6.ativo = 1; - sprite_tree6.data_register = 6; - sprite_tree6.offset = 4; - sprite_tree6.coord_x = 230; - sprite_tree6.coord_y = 400; - - set_fixed_sprite(sprite_tree6); - - sprite_fixed_t sprite_tree7; - sprite_tree7.ativo = 1; - sprite_tree7.data_register = 7; - sprite_tree7.offset = 4; - sprite_tree7.coord_x = 295; - sprite_tree7.coord_y = 350; - - set_fixed_sprite(sprite_tree7); - - sprite_fixed_t sprite_tree8; - sprite_tree8.ativo = 1; - sprite_tree8.data_register = 8; - sprite_tree8.offset = 4; - sprite_tree8.coord_x = 30; - sprite_tree8.coord_y = 355; - - set_fixed_sprite(sprite_tree8); - - sprite_fixed_t sprite_tree9; - sprite_tree9.ativo = 1; - sprite_tree9.data_register = 9; - sprite_tree9.offset = 4; - sprite_tree9.coord_x = 40; - sprite_tree9.coord_y = 450; - - set_fixed_sprite(sprite_tree9); - - sprite_fixed_t sprite_tree10; - sprite_tree10.ativo = 1; - sprite_tree10.data_register = 10; - sprite_tree10.offset = 4; - sprite_tree10.coord_x = 500; - sprite_tree10.coord_y = 450; - - set_fixed_sprite(sprite_tree10); - - sprite_fixed_t sprite_tree11; - sprite_tree11.ativo = 1; - sprite_tree11.data_register = 11; - sprite_tree11.offset = 4; - sprite_tree11.coord_x = 550; - sprite_tree11.coord_y = 350; - - set_fixed_sprite(sprite_tree11); - - // BASE DO CASTELO - polygon_t polygon_1; - polygon_1.data_register = 14; - polygon_1.type = 0; - polygon_1.size = 14; - polygon_1.ref_point_x = 450; - polygon_1.ref_point_y = 320; - polygon_1.R = 5; - polygon_1.G = 3; - polygon_1.B = 4; - - set_polygon(polygon_1); - - // TORRES DO CASTELO - - // TORRE 1 - polygon_t pol_tower_1; - pol_tower_1.data_register = 5; - pol_tower_1.type = 0; - pol_tower_1.size = 2; - pol_tower_1.ref_point_x = 390; - pol_tower_1.ref_point_y = 235; - pol_tower_1.R = 5; - pol_tower_1.G = 3; - pol_tower_1.B = 4; - - set_polygon(pol_tower_1); - - polygon_t pol_tower_11; - pol_tower_11.data_register = 6; - pol_tower_11.type = 0; - pol_tower_11.size = 2; - pol_tower_11.ref_point_x = 390; - pol_tower_11.ref_point_y = 220; - pol_tower_11.R = 5; - pol_tower_11.G = 3; - pol_tower_11.B = 4; - - set_polygon(pol_tower_11); - - // TORRE 2 - polygon_t pol_tower_2; - pol_tower_2.data_register = 7; - pol_tower_2.type = 0; - pol_tower_2.size = 2; - pol_tower_2.ref_point_x = 510; - pol_tower_2.ref_point_y = 235; - pol_tower_2.R = 5; - pol_tower_2.G = 3; - pol_tower_2.B = 4; - - set_polygon(pol_tower_2); - - polygon_t pol_tower_22; - pol_tower_22.data_register = 8; - pol_tower_22.type = 0; - pol_tower_22.size = 2; - pol_tower_22.ref_point_x = 510; - pol_tower_22.ref_point_y = 220; - pol_tower_22.R = 5; - pol_tower_22.G = 3; - pol_tower_22.B = 4; - - set_polygon(pol_tower_22); - - // TORRE 3 - polygon_t pol_tower_3; - pol_tower_3.data_register = 9; - pol_tower_3.type = 0; - pol_tower_3.size = 2; - pol_tower_3.ref_point_x = 450; - pol_tower_3.ref_point_y = 235; - pol_tower_3.R = 5; - pol_tower_3.G = 3; - pol_tower_3.B = 4; - - set_polygon(pol_tower_3); - - polygon_t pol_tower_33; - pol_tower_33.data_register = 10; - pol_tower_33.type = 0; - pol_tower_33.size = 2; - pol_tower_33.ref_point_x = 450; - pol_tower_33.ref_point_y = 210; - pol_tower_33.R = 5; - pol_tower_33.G = 3; - pol_tower_33.B = 4; - - set_polygon(pol_tower_33); - - // TELHADOS - polygon_t pol_tel_1; - pol_tel_1.data_register = 11; - pol_tel_1.type = 1; - pol_tel_1.size = 3; - pol_tel_1.ref_point_x = 390; - pol_tel_1.ref_point_y = 185; - pol_tel_1.R = 3; - pol_tel_1.G = 1; - pol_tel_1.B = 1; - - set_polygon(pol_tel_1); - - polygon_t pol_tel_2; - pol_tel_2.data_register = 12; - pol_tel_2.type = 1; - pol_tel_2.size = 3; - pol_tel_2.ref_point_x = 510; - pol_tel_2.ref_point_y = 185; - pol_tel_2.R = 3; - pol_tel_2.G = 1; - pol_tel_2.B = 1; - - set_polygon(pol_tel_2); - - polygon_t pol_tel_3; - pol_tel_3.data_register = 13; - pol_tel_3.type = 1; - pol_tel_3.size = 5; - pol_tel_3.ref_point_x = 450; - pol_tel_3.ref_point_y = 165; - pol_tel_3.R = 3; - pol_tel_3.G = 1; - pol_tel_3.B = 1; - - set_polygon(pol_tel_3); - - // PORTA DO CASTELO - polygon_t pol_door; - pol_door.data_register = 4; - pol_door.type = 0; - pol_door.size = 5; - pol_door.ref_point_x = 450; - pol_door.ref_point_y = 365; - pol_door.R = 3; - pol_door.G = 1; - pol_door.B = 1; - - set_polygon(pol_door); - - // SOL - polygon_t pol_sun; - pol_sun.data_register = 1; - pol_sun.type = 0; - pol_sun.size = 5; - pol_sun.ref_point_x = 80; - pol_sun.ref_point_y = 80; - pol_sun.R = 7; - pol_sun.G = 5; - pol_sun.B = 0; - - set_polygon(pol_sun); - - // NÚVENS - ground_block_t block_cloud; - block_cloud.R = 7; - block_cloud.G = 7; - block_cloud.B = 7; - - block_cloud.address = 500; - set_background_block(block_cloud); - block_cloud.address = 501; - set_background_block(block_cloud); - block_cloud.address = 502; - set_background_block(block_cloud); - block_cloud.address = 503; - set_background_block(block_cloud); - - block_cloud.address = 579; - set_background_block(block_cloud); - block_cloud.address = 580; - set_background_block(block_cloud); - block_cloud.address = 581; - set_background_block(block_cloud); - block_cloud.address = 582; - set_background_block(block_cloud); - block_cloud.address = 583; - set_background_block(block_cloud); - block_cloud.address = 584; - set_background_block(block_cloud); - - block_cloud.address = 905; - set_background_block(block_cloud); - block_cloud.address = 906; - set_background_block(block_cloud); - block_cloud.address = 907; - set_background_block(block_cloud); - block_cloud.address = 908; - set_background_block(block_cloud); - - block_cloud.address = 984; - set_background_block(block_cloud); - block_cloud.address = 985; - set_background_block(block_cloud); - block_cloud.address = 986; - set_background_block(block_cloud); - block_cloud.address = 987; - set_background_block(block_cloud); - block_cloud.address = 988; - set_background_block(block_cloud); - block_cloud.address = 989; - set_background_block(block_cloud); -} +} \ No newline at end of file From a293e00f3bbbf857d3ab37cea143ef18db93e097 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro <67525293+yasmincsme@users.noreply.github.com> Date: Sat, 6 Jul 2024 11:06:51 -0300 Subject: [PATCH 24/33] Add files via upload --- docs/lilypad-pixilart.png | Bin 0 -> 1100 bytes docs/pixilart-drawing(1).png | Bin 0 -> 1143 bytes docs/pixilart-drawing.png | Bin 0 -> 998 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/lilypad-pixilart.png create mode 100644 docs/pixilart-drawing(1).png create mode 100644 docs/pixilart-drawing.png diff --git a/docs/lilypad-pixilart.png b/docs/lilypad-pixilart.png new file mode 100644 index 0000000000000000000000000000000000000000..07b3bf540959d1688637435a11640d15feb49067 GIT binary patch literal 1100 zcmV-S1he~zP)|7F4I7G`B@33V*s|!ZNgzTEElb1>0ZSy7 zq_)@~AvQ_;Nn4>H+Ja~*(byil71WNC_%rWu-h?!?ibwM3y}9q)bI-Z=2|V*N7gEak zv@D+8KU|v&wo)$8_^fhl%u}1=OFCE~AbqG^EggFxwvbdp2=omgpbS*6JRSGsP<%0^ zT&dufKzB&s;U~wlwB}Pv`GN2m3%lhyB!Q(8Xf7WBdw=G9Qn@~X$QcugTf3z?8rP05 zDY|H@P|AX#0GAAV1O-8>{|AgxH$SNj&&0rLvA^bE_^gGke=fjf0&YQ(iZWcp?_9%3 zDvCan_6QhBk7K9QfbdB;%Ns((FQ-&bC`4vW>=v5{+fn@9x<~-vhs`1+GiWyO(FxZ; z_RTb_U{$|eK{%5jkn+CoR%+<;yLf?sf`B?o7zUhE^H}-nI~YSyB~%{$h2`nDk$Lwm!rsoQ_dDx;q<%V1H@?ezJ5qL1H35r*sdAzM%b_6f$bB z*C>I7_C}o}mY`y;*YH|L!2m&<+vO^O7}s8lCCIYRX^*g<6xnufI0(*| z=rGZ!9migIo5II*rRZ?fLbm?a#E8~?y@5WbKv0_y*B;=+_c_%mIm|8*KAWIk65X|i zr`7PeCX;6MrSSf3@$VP z4bzPD0Jg{~$X4odPiq=Zn%J7Vesp~uvYcGW@svR8W|fzxz(51jbw3YDUcCD8Q>#Av zE$F%kq$mOR?$70)RC?^KJV{M8sl9Ry1A?)=D5Int1m;_J0Byki+!4?rseb{tF5{Y) SQy?4w0000{IP)g}HXh|sr8HP*J=%ifd!ob|l*{(AKv^=^ZLQ92n!rMh4X`rRA1ds}@{jvi?3Pi@1gr}=PLP|tNikEl; z^%AOr@RcRu>vTyNK+E%Xz)&#tYl>(Bg^fNQZ0RN-NAh14gWt>)zIzz;dtWr8|I;x* zk@)bl0KWQo>L820cbcU3AW=D{g1eX>St6tfc*-Spg#b@j5WXt0G`1kzPgTfQKJvgY zRBYbfNAUZe|hQqvZh5M=m>h9oYCsVD5SffpY@d zQ7aTiZt^HN8=QF?wxR~cf(9OID#MY71jYyB2=9q`0O%pf?JpQetW;n&yoOU}ov5s_ z6i6lp`R0=^l7ekU^9T)Z!+Wd>mGw!C26I@x#7NA2ccu5LTDYAawd zm6Om3qzWB+-ip|I8WR`NXgX#`*~13cNi6=gb{NnEZe-eCza7b#z*ce#&1W2NmRljM z1f>{ekcmVd(-%{4IyIDQ3L-Z$6ln1vutP=c2{cH_I%_;p3ZdtqJ)$!QosqE|p}@%V zNpUuA0jlc2-_zT$f@T=KV}?V3-hfNK{E3F|zr2m($2C;e8psQSY8C-aGEF{XQ5Ewy zV|ew02k>Km0t>9aed-Pt^-tHx*WP^;o2eb7<7v!Xio@SgO=)#jph6SzY3ia_FgLjY ze^&(@nhjb-1%CKCf|Wlv4|C{#rbeE5^C-5dpjORzcyMSSijJO2MyN6|ib5Jje~+W* z^;$-nLt<6HQLAA1yHzY-=F8nG7ah|eTl<{kDFdAj5i*0&g*@7OYz3!G4sqQ_<#iUd zN`9pcll1WX$p47aNWjx?m*9_YvpD(eeK72FjX@68JmDC1-Ug{s@mvWehGRJWMj0*- zqzldB5QqK_kJPPsWYrzK^nM+7qB?>D+j#Pvorz|+S1q_ifQ2sXm>5i<`>k>~>jcjC zM`6j8!NO=~$LIH&L%=P~_T_%uM(Z&Z3L0D8Md)G%9nX~&3frJKpvT95OX6ftDXOYU z3zl@!o+~qHTnjRFvpIN}rfJuY>A1VSgB4mbN86&=OK%Qo0Xfy`hw z*K%0AN)+;4?8JMWSiu%QvS#UK>4&Vuag3xJZLaiC6t2fKd9|6mUb(bVYDU&Ekhw8mKUCE&Qvf<{bM1^Wux2HX7 zt>i-Wf4Z+0?j$;q{n!07YOZDZnthD)qd zb{7dJSIX97jn4)O60417tjq6?9zi2)*{qcm&~$j*)z)rBSS|oGy%=aVcQVl{0HGgJ zR!V zEDiLtjf%$SSF%Zm`F)@q&ldnZ^T}3<-Z9hTA{Zo$j0p&tpRAY6BJllEKjkY58VR z0f)Q{V?$Y3ix9PNebHm_8MUtzpu!XnYTWua{%kAK=mS8{k;GXjYJ#jy8akWM%xCNv zt&TRUPvjg?dS400TV$fwtedk;enkmQLvJ)p*O7dC3S+_vcuuu$2+WT_p~dVWJx3GY zbPRZqNb^)6^YrM2yCuQ&EYW(CV5k_j@vs?@GFMnwB??(fsGt_<{CU6gHR=O?vspH@ zq+PyWJs-@BPIpF literal 0 HcmV?d00001 From 47dadf11f32f0d916d7fac504a658bf97b5377a2 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Sat, 6 Jul 2024 16:28:46 -0300 Subject: [PATCH 25/33] Sprites Images --- docs/{pixilart-drawing(1).png => frog-back.png} | Bin docs/frog-front.png | Bin 0 -> 486 bytes docs/frog.png | Bin 474 -> 0 bytes docs/{pixilart-drawing.png => lilypad1.png} | Bin docs/{lilypad-pixilart.png => lilypad2.png} | Bin docs/truck-back.png | Bin 0 -> 172 bytes docs/truck-front.png | Bin 0 -> 243 bytes docs/truck-middle.png | Bin 0 -> 128 bytes docs/trunktree-back.png | Bin 0 -> 332 bytes docs/trunktree-front.png | Bin 0 -> 313 bytes docs/trunktree-middle.png | Bin 0 -> 339 bytes src/main.c | 2 +- src/makingSprite.py | 1 - 13 files changed, 1 insertion(+), 2 deletions(-) rename docs/{pixilart-drawing(1).png => frog-back.png} (100%) create mode 100644 docs/frog-front.png delete mode 100644 docs/frog.png rename docs/{pixilart-drawing.png => lilypad1.png} (100%) rename docs/{lilypad-pixilart.png => lilypad2.png} (100%) create mode 100644 docs/truck-back.png create mode 100644 docs/truck-front.png create mode 100644 docs/truck-middle.png create mode 100644 docs/trunktree-back.png create mode 100644 docs/trunktree-front.png create mode 100644 docs/trunktree-middle.png diff --git a/docs/pixilart-drawing(1).png b/docs/frog-back.png similarity index 100% rename from docs/pixilart-drawing(1).png rename to docs/frog-back.png diff --git a/docs/frog-front.png b/docs/frog-front.png new file mode 100644 index 0000000000000000000000000000000000000000..cac34badcdcaf2134682c7cae2da67f8dae409e7 GIT binary patch literal 486 zcmV@P)Px$ph-kQR5(v#WWWKK6?p!Gr2anm!icN{mpDufiei``NK@{C7BF|RLk-+eT;j+U zVi*Y1)Gwb8R#*6NBG^z609k@Aj_w1j2L8GKnL%1y8f?hZmruclf&j=cWN{WnUW_0i z%0T5!zF-6I`fVo7K#+G`W<@jH{{9qKT%m}oa!NDoNn48IN{kqkpXk8wF#iAph{gwC zYCtq{IAS#rWDq_>k>&6j2r>xdZIJ64HEuH`xMTPFf}PR~^*2<(mJ$`qAOqV>FEaf8 z%!Sq0ti0bCs!r>ZZXmueB+5WowgR~@_`?YXV^>bBW}e;sonftj1=xk?*%KToFoQrz z29yk7F7i^$tj3(F; zE>m%M`h$fJvY{~Vg47~sfN!T?g7v>%a-9Js4AFB5vY{Xips<4(hMf43BL|*SkYgA< zC&0XgO&mR@;V$GemtWKyKL7v# literal 0 HcmV?d00001 diff --git a/docs/frog.png b/docs/frog.png deleted file mode 100644 index 032486d9a540fb624db3f8cf2e15864d46068ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)Px$lu1NER5(v#WWWvnL!}tel;9EvD??Wd)BC^R!2~dSfVb z4^~w8a3ai51{~rjW?(h&|Ns9CjEoQ|5F2DD2!Jd>7KgG)H&A(#FWA7lew#@)@W1=6 zbcWmCpW=xtgp?|$G{a7}nJ96A5raw_eHiZfZ(#t@_y9}|h(?ZFtOkNq;4>6ij*x-i zcmTPsQR6m4tolu?j$C|GouU4QD%eu=q=z+@K?b&&US#ZZXmue zB-TK1wgR~@_`?YXV^>bBW}e;sonftj1_D9M150W79V7m8pQ3Noxa{ta9W zOb^s%aCQKvJs2RzKxDmO1Ci4la{401h3I<021?YJf-T`P6^ExkXp&$+HWcPvSUAHh z|91K%SpSQb)9~U89vN5?E!a>H0EHdQFyzD!vmBHrk<%egLt)-Rw+t3}un0kp?*D?} zstoL^0&u5;7@(j4c>@+CFgA#W$%E*hw?8nvUwIpB9?XTXVjW*vCPt1C0IHt!5?11r Q>i_@%07*qoM6N<$g637k<^TWy diff --git a/docs/pixilart-drawing.png b/docs/lilypad1.png similarity index 100% rename from docs/pixilart-drawing.png rename to docs/lilypad1.png diff --git a/docs/lilypad-pixilart.png b/docs/lilypad2.png similarity index 100% rename from docs/lilypad-pixilart.png rename to docs/lilypad2.png diff --git a/docs/truck-back.png b/docs/truck-back.png new file mode 100644 index 0000000000000000000000000000000000000000..8758a345aae463e8c456e902a7d129bde5d3e143 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1IgG*1`D5DWk0 z6a~f|J9qv)zO3f@y4W6rLW^dJ;!dLtB?~#iq6;H8gdJdV)%tOm(?VY5_>M<2bv)UU zHotiD?tMbyDoG9_o|G3W8jq;R+{tn~JYmxZY2Wq`J((48H4}yQyNGVMVkW>)98vhS Tz29pmmI6GS%X5Aq*i8sd9Ui|QZ3r9}&Eai56@F<&A zCqPE>&qEe2`5fyrsfPYV1~o@?Co`E{xG{C|iUWx*-_*>Qr=Rdi+_CusC$lHpvi$q} z+y1V87sV4kAw6M<_K^d5rCO3V0{9FKo@!6!S+Z-oJFiQhxwuF r1$Tz4UHUT?hUh17idGz%a)aSy&+- Z3`);5H?GaU(+xC*!PC{xWt~$(695N7CD{M~ literal 0 HcmV?d00001 diff --git a/docs/trunktree-back.png b/docs/trunktree-back.png new file mode 100644 index 0000000000000000000000000000000000000000..c809ccd56aa7dc535c15fd6329f0c3eb64d0e9ea GIT binary patch literal 332 zcmV-S0ki&zP)Px$21!IgR5(v#WIzIQqHO*n^HY``VFdA!#nHvk`Ctv`nve~Jv6EGfz=h}Du|ZLS zEQi%VkOFi~xGX_e2lo;_Ltri-#uAJ$!sZfE#2C>d0;CyVc;Pb~qz|isq(%y|dK3dm z2`hA;fcT&=CfbF>h9gb`k;4&Y7`|ABsi)Y>80ipOEEDTJZ0g`HM2`?yLdObD7qr_utQb@V&gS%%azCAU@(;zL8%U4nod7_122?8 ezJiIv^Z@`QW0~vn#NOfn0000%hAr}70 zbA(er+o#?XbYlYo0cjWY)iR8MJjL&CG-Ph9cbBNSdccQg!%s2h=KEZ18|nlSS|pod zEhi=F)!dl+=I4=y9F4X{h3knsc%~;BXiwm2mF~z9=rT`id;7EHZmY*9h3SvJ7+J_{ zlyr0G`B*Q@Y@w8Juf>vib>oY;_MK8Eg)YTdEMQx-+;&c!+c&k)JwB@%H#{+}h~e-y zd*PXGa#P`xpZ=_?+12f2m`&(;OXk; Jvd$@?2>=@Bdhh@M literal 0 HcmV?d00001 diff --git a/docs/trunktree-middle.png b/docs/trunktree-middle.png new file mode 100644 index 0000000000000000000000000000000000000000..7179b3f0c980f36e1d655af1f963a729c3587fdd GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1H_UQZXt5DWk0 zIl`%*?Ne_Gy0HO)fV7MHY8l2rp5pg68Zspu!r6t~#gkhkn-)!W;XA{qkSoE~q;fH~ z?Q~5})OMjVkcH&u7&EbW>;vG%}^{e6rwf+x&`9t+J-d|{_>vUNw2{L$7QNi%0~ zIBjQ94cf5ORw!5?ZIhyEXF{-dn3c zQCjV8CX&DDpjcbWAyJvOBh&O+Y8W^1ygAhEfB)cBzfJp(O(+lGK68D#SQ5j@#v=&~ zYV41cyPIWLgHF%LUeBs0^KSp&o<|I>iE%q5I(mJ1J$TgEC#Qe8IFVJFgDHBQ4O=*? jfuV$aB+vAy8FdU^@3$-{K6P0h7)lJDu6{1-oD!M<+y8tk literal 0 HcmV?d00001 diff --git a/src/main.c b/src/main.c index 0686bc8..59ec9af 100644 --- a/src/main.c +++ b/src/main.c @@ -123,7 +123,7 @@ int main(void) { // set_background_color(1, 1, 1); // u16_t offset = 25; - // sprite_fixed_t new_sprite = set_new_sprite(offset); + // sprite_fixed_t new_sprite = set_new_sprite(offset); // u16_t center_x = 320; // u16_t center_y = 10; diff --git a/src/makingSprite.py b/src/makingSprite.py index ba7b555..8faa132 100644 --- a/src/makingSprite.py +++ b/src/makingSprite.py @@ -9,7 +9,6 @@ for col in range(20): coordinates = col, line rgbValues = spritePixels.getpixel(coordinates) - #print(rgbValues[:3]) rgb.append(rgbValues[:3]) transparentColor = [6, 7, 7] From 514b3e01abe49e9cce38baed185a5795451c7c3b Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Sat, 6 Jul 2024 16:40:30 -0300 Subject: [PATCH 26/33] Update main.c --- src/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.c b/src/main.c index 59ec9af..e2d0921 100644 --- a/src/main.c +++ b/src/main.c @@ -99,6 +99,7 @@ int main(void) { if (munmap(LW_virtual, LW_BRIDGE_SPAN) != 0) { return -1; } + jhgkjh close(fd); From b0d80815c6f1b15ec324f64efdcef358a0ba4fe3 Mon Sep 17 00:00:00 2001 From: Nathielle Alves <93337467+NathielleA@users.noreply.github.com> Date: Sat, 6 Jul 2024 16:41:10 -0300 Subject: [PATCH 27/33] Update main.c --- src/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index e2d0921..0686bc8 100644 --- a/src/main.c +++ b/src/main.c @@ -99,7 +99,6 @@ int main(void) { if (munmap(LW_virtual, LW_BRIDGE_SPAN) != 0) { return -1; } - jhgkjh close(fd); @@ -124,7 +123,7 @@ int main(void) { // set_background_color(1, 1, 1); // u16_t offset = 25; - // sprite_fixed_t new_sprite = set_new_sprite(offset); + // sprite_fixed_t new_sprite = set_new_sprite(offset); // u16_t center_x = 320; // u16_t center_y = 10; From 7320713e289abec60b3148d6ccaec0825e50e3c0 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Mon, 8 Jul 2024 09:51:05 -0300 Subject: [PATCH 28/33] feat: create Device_manager --- src/Device_manager.c | 83 ++++++++++++++++++++++++++++++++++++++++++++ src/Device_manager.h | 37 ++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 src/Device_manager.c create mode 100644 src/Device_manager.h diff --git a/src/Device_manager.c b/src/Device_manager.c new file mode 100644 index 0000000..1c273be --- /dev/null +++ b/src/Device_manager.c @@ -0,0 +1,83 @@ +#include "Device_manager.h" + +#include +#include +#include +#include +#include + +void read_mouse(mouse_t* mouse) { + u8_t data[3] = {0}; + + if (read(mouse->fd, data, sizeof(data))) { + mouse->left = (data[0] & 0x1) ? 1 : 0; + mouse->right = (data[0] & 0x02) ? 1 : 0; + mouse->middle = (data[0] & 0x04) ? 1 : 0; + + mouse->x += (data[1] / ((SENSIBILITY > 0) ? SENSIBILITY : 1)); + + if (mouse->x < 0) { + mouse->x = 0; + } + if (mouse->x > WIDTH) { + mouse->x = WIDTH; + } + + mouse->y += ((data[2] * -1) / ((SENSIBILITY > 0) ? SENSIBILITY : 1)); + + if (mouse->y < 0) { + mouse->y = 0; + } + if (mouse->y > HEIGHT) { + mouse->y = HEIGHT; + } + } +} + +mouse_t init_mouse(u64_t fd_mouse) { + fd_mouse = open("/dev/input/event0", O_RDONLY); + + if (fd_mouse == -1) { + perror("Erro ao abrir o dispositivo de memória"); + exit(EXIT_FAILURE); + } + + return (mouse_t){ + .fd = fd_mouse, + .x = 50, + .y = 50, + .left = 0, + .right = 0, + .middle = 0, + .read = read_mouse, + }; +} + +u64_t* read_KEY(u64_t fd_map, void* LW_virtual) { + fd_map = open("/dev/mem", (O_RDWR | O_SYNC)); + if (fd_map == -1) { + perror("Erro ao abrir o dispositivo de memória"); + exit(EXIT_FAILURE); + } + + LW_virtual = mmap(NULL, LW_BRIDGE_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd_map, LW_BRIDGE_BASE); + if (LW_virtual == MAP_FAILED) { + perror("Erro ao mapear memória"); + exit(EXIT_FAILURE); + } + + u64_t* KEY_ptr = (u64_t*)(LW_virtual + KEY_BASE); + return KEY_ptr; +} + +void close_KEY(u64_t fd_map, void* LW_virtual) { + if (munmap(LW_virtual, LW_BRIDGE_SPAN) == -1) { + perror("Erro ao desmapear memória"); + exit(EXIT_FAILURE); + } + + if (close(fd_map) == -1) { + perror("Erro ao fechar dispositivo de memória"); + exit(EXIT_FAILURE); + } +} diff --git a/src/Device_manager.h b/src/Device_manager.h new file mode 100644 index 0000000..66db044 --- /dev/null +++ b/src/Device_manager.h @@ -0,0 +1,37 @@ +#ifndef DEVICE_MANAGER_H_ +#define DEVICE_MANAGER_H_ + +#include +#include +#include +#include +#include + +#include "utils/types.h" +#include "utils/ui.h" + +#define KEY_BASE 0x0 +#define LW_BRIDGE_SPAN 0x00005000 +#define LW_BRIDGE_BASE 0xff200000 + +#define HEIGHT 360 +#define WIDTH 480 +#define SENSIBILITY 2 + +typedef struct mouse_t { + u64_t fd; + u32_t x; + u32_t y; + u8_t left; + u8_t middle; + u8_t right; + + void (*read)(struct mouse_t* mouse); +} mouse_t; + +void read_mouse(mouse_t* mouse); +mouse_t init_mouse(u64_t fd_mouse); +u64_t* read_KEY(u64_t fd_map, void* LW_virtual); +void close_KEY(u64_t fd_map, void* LW_virtual); + +#endif // DEVICE_MANAGER_H_ \ No newline at end of file From 084541381cdc6ad0ac51b95ab81389d425e8c86e Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Mon, 8 Jul 2024 09:51:15 -0300 Subject: [PATCH 29/33] feat: update main.c --- src/main.c | 144 +++++++++++++---------------------------------------- 1 file changed, 34 insertions(+), 110 deletions(-) diff --git a/src/main.c b/src/main.c index 0686bc8..6b08146 100644 --- a/src/main.c +++ b/src/main.c @@ -6,9 +6,12 @@ #include #include #include +#include #include +#include "Device_manager.h" #include "GraphSync.h" +#include "State_machine.h" #define HEX5_BASE 0x10 #define HEX4_BASE 0x20 @@ -24,133 +27,54 @@ #define HEX1_BASE_PHY (LW_VIRTUAL + HEX1_BASE) #define HEX0_BASE_PHY (LW_VIRTUAL + HEX0_BASE) +#define INICIO 0 +#define JOGO 1 +#define PAUSA 2 +#define REINICIAR 3 + #define KEY_BASE 0x0 #define LW_BRIDGE_SPAN 0x00005000 #define LW_BRIDGE_BASE 0xff200000 -// int fd; -// --------------- MÁQUINA DE ESTADOS DAS TELAS ----------------- -void change_state(u64_t state) { - switch (state) { - case 0: - set_background_color(1, 1, 1); - break; - - case 1: - set_background_color(6, 1, 1); - break; - - case 2: - set_background_color(1, 6, 1); - break; - - case 3: - set_background_color(1, 1, 6); - break; - - default: - break; - } -} - -//------------------------------------------------------------- +static u64_t fd_mouse = -1; +static u64_t fd_map = -1; +static void* LW_virtual = NULL; int main(void) { // --------------------- TESTE DA MUDANÇA DE TELA COM OS BOTÕES ------------------------------------- - volatile u64_t *KEY_ptr; - u64_t fd = -1; - void *LW_virtual; - fd = open("/dev/mem", (O_RDWR | O_SYNC)); - if (fd == -1) { - return -1; - } + sprite_t sprite_car; + sprite_car.coord_x = 50; + sprite_car.coord_y = 10; + sprite_car.step_x = 1; + sprite_car.step_y = 0; + sprite_car.offset = 8; + sprite_car.ativo = 1; - LW_virtual = mmap(NULL, LW_BRIDGE_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, LW_BRIDGE_BASE); - - if (LW_virtual == MAP_FAILED) { - close(fd); - return -1; - } + mouse_t mouse = init_mouse(fd_mouse); + u64_t* KEY_ptr = (u64_t*)read_KEY(fd_map, LW_virtual); + u64_t state_game = INICIO; - KEY_ptr = (u64_t *)(LW_virtual + KEY_BASE); - - u64_t state_game; - - state_game = 0; + set_background_color(6, 7, 7); while (1) { - if (*KEY_ptr == 0b1111) { - // state_game = 0; - // Mantem o estado anterior - } else if (*KEY_ptr == 0b1110) { - state_game = 1; - change_state(state_game); - } else if (*KEY_ptr == 0b1101) { - state_game = 2; - change_state(state_game); - } else if (*KEY_ptr == 0b1011) { - state_game = 3; - change_state(state_game); - } - } + change_state(&state_game, KEY_ptr); - if (munmap(LW_virtual, LW_BRIDGE_SPAN) != 0) { - return -1; - } - - close(fd); - - //----------------------- TESTE DO MÓDULO DE KERNEL (VELOCIDADE QUE DESENHA E APAGA) ------------------------------- - // draw_picture(); - - // // sleep(1); - // clean_background(); - // clean_polygon(); - // clean_sprite(); - - //----------------------- TESTE DO MOVIMENTO DO MOUSE (COM SPRITE COMO CURSOR) -------------------------------- - - // struct input_event ev; - - // fd = open("/dev/input/event0", O_RDONLY); - // if (fd == -1) { - // perror("Erro ao abrir o dispositivo de entrada"); - // exit(EXIT_FAILURE); - // } - - // set_background_color(1, 1, 1); - - // u16_t offset = 25; - // sprite_fixed_t new_sprite = set_new_sprite(offset); - - // u16_t center_x = 320; - // u16_t center_y = 10; - - // new_sprite.ativo = 1; - // new_sprite.coord_x = center_x; - // new_sprite.coord_y = center_y; - // new_sprite.data_register = 2; - - // set_fixed_sprite(new_sprite); + if (state_game == INICIO) { + set_background_color(1, 1, 1); - // while (1) { - // ssize_t bytes = read(fd, &ev, sizeof(struct input_event)); - // if (bytes < sizeof(struct input_event)) { - // perror("Erro ao ler evento"); - // exit(EXIT_FAILURE); - // } + } else if (state_game == JOGO) { + set_background_color(6, 1, 1); + set_dynamic_sprite(sprite_car); - // // Atualiza a posição do cursor baseado no movimento do mouse - // if (ev.type == EV_REL && ev.code == REL_X) { - // new_sprite.coord_x += ev.value; - // } else if (ev.type == EV_REL && ev.code == REL_Y) { - // // new_sprite.coord_y += ev.value; - // } + } else if (state_game == PAUSA) { + set_background_color(1, 6, 1); - // set_fixed_sprite(new_sprite); - // } + } else if (state_game == REINICIAR) { + set_background_color(1, 1, 6); + } + } return 0; } From ee427fb452328bbb9fc35a20a6c343ed07073f73 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Mon, 8 Jul 2024 09:51:32 -0300 Subject: [PATCH 30/33] feat: update GraphSync --- src/GraphSync.c | 269 +++++++++++++++++++++++++++++------------------- src/GraphSync.h | 6 +- 2 files changed, 170 insertions(+), 105 deletions(-) diff --git a/src/GraphSync.c b/src/GraphSync.c index 6dcd0b1..8f87b0f 100644 --- a/src/GraphSync.c +++ b/src/GraphSync.c @@ -22,6 +22,8 @@ #define S_font "s-font" #define U_font "u-font" +#define SIZE 20 + static int device_fd = -1; void write_data(u64_t data) { @@ -206,7 +208,22 @@ void clean_background() { } } -sprite_fixed_t set_new_sprite(u16_t sprite_offset) { +u8_t increase_coordinate_sprite(sprite_t *sprite) { + sprite->coord_x += sprite->step_x; + sprite->coord_y += sprite->step_y; + + return 0; +} + +u8_t collision(sprite_t *sp1, sprite_t *sp2) { + if (sp1->coord_x < sp2->coord_x + SIZE && sp1->coord_x + SIZE > sp2->coord_x && sp1->coord_y < sp2->coord_y + SIZE && + sp1->coord_y + SIZE > sp2->coord_y) { + return 1; + } + return 0; +} + +sprite_t set_new_sprite(u16_t sprite_offset) { u32_t dataA, dataB; char instruction_str[65]; @@ -216,8 +233,48 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { u16_t init_addr = sprite_offset * 400; // Cores da imagem para a sprite - string sprite_name = FROG; - u8_t pixel_data[400][3] = select_sprite(sprite_name); + char sprite_name[5] = FROG; + u8_t pixel_data[400][3] = { + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, + {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {3, 7, 4}, + {3, 7, 4}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {1, 5, 2}, + {1, 5, 2}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, + {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 6, 1}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 6, 1}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, + {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, + {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, + {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, + {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, + {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, + {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, + {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {0, 2, 1}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, + {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {0, 2, 1}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, + {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; u16_t max_addr = init_addr + 400; u16_t addr; @@ -238,7 +295,7 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { write_data(instruction); } - sprite_fixed_t new_sprite; + sprite_t new_sprite; new_sprite.offset = sprite_offset; close_data(device_fd); @@ -246,103 +303,107 @@ sprite_fixed_t set_new_sprite(u16_t sprite_offset) { return new_sprite; } -u8_t select_sprite(u8_t sprite_name) { - u8_t pixel_data[400][3]; - - switch (sprite_name) { - case FROG: - pixel_data = { - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, - {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {3, 7, 4}, - {3, 7, 4}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {1, 5, 2}, - {1, 5, 2}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, - {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, - {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, - {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 6, 1}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 6, 1}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, - {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, - {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, - {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, - {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, - {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, - {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, - {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {0, 2, 1}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, - {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {0, 2, 1}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; - break; - - case A_font: - pixel_data = { - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, - {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, - {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, - {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, - {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {7, 0, 1}, - {7, 0, 1}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {7, 0, 1}, - {7, 0, 1}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {5, 0, 0}, - {5, 0, 0}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 4, 3}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 0, 1}, {6, 7, 7}, - {6, 7, 7}, {7, 0, 1}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {6, 7, 7}, - {6, 7, 7}, {5, 4, 3}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, - {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {6, 7, 7}, - {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, - {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, - {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 0, 1}, {7, 0, 1}, - {7, 0, 1}, {7, 0, 1}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 0, 1}, {7, 0, 1}, - {7, 0, 1}, {7, 0, 1}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {5, 0, 0}, {5, 0, 0}, - {5, 0, 0}, {5, 0, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, - {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, - {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, - {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, - {6, 7, 7}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, - {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; - break; - - case C_font: - pixel_data = ; - break; - - default: - break; - } -} \ No newline at end of file +// u8_t select_sprite(char sprite_name) { +// u8_t pixel_data[400][3]; + +// switch (sprite_name) { +// case FROG: +// pixel_data = { +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, +// 7, 4}, {6, 7, 7}, {6, 7, 7}, {3, 7, 4}, {7, 7, 7}, {7, 7, 7}, {3, 7, 4}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {7, 7, 7}, {3, 7, 4}, {3, 7, 4}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {7, 7, 7}, {1, 5, 2}, {1, 5, 2}, {7, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {2, 5, 3}, {1, 5, 2}, {1, +// 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {2, 5, 3}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, +// 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, +// 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, +// {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, +// 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, +// 7, 7}, {1, 5, 2}, {5, 6, 1}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 6, 1}, +// {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, 6, 1}, {5, +// 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, +// 0}, {5, 7, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, +// {5, 7, 0}, {3, 5, 0}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, 0}, {5, +// 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, +// {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, {5, 7, +// 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {2, 5, 3}, {2, 5, 3}, {2, 5, 3}, {6, 7, 7}, {6, +// 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {3, 5, 0}, {5, 7, 0}, {5, 7, 0}, +// {5, 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {1, 5, 2}, {6, 7, +// 7}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, 7}, {3, 5, 0}, {5, +// 7, 0}, {5, 7, 0}, {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {0, 3, 1}, {0, 3, 1}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {6, 7, +// 7}, {3, 5, 0}, {3, 5, 0}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, +// {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {1, 5, 2}, {6, 7, 7}, {1, 5, 2}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {0, 2, 1}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, +// 3, 1}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, {6, 7, 7}, {0, 3, 1}, {6, 7, 7}, {6, 7, 7}, {0, 3, 1}, {0, 3, 1}, +// {0, 2, 1}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; +// break; + +// case A_font: +// pixel_data = { +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, +// {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {5, 4, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, +// 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, +// 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, +// {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, +// 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, +// 6, 0}, {7, 6, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, +// {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, +// 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, +// 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {5, 4, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, +// {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 0, 1}, {5, 0, 0}, {5, 0, 0}, {7, 0, 1}, {7, 6, 0}, {7, 6, 0}, {7, 6, +// 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {7, 6, 0}, {6, 7, 7}, {6, 7, 7}, {5, 4, 3}, {7, 7, 4}, {7, 7, 4}, {7, +// 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 7, 4}, {7, 7, 4}, +// {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {6, 7, 7}, {6, 7, 7}, {5, 4, 3}, {7, 7, 4}, {7, 7, +// 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, +// 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {7, 7, 4}, {6, 7, 7}, {6, 7, 7}, {5, 2, 0}, {7, 3, 0}, +// {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, +// 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, {6, 7, 7}, {5, 2, 0}, {7, +// 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, +// {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, {6, 7, 7}, {5, 2, +// 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, +// 0, 1}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, {6, 7, 7}, +// {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, +// 1}, {7, 0, 1}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, 7}, {6, +// 7, 7}, {5, 2, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {5, 0, 0}, {5, 0, 0}, +// {5, 0, 0}, {5, 0, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {7, 3, 0}, {6, 7, +// 7}, {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, +// {6, 7, 7}, {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, +// 0, 1}, {6, 7, 7}, {6, 7, 7}, {5, 0, 0}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, +// {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, 1}, {7, 0, +// 1}, {7, 0, 1}, {6, 7, 7}, {6, 7, 7}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, +// 0, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, {5, 0, 0}, +// {5, 0, 0}, {5, 0, 0}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, +// 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, +// 7, 7}, {6, 7, 7}, {6, 7, 7}, {6, 7, 7}}; +// break; + +// case C_font: +// pixel_data = ; +// break; + +// default: +// break; +// } +// } \ No newline at end of file diff --git a/src/GraphSync.h b/src/GraphSync.h index dc43a12..b043574 100644 --- a/src/GraphSync.h +++ b/src/GraphSync.h @@ -123,6 +123,10 @@ void clean_polygon(); void clean_background(); -sprite_fixed_t set_new_sprite(u16_t sprite_offset); +sprite_t set_new_sprite(u16_t sprite_offset); void draw_picture(); + +u8_t increase_coordinate_sprite(sprite_t *sprite); + +u8_t collision(sprite_t *sp1, sprite_t *sp2); \ No newline at end of file From f3b8d80bdeb395cb58ddf5a6edbbe73e438dfe43 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Mon, 8 Jul 2024 09:51:45 -0300 Subject: [PATCH 31/33] feat: update Makefile --- src/Makefile | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Makefile b/src/Makefile index df6f342..9d62430 100644 --- a/src/Makefile +++ b/src/Makefile @@ -17,14 +17,19 @@ build: build/dir build/main build/dir: @mkdir -p build -build/main: build/GraphSync.o build/main.o - @gcc build/GraphSync.o build/main.o -o build/main - +build/main: build/GraphSync.o build/main.o build/Device_manager.o build/State_machine.o + @gcc build/GraphSync.o build/main.o build/Device_manager.o build/State_machine.o -o build/main build/GraphSync.o: GraphSync.c GraphSync.h utils/ui.h utils/types.h @gcc -c GraphSync.c -o build/GraphSync.o -Isrc -Iutils -build/main.o: main.c GraphSync.h utils/ui.h utils/types.h +build/Device_manager.o: Device_manager.c Device_manager.h utils/ui.h utils/types.h + @gcc -c Device_manager.c -o build/Device_manager.o -Isrc -Iutils + +build/State_machine.o: State_machine.c State_machine.h utils/types.h + @gcc -c State_machine.c -o build/State_machine.o -Isrc -Iutils + +build/main.o: main.c GraphSync.h utils/ui.h utils/types.h @gcc -c main.c -o build/main.o -Isrc -Iutils run: build From 1c17e6082d2ab171ef142abcc7e25282635d5aa2 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Mon, 8 Jul 2024 09:52:04 -0300 Subject: [PATCH 32/33] feat: Create State_machine --- src/State_machine.c | 57 +++++++++++++++++++++++++++++++++++++++++++++ src/State_machine.h | 13 +++++++++++ 2 files changed, 70 insertions(+) create mode 100644 src/State_machine.c create mode 100644 src/State_machine.h diff --git a/src/State_machine.c b/src/State_machine.c new file mode 100644 index 0000000..99731d9 --- /dev/null +++ b/src/State_machine.c @@ -0,0 +1,57 @@ +#include "State_machine.h" + +void change_state(u64_t *state, u64_t *button) { + switch (*state) { + case INICIO: + + if (*button == 0b0111) { + *state = JOGO; + while (*button == 0b0111) { + /* code */ + } + } + + else { + *state = INICIO; + } + + break; + + case JOGO: + if (*button == 0b0111) { + *state = PAUSA; + while (*button == 0b0111) { + /* code */ + } + } else { + *state = JOGO; + } + // set_dynamic_sprite(sprite_car); + + break; + + case PAUSA: + + if (*button == 0b0111) { + *state = JOGO; + while (*button == 0b0111) { + /* code */ + } + } else if (*button == 0b1011) { + *state = REINICIAR; + } else if (*button == 0b1101) { + *state = INICIO; + } else { + *state = PAUSA; + } + break; + + case REINICIAR: + sleep(2); + *state = JOGO; + break; + + default: + break; + } +} \ No newline at end of file diff --git a/src/State_machine.h b/src/State_machine.h new file mode 100644 index 0000000..6893f59 --- /dev/null +++ b/src/State_machine.h @@ -0,0 +1,13 @@ +#ifndef STATE_MACHINE_H_ +#define STATE_MACHINE_H_ + +#include "utils/types.h" + +#define INICIO 0 +#define JOGO 1 +#define PAUSA 2 +#define REINICIAR 3 + +void change_state(u64_t *state, u64_t *button); + +#endif // STATE_MACHINE_H_ \ No newline at end of file From b00897c4716510058a05053df282855821697877 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Mon, 8 Jul 2024 09:52:21 -0300 Subject: [PATCH 33/33] feat: update json --- .vscode/settings.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7bc958f..5704791 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,6 +6,8 @@ "ui.h": "c", "DATA_A.C": "cpp", "data.C": "cpp", - "stdlib.h": "c" + "stdlib.h": "c", + "mman.h": "c", + "device_manager.h": "c" } } \ No newline at end of file