├── .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 |
--------------------------------------------------------------------------------