From 3a048b868a8613ade8ed231ff667a611200fc98a Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Sat, 6 Jul 2024 14:08:43 -0300 Subject: [PATCH 1/6] 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 230bd21a519a779463210c71cf0383e703f7e312 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Sat, 6 Jul 2024 14:09:09 -0300 Subject: [PATCH 2/6] 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 3429cf702064fdc0d8bfb42a473f757762a66662 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Sat, 6 Jul 2024 14:09:25 -0300 Subject: [PATCH 3/6] feat: update main.c --- src/main.c | 204 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 165 insertions(+), 39 deletions(-) diff --git a/src/main.c b/src/main.c index 0686bc8..5ab6bc1 100644 --- a/src/main.c +++ b/src/main.c @@ -6,8 +6,10 @@ #include #include #include +#include #include +#include "Device_manager.h" #include "GraphSync.h" #define HEX5_BASE 0x10 @@ -24,28 +26,36 @@ #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; +static u64_t fd_mouse = -1; +static u64_t fd_map = -1; +static void* LW_virtual = NULL; + // --------------- MÁQUINA DE ESTADOS DAS TELAS ----------------- void change_state(u64_t state) { switch (state) { - case 0: + case INICIO: set_background_color(1, 1, 1); break; - case 1: + case JOGO: set_background_color(6, 1, 1); break; - case 2: + case PAUSA: set_background_color(1, 6, 1); break; - case 3: + case REINICIAR: set_background_color(1, 1, 6); break; @@ -58,49 +68,143 @@ void change_state(u64_t state) { 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; - } + // MOUSE - LW_virtual = mmap(NULL, LW_BRIDGE_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, LW_BRIDGE_BASE); + // struct input_event ev; - if (LW_virtual == MAP_FAILED) { - close(fd); - return -1; - } + // fd_mouse = open("/dev/input/event0", O_RDONLY); + // if (fd_mouse == -1) { + // perror("Erro ao abrir o dispositivo de entrada"); + // exit(EXIT_FAILURE); + // } + + // mouse_t mouse = init_mouse(fd_mouse); + + u16_t offset = 25; + // u16_t selec_sprite = C_font; + // sprite_t new_sprite = set_new_sprite(offset, selec_sprite); + + 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; + + // u8_t i; + // u8_t result; + + // 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); + // } - KEY_ptr = (u64_t *)(LW_virtual + KEY_BASE); + // // 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); + // } + + // 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; + // } + + // 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; + // } + + 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; + + // KEY_ptr = (u64_t *)(LW_virtual + KEY_BASE); - u64_t state_game; + mouse_t mouse = init_mouse(fd_mouse); - state_game = 0; + u64_t* KEY_ptr = (u64_t*)read_KEY(fd_map, LW_virtual); + + u64_t state_game = INICIO; + + 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); + + if (state_game == INICIO) { + if (*KEY_ptr == 0b0111) { + state_game = JOGO; + while (*KEY_ptr == 0b0111) { + /* code */ + } + } else { + state_game == INICIO; + } + // change_state(state_game); + } else if (state_game == JOGO) { + if (*KEY_ptr == 0b0111) { + state_game = PAUSA; + while (*KEY_ptr == 0b0111) { + /* code */ + } + + } else { + state_game = JOGO; + } + + //mouse.read(&mouse); + + // // 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_dynamic_sprite(sprite_car); + + // change_state(state_game); + } else if (state_game == PAUSA) { + if (*KEY_ptr == 0b0111) { + state_game = JOGO; + while (*KEY_ptr == 0b0111) { + /* code */ + } + } else if (*KEY_ptr == 0b1011) { + state_game = REINICIAR; + } else if (*KEY_ptr == 0b1101) { + state_game = INICIO; + } else { + state_game = PAUSA; + } + // change_state(state_game); + } else if (state_game == REINICIAR) { + sleep(2); + state_game = JOGO; } + // change_state(state_game); } - 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(); @@ -123,7 +227,7 @@ int main(void) { // set_background_color(1, 1, 1); // u16_t offset = 25; - // sprite_fixed_t new_sprite = set_new_sprite(offset); + // sprite_t new_sprite = set_new_sprite(offset); // u16_t center_x = 320; // u16_t center_y = 10; @@ -133,7 +237,29 @@ int main(void) { // new_sprite.coord_y = center_y; // new_sprite.data_register = 2; - // set_fixed_sprite(new_sprite); + // set_dynamic_sprite(new_sprite); + + // 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; + + // u8_t i; + // u8_t result; + + // while (i = 0, i < 20, ++i) { + // increase_coordinate_sprite(&sprite_car); + // set_dynamic_sprite(sprite_car); + // usleep(10000); + // result = collision(&sprite_car, &new_sprite); + // if (result) { + // printf("COLIDIU!\n"); + // break; + // } + // } // while (1) { // ssize_t bytes = read(fd, &ev, sizeof(struct input_event)); From 566d7e95588a3570f480aae79f9a83e7a74c194c Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Sat, 6 Jul 2024 14:09:39 -0300 Subject: [PATCH 4/6] feat: update Makefile --- src/Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Makefile b/src/Makefile index df6f342..5c2829a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -17,14 +17,16 @@ 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 + @gcc build/GraphSync.o build/main.o build/Device_manager.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/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 4f7b41d7ee29839677e48a164db22b295df560a1 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Sat, 6 Jul 2024 14:10:33 -0300 Subject: [PATCH 5/6] feat: update settings.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 From ead3759d4f6660eeb6e556d1287800ca49e9ddf4 Mon Sep 17 00:00:00 2001 From: Yasmin Cordeiro Date: Sat, 6 Jul 2024 14:12:24 -0300 Subject: [PATCH 6/6] feat: update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 70f3d0e..b6db2dd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ src/kernel/.gpp_data_bus.ko.cmd src/kernel/.gpp_data_bus.mod.cmd src/kernel/.gpp_data_bus.mod.o.cmd src/kernel/.gpp_data_bus.o.cmd +src/kernel/.gpp_data_bus.mod src/kernel/.modules.order.cmd src/kernel/Module.symvers src/kernel/gpp_data_bus.ko @@ -13,4 +14,4 @@ src/kernel/gpp_data_bus.mod.o src/kernel/gpp_data_bus.o src/kernel/modules.order src/utils/aux.h -src/utils/aux.c +src/utils/aux.c \ No newline at end of file