├── .gitignore ├── game.gb ├── game.gif ├── game.png ├── sprites ├── 0.png ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png ├── 9.png ├── a.png ├── b.png ├── e.png ├── l.png ├── p.png ├── r.png ├── s.png ├── t.png ├── u.png ├── ab.png ├── abd.png ├── bg.png ├── arrow.png ├── black.png ├── flbird.png ├── flbody.jpg ├── flbody.png ├── fldown.png ├── flpipe.png ├── fltest.png ├── grass.png ├── land.png ├── land2.png ├── onedot.png ├── fourdots.png ├── twodots.png ├── flbird orig.png ├── flbottomtop.png ├── fltopbottom.png ├── threedots.png └── flbird orig bw.png ├── launchscreen.gif ├── launchscreen.png ├── README.md ├── game.c └── tiledata.h /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .DS_Store -------------------------------------------------------------------------------- /game.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/game.gb -------------------------------------------------------------------------------- /game.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/game.gif -------------------------------------------------------------------------------- /game.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/game.png -------------------------------------------------------------------------------- /sprites/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/0.png -------------------------------------------------------------------------------- /sprites/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/1.png -------------------------------------------------------------------------------- /sprites/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/2.png -------------------------------------------------------------------------------- /sprites/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/3.png -------------------------------------------------------------------------------- /sprites/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/4.png -------------------------------------------------------------------------------- /sprites/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/5.png -------------------------------------------------------------------------------- /sprites/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/6.png -------------------------------------------------------------------------------- /sprites/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/7.png -------------------------------------------------------------------------------- /sprites/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/8.png -------------------------------------------------------------------------------- /sprites/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/9.png -------------------------------------------------------------------------------- /sprites/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/a.png -------------------------------------------------------------------------------- /sprites/b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/b.png -------------------------------------------------------------------------------- /sprites/e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/e.png -------------------------------------------------------------------------------- /sprites/l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/l.png -------------------------------------------------------------------------------- /sprites/p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/p.png -------------------------------------------------------------------------------- /sprites/r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/r.png -------------------------------------------------------------------------------- /sprites/s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/s.png -------------------------------------------------------------------------------- /sprites/t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/t.png -------------------------------------------------------------------------------- /sprites/u.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/u.png -------------------------------------------------------------------------------- /sprites/ab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/ab.png -------------------------------------------------------------------------------- /sprites/abd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/abd.png -------------------------------------------------------------------------------- /sprites/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/bg.png -------------------------------------------------------------------------------- /launchscreen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/launchscreen.gif -------------------------------------------------------------------------------- /launchscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/launchscreen.png -------------------------------------------------------------------------------- /sprites/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/arrow.png -------------------------------------------------------------------------------- /sprites/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/black.png -------------------------------------------------------------------------------- /sprites/flbird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/flbird.png -------------------------------------------------------------------------------- /sprites/flbody.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/flbody.jpg -------------------------------------------------------------------------------- /sprites/flbody.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/flbody.png -------------------------------------------------------------------------------- /sprites/fldown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/fldown.png -------------------------------------------------------------------------------- /sprites/flpipe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/flpipe.png -------------------------------------------------------------------------------- /sprites/fltest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/fltest.png -------------------------------------------------------------------------------- /sprites/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/grass.png -------------------------------------------------------------------------------- /sprites/land.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/land.png -------------------------------------------------------------------------------- /sprites/land2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/land2.png -------------------------------------------------------------------------------- /sprites/onedot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/onedot.png -------------------------------------------------------------------------------- /sprites/fourdots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/fourdots.png -------------------------------------------------------------------------------- /sprites/twodots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/twodots.png -------------------------------------------------------------------------------- /sprites/flbird orig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/flbird orig.png -------------------------------------------------------------------------------- /sprites/flbottomtop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/flbottomtop.png -------------------------------------------------------------------------------- /sprites/fltopbottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/fltopbottom.png -------------------------------------------------------------------------------- /sprites/threedots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/threedots.png -------------------------------------------------------------------------------- /sprites/flbird orig bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pashutk/flappybird-gameboy/HEAD/sprites/flbird orig bw.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Flappybird-gameboy 2 | Flappybird-like game for Nintendo Gameboy (Gameboy Original or Gameboy Color). 3 | 4 | ## Demo images 5 | 6 | 7 | 8 | 9 | 10 | ## Build ROM 11 | To build Gameboy .gb ROM file use [GBDK library](http://gbdk.sourceforge.net/) 12 | Clone project to `gbdk` folder and then compile code to ROM with command: 13 | `PATH_TO_GBDK/bin/lcc -o game.gb game.c` 14 | 15 | ## Play online 16 | You can use [this online emulator](https://github.com/taisel/GameBoy-Online) to launch rom in browser 17 | -------------------------------------------------------------------------------- /game.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include "tiledata.h" 9 | 10 | #define NON_VOLATILE_MEMORY_ADDRESS 0xAF00 11 | #define PIPE_GAP 8 12 | #define JUMP_DELAY 15 13 | #define SPRITE_HEIGHT 8 14 | #define PIPE_WIDTH 5 // flbody_tile_map_width 15 | #define DOWNTEMPO_COEFFICIENT 70 16 | 17 | #define FIRST_PIPE_POSITION_X 0 18 | #define SECOND_PIPE_POSITION_X 128 19 | #define GAME_BKG_SCROLL_STEP 2 20 | #define FAIL_STEP_DELAY 400 21 | #define TUTORIAL_ARROW_INITIAL_POSITION_Y 176 22 | #define TUTORIAL_ARROW_SHOWN_POSITION_Y 120 23 | 24 | UINT8 *RAMPtr; 25 | UINT16 high_score_backup = 0; 26 | 27 | INT16 abs(INT16 num) { 28 | if(num < 0) 29 | return -num; 30 | else 31 | return num; 32 | } 33 | 34 | typedef struct game_sprite_object_ { 35 | UINT8 width; 36 | UINT8 height; 37 | UINT8 *tile_data_pointer; 38 | UINT8 first_tile_num; 39 | UINT8 *last_free_tile_pointer; 40 | } game_sprite_object; 41 | 42 | enum game_states { 43 | TRANSITION_TO_TITLE, 44 | TITLE, 45 | TRANSITION_TO_TUTORIAL, 46 | TUTORIAL, 47 | MAIN, 48 | FAIL, 49 | TRANSITION_TO_RETRY, 50 | RETRY 51 | }; 52 | 53 | enum moving_out_state { 54 | SIDE, 55 | DOWN, 56 | DONE 57 | }; 58 | 59 | void init_gso(game_sprite_object *gso) { 60 | UINT8 i; 61 | UINT8 tile_sum; 62 | UINT8 last_free_tile_value; 63 | 64 | last_free_tile_value = *(gso->last_free_tile_pointer); 65 | tile_sum = gso->width * gso->height; 66 | 67 | set_sprite_data(last_free_tile_value, tile_sum, gso->tile_data_pointer); 68 | // Refresh last_free_tile value 69 | *(gso->last_free_tile_pointer) += tile_sum; 70 | // Link tiles and sprites 71 | for (i = last_free_tile_value; i < last_free_tile_value + tile_sum; i++) { 72 | set_sprite_tile(i, i); 73 | } 74 | } 75 | 76 | void new_gso(game_sprite_object *gso_pointer, 77 | UINT8 width, 78 | UINT8 height, 79 | UINT8 *tile_data_pointer, 80 | UINT8 *last_free_tile_pointer) { 81 | // Without this lines some params === 0 ¯\_(ツ)_/¯ 82 | gso_pointer->height; 83 | gso_pointer->tile_data_pointer; 84 | 85 | gso_pointer->width = width; 86 | gso_pointer->height = height; 87 | gso_pointer->tile_data_pointer = tile_data_pointer; 88 | gso_pointer->first_tile_num = *last_free_tile_pointer; 89 | gso_pointer->last_free_tile_pointer = last_free_tile_pointer; 90 | 91 | init_gso(gso_pointer); 92 | } 93 | 94 | // Work correctly with 8*8 sprites 95 | void move_gso(game_sprite_object *gso, 96 | UINT8 x, 97 | UINT8 y) { 98 | UINT8 i, j, c; 99 | c = gso->first_tile_num; 100 | 101 | for (i = 0; i < gso->height; ++i) { 102 | for (j = 0; j < gso->width; ++j) { 103 | move_sprite(c++, x + 8 * j, y + 8 * i); 104 | } 105 | } 106 | } 107 | 108 | // Returns tile number for 0-9 109 | UINT8 get_tile_num_for_number(UINT8 number) { 110 | return 76 + number; 111 | } 112 | 113 | void fill_pipe_row_with_numbers(UINT8 *row, UINT8 row_number, UINT16 number) { 114 | const UINT8 first_order = number % 10; 115 | row[row_number + 3] = get_tile_num_for_number(first_order); 116 | if (number >= 10) { 117 | row[row_number + 2] = get_tile_num_for_number(((number - first_order) % 100) / 10); 118 | } 119 | if (number >= 100) { 120 | row[row_number + 1] = get_tile_num_for_number(((number - first_order) % 1000) / 100); 121 | } 122 | } 123 | 124 | // TODO: increase render speed by using line-by-line drawing (vertical) 125 | void draw_pipe(UINT8 x, INT8 level, UINT16 pipe_num) { 126 | const INT8 cap_height = fltopbottom_tile_map_height; 127 | const INT8 middle_level = GRAPHICS_HEIGHT / SPRITE_HEIGHT / 2 / 2; 128 | UINT8 opt_shift = 0; 129 | INT8 j; 130 | UINT8 pipe_tiles[GRAPHICS_HEIGHT / SPRITE_HEIGHT * PIPE_WIDTH]; 131 | UINT8 tile_num = 0; 132 | UINT8 row_num; 133 | 134 | if (x == 27) { 135 | opt_shift = 1; 136 | } 137 | 138 | for (j = 0; j != 18; j++) { 139 | row_num = PIPE_WIDTH * j; 140 | if (j + cap_height <= level || j > level + PIPE_GAP + cap_height) { 141 | // Draw pipe body 142 | pipe_tiles[row_num] = 1; 143 | pipe_tiles[row_num + 1] = pipe_tiles[row_num + 2] = 2; 144 | pipe_tiles[row_num + 3] = 3; 145 | pipe_tiles[row_num + 4] = 4; 146 | } else if (j <= level && j > level - cap_height) { 147 | // Draw top pipe cap 148 | if (j + 2 == level) { 149 | pipe_tiles[row_num] = tile_num = 18; 150 | pipe_tiles[row_num + 1] = tile_num = 19; 151 | pipe_tiles[row_num + 2] = tile_num = 20; 152 | pipe_tiles[row_num + 3] = tile_num = 21; 153 | pipe_tiles[row_num + 4] = tile_num = 22; 154 | } else if (j + 1 == level) { 155 | pipe_tiles[row_num] = 23; 156 | pipe_tiles[row_num + 1] = 24; 157 | pipe_tiles[row_num + 2] = 25; 158 | pipe_tiles[row_num + 3] = 25; 159 | pipe_tiles[row_num + 4] = 26; 160 | if (level > middle_level) { 161 | fill_pipe_row_with_numbers(pipe_tiles, row_num, pipe_num); 162 | } 163 | } else if (j == level) { 164 | pipe_tiles[row_num] = 27; 165 | pipe_tiles[row_num + 1] = pipe_tiles[row_num + 2] = 28; 166 | pipe_tiles[row_num + 3] = 29; 167 | pipe_tiles[row_num + 4] = 30; 168 | } 169 | } else if (j > level + PIPE_GAP && j <= level + PIPE_GAP + cap_height) { 170 | // Draw bottom pipe cap 171 | if (j == level + PIPE_GAP + 1) { 172 | pipe_tiles[row_num] = 5; 173 | pipe_tiles[row_num + 1] = pipe_tiles[row_num + 2] = 6; 174 | pipe_tiles[row_num + 3] = 7; 175 | pipe_tiles[row_num + 4] = 8; 176 | } else if (j == level + PIPE_GAP + 2) { 177 | pipe_tiles[row_num] = 9; 178 | pipe_tiles[row_num + 1] = pipe_tiles[row_num + 2] = 10; 179 | pipe_tiles[row_num + 3] = 11; 180 | pipe_tiles[row_num + 4] = 12; 181 | if (level <= middle_level) { 182 | fill_pipe_row_with_numbers(pipe_tiles, row_num, pipe_num); 183 | } 184 | } else if (j == level + PIPE_GAP + 3) { 185 | pipe_tiles[row_num] = 13; 186 | pipe_tiles[row_num + 1] = 14; 187 | pipe_tiles[row_num + 2] = 15; 188 | pipe_tiles[row_num + 3] = 16; 189 | pipe_tiles[row_num + 4] = 17; 190 | } 191 | } else { 192 | if (j == 11) { 193 | pipe_tiles[row_num] = 90 + opt_shift; 194 | pipe_tiles[row_num + 1] = 91 + opt_shift; 195 | pipe_tiles[row_num + 2] = 92 + opt_shift; 196 | pipe_tiles[row_num + 3] = 93 + opt_shift; 197 | pipe_tiles[row_num + 4] = 94 + opt_shift; 198 | } else if (j == 12) { 199 | pipe_tiles[row_num] = 98 + opt_shift; 200 | pipe_tiles[row_num + 1] = 99 + opt_shift; 201 | pipe_tiles[row_num + 2] = 100 + opt_shift; 202 | pipe_tiles[row_num + 3] = 101 + opt_shift; 203 | pipe_tiles[row_num + 4] = 102 + opt_shift; 204 | } else if (j == 13) { 205 | pipe_tiles[row_num] = 106 + opt_shift; 206 | pipe_tiles[row_num + 1] = 107 + opt_shift; 207 | pipe_tiles[row_num + 2] = 108 + opt_shift; 208 | pipe_tiles[row_num + 3] = 109 + opt_shift; 209 | pipe_tiles[row_num + 4] = 110 + opt_shift; 210 | } else if (j == 14) { 211 | pipe_tiles[row_num] = 114 + opt_shift; 212 | pipe_tiles[row_num + 1] = 115 + opt_shift; 213 | pipe_tiles[row_num + 2] = 116 + opt_shift; 214 | pipe_tiles[row_num + 3] = 117 + opt_shift; 215 | pipe_tiles[row_num + 4] = 118 + opt_shift; 216 | } else if (j == 15) { 217 | pipe_tiles[row_num] = 122 + opt_shift; 218 | pipe_tiles[row_num + 1] = 123 + opt_shift; 219 | pipe_tiles[row_num + 2] = 124 + opt_shift; 220 | pipe_tiles[row_num + 3] = 125 + opt_shift; 221 | pipe_tiles[row_num + 4] = 126 + opt_shift; 222 | } else if (j == 16) { 223 | pipe_tiles[row_num] = 224 | pipe_tiles[row_num + 1] = 225 | pipe_tiles[row_num + 2] = 226 | pipe_tiles[row_num + 3] = 227 | pipe_tiles[row_num + 4] = 137; 228 | } else { 229 | pipe_tiles[row_num] = 230 | pipe_tiles[row_num + 1] = 231 | pipe_tiles[row_num + 2] = 232 | pipe_tiles[row_num + 3] = 233 | pipe_tiles[row_num + 4] = 0; 234 | } 235 | 236 | } 237 | } 238 | set_bkg_tiles(x, 0, PIPE_WIDTH, GRAPHICS_HEIGHT / SPRITE_HEIGHT, pipe_tiles); 239 | } 240 | 241 | void flush_row(UINT8 row) { 242 | UINT8 i = 0; 243 | UINT8 bkg_tiles[31]; 244 | for (i = 0; i < 32; i++) { 245 | bkg_tiles[i] = 0; 246 | } 247 | set_bkg_tiles(0, row, 32, 1, bkg_tiles); 248 | } 249 | 250 | void flush_bkg() { 251 | UINT8 i = 0; 252 | for (i = 0; i < 32; i++) { 253 | flush_row(i); 254 | } 255 | } 256 | 257 | void draw_title() { 258 | UINT8 i; 259 | UINT8 tiles[30]; 260 | UINT8 tiles2[11]; 261 | 262 | tiles2[0] = 65; 263 | tiles2[1] = 66; 264 | tiles2[2] = 67; 265 | tiles2[3] = 68; 266 | tiles2[4] = 68; 267 | tiles2[5] = 0; 268 | tiles2[6] = 0; 269 | tiles2[7] = 68; 270 | tiles2[8] = 69; 271 | tiles2[9] = 70; 272 | tiles2[10] = 66; 273 | tiles2[11] = 69; 274 | 275 | set_bkg_tiles(20, 31, 12, 1, tiles2); 276 | 277 | for (i = 0; i < 30; i++) { 278 | tiles[i] = i + 35; 279 | } 280 | set_bkg_tiles(21, 25, 10, 3, tiles); 281 | } 282 | 283 | void draw_land() { 284 | UINT8 i; 285 | UINT8 tiles[48]; 286 | 287 | for (i = 0; i < 32; i+=2) { 288 | tiles[i] = 33; 289 | tiles[i+1] = 34; 290 | } 291 | set_bkg_tiles(0, 17, 32, 1, tiles); 292 | 293 | for (i = 0; i < 48; i++) { 294 | tiles[i] = i + 89; 295 | } 296 | 297 | for (i = 0; i < 4; i++) { 298 | set_bkg_tiles(i * 8 + 1, 11, 8, 5, tiles); 299 | } 300 | 301 | tiles[0] = 128; 302 | set_bkg_tiles(0, 15, 1, 1, tiles); 303 | 304 | for (i = 0; i < 32; i++) { 305 | tiles[i] = 137; 306 | }; 307 | set_bkg_tiles(0, 16, 32, 1, tiles); 308 | } 309 | 310 | void draw_result(UINT16 result) { 311 | UINT8 text_tiles[6 * 7]; 312 | UINT8 i; 313 | UINT8 best; 314 | UINT16 buffer; 315 | 316 | buffer = (UINT8) RAMPtr[0]; 317 | if (buffer == 255) { 318 | best = 0; 319 | } else { 320 | best = buffer; 321 | } 322 | 323 | // hack for emulators that cant acceess to nv ram 324 | if (best == 0 && high_score_backup != 0) { 325 | best = high_score_backup; 326 | } 327 | 328 | if ((UINT8) result > best) { 329 | high_score_backup = result; 330 | RAMPtr[0] = result; 331 | } 332 | 333 | for (i = 0; i < 42; i++) { 334 | text_tiles[i] = 0; 335 | } 336 | 337 | fill_pipe_row_with_numbers(text_tiles, 14, result); 338 | fill_pipe_row_with_numbers(text_tiles, 38, best); 339 | 340 | text_tiles[0] = 66; 341 | text_tiles[1] = 67; 342 | text_tiles[2] = 68; 343 | text_tiles[3] = 86; 344 | text_tiles[4] = 87; 345 | text_tiles[5] = 69; 346 | 347 | text_tiles[24] = 88; 348 | text_tiles[25] = 67; 349 | text_tiles[26] = 68; 350 | text_tiles[27] = 69; 351 | 352 | set_bkg_tiles(7, 5, 6, 7, text_tiles); 353 | } 354 | 355 | UINT8 get_random_pipe_level() { 356 | const UINT8 max = 9; 357 | UINT8 num = rand() % max; 358 | // exclude values < 0 359 | while (num > 200) { 360 | num = rand() % max; 361 | } 362 | return num; 363 | } 364 | 365 | BOOLEAN check_collision(DWORD y) { 366 | if (y < 10 || y > GRAPHICS_HEIGHT - SPRITE_HEIGHT) { 367 | return TRUE; 368 | } else { 369 | return FALSE; 370 | } 371 | } 372 | 373 | BOOLEAN check_bottom_collision(DWORD y) { 374 | if (y > GRAPHICS_HEIGHT) { 375 | return TRUE; 376 | } else { 377 | return FALSE; 378 | } 379 | } 380 | 381 | BOOLEAN check_pipe_collision(DWORD y, INT8 level) { 382 | const UINT8 player_height = flbird_tile_map_height; 383 | 384 | if (y < level * SPRITE_HEIGHT + player_height * SPRITE_HEIGHT || 385 | y > level * SPRITE_HEIGHT + PIPE_GAP * SPRITE_HEIGHT) { 386 | return TRUE; 387 | } else { 388 | return FALSE; 389 | } 390 | } 391 | 392 | INT16 get_player_y_pos(UINT8 t, UINT8 yd) { 393 | const UINT16 v0 = 200; 394 | const UINT8 g = 10; 395 | UINT16 dx0, dx1; 396 | 397 | dx0 = v0 * t / DOWNTEMPO_COEFFICIENT; 398 | dx1 = g * t * t / DOWNTEMPO_COEFFICIENT / 2; 399 | return GRAPHICS_HEIGHT - (yd + (dx0 - dx1)); 400 | } 401 | 402 | BOOLEAN move_title_in() { 403 | const UINT8 end_point = 128; 404 | const UINT8 downtempo = 6; 405 | static INT16 title_position_x = 0; 406 | INT8 title_buffer; 407 | 408 | if (title_position_x <= end_point) { 409 | title_buffer = (end_point - title_position_x) / downtempo; 410 | if (title_buffer < 1) { 411 | title_buffer = 1; 412 | } 413 | title_position_x += title_buffer; 414 | move_bkg(title_position_x, 160); 415 | return FALSE; 416 | } else { 417 | return TRUE; 418 | } 419 | } 420 | 421 | BOOLEAN move_title_out() { 422 | static enum moving_out_state current_state = SIDE; 423 | static UINT16 bkg_position_x = 128; 424 | static UINT16 bkg_position_y = 160; 425 | static UINT16 counter = 0; 426 | UINT16 delta = 0; 427 | const UINT8 downtempo = 50; 428 | 429 | if (current_state == DONE) { 430 | return TRUE; 431 | } 432 | 433 | counter++; 434 | delta = (counter * counter) / downtempo; 435 | 436 | if (current_state == SIDE) { 437 | bkg_position_x += delta; 438 | if (bkg_position_x > 255) { 439 | bkg_position_x = 0; 440 | counter = 0; 441 | current_state = DOWN; 442 | } 443 | } else if (current_state == DOWN) { 444 | bkg_position_y += delta; 445 | if (bkg_position_y > 255) { 446 | bkg_position_y = 0; 447 | current_state = DONE; 448 | } 449 | } 450 | move_bkg(bkg_position_x, bkg_position_y); 451 | return FALSE; 452 | } 453 | 454 | BOOLEAN blackify_back() { 455 | static INT8 step = 0; 456 | UINT8 i; 457 | UINT8 tiles[20]; 458 | UINT8 steps[] = { 459 | 71, 460 | 72, 461 | 73, 462 | 74, 463 | 75 464 | }; 465 | UINT8 tile_num; 466 | 467 | delay(100); 468 | 469 | move_bkg(0, 0); 470 | 471 | if (step < sizeof(steps)) { 472 | tile_num = steps[step]; 473 | } else { 474 | step = 0; 475 | return TRUE; 476 | } 477 | 478 | for (i = 0; i < 20; i++) { 479 | tiles[i] = tile_num; 480 | } 481 | for (i = 0; i < 18; i++) { 482 | set_bkg_tiles(0, i, 20, 1, tiles); 483 | } 484 | 485 | step++; 486 | 487 | return FALSE; 488 | } 489 | 490 | void dynamic_set_bkg_data(INT16 tile_count, UINT8 *tile_data) { 491 | // use 1 because 0 tile should be empty tile 492 | static INT16 last_free_tile_num = 1; 493 | 494 | set_bkg_data(last_free_tile_num, tile_count, tile_data); 495 | last_free_tile_num += tile_count; 496 | } 497 | 498 | void interrupt_LCD() { 499 | HIDE_WIN; 500 | } 501 | 502 | BOOLEAN cheat_code_inputed(UINT8 *code_buttons, UINT8 sizeof_code_buttons) { 503 | const UINT8 max_delay = 10; 504 | UINT8 joypad_value; 505 | static UINT8 counter = 0; 506 | static UINT8 code_current_button_position = 0; 507 | static BOOLEAN was_last_input_empty = FALSE; 508 | 509 | if (counter != max_delay) { 510 | counter++; 511 | } 512 | 513 | if (counter == max_delay) { 514 | code_current_button_position = 0; 515 | } 516 | 517 | joypad_value = joypad(); 518 | 519 | if (joypad_value != 0) { 520 | counter = 0; 521 | if (was_last_input_empty == TRUE) { 522 | if (joypad_value & code_buttons[code_current_button_position]) { 523 | code_current_button_position++; 524 | } else { 525 | code_current_button_position = 0; 526 | } 527 | } 528 | if (code_current_button_position == sizeof_code_buttons) { 529 | counter = 0; 530 | code_current_button_position = 0; 531 | return TRUE; 532 | } 533 | was_last_input_empty = FALSE; 534 | } else { 535 | was_last_input_empty = TRUE; 536 | } 537 | return FALSE; 538 | } 539 | 540 | BOOLEAN reset_cheat_inputed() { 541 | const UINT8 code_buttons[] = { 542 | J_A, 543 | J_B, 544 | J_B, 545 | J_B 546 | }; 547 | return cheat_code_inputed(&code_buttons, sizeof(code_buttons)); 548 | } 549 | 550 | void stop_playing_intro() { 551 | NR12_REG = 0x00; 552 | NR22_REG = 0x00; 553 | } 554 | 555 | void play_intro() { 556 | static UINT8 counter = 0; 557 | 558 | if (counter == 127) { 559 | return; 560 | } 561 | 562 | if (counter == 0) { 563 | NR10_REG = 0x7C; 564 | NR11_REG = 0xB0; 565 | NR12_REG = 0x8F; 566 | NR13_REG = 0x10; 567 | NR14_REG = 0x84; 568 | 569 | NR21_REG = 0x60; 570 | NR22_REG = 0x8F; 571 | NR23_REG = 0x12; 572 | NR24_REG = 0x84; 573 | } 574 | 575 | if (clock() % 8) { 576 | counter++; 577 | } 578 | 579 | if (counter == 100) { 580 | stop_playing_intro(); 581 | counter = 127; 582 | } 583 | } 584 | 585 | void play_fail() { 586 | NR41_REG = 0x01; 587 | NR42_REG = 0xA2; 588 | NR43_REG = 0x45; 589 | NR44_REG = 0xC0; 590 | } 591 | 592 | void play_jump() { 593 | NR10_REG = 0x36; 594 | NR11_REG = 0x10; 595 | NR12_REG = 0x83; 596 | NR13_REG = 0x00; 597 | NR14_REG = 0x87; 598 | } 599 | 600 | void play_c3() { 601 | NR21_REG = 0x82; 602 | NR22_REG = 0x81; 603 | NR23_REG = 0x10; 604 | NR24_REG = 0xC0; 605 | } 606 | 607 | void play_c4() { 608 | NR21_REG = 0x82; 609 | NR22_REG = 0x81; 610 | NR23_REG = 0xF0; 611 | NR24_REG = 0xC1; 612 | } 613 | 614 | void play_hh() { 615 | NR41_REG = 0x02; 616 | NR42_REG = 0x61; 617 | NR43_REG = 0x10; 618 | NR44_REG = 0xC0; 619 | } 620 | 621 | void play_snare() { 622 | NR41_REG = 0x02; 623 | NR42_REG = 0x61; 624 | NR43_REG = 0x42; 625 | NR44_REG = 0xC0; 626 | } 627 | 628 | void play_music() { 629 | static UINT8 step = 0; 630 | 631 | if (clock() % 8 != 0) { 632 | return; 633 | } 634 | 635 | play_hh(); 636 | 637 | if (step == 1 || step == 6) { 638 | play_c4(); 639 | } else { 640 | play_c3(); 641 | } 642 | 643 | if (step == 3) { 644 | play_snare(); 645 | } 646 | 647 | step++; 648 | 649 | if (step == 8) { 650 | step = 0; 651 | } 652 | } 653 | 654 | void main() { 655 | UINT8 player_position_x = 50, j; 656 | DWORD player_position_y = 0; 657 | UINT8 yd = 50; 658 | UINT16 time_backup = 0, delaying = 0; 659 | BOOLEAN jump_is_delayed = FALSE, resume = TRUE; 660 | UINT8 i = 0, t = 0, u = 0; 661 | BOOLEAN pipe_collision_check_is_needed = FALSE; 662 | 663 | UINT8 last_free_tile = 0; 664 | UINT16 scroll_position_x = 0; 665 | UINT16 first_pipe_collision_zone_start_x; 666 | UINT16 first_pipe_collision_zone_end_x; 667 | UINT16 second_pipe_collision_zone_start_x; 668 | UINT16 second_pipe_collision_zone_end_x; 669 | UINT8 second_pipe_current_level; 670 | UINT8 first_pipe_current_level; 671 | UINT8 tutorial_arrow_position_x = TUTORIAL_ARROW_INITIAL_POSITION_Y; 672 | UINT16 tutorial_arrow_position_y = 68; 673 | BOOLEAN was_collision_flag = FALSE; 674 | INT8 tutorial_step_counter = 0; 675 | UINT16 pipe_number = 1; 676 | UINT16 current_score = 0; 677 | 678 | enum game_states current_game_state = TRANSITION_TO_TITLE; 679 | game_sprite_object player; 680 | game_sprite_object tutorial_arrow; 681 | game_sprite_object tutorial_a_button; 682 | 683 | NR52_REG = 0x80; 684 | NR51_REG = 0xFF; 685 | NR50_REG = 0x77; 686 | 687 | ENABLE_RAM_MBC1; 688 | 689 | RAMPtr = (UINT8 *)NON_VOLATILE_MEMORY_ADDRESS; 690 | 691 | new_gso(&player, flbird_tile_map_width, flbird_tile_map_height, &flbird_tile_data, &last_free_tile); 692 | new_gso(&tutorial_arrow, arrow_tile_map_width, arrow_tile_map_height, &arrow_tile_data, &last_free_tile); 693 | new_gso(&tutorial_a_button, ab_tile_map_width, ab_tile_map_height, &ab_tile_data, &last_free_tile); 694 | 695 | dynamic_set_bkg_data(flbody_tile_count, flbody_tile_data); 696 | 697 | // set_bkg_data(1, flbody_tile_count, flbody_tile_data); 698 | set_bkg_data(5, flbottomtop_tile_count, flbottomtop_tile_data); 699 | set_bkg_data(18, fltopbottom_tile_count, fltopbottom_tile_data); 700 | set_bkg_data(33, land_tile_count, land_tile_data); 701 | set_bkg_data(34, land2_tile_count, land2_tile_data); 702 | set_bkg_data(35, title_tile_count, title_tile_data); 703 | 704 | set_bkg_data(65, p_tile_count, p_tile_data); 705 | set_bkg_data(66, r_tile_count, r_tile_data); 706 | set_bkg_data(67, e_tile_count, e_tile_data); 707 | set_bkg_data(68, s_tile_count, s_tile_data); 708 | set_bkg_data(69, t_tile_count, t_tile_data); 709 | set_bkg_data(70, a_tile_count, a_tile_data); 710 | set_bkg_data(71, onedot_tile_count, onedot_tile_data); 711 | set_bkg_data(72, twodots_tile_count, twodots_tile_data); 712 | set_bkg_data(73, threedots_tile_count, threedots_tile_data); 713 | set_bkg_data(74, fourdots_tile_count, fourdots_tile_data); 714 | set_bkg_data(75, black_tile_count, black_tile_data); 715 | 716 | set_bkg_data(76, num_0_tile_count, num_0_tile_data); 717 | set_bkg_data(77, num_1_tile_count, num_1_tile_data); 718 | set_bkg_data(78, num_2_tile_count, num_2_tile_data); 719 | set_bkg_data(79, num_3_tile_count, num_3_tile_data); 720 | set_bkg_data(80, num_4_tile_count, num_4_tile_data); 721 | set_bkg_data(81, num_5_tile_count, num_5_tile_data); 722 | set_bkg_data(82, num_6_tile_count, num_6_tile_data); 723 | set_bkg_data(83, num_7_tile_count, num_7_tile_data); 724 | set_bkg_data(84, num_8_tile_count, num_8_tile_data); 725 | set_bkg_data(85, num_9_tile_count, num_9_tile_data); 726 | 727 | set_bkg_data(86, u_tile_count, u_tile_data); 728 | set_bkg_data(87, l_tile_count, l_tile_data); 729 | set_bkg_data(88, b_tile_count, b_tile_data); 730 | 731 | set_bkg_data(89, bg_tile_count, bg_tile_data); 732 | set_bkg_data(137, grass_tile_count, grass_tile_data); 733 | 734 | flush_bkg(); 735 | 736 | // Interupts causes freezes, bad idea 737 | 738 | // STAT_REG = 0x45; 739 | // LYC_REG = 0x08; // Fire LCD Interupt on the 8th scan line 740 | 741 | disable_interrupts(); 742 | 743 | SPRITES_8x8; 744 | SHOW_BKG; 745 | // SHOW_WIN; 746 | SHOW_SPRITES; 747 | DISPLAY_ON; 748 | 749 | // add_LCD(interrupt_LCD); 750 | // enable_interrupts(); 751 | 752 | // set_interrupts(VBL_IFLAG | LCD_IFLAG); 753 | 754 | draw_land(); 755 | 756 | draw_title(); 757 | move_bkg(0, 160); 758 | 759 | // move_win(0, 0); 760 | // for (i = 0; i < 31; i++) { 761 | // test[i] = 0; 762 | // } 763 | // for (i = 0; i < 18; i++) { 764 | // set_win_tiles(0, i, 20, 1, test); 765 | // } 766 | // i = 0; 767 | 768 | first_pipe_collision_zone_start_x = 10 * 8 - (player_position_x + (3 * 4)); 769 | first_pipe_collision_zone_end_x = first_pipe_collision_zone_start_x + 40 + 2 * 8; 770 | second_pipe_collision_zone_start_x = 255 - 40 - player_position_x - 3 * 4; 771 | second_pipe_collision_zone_end_x = second_pipe_collision_zone_start_x + 40 + 2 * 8; 772 | 773 | move_gso(&tutorial_arrow, tutorial_arrow_position_x, tutorial_arrow_position_y); 774 | move_gso(&tutorial_a_button, 168, 80); 775 | 776 | player_position_x = 0; 777 | player_position_y = 144-50; 778 | 779 | play_intro(); 780 | 781 | while(resume) { 782 | // Main loop 783 | 784 | // TODO: one pressing – one jump 785 | j = joypad(); 786 | 787 | // SHOW_WIN; 788 | 789 | if (current_game_state == TRANSITION_TO_TITLE) { 790 | if (move_title_in() == TRUE) { 791 | current_game_state = TITLE; 792 | }; 793 | 794 | play_intro(); 795 | } 796 | 797 | if (current_game_state == TITLE) { 798 | if (j & J_START) { 799 | initrand(DIV_REG); 800 | current_game_state = TRANSITION_TO_TUTORIAL; 801 | } 802 | 803 | if (reset_cheat_inputed() == TRUE) { 804 | RAMPtr[0] = 0; 805 | resume = FALSE; 806 | reset(); 807 | } 808 | 809 | play_intro(); 810 | } 811 | 812 | if (current_game_state == TRANSITION_TO_TUTORIAL) { 813 | stop_playing_intro(); 814 | 815 | if (move_title_out() == TRUE) { 816 | current_game_state = TUTORIAL; 817 | }; 818 | } 819 | 820 | if (current_game_state == TUTORIAL) { 821 | play_music(); 822 | if (tutorial_arrow_position_x > TUTORIAL_ARROW_SHOWN_POSITION_Y) { 823 | tutorial_arrow_position_x -= 4; 824 | move_gso(&tutorial_a_button, tutorial_arrow_position_x - 3, 80); 825 | } 826 | 827 | if (tutorial_step_counter == 8) { 828 | tutorial_arrow_position_y++; 829 | } if (tutorial_step_counter == 16) { 830 | tutorial_arrow_position_y--; 831 | tutorial_step_counter = 0; 832 | } else { 833 | tutorial_step_counter++; 834 | } 835 | 836 | move_gso(&tutorial_arrow, tutorial_arrow_position_x, tutorial_arrow_position_y); 837 | move_bkg(scroll_position_x++, 0); 838 | 839 | if (player_position_x < 50) { 840 | player_position_x += 4; 841 | move_gso(&player, player_position_x, player_position_y); 842 | } else { 843 | player_position_x = 50; 844 | move_gso(&player, player_position_x, player_position_y); 845 | } 846 | 847 | if (j & J_A && !jump_is_delayed && player_position_x == 50) { 848 | time_backup = clock(); 849 | delaying = clock() + JUMP_DELAY; 850 | jump_is_delayed = TRUE; 851 | scroll_position_x = 0; 852 | pipe_number = 1; 853 | current_score = 0; 854 | play_jump(); 855 | current_game_state = MAIN; 856 | } 857 | } 858 | 859 | if (current_game_state == MAIN) { 860 | play_music(); 861 | if (tutorial_arrow_position_x < TUTORIAL_ARROW_INITIAL_POSITION_Y) { 862 | tutorial_arrow_position_x += 4; 863 | move_gso(&tutorial_arrow, tutorial_arrow_position_x, tutorial_arrow_position_y); 864 | move_gso(&tutorial_a_button, tutorial_arrow_position_x - 3, 80); 865 | } 866 | 867 | move_bkg(scroll_position_x, 0); 868 | if (scroll_position_x < 255 - GAME_BKG_SCROLL_STEP) { 869 | scroll_position_x += GAME_BKG_SCROLL_STEP; 870 | } else { 871 | scroll_position_x = 255 - scroll_position_x; 872 | } 873 | 874 | if (scroll_position_x > FIRST_PIPE_POSITION_X && scroll_position_x <= FIRST_PIPE_POSITION_X + GAME_BKG_SCROLL_STEP) { 875 | second_pipe_current_level = get_random_pipe_level(); 876 | draw_pipe(27, second_pipe_current_level, pipe_number++); 877 | } 878 | if (scroll_position_x > SECOND_PIPE_POSITION_X && scroll_position_x <= SECOND_PIPE_POSITION_X + GAME_BKG_SCROLL_STEP) { 879 | first_pipe_current_level = get_random_pipe_level(); 880 | draw_pipe(10, first_pipe_current_level, pipe_number++); 881 | pipe_collision_check_is_needed = TRUE; 882 | } 883 | 884 | if (j & J_A && !jump_is_delayed) { 885 | yd = GRAPHICS_HEIGHT - player_position_y; 886 | time_backup = clock(); 887 | delaying = clock() + JUMP_DELAY; 888 | jump_is_delayed = TRUE; 889 | play_jump(); 890 | } 891 | 892 | if (clock() > delaying) { 893 | jump_is_delayed = FALSE; 894 | } 895 | t = clock() - time_backup; 896 | player_position_y = get_player_y_pos(t, yd); 897 | 898 | move_gso(&player, player_position_x, player_position_y); 899 | 900 | if (pipe_collision_check_is_needed == FALSE) { 901 | was_collision_flag = check_collision(player_position_y); 902 | } else if (scroll_position_x >= first_pipe_collision_zone_start_x && scroll_position_x <= first_pipe_collision_zone_end_x) { 903 | if (check_pipe_collision(player_position_y, first_pipe_current_level) == TRUE) { 904 | was_collision_flag = TRUE; 905 | } 906 | } else if (scroll_position_x >= second_pipe_collision_zone_start_x && scroll_position_x <= second_pipe_collision_zone_end_x) { 907 | if (check_pipe_collision(player_position_y, second_pipe_current_level) == TRUE) { 908 | was_collision_flag = TRUE; 909 | } 910 | } else { 911 | was_collision_flag = check_collision(player_position_y); 912 | } 913 | 914 | if (((scroll_position_x > first_pipe_collision_zone_end_x && 915 | scroll_position_x <= first_pipe_collision_zone_end_x + GAME_BKG_SCROLL_STEP) || 916 | (scroll_position_x > second_pipe_collision_zone_end_x && 917 | scroll_position_x <= second_pipe_collision_zone_end_x + GAME_BKG_SCROLL_STEP)) && 918 | pipe_collision_check_is_needed) { 919 | current_score++; 920 | } 921 | 922 | if (was_collision_flag == TRUE) { 923 | play_fail(); 924 | delay(FAIL_STEP_DELAY); 925 | current_game_state = FAIL; 926 | if (player_position_y > GRAPHICS_HEIGHT) { 927 | yd = 0; 928 | } else { 929 | yd = GRAPHICS_HEIGHT - player_position_y; 930 | } 931 | time_backup = clock(); 932 | } 933 | } 934 | 935 | if (current_game_state == FAIL) { 936 | t = clock() - time_backup; 937 | player_position_y = get_player_y_pos(t, yd); 938 | 939 | move_gso(&player, player_position_x, player_position_y); 940 | if (check_bottom_collision(player_position_y) == TRUE) { 941 | current_game_state = TRANSITION_TO_RETRY; 942 | } 943 | } 944 | 945 | if (current_game_state == RETRY) { 946 | draw_result(current_score); 947 | delay(2000); 948 | current_game_state = TUTORIAL; 949 | move_gso(&tutorial_arrow, tutorial_arrow_position_x, tutorial_arrow_position_y); 950 | move_gso(&tutorial_a_button, 168, 80); 951 | 952 | player_position_x = 0; 953 | player_position_y = 144-50; 954 | yd = 50; 955 | time_backup = 0; 956 | delaying = 0; 957 | jump_is_delayed = FALSE; 958 | pipe_collision_check_is_needed = FALSE; 959 | 960 | flush_bkg(); 961 | draw_land(); 962 | draw_title(); 963 | move_bkg(0, 160); 964 | } 965 | 966 | if (current_game_state == TRANSITION_TO_RETRY) { 967 | move_gso(&player, 200, 200); 968 | if (blackify_back() == TRUE) { 969 | flush_bkg(); 970 | current_game_state = RETRY; 971 | } 972 | } 973 | 974 | wait_vbl_done(); 975 | } 976 | } 977 | -------------------------------------------------------------------------------- /tiledata.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // /////////////////////// 4 | // // // 5 | // // File Attributes // 6 | // // // 7 | // /////////////////////// 8 | 9 | // Filename: flbird orig bw.png 10 | // Pixel Width: 24px 11 | // Pixel Height: 24px 12 | 13 | // ///////////////// 14 | // // // 15 | // // Constants // 16 | // // // 17 | // ///////////////// 18 | 19 | const int flbird_tile_map_size = 0x09; 20 | const int flbird_tile_map_width = 0x03; 21 | const int flbird_tile_map_height = 0x03; 22 | 23 | const int flbird_tile_data_size = 0x90; 24 | const int flbird_tile_count = 0x09; 25 | 26 | // //////////////// 27 | // // // 28 | // // Map Data // 29 | // // // 30 | // //////////////// 31 | 32 | const unsigned char flbird_map_data[] ={ 33 | 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08 34 | }; 35 | 36 | // ///////////////// 37 | // // // 38 | // // Tile Data // 39 | // // // 40 | // ///////////////// 41 | 42 | const unsigned char flbird_tile_data[] ={ 43 | 0x00,0x00,0x02,0x00,0x03,0x03,0x0C,0x00,0x0C,0x04,0x7F,0x3E,0xFF,0x00,0xC1,0x81, 44 | 0xFF,0x7F,0xFF,0x04,0x84,0x04,0x1C,0x00,0x18,0x08,0x18,0x08,0x98,0x08,0x98,0x08, 45 | 0x80,0x80,0xC0,0x00,0x60,0x40,0x30,0x00,0x30,0x00,0x68,0x48,0x68,0x48,0x68,0x48, 46 | 0xC0,0x80,0xC0,0x80,0xC0,0x80,0x61,0x00,0x77,0x01,0x1F,0x1E,0x1F,0x10,0x1F,0x10, 47 | 0xCC,0x44,0xCF,0x40,0xC3,0x41,0xCF,0x02,0xAF,0x04,0xFF,0x0B,0xFF,0x05,0xFF,0x04, 48 | 0x08,0x08,0xBC,0x08,0xFE,0xFC,0xFF,0x02,0xFF,0x00,0xFE,0xFC,0xFE,0x54,0xFE,0x04, 49 | 0x0F,0x06,0x0F,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 50 | 0xFF,0x03,0xFF,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 51 | 0xF8,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 52 | 53 | 54 | // /////////////////////// 55 | // // // 56 | // // File Attributes // 57 | // // // 58 | // /////////////////////// 59 | 60 | // /////////////////////// 61 | // // // 62 | // // File Attributes // 63 | // // // 64 | // /////////////////////// 65 | 66 | // Filename: flbody.jpg 67 | // Pixel Width: 40px 68 | // Pixel Height: 8px 69 | 70 | // ///////////////// 71 | // // // 72 | // // Constants // 73 | // // // 74 | // ///////////////// 75 | 76 | const int flbody_tile_map_size = 0x05; 77 | const int flbody_tile_map_width = 0x05; 78 | const int flbody_tile_map_height = 0x01; 79 | 80 | const int flbody_tile_data_size = 0x40; 81 | const int flbody_tile_count = 0x05; 82 | 83 | // //////////////// 84 | // // // 85 | // // Map Data // 86 | // // // 87 | // //////////////// 88 | 89 | const unsigned char flbody_map_data[] ={ 90 | 0x00,0x01,0x01,0x02,0x03 91 | }; 92 | 93 | // ///////////////// 94 | // // // 95 | // // Tile Data // 96 | // // // 97 | // ///////////////// 98 | 99 | const unsigned char flbody_tile_data[] ={ 100 | 0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20, 101 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 102 | 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, 103 | 0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E 104 | }; 105 | 106 | // /////////////////////// 107 | // // // 108 | // // File Attributes // 109 | // // // 110 | // /////////////////////// 111 | 112 | // Filename: fltopbottom.png 113 | // Pixel Width: 40px 114 | // Pixel Height: 24px 115 | 116 | // ///////////////// 117 | // // // 118 | // // Constants // 119 | // // // 120 | // ///////////////// 121 | 122 | const int fltopbottom_tile_map_size = 0x0F; 123 | const int fltopbottom_tile_map_width = 0x05; 124 | const int fltopbottom_tile_map_height = 0x03; 125 | 126 | const int fltopbottom_tile_data_size = 0xD0; 127 | const int fltopbottom_tile_count = 0x0F; 128 | 129 | // //////////////// 130 | // // // 131 | // // Map Data // 132 | // // // 133 | // //////////////// 134 | 135 | const unsigned char fltopbottom_map_data[] ={ 136 | 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x07,0x08,0x09,0x0A,0x0A,0x0B,0x0C 137 | }; 138 | 139 | // ///////////////// 140 | // // // 141 | // // Tile Data // 142 | // // // 143 | // ///////////////// 144 | 145 | const unsigned char fltopbottom_tile_data[] ={ 146 | 0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0xE3,0x70,0xFF,0xFF,0xFF,0xFF, 147 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0xFF,0xFF,0xFF,0xFF, 148 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, 149 | 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF, 150 | 0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xBE,0xFF,0xFF,0xFF,0xFF,0xFF, 151 | 0xC0,0xC0,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80, 152 | 0x9F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 153 | 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 154 | 0xB3,0x4F,0xD3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F, 155 | 0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0x80,0xC0,0xD0,0xE0,0xFF,0xFF, 156 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, 157 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0xFF,0xFF, 158 | 0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0x4B,0x07,0x03,0x07,0x17,0x0F,0xFF,0xFF 159 | }; 160 | 161 | 162 | // /////////////////////// 163 | // // // 164 | // // File Attributes // 165 | // // // 166 | // /////////////////////// 167 | 168 | // Filename: flbottomtop.png 169 | // Pixel Width: 40px 170 | // Pixel Height: 24px 171 | 172 | // ///////////////// 173 | // // // 174 | // // Constants // 175 | // // // 176 | // ///////////////// 177 | 178 | const int flbottomtop_tile_map_size = 0x0F; 179 | const int flbottomtop_tile_map_width = 0x05; 180 | const int flbottomtop_tile_map_height = 0x03; 181 | 182 | const int flbottomtop_tile_data_size = 0xD0; 183 | const int flbottomtop_tile_count = 0x0F; 184 | 185 | // //////////////// 186 | // // // 187 | // // Map Data // 188 | // // // 189 | // //////////////// 190 | 191 | const unsigned char flbottomtop_map_data[] ={ 192 | 0x00,0x01,0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C 193 | }; 194 | 195 | // ///////////////// 196 | // // // 197 | // // Tile Data // 198 | // // // 199 | // ///////////////// 200 | 201 | const unsigned char flbottomtop_tile_data[] ={ 202 | 0xFF,0xFF,0xD0,0xE0,0x80,0xC0,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80, 203 | 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 204 | 0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 205 | 0xFF,0xFF,0x17,0x0F,0x03,0x07,0x4B,0x07,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F, 206 | 0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0xC0, 207 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9F,0x00, 208 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00, 209 | 0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xC3,0x0F,0xD3,0x0F,0xB3,0x4F, 210 | 0xFF,0xFF,0xFF,0xFF,0xE3,0x70,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20,0x60,0x20, 211 | 0xFF,0xFF,0xFF,0xFF,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 212 | 0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 213 | 0xFF,0xFF,0xFF,0xFF,0x01,0xFF,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, 214 | 0xFF,0xFF,0xFF,0xFF,0xBE,0xFF,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E,0xAE,0x1E 215 | }; 216 | 217 | // /////////////////////// 218 | // // // 219 | // // File Attributes // 220 | // // // 221 | // /////////////////////// 222 | 223 | // Filename: ab.png 224 | // Pixel Width: 16px 225 | // Pixel Height: 16px 226 | 227 | // ///////////////// 228 | // // // 229 | // // Constants // 230 | // // // 231 | // ///////////////// 232 | 233 | const int ab_tile_map_size = 0x04; 234 | const int ab_tile_map_width = 0x02; 235 | const int ab_tile_map_height = 0x02; 236 | 237 | const int ab_tile_data_size = 0x40; 238 | const int ab_tile_count = 0x04; 239 | 240 | // //////////////// 241 | // // // 242 | // // Map Data // 243 | // // // 244 | // //////////////// 245 | 246 | const unsigned char ab_map_data[] ={ 247 | 0x00,0x01,0x02,0x03 248 | }; 249 | 250 | // ///////////////// 251 | // // // 252 | // // Tile Data // 253 | // // // 254 | // ///////////////// 255 | 256 | const unsigned char ab_tile_data[] ={ 257 | 0x07,0x07,0x18,0x18,0x20,0x20,0x43,0x43,0x47,0x47,0x8E,0x8E,0x8C,0x8C,0x8C,0x8C, 258 | 0xC0,0xC0,0x30,0x30,0x08,0x08,0x84,0x84,0xC4,0xC4,0xE2,0xE2,0x62,0x62,0x62,0x62, 259 | 0x8F,0x8F,0x8F,0x8F,0xCC,0xCC,0x4C,0x4C,0x60,0x60,0x38,0x38,0x1F,0x1F,0x07,0x07, 260 | 0xE2,0xE2,0xE2,0xE2,0x66,0x66,0x64,0x64,0x0C,0x0C,0x38,0x38,0xF0,0xF0,0xC0,0xC0}; 261 | 262 | // /////////////////////// 263 | // // // 264 | // // File Attributes // 265 | // // // 266 | // /////////////////////// 267 | 268 | // Filename: abd.png 269 | // Pixel Width: 16px 270 | // Pixel Height: 8px 271 | 272 | // ///////////////// 273 | // // // 274 | // // Constants // 275 | // // // 276 | // ///////////////// 277 | 278 | const int abd_tile_map_size = 0x02; 279 | const int abd_tile_map_width = 0x02; 280 | const int abd_tile_map_height = 0x01; 281 | 282 | const int abd_tile_data_size = 0x20; 283 | const int abd_tile_count = 0x02; 284 | 285 | // //////////////// 286 | // // // 287 | // // Map Data // 288 | // // // 289 | // //////////////// 290 | 291 | const unsigned char abd_map_data[] ={ 292 | 0x00,0x01 293 | }; 294 | 295 | // ///////////////// 296 | // // // 297 | // // Tile Data // 298 | // // // 299 | // ///////////////// 300 | 301 | const unsigned char abd_tile_data[] ={ 302 | 0x8F,0x8F,0x8F,0x8F,0x4C,0x4C,0x4C,0x4C,0x20,0x20,0x18,0x18,0x07,0x07,0x00,0x00, 303 | 0xE2,0xE2,0xE2,0xE2,0x64,0x64,0x64,0x64,0x08,0x08,0x30,0x30,0xC0,0xC0,0x00,0x00}; 304 | 305 | // /////////////////////// 306 | // // // 307 | // // File Attributes // 308 | // // // 309 | // /////////////////////// 310 | 311 | // Filename: arrow.png 312 | // Pixel Width: 8px 313 | // Pixel Height: 8px 314 | 315 | // ///////////////// 316 | // // // 317 | // // Constants // 318 | // // // 319 | // ///////////////// 320 | 321 | const int arrow_tile_map_size = 0x01; 322 | const int arrow_tile_map_width = 0x01; 323 | const int arrow_tile_map_height = 0x01; 324 | 325 | const int arrow_tile_data_size = 0x10; 326 | const int arrow_tile_count = 0x01; 327 | 328 | // //////////////// 329 | // // // 330 | // // Map Data // 331 | // // // 332 | // //////////////// 333 | 334 | const unsigned char arrow_map_data[] ={ 335 | 0x00 336 | }; 337 | 338 | // ///////////////// 339 | // // // 340 | // // Tile Data // 341 | // // // 342 | // ///////////////// 343 | 344 | const unsigned char arrow_tile_data[] ={ 345 | 0x18,0x18,0x3C,0x3C,0x7E,0x7E,0xFF,0xFF,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C}; 346 | 347 | // /////////////////////// 348 | // // // 349 | // // File Attributes // 350 | // // // 351 | // /////////////////////// 352 | 353 | // Filename: land.png 354 | // Pixel Width: 8px 355 | // Pixel Height: 8px 356 | 357 | // ///////////////// 358 | // // // 359 | // // Constants // 360 | // // // 361 | // ///////////////// 362 | 363 | const int land_tile_map_size = 0x01; 364 | const int land_tile_map_width = 0x01; 365 | const int land_tile_map_height = 0x01; 366 | 367 | const int land_tile_data_size = 0x10; 368 | const int land_tile_count = 0x01; 369 | 370 | // //////////////// 371 | // // // 372 | // // Map Data // 373 | // // // 374 | // //////////////// 375 | 376 | const unsigned char land_map_data[] ={ 377 | 0x00 378 | }; 379 | 380 | // ///////////////// 381 | // // // 382 | // // Tile Data // 383 | // // // 384 | // ///////////////// 385 | 386 | const unsigned char land_tile_data[] ={ 387 | 0xFF,0x00,0x00,0xFF,0xFF,0xFF,0x0C,0x0F,0x18,0x1E,0x30,0x3C,0x60,0x78,0xC0,0xF0}; 388 | 389 | 390 | // /////////////////////// 391 | // // // 392 | // // File Attributes // 393 | // // // 394 | // /////////////////////// 395 | 396 | // Filename: land2.png 397 | // Pixel Width: 8px 398 | // Pixel Height: 8px 399 | 400 | // ///////////////// 401 | // // // 402 | // // Constants // 403 | // // // 404 | // ///////////////// 405 | 406 | const int land2_tile_map_size = 0x01; 407 | const int land2_tile_map_width = 0x01; 408 | const int land2_tile_map_height = 0x01; 409 | 410 | const int land2_tile_data_size = 0x10; 411 | const int land2_tile_count = 0x01; 412 | 413 | // //////////////// 414 | // // // 415 | // // Map Data // 416 | // // // 417 | // //////////////// 418 | 419 | const unsigned char land2_map_data[] ={ 420 | 0x00 421 | }; 422 | 423 | // ///////////////// 424 | // // // 425 | // // Tile Data // 426 | // // // 427 | // ///////////////// 428 | 429 | const unsigned char land2_tile_data[] ={ 430 | 0xFF,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 431 | 432 | 433 | 434 | // /////////////////////// 435 | // // // 436 | // // File Attributes // 437 | // // // 438 | // /////////////////////// 439 | 440 | // Filename: title.png 441 | // Pixel Width: 80px 442 | // Pixel Height: 24px 443 | 444 | // WARNING: Height of input image padded 2px to 24px 445 | 446 | // ///////////////// 447 | // // // 448 | // // Constants // 449 | // // // 450 | // ///////////////// 451 | 452 | const int title_tile_map_size = 0x1E; 453 | const int title_tile_map_width = 0x0A; 454 | const int title_tile_map_height = 0x03; 455 | 456 | const int title_tile_data_size = 0x01E0; 457 | const int title_tile_count = 0x1E; 458 | 459 | // //////////////// 460 | // // // 461 | // // Map Data // 462 | // // // 463 | // //////////////// 464 | 465 | const unsigned char title_map_data[] ={ 466 | 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 467 | 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D 468 | }; 469 | 470 | // ///////////////// 471 | // // // 472 | // // Tile Data // 473 | // // // 474 | // ///////////////// 475 | 476 | const unsigned char title_tile_data[] ={ 477 | 0x07,0x1F,0x01,0x20,0x40,0x40,0x40,0x80,0x4F,0x87,0x4F,0x87,0x40,0x80,0x40,0x80, 478 | 0xFC,0xF8,0x80,0xCC,0xC4,0x88,0xC4,0x88,0xC0,0x8C,0xC5,0x89,0xC5,0x8E,0xC4,0x8C, 479 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0xFF,0x02,0x06,0x06,0x06, 480 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF1,0x00,0xFB,0xF1,0x01,0x0F,0x03,0x03, 481 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF9,0x00,0xF5,0xF8,0x00,0x07,0x01,0x01, 482 | 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0xFF,0xFF,0x08,0x88,0x18,0x88,0x98,0x88, 483 | 0xF9,0x7E,0x41,0xC0,0x80,0x40,0x00,0xC0,0x80,0xC4,0xCC,0xC4,0xC0,0xC4,0xC0,0xC0, 484 | 0x00,0x00,0x80,0x00,0x40,0x80,0x6C,0x40,0x7C,0x7E,0x44,0x62,0x46,0x63,0x47,0x62, 485 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x7E,0xFE,0x82,0x03,0x06,0x03, 486 | 0x3E,0x1F,0x03,0x31,0x02,0x31,0x22,0x11,0x42,0x31,0xF2,0x61,0x82,0x01,0x02,0x01, 487 | 0x40,0x80,0x40,0x80,0x47,0x8F,0x47,0x8F,0x40,0x8C,0x40,0x8C,0xC0,0x8C,0x84,0x88, 488 | 0xC4,0x8C,0xC4,0x8C,0xC4,0x8C,0xC4,0x8C,0xC4,0x8C,0x44,0x8C,0x44,0x8C,0x46,0x8E, 489 | 0x06,0x06,0x66,0x46,0x66,0x46,0x66,0x46,0x66,0x46,0x06,0x06,0x06,0x06,0x02,0x06, 490 | 0x03,0x03,0x23,0x23,0x33,0x23,0x33,0x23,0x23,0x23,0x03,0x03,0x03,0x03,0x07,0x07, 491 | 0x01,0x01,0x11,0x11,0x31,0x11,0x31,0x11,0x11,0x11,0x00,0x01,0x01,0x01,0x03,0x03, 492 | 0x98,0x88,0x98,0x88,0x98,0x88,0x80,0x80,0x80,0x80,0xC0,0xC0,0xE0,0xF8,0x78,0x38, 493 | 0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xCC,0xC4,0xCC,0xC4,0xC0,0xC0,0xC0,0xC0,0x80,0xC0, 494 | 0x7E,0x7E,0x7E,0x66,0x46,0x62,0x46,0x62,0x46,0x62,0x46,0x62,0xC6,0x62,0xC6,0xE2, 495 | 0x06,0x02,0x1E,0x1E,0x3E,0x3E,0x32,0x32,0x32,0x22,0x22,0x22,0x22,0x23,0x21,0x23, 496 | 0x02,0x01,0x22,0x31,0x22,0x31,0x22,0x31,0x22,0x31,0x02,0x01,0x02,0x01,0x82,0x01, 497 | 0xFC,0xF8,0xFC,0xF8,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 498 | 0x79,0xFF,0x7D,0xF9,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 499 | 0xFE,0xFE,0xFE,0xFE,0xF2,0x06,0x06,0x02,0x07,0x03,0x07,0x03,0x00,0x00,0x00,0x00, 500 | 0x3D,0x3F,0x3B,0x39,0x33,0x21,0x23,0x21,0xE3,0xE1,0xC3,0xE1,0x00,0x00,0x00,0x00, 501 | 0x1E,0x1E,0x1C,0x1C,0x18,0x10,0x30,0x10,0xF0,0xF0,0xE0,0xF0,0x00,0x00,0x00,0x00, 502 | 0x10,0x38,0x10,0x20,0x10,0x21,0x13,0x21,0x1E,0x3F,0x1C,0x3E,0x00,0x00,0x00,0x00, 503 | 0xFF,0xFF,0xFF,0xFF,0x9E,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 504 | 0x3F,0xFF,0x7F,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 505 | 0xE0,0xE1,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 506 | 0xFE,0xFF,0x7E,0xFF,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 507 | 508 | // /////////////////////// 509 | // // // 510 | // // File Attributes // 511 | // // // 512 | // /////////////////////// 513 | 514 | // Filename: p.png 515 | // Pixel Width: 8px 516 | // Pixel Height: 8px 517 | 518 | // ///////////////// 519 | // // // 520 | // // Constants // 521 | // // // 522 | // ///////////////// 523 | 524 | const int p_tile_map_size = 0x01; 525 | const int p_tile_map_width = 0x01; 526 | const int p_tile_map_height = 0x01; 527 | 528 | const int p_tile_data_size = 0x10; 529 | const int p_tile_count = 0x01; 530 | 531 | // //////////////// 532 | // // // 533 | // // Map Data // 534 | // // // 535 | // //////////////// 536 | 537 | const unsigned char p_map_data[] ={ 538 | 0x00 539 | }; 540 | 541 | // ///////////////// 542 | // // // 543 | // // Tile Data // 544 | // // // 545 | // ///////////////// 546 | 547 | const unsigned char p_tile_data[] ={ 548 | 0x7C,0x7C,0x66,0x66,0x66,0x66,0x7C,0x7C,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00}; 549 | 550 | 551 | // /////////////////////// 552 | // // // 553 | // // File Attributes // 554 | // // // 555 | // /////////////////////// 556 | 557 | // Filename: r.png 558 | // Pixel Width: 8px 559 | // Pixel Height: 8px 560 | 561 | // ///////////////// 562 | // // // 563 | // // Constants // 564 | // // // 565 | // ///////////////// 566 | 567 | const int r_tile_map_size = 0x01; 568 | const int r_tile_map_width = 0x01; 569 | const int r_tile_map_height = 0x01; 570 | 571 | const int r_tile_data_size = 0x10; 572 | const int r_tile_count = 0x01; 573 | 574 | // //////////////// 575 | // // // 576 | // // Map Data // 577 | // // // 578 | // //////////////// 579 | 580 | const unsigned char r_map_data[] ={ 581 | 0x00 582 | }; 583 | 584 | // ///////////////// 585 | // // // 586 | // // Tile Data // 587 | // // // 588 | // ///////////////// 589 | 590 | const unsigned char r_tile_data[] ={ 591 | 0x7C,0x7C,0x66,0x66,0x66,0x66,0x7C,0x7C,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00}; 592 | 593 | 594 | // /////////////////////// 595 | // // // 596 | // // File Attributes // 597 | // // // 598 | // /////////////////////// 599 | 600 | // Filename: e.png 601 | // Pixel Width: 8px 602 | // Pixel Height: 8px 603 | 604 | // ///////////////// 605 | // // // 606 | // // Constants // 607 | // // // 608 | // ///////////////// 609 | 610 | const int e_tile_map_size = 0x01; 611 | const int e_tile_map_width = 0x01; 612 | const int e_tile_map_height = 0x01; 613 | 614 | const int e_tile_data_size = 0x10; 615 | const int e_tile_count = 0x01; 616 | 617 | // //////////////// 618 | // // // 619 | // // Map Data // 620 | // // // 621 | // //////////////// 622 | 623 | const unsigned char e_map_data[] ={ 624 | 0x00 625 | }; 626 | 627 | // ///////////////// 628 | // // // 629 | // // Tile Data // 630 | // // // 631 | // ///////////////// 632 | 633 | const unsigned char e_tile_data[] ={ 634 | 0x7E,0x7E,0x60,0x60,0x60,0x60,0x7E,0x7E,0x60,0x60,0x60,0x60,0x7E,0x7E,0x00,0x00}; 635 | 636 | 637 | // /////////////////////// 638 | // // // 639 | // // File Attributes // 640 | // // // 641 | // /////////////////////// 642 | 643 | // Filename: s.png 644 | // Pixel Width: 8px 645 | // Pixel Height: 8px 646 | 647 | // ///////////////// 648 | // // // 649 | // // Constants // 650 | // // // 651 | // ///////////////// 652 | 653 | const int s_tile_map_size = 0x01; 654 | const int s_tile_map_width = 0x01; 655 | const int s_tile_map_height = 0x01; 656 | 657 | const int s_tile_data_size = 0x10; 658 | const int s_tile_count = 0x01; 659 | 660 | // //////////////// 661 | // // // 662 | // // Map Data // 663 | // // // 664 | // //////////////// 665 | 666 | const unsigned char s_map_data[] ={ 667 | 0x00 668 | }; 669 | 670 | // ///////////////// 671 | // // // 672 | // // Tile Data // 673 | // // // 674 | // ///////////////// 675 | 676 | const unsigned char s_tile_data[] ={ 677 | 0x3C,0x3C,0x62,0x62,0x70,0x70,0x3C,0x3C,0x0E,0x0E,0x46,0x46,0x3C,0x3C,0x00,0x00}; 678 | 679 | 680 | // /////////////////////// 681 | // // // 682 | // // File Attributes // 683 | // // // 684 | // /////////////////////// 685 | 686 | // Filename: t.png 687 | // Pixel Width: 8px 688 | // Pixel Height: 8px 689 | 690 | // ///////////////// 691 | // // // 692 | // // Constants // 693 | // // // 694 | // ///////////////// 695 | 696 | const int t_tile_map_size = 0x01; 697 | const int t_tile_map_width = 0x01; 698 | const int t_tile_map_height = 0x01; 699 | 700 | const int t_tile_data_size = 0x10; 701 | const int t_tile_count = 0x01; 702 | 703 | // //////////////// 704 | // // // 705 | // // Map Data // 706 | // // // 707 | // //////////////// 708 | 709 | const unsigned char t_map_data[] ={ 710 | 0x00 711 | }; 712 | 713 | // ///////////////// 714 | // // // 715 | // // Tile Data // 716 | // // // 717 | // ///////////////// 718 | 719 | const unsigned char t_tile_data[] ={ 720 | 0x7E,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00}; 721 | 722 | 723 | // /////////////////////// 724 | // // // 725 | // // File Attributes // 726 | // // // 727 | // /////////////////////// 728 | 729 | // Filename: a.png 730 | // Pixel Width: 8px 731 | // Pixel Height: 8px 732 | 733 | // ///////////////// 734 | // // // 735 | // // Constants // 736 | // // // 737 | // ///////////////// 738 | 739 | const int a_tile_map_size = 0x01; 740 | const int a_tile_map_width = 0x01; 741 | const int a_tile_map_height = 0x01; 742 | 743 | const int a_tile_data_size = 0x10; 744 | const int a_tile_count = 0x01; 745 | 746 | // //////////////// 747 | // // // 748 | // // Map Data // 749 | // // // 750 | // //////////////// 751 | 752 | const unsigned char a_map_data[] ={ 753 | 0x00 754 | }; 755 | 756 | // ///////////////// 757 | // // // 758 | // // Tile Data // 759 | // // // 760 | // ///////////////// 761 | 762 | const unsigned char a_tile_data[] ={ 763 | 0x3C,0x3C,0x66,0x66,0x66,0x66,0x7E,0x7E,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00}; 764 | 765 | 766 | // /////////////////////// 767 | // // // 768 | // // File Attributes // 769 | // // // 770 | // /////////////////////// 771 | 772 | // Filename: onedot.png 773 | // Pixel Width: 8px 774 | // Pixel Height: 8px 775 | 776 | // ///////////////// 777 | // // // 778 | // // Constants // 779 | // // // 780 | // ///////////////// 781 | 782 | const int onedot_tile_map_size = 0x01; 783 | const int onedot_tile_map_width = 0x01; 784 | const int onedot_tile_map_height = 0x01; 785 | 786 | const int onedot_tile_data_size = 0x10; 787 | const int onedot_tile_count = 0x01; 788 | 789 | // //////////////// 790 | // // // 791 | // // Map Data // 792 | // // // 793 | // //////////////// 794 | 795 | const unsigned char onedot_map_data[] ={ 796 | 0x00 797 | }; 798 | 799 | // ///////////////// 800 | // // // 801 | // // Tile Data // 802 | // // // 803 | // ///////////////// 804 | 805 | const unsigned char onedot_tile_data[] ={ 806 | 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 807 | 808 | // /////////////////////// 809 | // // // 810 | // // File Attributes // 811 | // // // 812 | // /////////////////////// 813 | 814 | // Filename: twodots.png 815 | // Pixel Width: 8px 816 | // Pixel Height: 8px 817 | 818 | // ///////////////// 819 | // // // 820 | // // Constants // 821 | // // // 822 | // ///////////////// 823 | 824 | const int twodots_tile_map_size = 0x01; 825 | const int twodots_tile_map_width = 0x01; 826 | const int twodots_tile_map_height = 0x01; 827 | 828 | const int twodots_tile_data_size = 0x10; 829 | const int twodots_tile_count = 0x01; 830 | 831 | // //////////////// 832 | // // // 833 | // // Map Data // 834 | // // // 835 | // //////////////// 836 | 837 | const unsigned char twodots_map_data[] ={ 838 | 0x00 839 | }; 840 | 841 | // ///////////////// 842 | // // // 843 | // // Tile Data // 844 | // // // 845 | // ///////////////// 846 | 847 | const unsigned char twodots_tile_data[] ={ 848 | 0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11}; 849 | 850 | // /////////////////////// 851 | // // // 852 | // // File Attributes // 853 | // // // 854 | // /////////////////////// 855 | 856 | // Filename: threedots.png 857 | // Pixel Width: 8px 858 | // Pixel Height: 8px 859 | 860 | // ///////////////// 861 | // // // 862 | // // Constants // 863 | // // // 864 | // ///////////////// 865 | 866 | const int threedots_tile_map_size = 0x01; 867 | const int threedots_tile_map_width = 0x01; 868 | const int threedots_tile_map_height = 0x01; 869 | 870 | const int threedots_tile_data_size = 0x10; 871 | const int threedots_tile_count = 0x01; 872 | 873 | // //////////////// 874 | // // // 875 | // // Map Data // 876 | // // // 877 | // //////////////// 878 | 879 | const unsigned char threedots_map_data[] ={ 880 | 0x00 881 | }; 882 | 883 | // ///////////////// 884 | // // // 885 | // // Tile Data // 886 | // // // 887 | // ///////////////// 888 | 889 | const unsigned char threedots_tile_data[] ={ 890 | 0x00,0x00,0x44,0x44,0x00,0x00,0x11,0x11,0x00,0x00,0x44,0x44,0x00,0x00,0x11,0x11}; 891 | 892 | // /////////////////////// 893 | // // // 894 | // // File Attributes // 895 | // // // 896 | // /////////////////////// 897 | 898 | // Filename: fourdots.png 899 | // Pixel Width: 8px 900 | // Pixel Height: 8px 901 | 902 | // ///////////////// 903 | // // // 904 | // // Constants // 905 | // // // 906 | // ///////////////// 907 | 908 | const int fourdots_tile_map_size = 0x01; 909 | const int fourdots_tile_map_width = 0x01; 910 | const int fourdots_tile_map_height = 0x01; 911 | 912 | const int fourdots_tile_data_size = 0x10; 913 | const int fourdots_tile_count = 0x01; 914 | 915 | // //////////////// 916 | // // // 917 | // // Map Data // 918 | // // // 919 | // //////////////// 920 | 921 | const unsigned char fourdots_map_data[] ={ 922 | 0x00 923 | }; 924 | 925 | // ///////////////// 926 | // // // 927 | // // Tile Data // 928 | // // // 929 | // ///////////////// 930 | 931 | const unsigned char fourdots_tile_data[] ={ 932 | 0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55}; 933 | 934 | // /////////////////////// 935 | // // // 936 | // // File Attributes // 937 | // // // 938 | // /////////////////////// 939 | 940 | // Filename: black.png 941 | // Pixel Width: 8px 942 | // Pixel Height: 8px 943 | 944 | // ///////////////// 945 | // // // 946 | // // Constants // 947 | // // // 948 | // ///////////////// 949 | 950 | const int black_tile_map_size = 0x01; 951 | const int black_tile_map_width = 0x01; 952 | const int black_tile_map_height = 0x01; 953 | 954 | const int black_tile_data_size = 0x10; 955 | const int black_tile_count = 0x01; 956 | 957 | // //////////////// 958 | // // // 959 | // // Map Data // 960 | // // // 961 | // //////////////// 962 | 963 | const unsigned char black_map_data[] ={ 964 | 0x00 965 | }; 966 | 967 | // ///////////////// 968 | // // // 969 | // // Tile Data // 970 | // // // 971 | // ///////////////// 972 | 973 | const unsigned char black_tile_data[] ={ 974 | 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; 975 | 976 | 977 | // /////////////////////// 978 | // // // 979 | // // File Attributes // 980 | // // // 981 | // /////////////////////// 982 | 983 | // Filename: 0.png 984 | // Pixel Width: 8px 985 | // Pixel Height: 8px 986 | 987 | // ///////////////// 988 | // // // 989 | // // Constants // 990 | // // // 991 | // ///////////////// 992 | 993 | const int num_0_tile_map_size = 0x01; 994 | const int num_0_tile_map_width = 0x01; 995 | const int num_0_tile_map_height = 0x01; 996 | 997 | const int num_0_tile_data_size = 0x10; 998 | const int num_0_tile_count = 0x01; 999 | 1000 | // //////////////// 1001 | // // // 1002 | // // Map Data // 1003 | // // // 1004 | // //////////////// 1005 | 1006 | const unsigned char num_0_map_data[] ={ 1007 | 0x00 1008 | }; 1009 | 1010 | // ///////////////// 1011 | // // // 1012 | // // Tile Data // 1013 | // // // 1014 | // ///////////////// 1015 | 1016 | const unsigned char num_0_tile_data[] ={ 1017 | 0x3C,0x3C,0x66,0x66,0x6E,0x6E,0x76,0x76,0x66,0x66,0x66,0x66,0x3C,0x3C,0x00,0x00}; 1018 | 1019 | 1020 | // /////////////////////// 1021 | // // // 1022 | // // File Attributes // 1023 | // // // 1024 | // /////////////////////// 1025 | 1026 | // Filename: 1.png 1027 | // Pixel Width: 8px 1028 | // Pixel Height: 8px 1029 | 1030 | // ///////////////// 1031 | // // // 1032 | // // Constants // 1033 | // // // 1034 | // ///////////////// 1035 | 1036 | const int num_1_tile_map_size = 0x01; 1037 | const int num_1_tile_map_width = 0x01; 1038 | const int num_1_tile_map_height = 0x01; 1039 | 1040 | const int num_1_tile_data_size = 0x10; 1041 | const int num_1_tile_count = 0x01; 1042 | 1043 | // //////////////// 1044 | // // // 1045 | // // Map Data // 1046 | // // // 1047 | // //////////////// 1048 | 1049 | const unsigned char num_1_map_data[] ={ 1050 | 0x00 1051 | }; 1052 | 1053 | // ///////////////// 1054 | // // // 1055 | // // Tile Data // 1056 | // // // 1057 | // ///////////////// 1058 | 1059 | const unsigned char num_1_tile_data[] ={ 1060 | 0x18,0x18,0x38,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00}; 1061 | 1062 | 1063 | // /////////////////////// 1064 | // // // 1065 | // // File Attributes // 1066 | // // // 1067 | // /////////////////////// 1068 | 1069 | // Filename: 2.png 1070 | // Pixel Width: 8px 1071 | // Pixel Height: 8px 1072 | 1073 | // ///////////////// 1074 | // // // 1075 | // // Constants // 1076 | // // // 1077 | // ///////////////// 1078 | 1079 | const int num_2_tile_map_size = 0x01; 1080 | const int num_2_tile_map_width = 0x01; 1081 | const int num_2_tile_map_height = 0x01; 1082 | 1083 | const int num_2_tile_data_size = 0x10; 1084 | const int num_2_tile_count = 0x01; 1085 | 1086 | // //////////////// 1087 | // // // 1088 | // // Map Data // 1089 | // // // 1090 | // //////////////// 1091 | 1092 | const unsigned char num_2_map_data[] ={ 1093 | 0x00 1094 | }; 1095 | 1096 | // ///////////////// 1097 | // // // 1098 | // // Tile Data // 1099 | // // // 1100 | // ///////////////// 1101 | 1102 | const unsigned char num_2_tile_data[] ={ 1103 | 0x3C,0x3C,0x66,0x66,0x0E,0x0E,0x1C,0x1C,0x38,0x38,0x70,0x70,0x7E,0x7E,0x00,0x00}; 1104 | 1105 | 1106 | // /////////////////////// 1107 | // // // 1108 | // // File Attributes // 1109 | // // // 1110 | // /////////////////////// 1111 | 1112 | // Filename: 3.png 1113 | // Pixel Width: 8px 1114 | // Pixel Height: 8px 1115 | 1116 | // ///////////////// 1117 | // // // 1118 | // // Constants // 1119 | // // // 1120 | // ///////////////// 1121 | 1122 | const int num_3_tile_map_size = 0x01; 1123 | const int num_3_tile_map_width = 0x01; 1124 | const int num_3_tile_map_height = 0x01; 1125 | 1126 | const int num_3_tile_data_size = 0x10; 1127 | const int num_3_tile_count = 0x01; 1128 | 1129 | // //////////////// 1130 | // // // 1131 | // // Map Data // 1132 | // // // 1133 | // //////////////// 1134 | 1135 | const unsigned char num_3_map_data[] ={ 1136 | 0x00 1137 | }; 1138 | 1139 | // ///////////////// 1140 | // // // 1141 | // // Tile Data // 1142 | // // // 1143 | // ///////////////// 1144 | 1145 | const unsigned char num_3_tile_data[] ={ 1146 | 0x7E,0x7E,0x0C,0x0C,0x18,0x18,0x3C,0x3C,0x06,0x06,0x46,0x46,0x3C,0x3C,0x00,0x00}; 1147 | 1148 | 1149 | // /////////////////////// 1150 | // // // 1151 | // // File Attributes // 1152 | // // // 1153 | // /////////////////////// 1154 | 1155 | // Filename: 4.png 1156 | // Pixel Width: 8px 1157 | // Pixel Height: 8px 1158 | 1159 | // ///////////////// 1160 | // // // 1161 | // // Constants // 1162 | // // // 1163 | // ///////////////// 1164 | 1165 | const int num_4_tile_map_size = 0x01; 1166 | const int num_4_tile_map_width = 0x01; 1167 | const int num_4_tile_map_height = 0x01; 1168 | 1169 | const int num_4_tile_data_size = 0x10; 1170 | const int num_4_tile_count = 0x01; 1171 | 1172 | // //////////////// 1173 | // // // 1174 | // // Map Data // 1175 | // // // 1176 | // //////////////// 1177 | 1178 | const unsigned char num_4_map_data[] ={ 1179 | 0x00 1180 | }; 1181 | 1182 | // ///////////////// 1183 | // // // 1184 | // // Tile Data // 1185 | // // // 1186 | // ///////////////// 1187 | 1188 | const unsigned char num_4_tile_data[] ={ 1189 | 0x0C,0x0C,0x1C,0x1C,0x2C,0x2C,0x4C,0x4C,0x7E,0x7E,0x0C,0x0C,0x0C,0x0C,0x00,0x00}; 1190 | 1191 | // /////////////////////// 1192 | // // // 1193 | // // File Attributes // 1194 | // // // 1195 | // /////////////////////// 1196 | 1197 | // Filename: 5.png 1198 | // Pixel Width: 8px 1199 | // Pixel Height: 8px 1200 | 1201 | // ///////////////// 1202 | // // // 1203 | // // Constants // 1204 | // // // 1205 | // ///////////////// 1206 | 1207 | const int num_5_tile_map_size = 0x01; 1208 | const int num_5_tile_map_width = 0x01; 1209 | const int num_5_tile_map_height = 0x01; 1210 | 1211 | const int num_5_tile_data_size = 0x10; 1212 | const int num_5_tile_count = 0x01; 1213 | 1214 | // //////////////// 1215 | // // // 1216 | // // Map Data // 1217 | // // // 1218 | // //////////////// 1219 | 1220 | const unsigned char num_5_map_data[] ={ 1221 | 0x00 1222 | }; 1223 | 1224 | // ///////////////// 1225 | // // // 1226 | // // Tile Data // 1227 | // // // 1228 | // ///////////////// 1229 | 1230 | const unsigned char num_5_tile_data[] ={ 1231 | 0x7E,0x7E,0x60,0x60,0x7C,0x7C,0x06,0x06,0x06,0x06,0x46,0x46,0x3C,0x3C,0x00,0x00}; 1232 | 1233 | 1234 | // /////////////////////// 1235 | // // // 1236 | // // File Attributes // 1237 | // // // 1238 | // /////////////////////// 1239 | 1240 | // Filename: 6.png 1241 | // Pixel Width: 8px 1242 | // Pixel Height: 8px 1243 | 1244 | // ///////////////// 1245 | // // // 1246 | // // Constants // 1247 | // // // 1248 | // ///////////////// 1249 | 1250 | const int num_6_tile_map_size = 0x01; 1251 | const int num_6_tile_map_width = 0x01; 1252 | const int num_6_tile_map_height = 0x01; 1253 | 1254 | const int num_6_tile_data_size = 0x10; 1255 | const int num_6_tile_count = 0x01; 1256 | 1257 | // //////////////// 1258 | // // // 1259 | // // Map Data // 1260 | // // // 1261 | // //////////////// 1262 | 1263 | const unsigned char num_6_map_data[] ={ 1264 | 0x00 1265 | }; 1266 | 1267 | // ///////////////// 1268 | // // // 1269 | // // Tile Data // 1270 | // // // 1271 | // ///////////////// 1272 | 1273 | const unsigned char num_6_tile_data[] ={ 1274 | 0x1C,0x1C,0x20,0x20,0x60,0x60,0x7C,0x7C,0x66,0x66,0x66,0x66,0x3C,0x3C,0x00,0x00}; 1275 | 1276 | 1277 | // /////////////////////// 1278 | // // // 1279 | // // File Attributes // 1280 | // // // 1281 | // /////////////////////// 1282 | 1283 | // Filename: 7.png 1284 | // Pixel Width: 8px 1285 | // Pixel Height: 8px 1286 | 1287 | // ///////////////// 1288 | // // // 1289 | // // Constants // 1290 | // // // 1291 | // ///////////////// 1292 | 1293 | const int num_7_tile_map_size = 0x01; 1294 | const int num_7_tile_map_width = 0x01; 1295 | const int num_7_tile_map_height = 0x01; 1296 | 1297 | const int num_7_tile_data_size = 0x10; 1298 | const int num_7_tile_count = 0x01; 1299 | 1300 | // //////////////// 1301 | // // // 1302 | // // Map Data // 1303 | // // // 1304 | // //////////////// 1305 | 1306 | const unsigned char num_7_map_data[] ={ 1307 | 0x00 1308 | }; 1309 | 1310 | // ///////////////// 1311 | // // // 1312 | // // Tile Data // 1313 | // // // 1314 | // ///////////////// 1315 | 1316 | const unsigned char num_7_tile_data[] ={ 1317 | 0x7E,0x7E,0x06,0x06,0x0E,0x0E,0x1C,0x1C,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00}; 1318 | 1319 | 1320 | // /////////////////////// 1321 | // // // 1322 | // // File Attributes // 1323 | // // // 1324 | // /////////////////////// 1325 | 1326 | // Filename: 8.png 1327 | // Pixel Width: 8px 1328 | // Pixel Height: 8px 1329 | 1330 | // ///////////////// 1331 | // // // 1332 | // // Constants // 1333 | // // // 1334 | // ///////////////// 1335 | 1336 | const int num_8_tile_map_size = 0x01; 1337 | const int num_8_tile_map_width = 0x01; 1338 | const int num_8_tile_map_height = 0x01; 1339 | 1340 | const int num_8_tile_data_size = 0x10; 1341 | const int num_8_tile_count = 0x01; 1342 | 1343 | // //////////////// 1344 | // // // 1345 | // // Map Data // 1346 | // // // 1347 | // //////////////// 1348 | 1349 | const unsigned char num_8_map_data[] ={ 1350 | 0x00 1351 | }; 1352 | 1353 | // ///////////////// 1354 | // // // 1355 | // // Tile Data // 1356 | // // // 1357 | // ///////////////// 1358 | 1359 | const unsigned char num_8_tile_data[] ={ 1360 | 0x3C,0x3C,0x66,0x66,0x66,0x66,0x3C,0x3C,0x66,0x66,0x66,0x66,0x3C,0x3C,0x00,0x00}; 1361 | 1362 | 1363 | // /////////////////////// 1364 | // // // 1365 | // // File Attributes // 1366 | // // // 1367 | // /////////////////////// 1368 | 1369 | // Filename: 9.png 1370 | // Pixel Width: 8px 1371 | // Pixel Height: 8px 1372 | 1373 | // ///////////////// 1374 | // // // 1375 | // // Constants // 1376 | // // // 1377 | // ///////////////// 1378 | 1379 | const int num_9_tile_map_size = 0x01; 1380 | const int num_9_tile_map_width = 0x01; 1381 | const int num_9_tile_map_height = 0x01; 1382 | 1383 | const int num_9_tile_data_size = 0x10; 1384 | const int num_9_tile_count = 0x01; 1385 | 1386 | // //////////////// 1387 | // // // 1388 | // // Map Data // 1389 | // // // 1390 | // //////////////// 1391 | 1392 | const unsigned char num_9_map_data[] ={ 1393 | 0x00 1394 | }; 1395 | 1396 | // ///////////////// 1397 | // // // 1398 | // // Tile Data // 1399 | // // // 1400 | // ///////////////// 1401 | 1402 | const unsigned char num_9_tile_data[] ={ 1403 | 0x3C,0x3C,0x66,0x66,0x66,0x66,0x3E,0x3E,0x06,0x06,0x0C,0x0C,0x38,0x38,0x00,0x00}; 1404 | 1405 | 1406 | // /////////////////////// 1407 | // // // 1408 | // // File Attributes // 1409 | // // // 1410 | // /////////////////////// 1411 | 1412 | // Filename: u.png 1413 | // Pixel Width: 8px 1414 | // Pixel Height: 8px 1415 | 1416 | // ///////////////// 1417 | // // // 1418 | // // Constants // 1419 | // // // 1420 | // ///////////////// 1421 | 1422 | const int u_tile_map_size = 0x01; 1423 | const int u_tile_map_width = 0x01; 1424 | const int u_tile_map_height = 0x01; 1425 | 1426 | const int u_tile_data_size = 0x10; 1427 | const int u_tile_count = 0x01; 1428 | 1429 | // //////////////// 1430 | // // // 1431 | // // Map Data // 1432 | // // // 1433 | // //////////////// 1434 | 1435 | const unsigned char u_map_data[] ={ 1436 | 0x00 1437 | }; 1438 | 1439 | // ///////////////// 1440 | // // // 1441 | // // Tile Data // 1442 | // // // 1443 | // ///////////////// 1444 | 1445 | const unsigned char u_tile_data[] ={ 1446 | 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x3C,0x00,0x00}; 1447 | 1448 | 1449 | // /////////////////////// 1450 | // // // 1451 | // // File Attributes // 1452 | // // // 1453 | // /////////////////////// 1454 | 1455 | // Filename: l.png 1456 | // Pixel Width: 8px 1457 | // Pixel Height: 8px 1458 | 1459 | // ///////////////// 1460 | // // // 1461 | // // Constants // 1462 | // // // 1463 | // ///////////////// 1464 | 1465 | const int l_tile_map_size = 0x01; 1466 | const int l_tile_map_width = 0x01; 1467 | const int l_tile_map_height = 0x01; 1468 | 1469 | const int l_tile_data_size = 0x10; 1470 | const int l_tile_count = 0x01; 1471 | 1472 | // //////////////// 1473 | // // // 1474 | // // Map Data // 1475 | // // // 1476 | // //////////////// 1477 | 1478 | const unsigned char l_map_data[] ={ 1479 | 0x00 1480 | }; 1481 | 1482 | // ///////////////// 1483 | // // // 1484 | // // Tile Data // 1485 | // // // 1486 | // ///////////////// 1487 | 1488 | const unsigned char l_tile_data[] ={ 1489 | 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7C,0x7C,0x00,0x00}; 1490 | 1491 | // /////////////////////// 1492 | // // // 1493 | // // File Attributes // 1494 | // // // 1495 | // /////////////////////// 1496 | 1497 | // Filename: b.png 1498 | // Pixel Width: 8px 1499 | // Pixel Height: 8px 1500 | 1501 | // ///////////////// 1502 | // // // 1503 | // // Constants // 1504 | // // // 1505 | // ///////////////// 1506 | 1507 | const int b_tile_map_size = 0x01; 1508 | const int b_tile_map_width = 0x01; 1509 | const int b_tile_map_height = 0x01; 1510 | 1511 | const int b_tile_data_size = 0x10; 1512 | const int b_tile_count = 0x01; 1513 | 1514 | // //////////////// 1515 | // // // 1516 | // // Map Data // 1517 | // // // 1518 | // //////////////// 1519 | 1520 | const unsigned char b_map_data[] ={ 1521 | 0x00 1522 | }; 1523 | 1524 | // ///////////////// 1525 | // // // 1526 | // // Tile Data // 1527 | // // // 1528 | // ///////////////// 1529 | 1530 | const unsigned char b_tile_data[] ={ 1531 | 0x7C,0x7C,0x66,0x66,0x66,0x66,0x7C,0x7C,0x66,0x66,0x66,0x66,0x7C,0x7C,0x00,0x00}; 1532 | 1533 | // /////////////////////// 1534 | // // // 1535 | // // File Attributes // 1536 | // // // 1537 | // /////////////////////// 1538 | 1539 | // Filename: bg.png 1540 | // Pixel Width: 64px 1541 | // Pixel Height: 48px 1542 | 1543 | // ///////////////// 1544 | // // // 1545 | // // Constants // 1546 | // // // 1547 | // ///////////////// 1548 | 1549 | const int bg_tile_map_size = 0x30; 1550 | const int bg_tile_map_width = 0x08; 1551 | const int bg_tile_map_height = 0x06; 1552 | 1553 | const int bg_tile_data_size = 0x0300; 1554 | const int bg_tile_count = 0x30; 1555 | 1556 | // //////////////// 1557 | // // // 1558 | // // Map Data // 1559 | // // // 1560 | // //////////////// 1561 | 1562 | const unsigned char bg_map_data[] ={ 1563 | 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 1564 | 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 1565 | 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F 1566 | }; 1567 | 1568 | // ///////////////// 1569 | // // // 1570 | // // Tile Data // 1571 | // // // 1572 | // ///////////////// 1573 | 1574 | const unsigned char bg_tile_data[] ={ 1575 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 1576 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 1577 | 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x07,0x00,0x07,0x00,0x06,0x00,0x06,0x00, 1578 | 0xFF,0x00,0xFF,0x00,0x0C,0x00,0x0C,0x00,0xFC,0x00,0xFC,0x00,0x00,0x00,0x00,0x00, 1579 | 0xF8,0x00,0xF8,0x00,0x0C,0x00,0x0C,0x00,0xCC,0x00,0xCC,0x00,0x0C,0x00,0x0C,0x00, 1580 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 1581 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 1582 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 1583 | 0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x07,0x00,0xFF,0x00,0xFF,0x00, 1584 | 0xFF,0x00,0xFF,0x00,0x01,0x00,0x01,0x00,0x61,0x00,0x77,0x00,0xFF,0x00,0xFF,0x00, 1585 | 0xE6,0x00,0xE6,0x00,0xE6,0x00,0xE6,0x00,0xE6,0x00,0xE6,0x00,0xE6,0x00,0xE6,0x00, 1586 | 0x4C,0x00,0x4C,0x00,0x4C,0x00,0x44,0x00,0x00,0x00,0x00,0x00,0x4C,0x00,0x4C,0x00, 1587 | 0xCF,0x00,0xCF,0x00,0xCE,0x00,0xCF,0x00,0x0F,0x00,0x0F,0x00,0xCE,0x00,0xCF,0x00, 1588 | 0xE0,0x00,0xE0,0x00,0x60,0x00,0x60,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00, 1589 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x60,0x00,0x60,0x00, 1590 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 1591 | 0xC0,0x00,0xC0,0x00,0xF2,0x00,0xF2,0x00,0xF2,0x00,0xE2,0x00,0xC0,0x00,0xC0,0x00, 1592 | 0x07,0x00,0x07,0x00,0x67,0x00,0x27,0x00,0x67,0x00,0x3F,0x00,0x1F,0x00,0x1F,0x00, 1593 | 0xE6,0x00,0xE6,0x00,0xE6,0x00,0xEE,0x00,0xFE,0x00,0xFE,0x00,0xFE,0x00,0xFE,0x00, 1594 | 0x4C,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0x00,0x4C,0x00, 1595 | 0xCE,0x00,0x8E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0xCE,0x00,0xCE,0x00, 1596 | 0x00,0x00,0x00,0x00,0x66,0x00,0x26,0x00,0x66,0x00,0x20,0x00,0x00,0x00,0x00,0x00, 1597 | 0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00, 1598 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 1599 | 0xF2,0x00,0xF2,0x00,0xF2,0x00,0xC0,0x00,0xC0,0x00,0xF3,0x00,0xF7,0x00,0xF7,0x00, 1600 | 0x78,0x00,0x79,0x00,0x79,0x00,0x19,0x00,0x19,0x00,0x7D,0x00,0x78,0x00,0x7F,0x00, 1601 | 0x1E,0x00,0x9E,0x00,0x9E,0x00,0x9E,0x00,0x9E,0x00,0xFB,0x04,0x80,0x7F,0x80,0x7F, 1602 | 0x4C,0x00,0x00,0x00,0x00,0x00,0x44,0x00,0xCC,0x00,0xEC,0x00,0xEC,0x00,0x3C,0xC0, 1603 | 0xCE,0x00,0x0F,0x00,0x0F,0x00,0xDF,0x00,0xDF,0x00,0xD7,0x08,0xD0,0x0F,0xB0,0x4F, 1604 | 0x66,0x00,0x26,0x00,0x66,0x00,0x20,0x00,0x00,0x00,0xF6,0x00,0x16,0xE0,0x1F,0xE0, 1605 | 0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00, 1606 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00, 1607 | 0xF7,0x00,0x17,0xE0,0x11,0xE0,0x0E,0xF1,0x00,0xFF,0x00,0xFF,0x0F,0xF0,0x8F,0x70, 1608 | 0x78,0x07,0xC0,0x3F,0x01,0xFE,0x00,0xFF,0xFE,0x01,0xFE,0x01,0xFF,0x00,0xFF,0x00, 1609 | 0x7F,0x80,0x7F,0x80,0xFF,0x00,0x1F,0xE0,0x1F,0xE0,0x01,0xFE,0xC1,0x3E,0xE0,0x1F, 1610 | 0x08,0xF0,0x0F,0xF0,0xF0,0x0F,0xF0,0x0F,0xFF,0x00,0xFF,0x00,0xFF,0x00,0x7C,0x83, 1611 | 0x0F,0xF0,0x0F,0xF0,0xFF,0x00,0x3E,0xC1,0x3E,0xC1,0x20,0xDF,0x20,0xDF,0x03,0xFC, 1612 | 0xE1,0x1E,0xE1,0x1E,0xFE,0x01,0x00,0xFF,0x01,0xFE,0x00,0xFF,0xFE,0x01,0xF8,0x07, 1613 | 0x60,0x00,0xBB,0x40,0x1A,0xE1,0x06,0xF9,0xC1,0x3E,0x01,0xFE,0x1F,0xE0,0x1F,0xE0, 1614 | 0x08,0x07,0xF0,0x0F,0x03,0xFC,0x00,0xFF,0xFC,0x03,0xFF,0x00,0xFF,0x00,0xFF,0x00, 1615 | 0xFF,0x00,0xFF,0x00,0xFF,0x00,0x0F,0xF0,0x0F,0xF0,0xE3,0x1C,0xF3,0x0C,0xFF,0x00, 1616 | 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, 1617 | 0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xFC,0x03,0xF1,0x0E,0xF1,0x0E,0xFF,0x00, 1618 | 0x7C,0x83,0x40,0xBF,0x43,0xBC,0x1F,0xE0,0x1F,0xE0,0xFF,0x00,0xFF,0x00,0xFF,0x00, 1619 | 0x03,0xFC,0x08,0xF7,0xF8,0x07,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, 1620 | 0xF9,0x06,0x39,0xC6,0x39,0xC6,0x83,0x7C,0x83,0x7C,0xE3,0x1C,0xE7,0x18,0xFF,0x00, 1621 | 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, 1622 | 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00}; 1623 | 1624 | 1625 | // /////////////////////// 1626 | // // // 1627 | // // File Attributes // 1628 | // // // 1629 | // /////////////////////// 1630 | 1631 | // Filename: grass.png 1632 | // Pixel Width: 8px 1633 | // Pixel Height: 8px 1634 | 1635 | // ///////////////// 1636 | // // // 1637 | // // Constants // 1638 | // // // 1639 | // ///////////////// 1640 | 1641 | const int grass_tile_map_size = 0x01; 1642 | const int grass_tile_map_width = 0x01; 1643 | const int grass_tile_map_height = 0x01; 1644 | 1645 | const int grass_tile_data_size = 0x10; 1646 | const int grass_tile_count = 0x01; 1647 | 1648 | // //////////////// 1649 | // // // 1650 | // // Map Data // 1651 | // // // 1652 | // //////////////// 1653 | 1654 | const unsigned char grass_map_data[] ={ 1655 | 0x00 1656 | }; 1657 | 1658 | // ///////////////// 1659 | // // // 1660 | // // Tile Data // 1661 | // // // 1662 | // ///////////////// 1663 | 1664 | const unsigned char grass_tile_data[] ={ 1665 | 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00}; 1666 | --------------------------------------------------------------------------------