diff options
-rw-r--r-- | src/GameLoop/shop.c | 30 | ||||
-rw-r--r-- | src/GameLoop/shop.h | 16 | ||||
-rw-r--r-- | src/GameLoop/startingScreen.c | 32 | ||||
-rw-r--r-- | src/GameLoop/startingScreen.h | 14 | ||||
-rw-r--r-- | src/demo.c | 153 | ||||
-rw-r--r-- | src/engine/bullet.c | 44 | ||||
-rw-r--r-- | src/engine/bullet.h | 16 | ||||
-rw-r--r-- | src/engine/draw_screen.c | 35 | ||||
-rw-r--r-- | src/engine/draw_screen.h | 5 | ||||
-rw-r--r-- | src/engine/entity.c | 81 | ||||
-rw-r--r-- | src/engine/entity.h | 25 | ||||
-rw-r--r-- | src/engine/player_controller.c | 182 | ||||
-rw-r--r-- | src/engine/sprite_controller.c | 4 | ||||
-rw-r--r-- | src/engine/sprite_controller.h | 32 | ||||
-rw-r--r-- | src/engine/title_screen.c | 93 | ||||
-rw-r--r-- | src/engine/title_screen.h | 3 | ||||
-rw-r--r-- | src/makefile | 6 | ||||
-rw-r--r-- | src/ppusim/input.c | 1 | ||||
-rw-r--r-- | src/ppusim/sim.c | 3 | ||||
-rw-r--r-- | src/static/background/shop.hex | 331 | ||||
-rw-r--r-- | src/static/background/shop_ext.hex | 459 | ||||
-rw-r--r-- | src/static/background/title_screen_icon.hex | 102 | ||||
-rw-r--r-- | src/static/foreground/title_screen_letteres_large.hex (renamed from src/static/title_screen_letteres_large.hex) | 0 | ||||
-rw-r--r-- | src/static/title_screen_icon.hex | 119 |
24 files changed, 1514 insertions, 272 deletions
diff --git a/src/GameLoop/shop.c b/src/GameLoop/shop.c new file mode 100644 index 0000000..eb6bed5 --- /dev/null +++ b/src/GameLoop/shop.c @@ -0,0 +1,30 @@ +#include "shop.h" + + +bool hh_show_Shop(){ + static hh_e_ShopStates hh_e_Shop = hh_e_STATE_SHOW; + + switch (hh_e_Shop) + { + case hh_e_STATE_SHOW: + //hh_clear_screen(); + + //hh_setup_shop(); + hh_e_Shop = hh_e_STATE_Input; + return false; + break; + case hh_e_STATE_Input: + if(g_hh_controller_p1.button_primary){ + hh_e_Shop = hh_e_STATE_END; + } + break; + case hh_e_STATE_END: + hh_e_Shop = hh_e_STATE_SHOW; + return true; + break; + default: + hh_e_Shop = hh_e_STATE_SHOW; + break; + } + return false; +} diff --git a/src/GameLoop/shop.h b/src/GameLoop/shop.h new file mode 100644 index 0000000..4014f58 --- /dev/null +++ b/src/GameLoop/shop.h @@ -0,0 +1,16 @@ +#include "input.h" +#include "engine/draw_screen.h" + + + +#include <stdint.h> +#include <stdbool.h> + +typedef enum { + hh_e_STATE_SHOW, + hh_e_STATE_Input, + hh_e_STATE_END +} hh_e_ShopStates; + + +bool hh_show_Shop(); diff --git a/src/GameLoop/startingScreen.c b/src/GameLoop/startingScreen.c new file mode 100644 index 0000000..4fc5af9 --- /dev/null +++ b/src/GameLoop/startingScreen.c @@ -0,0 +1,32 @@ +#include "startingScreen.h" +#include "input.h" +#include "engine/title_screen.h" +#include "engine/draw_screen.h" +// #include "engine/player_controller.h" + +bool hh_show_startingScreen(){ + static hh_e_screenStates hh_e_startingScreen = hh_e_STATE_SHOW; + + switch (hh_e_startingScreen) + { + case hh_e_STATE_SHOW: + hh_clear_screen(); + hh_init_title_screen(); + hh_e_startingScreen = hh_e_STATE_Input; + return false; + break; + case hh_e_STATE_Input: + if(g_hh_controller_p1.button_primary){ + hh_e_startingScreen = hh_e_STATE_END; + } + break; + case hh_e_STATE_END: + hh_e_startingScreen = hh_e_STATE_SHOW; + return true; + break; + default: + hh_e_startingScreen = hh_e_STATE_SHOW; + break; + } + return false; +} diff --git a/src/GameLoop/startingScreen.h b/src/GameLoop/startingScreen.h new file mode 100644 index 0000000..f51cc66 --- /dev/null +++ b/src/GameLoop/startingScreen.h @@ -0,0 +1,14 @@ +#pragma once + +#include <stdint.h> +#include <stdbool.h> + +typedef enum { + hh_e_STATE_SHOW, + hh_e_STATE_Input, + hh_e_STATE_END +} hh_e_screenStates; + + +bool hh_show_startingScreen(); + @@ -11,22 +11,21 @@ #include "engine/draw_screen.h" #include "engine/player_controller.h" #include "engine/sprite_controller.h" +#include "GameLoop/startingScreen.h" +typedef enum { + hh_e_STATE_startingScreen, + hh_e_STATE_Shop, + hh_e_STATE_Gameplay, + hh_e_STATE_GameOver, + hh_e_STATE_HighScore +} hh_e_GameState; +hh_e_GameState hh_gameStates; -hh_s_entity_player g_hh_player_1 = { - .pos_x = 31000, // 0b0000 0001 0011 0110 - .pos_y = 21000, - .radius = 8, - .speed = 100, - .direction_x = 1, - .rotation = 8, - .in_air = false, -}; -void hh_player_movement(); -uint16_t g_hh_pos_x; // 0b0000 0001 0011 0110 +uint16_t g_hh_pos_x = 1000; // 0b0000 0001 0011 0110 uint16_t g_hh_pos_y; uint8_t g_hh_left = 0; uint8_t g_hh_right = 0; @@ -35,7 +34,7 @@ uint8_t g_hh_down = 0; uint8_t g_hh_pos_x_bit[2]; uint8_t g_hh_pos_y_bit[2]; uint8_t g_hh_data_send[3]; -int g_hh_tile_x; +int g_hh_tile_size = 8; int g_hh_tile_y; typedef struct { @@ -48,16 +47,54 @@ hh_entity hh_g_player, hh_g_player_new; void hh_demo_setup() { hh_setup_palettes(); - hh_setup_screen(); + // hh_setup_screen(); + } void hh_demo_loop(unsigned long frame) { - // hh_player_movement(); - - hh_player_actions(); - + + switch (hh_gameStates) + { + case hh_e_STATE_startingScreen: + bool ret = hh_show_startingScreen(); + if(ret){ + hh_gameStates = hh_e_STATE_Shop; + } + break; + case hh_e_STATE_Shop: + // TODO: + // if(hh_show_Shop()){ + hh_clear_screen(); + hh_clear_sprite(); + hh_setup_screen(); + hh_clear_sprite(); + hh_gameStates = hh_e_STATE_Gameplay; + // } + // function: new level is chosen goto level + break; + case hh_e_STATE_Gameplay: + hh_player_actions(); + + // TODO: + // function: if level complete goto shop + // function: if player is dead goto game over + break; + case hh_e_STATE_GameOver: + // TODO: + // function: show game over screen + // function: after time goto high score + break; + case hh_e_STATE_HighScore: + // TODO: + // fucntion: show all previously scored points + // function: button pressed goto starting screen + break; + default: + hh_gameStates = hh_e_STATE_startingScreen; + break; + } } // void sendData(uint8_t address, uint16_t data) { @@ -71,84 +108,8 @@ void hh_demo_loop(unsigned long frame) { // HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_SET); // } -void hh_player_movement() { - int8_t directionX = (-1 * g_hh_controller_p1.dpad_left) + (1 * g_hh_controller_p1.dpad_right); // -1 = L || 1 == R - int8_t directionY = (-1 * g_hh_controller_p1.dpad_up) + (1 * g_hh_controller_p1.dpad_down); // -1 = D || 1 == U - - uint8_t i, j; - uint8_t rotation = 0; // 0-7 - - // rotation calc - for (i = -1; i < 2; i++) { - for (j = -1; j < 2; j++) { - if (directionX == i) { - if (directionY == j) { - if (i != 0 && j != 0) // dont update when player idle - { - g_hh_player_1.rotation = rotation; - } - } - } - rotation++; - } - } - // direction calc - if (directionX != 0) // update direction if player is not idle - { - g_hh_player_1.direction_x = directionX; - } - // collision map x-axis - - // tile calc including radius and direction for background coliision - - uint16_t tileColX; - uint16_t tileColY = (g_hh_player_1.pos_y / 100) / 16; - ; - - // remaining space between grid and exact - uint8_t modTileX; - uint8_t modTileY; - - if (g_hh_player_1.in_air == false && directionX != 0) { - if (directionX == 1) { - tileColX = ((g_hh_player_1.pos_x / 100) + g_hh_player_1.radius) / 16; - modTileX = (g_hh_player_1.pos_x + (100 * g_hh_player_1.radius)) % 1600; - } else if (directionX == -1) { - tileColX = ((g_hh_player_1.pos_x / 100) - g_hh_player_1.radius) / 16; - modTileX = (g_hh_player_1.pos_x - (100 * g_hh_player_1.radius)) % 1600; - } - - if (HH_DEMO_HITBOX_TILEMAP[tileColY][tileColX + directionX] != 1) { - g_hh_player_1.pos_x = g_hh_player_1.pos_x + (directionX * g_hh_player_1.speed); // NEW x set - } - - else if (HH_DEMO_HITBOX_TILEMAP[tileColY][tileColX + directionX] == 1) { - if (modTileX < g_hh_player_1.speed) { - g_hh_player_1.pos_x = g_hh_player_1.pos_x + (directionX * modTileX); // NEW x set - } else { - g_hh_player_1.pos_x = g_hh_player_1.pos_x + (directionX * g_hh_player_1.speed); // NEW x set - } - } - - } else // if in air different all borders have to be checked - { - } - if(directionY != 0) - { - // g_hh_player_1.pos_y = g_hh_player_1.pos_y + (directionY * g_hh_player_1.speed * 2); // NEW x set - } - // collision map floor (y-axis) (falling) - // if falling no jump press (implement) - /* - tileColY = (( g_hh_player_1.pos_y / 100) + g_hh_player_1.radius) / 16; //bottom of player box - modTileY = 1; - if(HH_DEMO_HITBOX_TILEMAP[tileColY+1][tileColX] != 1) //rework after jumping - { - g_hh_player_1.pos_y = g_hh_player_1.pos_y + 5 ;// NEW y set //makew var gravity - //playerStat = falling; //for later use of graphics/sound - } - */ - // else if(HH_DEMO_HITBOX_TILEMAP[]) -} + + + diff --git a/src/engine/bullet.c b/src/engine/bullet.c new file mode 100644 index 0000000..5aa9e51 --- /dev/null +++ b/src/engine/bullet.c @@ -0,0 +1,44 @@ +#include "bullet.h" +#include "engine/sprite_controller.h" + + +void shootBullet(vec2 playerPos, Bullet* bullet){ + // Set bullet's x and y coordinates to player's coordinates + bullet->x = playerPos.x; + bullet->y = playerPos.y; + // Set bullet's velocity to a fixed value + bullet->velocity = 1; + // Set bullet's status to active + bullet->isActive = true; +} +void updateBullet(Bullet* bullet, int deltaTime){ + // Only update bullet if it is active + static int latestLocationBullet = 0; + if (bullet->isActive) { + // Move bullet based on velocity and deltaTime + bullet->x += bullet->velocity * deltaTime; + drawBullet(bullet); + // Check if bullet has moved 16 pixels + if (bullet->x - latestLocationBullet > 32) { + // Set bullet's status to inactive + bullet->isActive = false; + drawBullet(&(Bullet){.x = -16,.y = -16. }); + } + } + else{ + latestLocationBullet = bullet->x; + } +} +void drawBullet(Bullet* bullet){ + + + hh_ppu_update_foreground(10, (hh_s_ppu_loc_fam_entry) + { + .position_x = bullet->x, + .position_y = bullet->y, + .horizontal_flip = false, + .vertical_flip = false, + .palette_index = 7, + .tilemap_index = 84, // change tilemap to the correct foreground index; + }); +} diff --git a/src/engine/bullet.h b/src/engine/bullet.h new file mode 100644 index 0000000..ad67d84 --- /dev/null +++ b/src/engine/bullet.h @@ -0,0 +1,16 @@ +#pragma once +#include "player_controller.h" + +typedef struct { + int x; + int y; + int velocity; + int isActive; + int hit; +} Bullet; + + +//Bullet* createBullet(float x, float y, float velocity, float direction); +void shootBullet(vec2 playerPos, Bullet* bullet); +void updateBullet(Bullet* bullet, int deltaTime); +void drawBullet(Bullet* bullet); diff --git a/src/engine/draw_screen.c b/src/engine/draw_screen.c index c4f3389..0c31bf6 100644 --- a/src/engine/draw_screen.c +++ b/src/engine/draw_screen.c @@ -2,8 +2,8 @@ #include "engine/sprite_controller.h" uint8_t hh_world_to_tile(vec2 pos){ - - FILE* level = fopen("../test/bin/level1_test.bin", "rb"); /* open binary file */ + //TODO: remove magic file name here + FILE* level = fopen("static/level1_test.bin", "rb"); /* open binary file */ if (!level) { /* check if file opened successfully */ fprintf(stderr, "Error: Failed to open file.\n"); return 0; @@ -39,9 +39,10 @@ void hh_draw_screen(vec_cor viewport){ void hh_setup_screen(){ //(HH_map_size_X*HH_map_size_Y) int size = 2400; // max X = 40 en max Y = 80 - FILE* level = fopen("../test/bin/level1_test.bin", "rb"); /* open binary file */ + //TODO: remove magic file name here + FILE* level = fopen("static/level1_test.bin", "rb"); /* open binary file */ if (!level) { /* check if file opened successfully */ - fprintf(stderr, "Error: Failed to open file.\n"); + fprintf(stderr, "Error: Failed to open level file.\n"); return; } fseek(level, (0* sizeof(int)) + sizeof(int), SEEK_SET); @@ -60,3 +61,29 @@ void hh_setup_screen(){ } free(tile); } +void hh_clear_screen(){ + // (HH_PPU_SCREEN_HEIGHT*HH_PPU_SCREEN_WIDTH)/(HH_PPU_SPRITE_HEIGHT*HH_PPU_SPRITE_WIDTH) + for (int i = 0; i < HH_PPU_BG_CANVAS_TILES_H*HH_PPU_BG_CANVAS_TILES_V; i++) { + hh_s_ppu_loc_bam_entry temp = { + .vertical_flip=false,.horizontal_flip = false, + .palette_index = 3,.tilemap_index = 0 + }; + hh_ppu_update_background(i,temp); + hh_ppu_update_color(3,0,(hh_ppu_rgb_color_t){0x0,0x0,0x0}); + } + hh_ppu_update_aux((hh_s_ppu_loc_aux){ + .bg_shift_x = 0, + .bg_shift_y = 0, + .fg_fetch = 0, + .sysreset = 0, + }); +} + +void hh_clear_sprite(){ + for (int i = 0; i < HH_PPU_FG_SPRITE_COUNT; i++) { + hh_ppu_update_foreground(i,(hh_s_ppu_loc_fam_entry){ + .position_x = -16, + .position_y = -16, + }); + } +} diff --git a/src/engine/draw_screen.h b/src/engine/draw_screen.h index b181108..95765e5 100644 --- a/src/engine/draw_screen.h +++ b/src/engine/draw_screen.h @@ -3,6 +3,7 @@ // every function call for drawing the screen goes here. #include "engine/maths.h" +#include "ppu/consts.h" #include "ppu/ppu.h" #include <stdio.h> @@ -19,3 +20,7 @@ uint8_t hh_world_to_tile(vec2 pos); void hh_draw_screen(vec2 viewport); /** @brief send data to BAM memory from binary level */ void hh_setup_screen(); +/** @brief send black screen to background memory */ +void hh_clear_screen(); +/** @brief clears all sprite data */ +void hh_clear_sprite(); diff --git a/src/engine/entity.c b/src/engine/entity.c index 153e7e1..535759d 100644 --- a/src/engine/entity.c +++ b/src/engine/entity.c @@ -43,4 +43,85 @@ void hh_solve_collision(vec2 pos_environment, hh_entity* entity){ // entity->vel.x = 0; // } } +hh_entity hh_background_collision (hh_entity temp_old_entity,hh_entity temp_new_entity){ + temp_old_entity.is_grounded = false; + +// solves x collision + if (temp_old_entity.vel.x <= 0) { + if (hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 0, .y=temp_old_entity.pos.y + 0})) || + hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 0, .y=temp_old_entity.pos.y + 15}))) { + temp_new_entity.pos.x = (temp_new_entity.pos.x & ~15) + 16, + temp_new_entity.vel.x = 0; + } + } else { + if (hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 16, .y=temp_old_entity.pos.y + 0})) || + hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 16, .y=temp_old_entity.pos.y + 15}))) { + temp_new_entity.pos.x = temp_new_entity.pos.x & ~15, // <-- magic comma, NOT TOUCHY + temp_new_entity.vel.x = 0; + } + } + + //solves y collision + if (temp_old_entity.vel.y <= 0) { + if (hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 0, .y=temp_new_entity.pos.y + 0})) || + hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 15, .y=temp_new_entity.pos.y + 0}))) { + temp_new_entity.pos.y = (temp_new_entity.pos.y & ~15) + 16, + temp_new_entity.vel.y = 0; + } + } else { + if (hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 0, .y=temp_new_entity.pos.y + 15})) || + hh_colidable(hh_world_to_tile((vec2){.x=temp_new_entity.pos.x + 15, .y=temp_new_entity.pos.y + 15}))) { + temp_new_entity.pos.y = temp_new_entity.pos.y & ~15, + temp_new_entity.vel.y = 0; + temp_old_entity.is_grounded = true; + } + } + temp_old_entity.pos = temp_new_entity.pos; + temp_old_entity.vel = temp_new_entity.vel; + return temp_old_entity; +} + +hh_entity hh_enemy_collision(hh_entity temp_player, hh_entity temp_enemy){ + + bool collide = hh_distance_circles( temp_player.pos, temp_enemy.pos, temp_player.radius, temp_enemy.radius); + + if (collide == true && temp_player.is_hit == false) + { + temp_player.is_hit = true; + //angle = atan2( tempEntity.pos_y - tempPlayer.pos_y, tempEntity.pos_x - tempPlayer.pos_x); + if(temp_player.pos.x <= temp_enemy.pos.x) //player left of enemy -- creates flinch movement L or R + { + // printf("BONK-left!/n"); + temp_player.vel.y = -5; + temp_player.vel.x = -8; + } else { + // printf("BONK-right!/n"); + temp_player.vel.y = -5; + temp_player.vel.x = 8; + } + // ghost mode / invulnerable or other things on hit + // temp_player.hp--; + + } else { + temp_player.is_hit = false; + + } + + +return temp_player; +} + + +bool hh_distance_circles (vec2 object_1, vec2 object_2, int radius_1, int radius_2){ + int a_squared = (object_1.x - object_2.x) * (object_1.x - object_2.x); + int b_squared = (object_1.y - object_2.y) * (object_1.y - object_2.y); + int c_squared = a_squared + b_squared; + int radius = ( radius_1 + radius_2) * ( radius_1 + radius_2 ); + + if( c_squared <= radius ){ + return true; + } else { + return false; + } +} diff --git a/src/engine/entity.h b/src/engine/entity.h index f45dae2..cad6ba4 100644 --- a/src/engine/entity.h +++ b/src/engine/entity.h @@ -2,6 +2,7 @@ #include <stdint.h> #include <stdbool.h> +#include <stdio.h> #include "ppu/types.h" @@ -32,6 +33,8 @@ typedef struct { typedef struct { vec2 pos, vel, vec; bool is_grounded; + bool is_hit; + uint8_t radius; int8_t hp; int8_t speed; hh_s_rendering render; @@ -55,3 +58,25 @@ bool hh_collision(vec2 pos1, vec2 pos2); /// @param entity position /// @return solved new entity position void hh_solve_collision(vec2 pos_environment, hh_entity* entity); + +/// @brief solve collision of entity with background tiles +/// @param temp_old_entity old data of entity +/// @param temp_new_entity new data of entity where it wants to go to +/// @return updated new entity where it actually can go to +hh_entity hh_background_collision (hh_entity temp_old_entity, hh_entity temp_new_entity); + +/// @brief solve collision of player with enemy +/// @param temp_player data of player +/// @param temp_enemy data of enemy +/// @return updated player with new stats if hitted with enemy +hh_entity hh_enemy_collision(hh_entity temp_player, hh_entity temp_enemy); + +/// @brief calculate if circles (entity) hit each other +/// @param object_1 position of first object (entity) +/// @param object_2 position of second object (entity) +/// @param radius_1 radius of first object (entity) +/// @param radius_2 radius of second object (entity) +/// @return true if objects collids +bool hh_distance_circles (vec2 object_1, vec2 object_2, int radius_1, int radius_2); + + diff --git a/src/engine/player_controller.c b/src/engine/player_controller.c index 22f6eb6..647b00c 100644 --- a/src/engine/player_controller.c +++ b/src/engine/player_controller.c @@ -6,29 +6,143 @@ #include "input.h" +#include "engine/bullet.h" void hh_player_actions() { + static Bullet bullet ={ + .isActive=false, + }; static hh_entity player={ .hp = 4, .speed = 6, .is_grounded = false, + .is_hit = false, + .radius = 8, .pos = (vec2){32,32}, .vel = (vec2){0,0}, .vec = (vec2){0,0}, .render = { + .frame0 = 80, + .palette = 3, + .fam = (hh_s_ppu_loc_fam_entry){ + .horizontal_flip = false, + .vertical_flip = false, + .palette_index = 2, + .tilemap_index = 60, + } + } + }, player_new = {0}; + + + static hh_entity enemy={ + .hp = 4, + .speed = 6, + .is_grounded = false, + .is_hit = false, + .radius = 8, + .pos = (vec2){128,48}, + .vel = (vec2){0,0}, + .vec = (vec2){0,0}, + .render = { .frame0 = 20, .palette = 7, .fam = (hh_s_ppu_loc_fam_entry){ .horizontal_flip = false, .vertical_flip = false, .palette_index = 7, - .tilemap_index = 2, + .tilemap_index = 1, } } - }, player_new = {0}; - + }; + player_new = player; // hh_input_read(); + static uint8_t hit = 0; + int8_t hit_timer = 0; + int8_t direction_x = (-1 * g_hh_controller_p1.dpad_left) + (1 * g_hh_controller_p1.dpad_right); + int8_t direction_y = (-1 * g_hh_controller_p1.dpad_up) + (1 * g_hh_controller_p1.dpad_down); + + if(player.is_hit == true){ + hit_timer = 9; + player.is_hit = false; + } + if(hit_timer > -10){ + hit_timer--; + } + + if(hit_timer <= 0){ + if(direction_x != 0){ + if(player.vel.x > -1 * player.speed && player.vel.x < player.speed) { + player.vel.x = player.vel.x + direction_x; + } else { + if (player.vel.x > 0) { + player.vel.x--; + } else if(player.vel.x < 0) { + player.vel.x++; + } + } + } else { + if (player.vel.x > 0) { + player.vel.x--; + } else if(player.vel.x < 0) { + player.vel.x++; + } + } + + /* // movement Y (w-s) disable gravity to use this + if(direction_y != 0){ + if(player.vel.y > -4 && player.vel.y < 4 ) { + player.vel.y = player.vel.y + direction_y; + } + } else { + if (player.vel.y > 0) { + player.vel.y--; + } else if(player.vel.y < 0) { + player.vel.y++; + } + } + + */ + } else { + if (player.vel.x > 0) { + player.vel.x--; + } else if(player.vel.x < 0) { + player.vel.x++; + } + player.vel.y++; + } + + + if (g_hh_controller_p1.button_primary && player.is_grounded == true) {//JUMP + player.vel.y = -10; + player.is_grounded = false; + } else if (player.vel.y < 6){ + player.vel.y += 1; //gravity + } + + if(g_hh_controller_p1.button_secondary==true){ + shootBullet(player.pos,&bullet); + } + updateBullet(&bullet,5); + + + +/* player.vel = (vec2){.x = (-1 * g_hh_controller_p1.dpad_left) + (1 * g_hh_controller_p1.dpad_right), .y = (-1 * g_hh_controller_p1.dpad_up) + (1 * g_hh_controller_p1.dpad_down) }; + + player_new.vel = (vec2){ + .x = player.vel.x, + .y = player.vel.y, + }; +*/ + + player_new.vel = (vec2){ + .x = player.vel.x, + .y = player.vel.y, + }; + + player_new = hh_enemy_collision(player, enemy); + + // const int8_t maa = 3; // const int8_t mbb = -3; // if (g_hh_controller_p1.dpad_up) @@ -55,8 +169,8 @@ void hh_player_actions() { // player.vel.x = CLAMP(player.vel.x,-32,32); player_new.pos = (vec2){ - .x = player.pos.x + player.vel.x, - .y = player.pos.y + player.vel.y, + .x = player.pos.x + player_new.vel.x, + .y = player.pos.y + player_new.vel.y, }; @@ -97,40 +211,9 @@ void hh_player_actions() { // } // } - player_new.is_grounded = false; - - // solves x collision - if (player.vel.x <= 0) { - if (hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 0, .y=player.pos.y + 0})) || - hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 0, .y=player.pos.y + 15}))) { - player_new.pos.x = (player_new.pos.x & ~15) + 16, - player_new.vel.x = 0; - } - } else { - if (hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 16, .y=player.pos.y + 0})) || - hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 16, .y=player.pos.y + 15}))) { - player_new.pos.x = player_new.pos.x & ~15, // <-- magic comma, NOT TOUCHY - player_new.vel.x = 0; - } - } - - //solves y collision - if (player.vel.y <= 0) { - if (hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 0, .y=player_new.pos.y + 0})) || - hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 0, .y=player_new.pos.y + 15}))) { - player_new.pos.y = (player_new.pos.y & ~15) + 16, - player_new.vel.y = 0; - } - } else { - if (hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 0, .y=player_new.pos.y + 16})) || - hh_colidable(hh_world_to_tile((vec2){.x=player_new.pos.x + 16, .y=player_new.pos.y + 15}))) { - player_new.pos.y = player_new.pos.y & ~15, - player_new.vel.y = 0; - player_new.is_grounded = true; - } - } - - player = player_new; + player = hh_background_collision ( player, player_new); + + //player = player_new; vec_cor cam_pos;//value in tiles // cam_pos = (vec2){0,0}; @@ -141,10 +224,29 @@ void hh_player_actions() { player.render.fam.position_x = (player.pos.x-cam_pos.x); player.render.fam.position_y = (player.pos.y-cam_pos.y); + enemy.render.fam.position_x = (enemy.pos.x-cam_pos.x); + enemy.render.fam.position_y = (enemy.pos.y-cam_pos.y); player.render.fam.tilemap_index = 2;//TODO: these two lines should be redundant player.render.fam.palette_index = 7; - hh_ppu_update_foreground(0, player.render.fam); + // hh_ppu_update_foreground(0, player.render.fam); + + for (int i = 0; i < 4; i++) + { + hh_s_ppu_loc_fam_entry temp = player.render.fam; + temp.position_x = player.render.fam.position_x+(!(player.vel.x>0)?-1:1)*(i%2?8:-8); + temp.position_y = player.render.fam.position_y+(i>1?0:-16); + temp.tilemap_index = player.render.frame0 + i; + temp.palette_index = player.render.palette; + temp.horizontal_flip = !(player.vel.x>0); + hh_ppu_update_foreground(i,temp); + } + + + + hh_ppu_update_foreground(4, enemy.render.fam); } + + diff --git a/src/engine/sprite_controller.c b/src/engine/sprite_controller.c index 5d93cf8..b38b647 100644 --- a/src/engine/sprite_controller.c +++ b/src/engine/sprite_controller.c @@ -10,11 +10,13 @@ uint8_t hh_get_palette(uint8_t tile_idx) { } void hh_setup_palettes(){ + //TODO: use simpler function for (int idx = 0; idx < HH_PPU_PALETTE_COUNT; idx++) { for (int col = 0; col < HH_PPU_PALETTE_COLOR_COUNT; col++) { hh_ppu_update_color(idx,col,hh_g_palette[idx][col]); } - } + } + // hh_ppu_update_palette_table(hh_g_palette); } bool hh_colidable(uint8_t tile_idx){ diff --git a/src/engine/sprite_controller.h b/src/engine/sprite_controller.h index fbb230c..fc6d3d3 100644 --- a/src/engine/sprite_controller.h +++ b/src/engine/sprite_controller.h @@ -11,15 +11,27 @@ //TODO: pack data inside of sprite_palette LUT //HH_PPU_PALETTE_COUNT -#define HH_SPRITE_COUNT 40 -#define HH_PAL_IDX_SKY 0 +#define HH_SPRITE_COUNT 80 +#define HH_PAL_IDX_SKY 512 #define HH_PAL_IDX_BRICK 1 const static uint8_t hh_g_sprite_palette[HH_SPRITE_COUNT] = { + //TODO: make a buffer of 16 no-collider sprites (instead of the current 1) 0,1,1,1,1,1,1,1,1,1, //1+9 1,1,1,1,1,1,1,1,1,1, //6+4 1,1,1,1,1,1,1,1,1, //9 - 7,7,7,2,7,7,1,2,7 + 7,7,7,2,7,7,1,2,7, + 7,7,7,7, //?? + + 7,6,6,6,6,6,6,6, //baskets + 7,7,7,7,7,7,7,7,7,7, //shop + 7,7,7,7,7, //shop + 6,6,6,6,6, //(hi-)score + + 3,3,3,3,3,3, //title_screen icon + 6,6,6,6,/*6,6,6,6,6,6, //title_screen large letters + 6,6,6,6,*/ //other palettes here: + // [HH_PAL_IDX_SKY] = 0, }; @@ -51,13 +63,13 @@ const static hh_ppu_loc_palette_table_t hh_g_palette = { {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}}, - {//player + {//player //TODO: use one less color && update player indexed sprites {0x0,0x0,0x0}, {0x1,0x1,0x1}, {0x4,0x2,0x5}, - {0x7,0x3,0x6}, - {0x1,0x1,0x3}, - {0xe,0xe,0xe}, + {0x7,0x3,0x7}, + {0xe,0xe,0xe}, + {0xe,0xe,0xe}, //elemental {0x0,0x0,0x0}, {0x0,0x0,0x0}}, { @@ -69,7 +81,7 @@ const static hh_ppu_loc_palette_table_t hh_g_palette = { {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}}, - { + {//elemental {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, @@ -79,7 +91,7 @@ const static hh_ppu_loc_palette_table_t hh_g_palette = { {0x0,0x0,0x0}, {0x0,0x0,0x0}}, {//white - {0xf,0xf,0xf}, + {0x1,0x2,0x3}, {0xf,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0xf,0xf}, @@ -87,7 +99,7 @@ const static hh_ppu_loc_palette_table_t hh_g_palette = { {0xf,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0xf,0xf}}, - { + {//Dev palette (7) {0x0,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0x0,0xf}, diff --git a/src/engine/title_screen.c b/src/engine/title_screen.c new file mode 100644 index 0000000..9c7ed48 --- /dev/null +++ b/src/engine/title_screen.c @@ -0,0 +1,93 @@ +#include "ppu/ppu.h" +#include "ppu/types.h" +#include "ppu/consts.h" + + +#include "engine/draw_screen.h" +#include "engine/entity.h" + +void hh_init_title_screen(){ + + // hh_clear_screen(); + + //send data + uint8_t idx = 0; + const uint8_t tilemap_offset = 59; + int tiles_h = HH_PPU_BG_CANVAS_TILES_H; + int vp_h = HH_PPU_SCREEN_WIDTH/HH_PPU_SPRITE_WIDTH; //screen_h in tiles + int vert_offset = tiles_h*3; + + const uint8_t arr[4][4] = { + {0,1,1,0}, + {2,3,3,2}, + {4,0,0,4}, + {5,6,6,5}, + }; + int val, counter =0; + hh_ppu_update_color(5, 0, (hh_ppu_rgb_color_t) {0x1, 0x1, 0x1}); + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + val = arr[i][j]; + + hh_s_ppu_loc_bam_entry temp = { + .vertical_flip=false, .horizontal_flip = ((j % 4 < 2) ? false : true), + .palette_index = (counter == 9 || counter == 10? 5:3), .tilemap_index = (val > 0 ? (tilemap_offset + val) : 0) + }; + + int vert_pos = tiles_h*i; + int x_pos = j; + idx = vert_offset + vert_pos + x_pos + vp_h/2-2; + + hh_ppu_update_background(idx,temp); + counter++; + } + + } + + + const uint8_t letters_offset = 66; + const int _size_hooded = 7, _size_v = 2; + + // char* hh = "hooded"; + int hooded_lookup[7][2]={ + {0,1},{0,2},//H + {3,4},{3,4},//oo + {5,6},{13,9},//de + {5,6}//d + }; + + counter = 8; + for (int i = 0; i < _size_hooded; i++) { + for (int vert = 1; vert <= _size_v; vert++) { + //TODO: move 'H' a few pixels to the right for a more cohesive font spacing + hh_ppu_update_foreground(counter++, (hh_s_ppu_loc_fam_entry) { + .vertical_flip = false, .horizontal_flip = false, + .palette_index = 6, .tilemap_index = letters_offset + hooded_lookup[i][vert-1], + .position_x = (16*i + 64+48), .position_y = (16*(vert > 1 ? 0:1)*-1 + 64+8+16 +(i==2 || i==3 ? 6:0)) + }); + } + } + + + hh_ppu_update_color(5, 1, (hh_ppu_rgb_color_t) {0xa, 0x3, 0x3}); + hh_ppu_update_color(5, 2, (hh_ppu_rgb_color_t) {0xc, 0x5, 0x3}); + + const int _size_havoc = 6; + int lookup_havoc[6][2]={ + {0,1},{0,2},//H + {13,10},{7,8},//av + {13,11},{13,12}//oc + }; + + counter = 8 + (_size_hooded * _size_v); + for (int i = 0; i < _size_havoc; i++) { + for (int vert = 1; vert <= _size_v; vert++) { + //TODO: move 'H' a few pixels to the right for a more cohesive font spacing + hh_ppu_update_foreground(counter++, (hh_s_ppu_loc_fam_entry) { + .vertical_flip = false, .horizontal_flip = (i > 4 && vert==0 ? 1:0), + .palette_index = 5, .tilemap_index = letters_offset + lookup_havoc[i][vert-1], + .position_x = (16*i +64+32+8), .position_y = (16*(vert > 1 ? 0:1)*-1 + 64+8+48) + }); + } + } +} diff --git a/src/engine/title_screen.h b/src/engine/title_screen.h new file mode 100644 index 0000000..b5eda63 --- /dev/null +++ b/src/engine/title_screen.h @@ -0,0 +1,3 @@ +#pragma once + +void hh_init_title_screen(); diff --git a/src/makefile b/src/makefile index d7d9087..cd248e2 100644 --- a/src/makefile +++ b/src/makefile @@ -37,7 +37,11 @@ LOCAL_SRCS += main.c \ engine/draw_screen.c \ engine/camera.c \ engine/maths.c \ - engine/entity.c + engine/entity.c \ + engine/bullet.c \ + engine/title_screen.c \ + GameLoop/shop.c \ + GameLoop/startingScreen.c CFLAGS += $(SHARED_FLAGS) LFLAGS += $(SHARED_FLAGS) diff --git a/src/ppusim/input.c b/src/ppusim/input.c index 5323fb1..4bc7018 100644 --- a/src/ppusim/input.c +++ b/src/ppusim/input.c @@ -13,4 +13,5 @@ void hh_input_read() { g_hh_controller_p1.dpad_left = kb[SDL_SCANCODE_A]; g_hh_controller_p1.dpad_right = kb[SDL_SCANCODE_D]; g_hh_controller_p1.button_primary = kb[SDL_SCANCODE_SPACE]; + g_hh_controller_p1.button_secondary = kb[SDL_SCANCODE_R]; } diff --git a/src/ppusim/sim.c b/src/ppusim/sim.c index a5fec45..8b67acc 100644 --- a/src/ppusim/sim.c +++ b/src/ppusim/sim.c @@ -29,7 +29,8 @@ void hh_ppu_init() { } void hh_ppu_load_tilemap() { - char* filename = "../test/bin/tiles.bin"; + //TODO: remove magic file name here + char* filename = "static/tiles.bin"; FILE* fp = fopen(filename,"rb"); if (!fp){ fprintf(stderr,"Error: Failed to load tiles."); diff --git a/src/static/background/shop.hex b/src/static/background/shop.hex new file mode 100644 index 0000000..8c08feb --- /dev/null +++ b/src/static/background/shop.hex @@ -0,0 +1,331 @@ +;indices: 9 +;75 24 38 +;a5 30 30 +;cf 57 3c +;1e 1d 39 +;40 27 51 +;7a 36 7b +;10 14 1f +;eb ed e9 +;17 20 38 + +000000: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 +000010: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 +000020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000040: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000050: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000070: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000080: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000090: 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 +0000a0: 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 +0000b0: 06 06 01 00 00 00 00 00 00 00 00 00 00 00 01 06 +0000c0: 06 06 06 01 00 00 00 00 00 00 00 00 00 01 06 06 +0000d0: 06 06 06 06 01 01 00 00 00 00 00 01 01 06 06 06 +0000e0: 06 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 +0000f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000100: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000110: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000120: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000130: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000140: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000150: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000160: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000170: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000180: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000190: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0001a0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0001b0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0001c0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0001d0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0001e0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0001f0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000200: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000210: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000220: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000230: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000240: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000250: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000260: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000270: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000280: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000290: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0002a0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0002b0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0002c0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0002d0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0002e0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0002f0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000300: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000310: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000320: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000330: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000340: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000350: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000360: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000370: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000380: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000390: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0003a0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0003b0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0003c0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0003d0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0003e0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0003f0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000400: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 +000410: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 +000420: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000430: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000440: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000450: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000460: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000470: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000480: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000490: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0004a0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0004b0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0004c0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0004d0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0004e0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0004f0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000500: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000510: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000520: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000530: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000540: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000550: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000560: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000570: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000580: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000590: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0005a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0005b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0005c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0005d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0005e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0005f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000600: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +000610: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +000620: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000630: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000640: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000650: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000660: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000670: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000680: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000690: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +0006a0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +0006b0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +0006c0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +0006d0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +0006e0: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +0006f0: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +000700: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 01 01 +000710: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 +000720: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 01 +000730: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 01 01 +000740: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 01 01 +000750: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 01 01 +000760: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 01 01 +000770: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 01 01 +000780: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 01 01 +000790: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 +0007a0: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 01 +0007b0: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 01 01 +0007c0: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 01 01 +0007d0: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 01 01 +0007e0: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 01 01 +0007f0: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 01 01 +000800: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 +000810: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 +000820: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 +000830: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 +000840: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 +000850: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 +000860: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 +000870: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 +000880: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 +000890: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 +0008a0: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 +0008b0: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 +0008c0: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 +0008d0: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 +0008e0: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 +0008f0: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 +000900: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000910: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000920: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000930: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000940: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000950: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000960: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000970: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000980: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000990: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009e0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000a00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000a10: 06 06 06 01 01 06 06 06 06 06 06 06 06 06 06 06 +000a20: 06 06 01 01 01 01 06 06 06 06 06 06 06 06 06 06 +000a30: 06 01 01 01 01 01 01 06 06 06 06 06 06 06 06 06 +000a40: 06 01 01 01 01 01 01 06 06 06 06 06 06 06 06 06 +000a50: 06 06 01 01 01 01 06 06 06 06 06 06 06 06 06 06 +000a60: 06 06 06 01 01 06 06 06 06 06 06 06 06 06 06 06 +000a70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000a80: 06 06 06 06 06 06 06 06 06 06 01 01 06 06 06 06 +000a90: 06 06 06 06 06 06 06 06 06 01 01 01 01 06 06 06 +000aa0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 06 06 +000ab0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 06 06 +000ac0: 06 06 06 06 06 06 06 06 06 01 01 01 01 06 06 06 +000ad0: 06 06 06 06 06 06 06 06 06 06 01 01 06 06 06 06 +000ae0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000af0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b00: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b10: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b20: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b30: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b40: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b50: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b60: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b70: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b80: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000b90: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ba0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000bb0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000bc0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000bd0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000be0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000bf0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +000c00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000c10: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000c20: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000c30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000c40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000c50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000c60: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000c70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000c80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000c90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000ca0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000cb0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000cc0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000cd0: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 01 +000ce0: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 01 +000cf0: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +000d00: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +000d10: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 01 +000d20: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 01 +000d30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000d40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000d50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000d60: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 01 +000d70: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 01 +000d80: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +000d90: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +000da0: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 01 +000db0: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 01 +000dc0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000dd0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000de0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000df0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +000e00: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06 +000e10: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 06 +000e20: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 06 +000e30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e60: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 06 +000e70: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 +000e80: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06 +000e90: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06 +000ea0: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 06 +000eb0: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 06 +000ec0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ed0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ee0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ef0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000f00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000f10: 06 07 07 06 07 06 07 07 07 07 06 06 06 06 06 06 +000f20: 06 07 07 06 07 06 06 07 07 06 06 06 06 06 06 06 +000f30: 06 07 07 07 07 06 06 07 07 06 06 07 07 07 07 06 +000f40: 06 07 07 06 07 06 06 07 07 06 06 06 06 06 06 06 +000f50: 06 07 07 06 07 06 07 07 07 07 06 06 06 06 06 06 +000f60: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000f70: 06 07 07 07 07 07 07 07 07 07 07 07 07 07 07 06 +000f80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000f90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000fa0: 06 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 +000fb0: 06 07 06 06 06 06 07 07 06 06 06 07 07 06 07 06 +000fc0: 06 07 07 07 07 06 07 07 06 06 06 07 07 06 07 06 +000fd0: 06 06 06 07 07 06 07 07 06 06 06 07 07 06 07 06 +000fe0: 06 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 +000ff0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001000: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001010: 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 07 +001020: 07 06 06 06 06 07 07 06 06 06 07 07 06 07 06 07 +001030: 07 07 07 07 06 07 07 06 06 06 07 07 06 07 06 07 +001040: 06 06 07 07 06 07 07 06 06 06 07 07 06 07 06 07 +001050: 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 07 +001060: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001070: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001080: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001090: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0010a0: 07 07 07 07 06 07 07 07 07 06 07 07 06 06 06 06 +0010b0: 07 07 06 07 06 07 07 06 06 06 07 07 06 06 06 06 +0010c0: 07 07 07 06 06 07 07 07 07 06 06 06 06 06 06 07 +0010d0: 07 07 06 07 06 07 07 06 06 06 07 07 06 06 07 06 +0010e0: 07 07 06 07 06 07 07 07 07 06 07 07 06 06 07 07 +0010f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001100: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001110: 07 07 07 06 07 07 07 07 06 07 07 06 06 06 06 06 +001120: 07 06 07 06 07 07 06 06 06 07 07 06 06 06 06 07 +001130: 07 07 06 06 07 07 07 07 06 06 06 06 06 06 07 07 +001140: 07 06 07 06 07 07 06 06 06 07 07 06 06 07 06 07 +001150: 07 06 07 06 07 07 07 07 06 07 07 06 06 07 07 07 +001160: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001170: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001180: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001190: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0011a0: 06 07 07 07 06 06 06 06 06 07 07 06 06 06 06 07 +0011b0: 07 06 07 07 06 06 06 06 07 07 07 06 06 06 06 06 +0011c0: 06 07 07 06 06 06 06 07 07 07 06 06 06 07 07 07 +0011d0: 07 07 06 06 06 06 07 07 07 06 06 06 07 07 06 06 +0011e0: 07 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06 +0011f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001200: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001210: 07 07 07 06 06 07 07 07 07 07 06 06 06 06 07 07 +001220: 07 07 06 06 06 06 06 07 07 07 06 06 06 07 06 07 +001230: 07 06 06 06 06 06 07 07 07 06 06 06 07 07 07 07 +001240: 07 06 06 06 06 07 07 07 06 06 06 07 06 07 07 06 +001250: 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06 06 +001260: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001270: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001280: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001290: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0012a0: 07 07 06 06 06 06 07 07 07 06 06 06 07 06 06 07 +0012b0: 07 07 06 06 07 06 06 07 07 06 06 07 06 06 07 07 +0012c0: 07 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06 +0012d0: 06 06 06 07 06 07 07 06 06 06 06 07 07 07 06 06 +0012e0: 06 06 06 07 07 07 06 06 06 06 07 07 07 06 06 06 +0012f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001300: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001310: 07 06 06 06 06 07 07 07 06 06 06 06 06 06 06 06 +001320: 07 06 06 06 07 06 07 07 06 06 06 06 06 06 06 06 +001330: 06 06 06 06 07 07 07 06 06 06 06 06 06 06 06 06 +001340: 06 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 +001350: 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06 +001360: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001370: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001380: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001390: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0013a0: 06 06 06 07 07 07 07 06 06 06 06 06 06 06 06 06 +0013b0: 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 06 +0013c0: 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06 +0013d0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0013e0: 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06 06 +0013f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
\ No newline at end of file diff --git a/src/static/background/shop_ext.hex b/src/static/background/shop_ext.hex new file mode 100644 index 0000000..d151156 --- /dev/null +++ b/src/static/background/shop_ext.hex @@ -0,0 +1,459 @@ +;indices: 9 +;75 24 38 +;a5 30 30 +;cf 57 3c +;1e 1d 39 +;40 27 51 +;7a 36 7b +;10 14 1f +;eb ed e9 +;17 20 38 + +000000: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 +000010: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 +000020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000040: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000050: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000070: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000080: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000090: 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 +0000a0: 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 +0000b0: 06 06 01 00 00 00 00 00 00 00 00 00 00 00 01 06 +0000c0: 06 06 06 01 00 00 00 00 00 00 00 00 00 01 06 06 +0000d0: 06 06 06 06 01 01 00 00 00 00 00 01 01 06 06 06 +0000e0: 06 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 +0000f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000100: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000110: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000120: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000130: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000140: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000150: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000160: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000170: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000180: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000190: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +0001a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +0001b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +0001c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +0001d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +0001e0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +0001f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 +000200: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000210: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000220: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000230: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000240: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000250: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000260: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000270: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000280: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000290: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0002a0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0002b0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0002c0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0002d0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0002e0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0002f0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000300: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000310: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000320: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000330: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000340: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000350: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000360: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000370: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000380: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000390: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0003a0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0003b0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0003c0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0003d0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0003e0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0003f0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000400: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000410: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000420: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000430: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000440: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000450: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000460: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000470: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000480: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000490: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0004a0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0004b0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0004c0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0004d0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0004e0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +0004f0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06 +000500: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000510: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000520: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000530: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000540: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000550: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000560: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000570: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000580: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000590: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0005a0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0005b0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0005c0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0005d0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0005e0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0005f0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000600: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 +000610: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 +000620: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000630: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000640: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000650: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000660: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000670: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000680: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000690: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0006a0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0006b0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0006c0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0006d0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0006e0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +0006f0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +000700: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 +000710: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 +000720: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000730: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000740: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000750: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000760: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000770: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000780: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000790: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0007a0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0007b0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0007c0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0007d0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0007e0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +0007f0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06 +000800: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 01 01 +000810: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 01 01 +000820: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +000830: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +000840: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +000850: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +000860: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +000870: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +000880: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +000890: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +0008a0: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +0008b0: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +0008c0: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +0008d0: 06 06 06 06 06 06 06 06 01 01 06 06 06 06 06 06 +0008e0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 01 01 +0008f0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 01 01 +000900: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000910: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000920: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000930: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000940: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000950: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000960: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000970: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000980: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000990: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0009e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0009f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000a00: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +000a10: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +000a20: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000a30: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000a40: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000a50: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000a60: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000a70: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000a80: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000a90: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000aa0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000ab0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000ac0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000ad0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06 +000ae0: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +000af0: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06 +000b00: 01 01 06 06 06 06 06 06 01 06 06 06 06 06 06 06 +000b10: 01 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 +000b20: 01 01 01 06 06 06 06 06 06 06 01 06 06 06 06 06 +000b30: 01 01 06 01 06 06 06 06 06 06 06 01 06 06 06 06 +000b40: 01 01 06 06 01 06 06 06 06 06 06 06 01 06 06 06 +000b50: 01 01 06 06 06 01 06 06 06 06 06 06 06 01 06 06 +000b60: 01 01 06 06 06 06 01 06 06 06 06 06 06 06 01 06 +000b70: 01 01 06 06 06 06 06 01 06 06 06 06 06 06 06 01 +000b80: 01 01 06 06 06 06 06 06 01 06 06 06 06 06 06 06 +000b90: 01 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 +000ba0: 01 01 01 06 06 06 06 06 06 06 01 06 06 06 06 06 +000bb0: 01 01 06 01 06 06 06 06 06 06 06 01 06 06 06 06 +000bc0: 01 01 06 06 01 06 06 06 06 06 06 06 01 06 06 06 +000bd0: 01 01 06 06 06 01 06 06 06 06 06 06 06 01 06 06 +000be0: 01 01 06 06 06 06 01 06 06 06 06 06 06 06 01 06 +000bf0: 01 01 06 06 06 06 06 01 06 06 06 06 06 06 06 01 +000c00: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 +000c10: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 +000c20: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 +000c30: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 +000c40: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 +000c50: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 +000c60: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 +000c70: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 +000c80: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 +000c90: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 +000ca0: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 +000cb0: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 +000cc0: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 +000cd0: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 +000ce0: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 +000cf0: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 +000d00: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 01 01 +000d10: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 +000d20: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 01 +000d30: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 01 01 +000d40: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 01 01 +000d50: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 01 01 +000d60: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 01 01 +000d70: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 01 01 +000d80: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 01 01 +000d90: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 +000da0: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 01 +000db0: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 01 01 +000dc0: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 01 01 +000dd0: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 01 01 +000de0: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 01 01 +000df0: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 01 01 +000e00: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000e10: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000e20: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e60: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000e90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ea0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000eb0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ec0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ed0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ee0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ef0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000f00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000f10: 06 06 06 01 01 06 06 06 06 06 06 06 06 06 06 06 +000f20: 06 06 01 01 01 01 06 06 06 06 06 06 06 06 06 06 +000f30: 06 01 01 01 01 01 01 06 06 06 06 06 06 06 06 06 +000f40: 06 01 01 01 01 01 01 06 06 06 06 06 06 06 06 06 +000f50: 06 06 01 01 01 01 06 06 06 06 06 06 06 06 06 06 +000f60: 06 06 06 01 01 06 06 06 06 06 06 06 06 06 06 06 +000f70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000f80: 06 06 06 06 06 06 06 06 06 06 01 01 06 06 06 06 +000f90: 06 06 06 06 06 06 06 06 06 01 01 01 01 06 06 06 +000fa0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 06 06 +000fb0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 06 06 +000fc0: 06 06 06 06 06 06 06 06 06 01 01 01 01 06 06 06 +000fd0: 06 06 06 06 06 06 06 06 06 06 01 01 06 06 06 06 +000fe0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +000ff0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001000: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001010: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001020: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001030: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001040: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001050: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001060: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001070: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001080: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001090: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +0010a0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +0010b0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +0010c0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +0010d0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +0010e0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +0010f0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06 +001100: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001110: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001120: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001130: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001140: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001150: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001160: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +001170: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001180: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001190: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0011a0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0011b0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0011c0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0011d0: 01 06 06 06 06 06 01 01 01 01 06 06 06 06 06 06 +0011e0: 01 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 +0011f0: 01 06 06 06 06 06 01 01 01 01 01 01 06 06 06 06 +001200: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001210: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001220: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001230: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001240: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001250: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001260: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +001270: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001280: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001290: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0012a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0012b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0012c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0012d0: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 06 +0012e0: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 +0012f0: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06 +001300: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001310: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001320: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001330: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001340: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001350: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001360: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +001370: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +001380: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +001390: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +0013a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +0013b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +0013c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +0013d0: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 01 +0013e0: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 01 +0013f0: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +001400: 01 06 06 06 06 06 01 01 01 01 01 01 06 06 06 06 +001410: 01 06 06 06 06 06 06 01 01 01 01 01 06 06 06 06 +001420: 01 06 06 06 06 06 06 06 01 01 01 01 06 06 06 06 +001430: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001440: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001450: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001460: 01 06 06 06 06 06 01 01 01 01 06 06 06 06 06 06 +001470: 01 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 +001480: 01 06 06 06 06 06 01 01 01 01 01 01 06 06 06 06 +001490: 01 06 06 06 06 06 01 01 01 01 01 01 06 06 06 06 +0014a0: 01 06 06 06 06 06 06 01 01 01 01 01 06 06 06 06 +0014b0: 01 06 06 06 06 06 06 06 01 01 01 01 06 06 06 06 +0014c0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0014d0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0014e0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0014f0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001500: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06 +001510: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 06 +001520: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 06 +001530: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001540: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001550: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001560: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 06 +001570: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 +001580: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06 +001590: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06 +0015a0: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 06 +0015b0: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 06 +0015c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0015d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0015e0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0015f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001600: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +001610: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 01 +001620: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 01 +001630: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +001640: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +001650: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +001660: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 01 +001670: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 01 +001680: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +001690: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01 +0016a0: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 01 +0016b0: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 01 +0016c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +0016d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +0016e0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +0016f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01 +001700: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001710: 06 07 07 06 07 06 07 07 07 07 06 06 06 06 06 06 +001720: 06 07 07 06 07 06 06 07 07 06 06 06 06 06 06 06 +001730: 06 07 07 07 07 06 06 07 07 06 06 07 07 07 07 06 +001740: 06 07 07 06 07 06 06 07 07 06 06 06 06 06 06 06 +001750: 06 07 07 06 07 06 07 07 07 07 06 06 06 06 06 06 +001760: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001770: 06 07 07 07 07 07 07 07 07 07 07 07 07 07 07 06 +001780: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001790: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0017a0: 06 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 +0017b0: 06 07 06 06 06 06 07 07 06 06 06 07 07 06 07 06 +0017c0: 06 07 07 07 07 06 07 07 06 06 06 07 07 06 07 06 +0017d0: 06 06 06 07 07 06 07 07 06 06 06 07 07 06 07 06 +0017e0: 06 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 +0017f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001800: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001810: 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 07 +001820: 07 06 06 06 06 07 07 06 06 06 07 07 06 07 06 07 +001830: 07 07 07 07 06 07 07 06 06 06 07 07 06 07 06 07 +001840: 06 06 07 07 06 07 07 06 06 06 07 07 06 07 06 07 +001850: 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 07 +001860: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001870: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001880: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001890: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0018a0: 07 07 07 07 06 07 07 07 07 06 07 07 06 06 06 06 +0018b0: 07 07 06 07 06 07 07 06 06 06 07 07 06 06 06 06 +0018c0: 07 07 07 06 06 07 07 07 07 06 06 06 06 06 06 07 +0018d0: 07 07 06 07 06 07 07 06 06 06 07 07 06 06 07 06 +0018e0: 07 07 06 07 06 07 07 07 07 06 07 07 06 06 07 07 +0018f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001900: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001910: 07 07 07 06 07 07 07 07 06 07 07 06 06 06 06 06 +001920: 07 06 07 06 07 07 06 06 06 07 07 06 06 06 06 07 +001930: 07 07 06 06 07 07 07 07 06 06 06 06 06 06 07 07 +001940: 07 06 07 06 07 07 06 06 06 07 07 06 06 07 06 07 +001950: 07 06 07 06 07 07 07 07 06 07 07 06 06 07 07 07 +001960: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001970: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001980: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001990: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +0019a0: 06 07 07 07 06 06 06 06 06 07 07 06 06 06 06 07 +0019b0: 07 06 07 07 06 06 06 06 07 07 07 06 06 06 06 06 +0019c0: 06 07 07 06 06 06 06 07 07 07 06 06 06 07 07 07 +0019d0: 07 07 06 06 06 06 07 07 07 06 06 06 07 07 06 06 +0019e0: 07 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06 +0019f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001a00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001a10: 07 07 07 06 06 07 07 07 07 07 06 06 06 06 07 07 +001a20: 07 07 06 06 06 06 06 07 07 07 06 06 06 07 06 07 +001a30: 07 06 06 06 06 06 07 07 07 06 06 06 07 07 07 07 +001a40: 07 06 06 06 06 07 07 07 06 06 06 07 06 07 07 06 +001a50: 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06 06 +001a60: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001a70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001a80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001a90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001aa0: 07 07 06 06 06 06 07 07 07 06 06 06 07 06 06 07 +001ab0: 07 07 06 06 07 06 06 07 07 06 06 07 06 06 07 07 +001ac0: 07 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06 +001ad0: 06 06 06 07 06 07 07 06 06 06 06 07 07 07 06 06 +001ae0: 06 06 06 07 07 07 06 06 06 06 07 07 07 06 06 06 +001af0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001b00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001b10: 07 06 06 06 06 07 07 07 06 06 06 06 06 06 06 06 +001b20: 07 06 06 06 07 06 07 07 06 06 06 06 06 06 06 06 +001b30: 06 06 06 06 07 07 07 06 06 06 06 06 06 06 06 06 +001b40: 06 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 +001b50: 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06 +001b60: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001b70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001b80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001b90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 +001ba0: 06 06 06 07 07 07 07 06 06 06 06 06 06 06 06 06 +001bb0: 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 06 +001bc0: 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06 +001bd0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 +001be0: 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06 06 +001bf0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
\ No newline at end of file diff --git a/src/static/background/title_screen_icon.hex b/src/static/background/title_screen_icon.hex new file mode 100644 index 0000000..120eaa1 --- /dev/null +++ b/src/static/background/title_screen_icon.hex @@ -0,0 +1,102 @@ +;indices: 4 +;17 20 38 +;10 14 1f +;40 27 51 +;7a 36 7b + +000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +0000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 +0000b0: 00 00 00 00 00 00 00 00 00 00 02 02 02 02 03 03 +0000c0: 00 00 00 00 00 00 00 02 02 02 03 03 03 03 03 03 +0000d0: 00 00 00 00 02 02 02 03 03 03 03 03 03 03 03 03 +0000e0: 00 00 02 02 03 03 03 03 03 03 03 03 03 03 03 03 +0000f0: 02 02 03 03 03 03 03 03 03 03 03 03 03 03 03 03 +000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 +000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 +000120: 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 03 +000130: 00 00 00 00 00 00 00 00 00 00 00 02 03 03 03 03 +000140: 00 00 00 00 00 00 00 00 00 00 02 03 03 03 03 03 +000150: 00 00 00 00 00 00 00 00 00 00 02 03 03 03 03 03 +000160: 00 00 00 00 00 00 00 00 00 02 03 03 03 03 03 03 +000170: 00 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 +000180: 00 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 +000190: 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 +0001a0: 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 +0001b0: 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 +0001c0: 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 01 +0001d0: 00 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 +0001e0: 00 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 +0001f0: 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 01 +000200: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 +000210: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 +000220: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 +000230: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 +000240: 03 03 03 03 03 03 03 03 03 03 01 01 01 01 01 01 +000250: 03 03 03 03 03 03 03 01 01 01 01 01 01 01 01 01 +000260: 03 03 03 03 03 01 01 01 01 01 01 01 01 01 01 01 +000270: 03 03 03 01 01 01 01 01 01 01 01 01 01 01 01 01 +000280: 03 03 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000290: 03 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0002a0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0002b0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0002c0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0002d0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0002e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0002f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000300: 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 01 +000310: 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 01 +000320: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 +000330: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 +000340: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 +000350: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 +000360: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 +000370: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 +000380: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 +000390: 00 00 00 00 00 00 02 03 03 03 03 03 01 01 01 01 +0003a0: 00 00 00 00 00 00 02 03 03 03 03 03 01 01 01 01 +0003b0: 00 00 00 00 00 00 02 03 03 03 03 03 01 01 01 01 +0003c0: 00 00 00 00 00 00 00 02 03 03 03 03 01 01 01 01 +0003d0: 00 00 00 00 00 00 00 02 03 03 03 03 01 01 01 01 +0003e0: 00 00 00 00 00 00 00 02 03 03 03 03 01 01 01 01 +0003f0: 00 00 00 00 00 00 00 00 02 03 03 03 01 01 01 01 +000400: 00 00 00 00 00 00 00 00 02 03 03 03 01 01 01 01 +000410: 00 00 00 00 00 00 00 00 00 02 03 03 01 01 01 01 +000420: 00 00 00 00 00 00 00 00 00 02 03 03 03 01 01 01 +000430: 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 01 +000440: 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 01 +000450: 00 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 +000460: 00 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 +000470: 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 01 +000480: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 +000490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 03 +0004a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 +0004b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +0004c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +0004d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +0004e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +0004f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +000500: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000510: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000520: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000530: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000540: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000550: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000560: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000570: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000580: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +000590: 03 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 +0005a0: 03 03 03 01 01 01 01 01 01 01 01 01 01 01 01 01 +0005b0: 02 03 03 03 03 01 01 01 01 01 01 01 01 01 01 01 +0005c0: 00 02 02 03 03 03 03 01 01 01 01 01 01 01 01 01 +0005d0: 00 00 00 02 02 02 03 03 03 03 03 03 01 01 01 01 +0005e0: 00 00 00 00 00 00 02 02 02 02 02 03 03 03 03 03 +0005f0: 00 00 00 00 00 00 00 00 00 00 00 02 02 02 02 02
\ No newline at end of file diff --git a/src/static/title_screen_letteres_large.hex b/src/static/foreground/title_screen_letteres_large.hex index fea1c77..fea1c77 100644 --- a/src/static/title_screen_letteres_large.hex +++ b/src/static/foreground/title_screen_letteres_large.hex diff --git a/src/static/title_screen_icon.hex b/src/static/title_screen_icon.hex deleted file mode 100644 index a1e5f0b..0000000 --- a/src/static/title_screen_icon.hex +++ /dev/null @@ -1,119 +0,0 @@ -;Main character icon for title screen -;indices: 4 -;23 32 56 -;16 20 31 -;64 39 81 -;122 54 123 - -0000: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0010: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0020: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0030: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0040: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0050: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0060: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0070: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0080: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0090: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -00a0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -00b0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -00c0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -00d0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -00e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -00f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 -01b0: 00 00 00 00 00 00 00 00 00 00 02 02 02 02 03 03 -01c0: 00 00 00 00 00 00 00 02 02 02 03 03 03 03 03 03 -01d0: 00 00 00 00 02 02 02 03 03 03 03 03 03 03 03 03 -01e0: 00 00 02 02 03 03 03 03 03 03 03 03 03 03 03 03 -01f0: 02 02 03 03 03 03 03 03 03 03 03 03 03 03 03 03 -0200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 -0210: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 -0220: 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 03 -0230: 00 00 00 00 00 00 00 00 00 00 00 02 03 03 03 03 -0240: 00 00 00 00 00 00 00 00 00 00 02 03 03 03 03 03 -0250: 00 00 00 00 00 00 00 00 00 00 02 03 03 03 03 03 -0260: 00 00 00 00 00 00 00 00 00 02 03 03 03 03 03 03 -0270: 00 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 -0280: 00 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 -0290: 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 -02a0: 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 -02b0: 00 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 -02c0: 00 00 00 00 00 00 02 03 03 03 03 03 03 03 03 01 -02d0: 00 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 -02e0: 00 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 -02f0: 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 01 -0300: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 -0310: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 -0320: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 -0330: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 -0340: 03 03 03 03 03 03 03 03 03 03 01 01 01 01 01 01 -0350: 03 03 03 03 03 03 03 01 01 01 01 01 01 01 01 01 -0360: 03 03 03 03 03 01 01 01 01 01 01 01 01 01 01 01 -0370: 03 03 03 01 01 01 01 01 01 01 01 01 01 01 01 01 -0380: 03 03 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0390: 03 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -03a0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -03b0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -03c0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -03d0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -03e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -03f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0400: 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 01 -0410: 00 00 00 00 00 02 03 03 03 03 03 03 03 01 01 01 -0420: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 -0430: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 -0440: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 -0450: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 -0460: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 -0470: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 -0480: 00 00 00 00 00 02 03 03 03 03 03 03 01 01 01 01 -0490: 00 00 00 00 00 00 02 03 03 03 03 03 01 01 01 01 -04a0: 00 00 00 00 00 00 02 03 03 03 03 03 01 01 01 01 -04b0: 00 00 00 00 00 00 02 03 03 03 03 03 01 01 01 01 -04c0: 00 00 00 00 00 00 00 02 03 03 03 03 01 01 01 01 -04d0: 00 00 00 00 00 00 00 02 03 03 03 03 01 01 01 01 -04e0: 00 00 00 00 00 00 00 02 03 03 03 03 01 01 01 01 -04f0: 00 00 00 00 00 00 00 00 02 03 03 03 01 01 01 01 -0500: 00 00 00 00 00 00 00 00 02 03 03 03 01 01 01 01 -0510: 00 00 00 00 00 00 00 00 00 02 03 03 01 01 01 01 -0520: 00 00 00 00 00 00 00 00 00 02 03 03 03 01 01 01 -0530: 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 01 -0540: 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 01 -0550: 00 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 -0560: 00 00 00 00 00 00 00 00 00 00 00 02 03 03 01 01 -0570: 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 01 -0580: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 03 03 -0590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 03 -05a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 -05b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -05c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -05d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -05e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -05f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0600: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0610: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0620: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0630: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0640: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0650: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0660: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0670: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0680: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -0690: 03 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -06a0: 03 03 03 01 01 01 01 01 01 01 01 01 01 01 01 01 -06b0: 02 03 03 03 03 01 01 01 01 01 01 01 01 01 01 01 -06c0: 00 02 02 03 03 03 03 01 01 01 01 01 01 01 01 01 -06d0: 00 00 00 02 02 02 03 03 03 03 03 03 01 01 01 01 -06e0: 00 00 00 00 00 00 02 02 02 02 02 03 03 03 03 03 -06f0: 00 00 00 00 00 00 00 00 00 00 00 02 02 02 02 02 |