gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/examples/gb/space/space.s
1 ;; Little demo illustrating how to use the graphical possibilities
2 ;; of the GB (background, window and animated sprite)
3 ;; I have used fixed-point values for both the position and
4 ;; speed of objects to get smooth movements
5 ;;
6 ;; OBJ data : 0x8000 -> 0x8FFF (unsigned)
7 ;; Window data : 0x8800 -> 0x97FF (signed)
8 ;; Background data : 0x8800 -> 0x97FF (signed)
9 ;;
10 ;; Tiled 0xFC -> 0xFF are standard tiles (all black -> all white)
11 ;;
12 ;; Keys:
13 ;; Arrow keys : Change the speed (and direction) of the sprite
14 ;; Arrow keys + A : Change the speed (and direction) of the window
15 ;; Arrow keys + B : Change the speed (and direction) of the background
16 ;; START : Open/close the door
17 ;; SELECT : Basic fading effect
18 ;;
19 ;; Note that the window is kept in the lower right part of the screen
20 ;; since it can't be made transparent
21
22 .include "global.s"
23
24 .globl .init_vram
25 .globl .copy_vram
26 .globl .init_wtt
27 .globl .init_btt
28 .globl .set_xy_wtt
29 .globl .mv_sprite
30 .globl .set_sprite_prop
31 .globl .set_sprite_tile
32 .globl .jpad
33
34 .NBDFRAMES = .endfilm-.film ; Nb frames for the door
35 .NBSFRAMES = 0x07 ; Nb frames for the sprite
36 .WINSZX = 0x80 ; Size of the picture in the window
37 .WINSZY = 0x50
38 .MINWINX = .MAXWNDPOSX-.WINSZX+1 ; Bounds of the window origin
39 .MINWINY = .MAXWNDPOSY-.WINSZY+1
40 .MAXWINX = .MAXWNDPOSX
41 .MAXWINY = .MAXWNDPOSY
42 .FADESTEP = 0x10 ; Nb steps for the fading effect
43 .STARTFADE = 0x06*.FADESTEP ; Initial value for the fading effect
44
45 .CLOSED = 0x00
46 .OPENING = 0x01
47 .OPENED = 0x02
48 .CLOSING = 0x03
49
50 .module Space
51
52 .area _DATA
53
54 .time: ; Global "time" value (counter)
55 .ds 0x01
56
57 .doorstate: ; State of the door (OPENED, CLOSED...)
58 .ds 0x01
59 .doorpos: ; Current position in the door animation
60 .ds 0x01
61
62 .color: ; Current color for fading effect
63 .ds 0x01
64
65 .sframe: ; Current frame of the sprite
66 .ds 0x01
67
68 .bposx: ; Background position (fixed point)
69 .ds 0x02
70 .bposy:
71 .ds 0x02
72 .bspx: ; Background speed (fixed point)
73 .ds 0x02
74 .bspy:
75 .ds 0x02
76
77 .wposx: ; Window position (fixed point)
78 .ds 0x02
79 .wposy:
80 .ds 0x02
81 .wspx: ; Window speed (fixed point)
82 .ds 0x02
83 .wspy:
84 .ds 0x02
85
86 .sposx: ; Sprite position (fixed point)
87 .ds 0x02
88 .sposy:
89 .ds 0x02
90 .sspx: ; Sprite speed (fixed point)
91 .ds 0x02
92 .sspy:
93 .ds 0x02
94
95 .area _CODE
96
97 _main::
98 DI ; Disable interrupts
99 ;; Turn the screen off
100 CALL .display_off
101
102 XOR A
103 LD (.time),A
104 LD (.color),A
105
106 LD A,#0b11100100
107 LDH (.BGP),A
108 LDH (.OBP0),A
109
110 ; Initialize tiles
111 LD HL,#0x8000
112 LD DE,#0x1000
113 LD B,#0x00
114 CALL .init_vram ; Init the tile set at 0x8000 with 0x00
115 LD B,#0xFF
116 CALL .init_btt ; Init the tiles tables with 0xFF
117 CALL .init_wtt
118
119 LD HL,#.tp0 ; Move tiles (standard tiles)
120 LD DE,#0x9000-(.endtp0-.tp0)
121 LD BC,#.endtp0-.tp0
122 CALL .copy_vram
123
124 LD HL,#.tp1 ; Move tiles (earth)
125 LD DE,#0x8000
126 LD BC,#.endtp1-.tp1
127 CALL .copy_vram
128
129 LD HL,#.tp2 ; Move tiles (door)
130 LD DE,#0x8800
131 LD BC,#.endtp2-.tp2
132 CALL .copy_vram
133
134 LD HL,#.tp3 ; Move tiles (background)
135 LD DE,#0x9000
136 LD BC,#.endtp3-.tp3
137 CALL .copy_vram
138
139 ;; Draw the background
140 LD HL,#.bkg_tiles
141 LD DE,#0x9800
142 LD BC,#0x0400 ; One whole GB Screen
143 CALL .copy_vram
144
145 ;; Draw the frame in the window
146 LD BC,#.frame_tiles
147 LD DE,#0x0000/8 ; Place image at (0x00,0x00)
148 LD HL,#0x8050/8 ; Image size is 0x80 x 0x50
149 CALL .set_xy_wtt
150
151 ;; Draw the door in the window
152 LD BC,#.door1_tiles
153 LD DE,#0x1010/8 ; Place image at (0x10,0x10)
154 LD HL,#0x6030/8 ; Image size is 0x60 x 0x30
155 CALL .set_xy_wtt
156 LD A,#.CLOSED
157 LD (.doorstate),A
158
159 ; Initialize background
160 XOR A
161 LD (.bposx),A
162 LDH (.SCX),A
163 LD (.bposx+1),A
164 LD (.bposy),A
165 LDH (.SCY),A
166 LD (.bposy+1),A
167 LD A,#-0x01
168 LD (.bspx),A
169 XOR A
170 LD (.bspx+1),A
171 XOR A
172 LD (.bspy),A
173 LD A,#0x80
174 LD (.bspy+1),A
175
176 ; Initialize window
177 LD A,#.MAXWNDPOSX
178 LD (.wposx),A
179 LDH (.WX),A
180 XOR A
181 LD (.wposx+1),A
182 LD A,#.MAXWNDPOSY
183 LD (.wposy),A
184 LDH (.WY),A
185 XOR A
186 LD (.wposy+1),A
187 LD A,#-0x01
188 LD (.wspx),A
189 LD A,#0x80
190 LD (.wspx+1),A
191 LD A,#-0x01
192 LD (.wspy),A
193 LD A,#0xC0
194 LD (.wspy+1),A
195
196 ; Initialize sprite
197 XOR A
198 LD (.sframe),A
199 LD C,#0x00 ; Sprite 0x00
200 LD D,#0x00 ; Default sprite properties
201 CALL .set_sprite_prop
202 LD C,#0x01 ; Sprite 0x01
203 LD D,#0x00 ; Default sprite properties
204 CALL .set_sprite_prop
205
206 LD A,#0x10
207 LD (.sposx),A
208 XOR A
209 LD (.sposx+1),A
210 LD A,#0x10
211 LD (.sposy),A
212 XOR A
213 LD (.sposy+1),A
214 XOR A
215 LD (.sspx),A
216 LD A,#0x40
217 LD (.sspx+1),A
218 XOR A
219 LD (.sspy),A
220 LD A,#0x40
221 LD (.sspy+1),A
222 CALL .tile_sprite ; Set sprite tiles
223 CALL .place_sprite ; Place sprites
224
225 LD A,#0b11100111 ; LCD = On
226 ; WindowBank = 0x9C00
227 ; Window = On
228 ; BG Chr = 0x8800
229 ; BG Bank = 0x9800
230 ; OBJ = 8x16
231 ; OBJ = On
232 ; BG = On
233 LDH (.LCDC),A
234 EI ; Enable interrupts
235 1$:
236 LD A,(.time)
237 INC A
238 LD (.time),A
239
240 LD B,#0x04 ; Skip four VBLs (slow down animation)
241 2$:
242 CALL .wait_vbl_done
243 DEC B
244 JR NZ,2$
245
246 CALL .fade
247 CALL .door
248 CALL .scroll
249 CALL .animate_sprite
250
251 CALL .jpad
252 LD D,A
253
254 AND #.B ; Is B pressed ?
255 JP NZ,10$
256
257 LD A,D
258 AND #.A ; Is A pressed ?
259 JP NZ,20$
260
261 LD A,D
262 AND #.SELECT ; Is SELECT pressed ?
263 JR Z,3$
264 LD A,#.STARTFADE
265 LD (.color),A
266 3$:
267 LD A,D
268 AND #.START ; Is START pressed ?
269 JR Z,5$
270 LD A,(.doorstate)
271 CP #.CLOSED
272 JR NZ,4$
273 LD A,#.OPENING
274 LD (.doorstate),A
275 XOR A
276 LD (.doorpos),A
277 JR 5$
278 4$:
279 CP #.OPENED
280 JR NZ,5$
281 LD A,#.CLOSING
282 LD (.doorstate),A
283 LD A,#.NBDFRAMES
284 LD (.doorpos),A
285 5$:
286 LD A,D
287 AND #.UP ; Is UP pressed ?
288 JR Z,6$
289 LD BC,#0x0010
290 LD A,(.sspy) ; Load speed into HL
291 LD H,A
292 LD A,(.sspy+1)
293 LD L,A
294 LD A,L ; Substract BC from HL
295 SUB C
296 LD (.sspy+1),A
297 LD A,H
298 SBC B
299 LD (.sspy),A ; Store new speed
300 JR 7$
301 6$:
302 LD A,D
303 AND #.DOWN ; Is DOWN pressed ?
304 JR Z,7$
305 LD BC,#0x0010
306 LD A,(.sspy) ; Load speed into HL
307 LD H,A
308 LD A,(.sspy+1)
309 LD L,A
310 ADD HL,BC ; Add them
311 LD A,H ; Store new speed
312 LD (.sspy),A
313 LD A,L
314 LD (.sspy+1),A
315 7$:
316 LD A,D
317 AND #.LEFT ; Is LEFT pressed ?
318 JR Z,8$
319 LD BC,#0x0010
320 LD A,(.sspx) ; Load speed into HL
321 LD H,A
322 LD A,(.sspx+1)
323 LD L,A
324 LD A,L ; Substract BC from HL
325 SUB C
326 LD (.sspx+1),A
327 LD A,H
328 SBC B
329 LD (.sspx),A ; Store new speed
330 JP 1$
331 8$:
332 LD A,D
333 AND #.RIGHT ; Is RIGHT pressed ?
334 JP Z,1$
335 LD BC,#0x0010
336 LD A,(.sspx) ; Load speed into HL
337 LD H,A
338 LD A,(.sspx+1)
339 LD L,A
340 ADD HL,BC ; Add them
341 LD A,H ; Store new speed
342 LD (.sspx),A
343 LD A,L
344 LD (.sspx+1),A
345 JP 1$
346
347 10$:
348 LD A,D
349 AND #.UP ; Is UP pressed ?
350 JP Z,11$
351 LD BC,#0x0010
352 LD A,(.bspy) ; Load speed into HL
353 LD H,A
354 LD A,(.bspy+1)
355 LD L,A
356 LD A,L ; Substract BC from HL
357 SUB C
358 LD (.bspy+1),A
359 LD A,H
360 SBC B
361 LD (.bspy),A ; Store new speed
362 JR 12$
363 11$:
364 LD A,D
365 AND #.DOWN ; Is DOWN pressed ?
366 JP Z,12$
367 LD BC,#0x0010
368 LD A,(.bspy) ; Load speed into HL
369 LD H,A
370 LD A,(.bspy+1)
371 LD L,A
372 ADD HL,BC ; Add them
373 LD A,H ; Store new speed
374 LD (.bspy),A
375 LD A,L
376 LD (.bspy+1),A
377 12$:
378 LD A,D
379 AND #.LEFT ; Is LEFT pressed ?
380 JP Z,13$
381 LD BC,#0x0010
382 LD A,(.bspx) ; Load speed into HL
383 LD H,A
384 LD A,(.bspx+1)
385 LD L,A
386 LD A,L ; Substract BC from HL
387 SUB C
388 LD (.bspx+1),A
389 LD A,H
390 SBC B
391 LD (.bspx),A ; Store new speed
392 JP 1$
393 13$:
394 LD A,D
395 AND #.RIGHT ; Is RIGHT pressed ?
396 JP Z,1$
397 LD BC,#0x0010
398 LD A,(.bspx) ; Load speed into HL
399 LD H,A
400 LD A,(.bspx+1)
401 LD L,A
402 ADD HL,BC ; Add them
403 LD A,H ; Store new speed
404 LD (.bspx),A
405 LD A,L
406 LD (.bspx+1),A
407 JP 1$
408
409 20$:
410 LD A,D
411 AND #.UP ; Is UP pressed ?
412 JP Z,21$
413 LD BC,#0x0010
414 LD A,(.wspy) ; Load speed into HL
415 LD H,A
416 LD A,(.wspy+1)
417 LD L,A
418 LD A,L ; Substract BC from HL
419 SUB C
420 LD (.wspy+1),A
421 LD A,H
422 SBC B
423 LD (.wspy),A ; Store new speed
424 JR 22$
425 21$:
426 LD A,D
427 AND #.DOWN ; Is DOWN pressed ?
428 JP Z,22$
429 LD BC,#0x0010
430 LD A,(.wspy) ; Load speed into HL
431 LD H,A
432 LD A,(.wspy+1)
433 LD L,A
434 ADD HL,BC ; Add them
435 LD A,H ; Store new speed
436 LD (.wspy),A
437 LD A,L
438 LD (.wspy+1),A
439 22$:
440 LD A,D
441 AND #.LEFT ; Is LEFT pressed ?
442 JP Z,23$
443 LD BC,#0x0010
444 LD A,(.wspx) ; Load speed into HL
445 LD H,A
446 LD A,(.wspx+1)
447 LD L,A
448 LD A,L ; Substract BC from HL
449 SUB C
450 LD (.wspx+1),A
451 LD A,H
452 SBC B
453 LD (.wspx),A ; Store new speed
454 JP 1$
455 23$:
456 LD A,D
457 AND #.RIGHT ; Is RIGHT pressed ?
458 JP Z,1$
459 LD BC,#0x0010
460 LD A,(.wspx) ; Load speed into HL
461 LD H,A
462 LD A,(.wspx+1)
463 LD L,A
464 ADD HL,BC ; Add them
465 LD A,H ; Store new speed
466 LD (.wspx),A
467 LD A,L
468 LD (.wspx+1),A
469 JP 1$
470
471 RET
472
473 ;; Fade the screen (off and on)
474 .fade:
475
476 LD A,(.color) ; Load color into A
477 CP #0x00
478 RET Z
479 CP #.STARTFADE
480 JR NZ,1$
481 LD A,#0b11111001
482 JR 6$
483 1$:
484 CP #.STARTFADE-.FADESTEP
485 JR NZ,2$
486 LD A,#0b11111110
487 JR 6$
488 2$:
489 CP #.STARTFADE-0x02*.FADESTEP
490 JR NZ,3$
491 LD A,#0b11111111
492 JR 6$
493 3$:
494 CP #.STARTFADE-0x03*.FADESTEP
495 JR NZ,4$
496 LD A,#0b11111110
497 JR 6$
498 4$:
499 CP #.STARTFADE-0x04*.FADESTEP
500 JR NZ,5$
501 LD A,#0b11111001
502 JR 6$
503 5$:
504 CP #.STARTFADE-0x05*.FADESTEP
505 JR NZ,7$
506 LD A,#0b11100100
507 6$:
508 LDH (.BGP),A
509 7$:
510 LD A,(.color)
511 DEC A
512 LD (.color),A
513 RET
514
515 ;; Scroll the background, the window and the sprite
516 .scroll:
517
518 ;; Update background
519 LD A,(.bposx) ; Load background position into HL
520 LD H,A
521 LD A,(.bposx+1)
522 LD L,A
523 LD A,(.bspx) ; Load background speed into BC
524 LD B,A
525 LD A,(.bspx+1)
526 LD C,A
527 ADD HL,BC ; Add them
528 LD A,L ; Store new background position
529 LD (.bposx+1),A
530 LD A,H
531 LD (.bposx),A
532 LDH (.SCX),A ; Update position
533
534 LD A,(.bposy) ; Load background position into HL
535 LD H,A
536 LD A,(.bposy+1)
537 LD L,A
538 LD A,(.bspy) ; Load background speed into BC
539 LD B,A
540 LD A,(.bspy+1)
541 LD C,A
542 ADD HL,BC ; Add them
543 LD A,L ; Store new background position
544 LD (.bposy+1),A
545 LD A,H
546 LD (.bposy),A
547 LDH (.SCY),A ; Update position
548
549 ;; Update window
550 LD A,(.wspx) ; Load window speed into BC
551 LD B,A
552 LD A,(.wspx+1)
553 LD C,A
554 LD A,(.wposx) ; Load window position into HL
555 LD H,A
556 LD A,(.wposx+1)
557 LD L,A
558 ADD HL,BC ; Add them
559 LD A,L ; Store new window position
560 LD (.wposx+1),A
561 LD A,H
562 LD (.wposx),A
563
564 ;; X position
565 LD A,(.wposx) ; Check window position
566 LD H,#0x00 ; We must use 16 bit registers since the
567 LD L,A ; window is not less than 0x80 pixels
568 LD BC,#.MAXWINX
569 LD A,L ; Substract BC from HL
570 SUB C
571 LD A,H
572 SBC B
573 AND #0x80
574 JR NZ,1$ ; Maximum value ?
575 LD A,#.MAXWINX
576 LD (.wposx),A ; Correct window position
577 LD A,(.wspx+1) ; Load window speed into BC
578 LD C,A
579 LD A,(.wspx)
580 LD B,A
581 AND #0x80 ; Speed is already negative ?
582 JR NZ,3$
583 JR 2$
584 1$:
585 LD A,(.wposx) ; Check window position
586 LD H,#0x00 ; We must use 16 bit registers since the
587 LD L,A ; window is not less than 0x80 pixels
588 LD BC,#.MINWINX+1
589 LD A,L ; Substract BC from HL
590 SUB C
591 LD A,H
592 SBC B
593 AND #0x80
594 JR Z,3$ ; Minimum value ?
595 LD A,#.MINWINX
596 LD (.wposx),A ; Correct window position
597 LD A,(.wspx+1) ; Load window speed into BC
598 LD C,A
599 LD A,(.wspx)
600 LD B,A
601 AND #0x80 ; Speed is already positive ?
602 JR Z,3$
603 2$:
604 LD HL,#0x00 ; Invert speed
605 LD A,L ; Substract BC from HL
606 SUB C
607 LD (.wspx+1),A
608 LD A,H
609 SBC B
610 LD (.wspx),A ; Store new speed
611 3$:
612 LD A,(.wposx)
613 LDH (.WX),A ; Update position
614
615 LD A,(.wspy) ; Load window speed into BC
616 LD B,A
617 LD A,(.wspy+1)
618 LD C,A
619 LD A,(.wposy) ; Load window position into HL
620 LD H,A
621 LD A,(.wposy+1)
622 LD L,A
623 ADD HL,BC ; Add them
624 LD A,L ; Store new window position
625 LD (.wposy+1),A
626 LD A,H
627 LD (.wposy),A
628
629 ;; Y position
630 LD A,(.wposy) ; Check window position
631 LD H,#0x00 ; We must use 16 bit registers since the
632 LD L,A ; window is not less than 0x80 pixels
633 LD BC,#.MAXWINY
634 LD A,L ; Substract BC from HL
635 SUB C
636 LD A,H
637 SBC B
638 AND #0x80
639 JR NZ,4$ ; Maximum value ?
640 LD A,#.MAXWINY
641 LD (.wposy),A ; Correct window position
642 LD A,(.wspy+1) ; Load window speed into BC
643 LD C,A
644 LD A,(.wspy)
645 LD B,A
646 AND #0x80 ; Speed is already negative ?
647 JR NZ,6$
648 JR 5$
649 4$:
650 LD A,(.wposy) ; Check window position
651 LD H,#0x00 ; We must use 16 bit registers since the
652 LD L,A ; window is not less than 0x80 pixels
653 LD BC,#.MINWINY+1
654 LD A,L ; Substract BC from HL
655 SUB C
656 LD A,H
657 SBC B
658 AND #0x80
659 JR Z,6$ ; Minimum value ?
660 LD A,#.MINWINY
661 LD (.wposy),A ; Correct window position
662 LD A,(.wspy+1) ; Load window speed into BC
663 LD C,A
664 LD A,(.wspy)
665 LD B,A
666 AND #0x80 ; Speed is already positive ?
667 JR Z,6$
668 5$:
669 LD HL,#0x00 ; Invert speed
670 LD A,L ; Substract BC from HL
671 SUB C
672 LD (.wspy+1),A
673 LD A,H
674 SBC B
675 LD (.wspy),A ; Store new speed
676 6$:
677 LD A,(.wposy)
678 LDH (.WY),A ; Update position
679
680 ;; Update sprite
681 LD A,(.sposx) ; Load sprite position into HL
682 LD H,A
683 LD A,(.sposx+1)
684 LD L,A
685 LD A,(.sspx) ; Load sprite speed into BC
686 LD B,A
687 LD A,(.sspx+1)
688 LD C,A
689 ADD HL,BC ; Add them
690 LD A,L ; Store new sprite position
691 LD (.sposx+1),A
692 LD A,H
693 LD (.sposx),A
694
695 LD A,(.sposy) ; Load sprite position into HL
696 LD H,A
697 LD A,(.sposy+1)
698 LD L,A
699 LD A,(.sspy) ; Load sprite speed into BC
700 LD B,A
701 LD A,(.sspy+1)
702 LD C,A
703 ADD HL,BC ; Add them
704 LD A,L ; Store new sprite position
705 LD (.sposy+1),A
706 LD A,H
707 LD (.sposy),A
708 CALL .place_sprite ; Update position
709
710 RET
711
712 ;; Open and close the door
713 .door:
714 LD A,(.doorstate)
715 CP #.OPENING
716 JP Z,.open_door
717 CP #.CLOSING
718 JP Z,.close_door
719 RET
720
721 .open_door:
722 LD A,(.doorpos)
723 LD HL,#.film+0x02
724 LD B,#0x00
725 LD C,A
726 ADD HL,BC
727 LD C,(HL)
728 INC HL
729 LD B,(HL)
730 LD DE,#0x1010/8 ; Place image at (0x10,0x10)
731 LD HL,#0x6030/8 ; Image size is 0x60 x 0x30
732 CALL .set_xy_wtt
733
734 LD A,(.doorpos)
735 ADD A,#0x02
736 LD (.doorpos),A
737 CP #.NBDFRAMES
738 RET NZ
739 LD A,#.OPENED
740 LD (.doorstate),A
741 RET
742
743 .close_door:
744 LD A,(.doorpos)
745 LD HL,#.film-0x02
746 LD B,#0x00
747 LD C,A
748 ADD HL,BC
749 LD C,(HL)
750 INC HL
751 LD B,(HL)
752 LD DE,#0x1010/8 ; Place image at (0x10,0x10)
753 LD HL,#0x6030/8 ; Image size is 0x60 x 0x30
754 CALL .set_xy_wtt
755
756 LD A,(.doorpos)
757 SUB A,#0x02
758 LD (.doorpos),A
759 RET NZ
760 LD A,#.CLOSED
761 LD (.doorstate),A
762 RET
763
764 ;; Animate sprite
765 .animate_sprite:
766 LD A,(.time)
767 AND #0x07
768 RET NZ
769
770 LD A,(.sframe)
771 INC A
772 CP #.NBSFRAMES
773 JR NZ,1$
774 XOR A
775 1$:
776 LD (.sframe),A
777
778 CALL .tile_sprite
779 RET
780
781 ;; Set sprite tiles
782 .tile_sprite:
783 LD A,(.sframe)
784 LD HL,#.earth_tiles
785 RLCA
786 LD B,#0x00
787 LD C,A
788 ADD HL,BC
789 LD C,#0x00 ; Sprite 0x00
790 LD A,(HL+)
791 LD D,A
792 PUSH HL
793 CALL .set_sprite_tile
794 POP HL
795
796 LD C,#0x01 ; Sprite 0x01
797 LD A,(HL+)
798 LD D,A
799 CALL .set_sprite_tile
800
801 RET
802
803 ;; Place sprite
804 .place_sprite:
805 LD C,#0x00 ; Sprite 0x00
806 LD A,(.sposx)
807 LD D,A
808 LD A,(.sposy)
809 LD E,A
810 PUSH DE ; Store position
811 CALL .mv_sprite
812
813 LD C,#0x01 ; Sprite 0x01
814 POP DE ; Restore position
815 LD A,#0x08
816 ADD A,D
817 LD D,A
818 CALL .mv_sprite
819
820 RET
821
822 .area _LIT
823
824 .tp0:
825
826 .std_data:
827
828 ; Basic tiles (0xFC to 0xFF)
829
830 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
831 .byte 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00
832 .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
833 .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
834
835 .endtp0:
836
837 .tp1:
838
839 .earth_data:
840
841 ; Tile 0x00
842 .byte 0x07,0x07,0x18,0x1F,0x32,0x2D,0x71,0x4E,0x70,0x4F,0xF8,0x87,0xF8,0x87,0xF8,0x87
843 .byte 0xFC,0x83,0xFE,0x81,0x7F,0x40,0x7F,0x40,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00
844 .byte 0xC0,0xC0,0xF0,0x30,0x78,0x88,0x3C,0xC4,0x5C,0xA4,0x9E,0x62,0x3E,0xC2,0x3E,0xC2
845 .byte 0x5E,0xA2,0x7E,0x82,0x0C,0xF4,0x0C,0xF4,0x98,0x68,0xB0,0x70,0xC0,0xC0,0x00,0x00
846 .byte 0x07,0x07,0x1F,0x18,0x2F,0x30,0x4F,0x70,0x6F,0x50,0x9F,0xE0,0x9F,0xE0,0xBF,0xC0
847 .byte 0xFF,0x80,0xB7,0xC8,0x63,0x5C,0x43,0x7C,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00
848 .byte 0xC0,0xC0,0xB0,0x70,0x18,0xE8,0x0C,0xF4,0x0C,0xF4,0x82,0x7E,0x82,0x7E,0x86,0x7A
849 .byte 0xC6,0x3A,0xE6,0x1A,0xF4,0x0C,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00
850
851 ; Tile 0x08
852 .byte 0x07,0x07,0x1E,0x19,0x20,0x3F,0x40,0x7F,0x42,0x7D,0x81,0xFE,0x81,0xFE,0x83,0xFC
853 .byte 0xD7,0xA8,0xBB,0xC4,0x6E,0x51,0x7C,0x43,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00
854 .byte 0xC0,0xC0,0x70,0xB0,0xE8,0x18,0xF4,0x0C,0xF4,0x0C,0xFE,0x02,0xFE,0x02,0xFE,0x02
855 .byte 0xFE,0x02,0x7E,0x82,0x3C,0xC4,0x3C,0xC4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00
856 .byte 0x07,0x07,0x1B,0x1C,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xE0,0x9F,0x90,0xEF,0x89,0xF6
857 .byte 0x8D,0xF2,0x9F,0xE0,0x5E,0x61,0x6F,0x50,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00
858 .byte 0xC0,0xC0,0xB0,0x70,0x28,0xD8,0x04,0xFC,0x2C,0xD4,0x1E,0xE2,0x1E,0xE2,0x3E,0xC2
859 .byte 0x7E,0x82,0xB6,0x4A,0xE4,0x1C,0xC4,0x3C,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00
860
861 ; Tile 0x10
862 .byte 0x07,0x07,0x18,0x1F,0x20,0x3F,0x40,0x7F,0x40,0x7F,0xEE,0x91,0xF1,0x8E,0xE0,0x9F
863 .byte 0xE0,0x9F,0xF1,0x8E,0x71,0x4E,0x72,0x4D,0x3F,0x20,0x1F,0x18,0x07,0x07,0x00,0x00
864 .byte 0xC0,0xC0,0xF0,0x30,0x08,0xF8,0x04,0xFC,0x04,0xFC,0x02,0xFE,0x02,0xFE,0x92,0x6E
865 .byte 0xD6,0x2A,0xFE,0x02,0xEC,0x14,0xFC,0x04,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00
866 .byte 0x07,0x07,0x1D,0x1A,0x36,0x29,0x5C,0x63,0x6C,0x53,0xCE,0xB1,0x9F,0xE0,0x9E,0xE1
867 .byte 0xAE,0xD1,0xBF,0xC0,0x47,0x78,0x47,0x78,0x2F,0x30,0x1F,0x18,0x07,0x07,0x00,0x00
868 .byte 0xC0,0xC0,0x70,0xB0,0x08,0xF8,0x04,0xFC,0x04,0xFC,0xE2,0x1E,0x32,0xCE,0x0E,0xF2
869 .byte 0x0E,0xF2,0x1E,0xE2,0x1C,0xE4,0x2C,0xD4,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00
870
871 ; Tile 0x18
872 .byte 0x07,0x07,0x1E,0x19,0x33,0x2C,0x49,0x76,0x42,0x7D,0xC4,0xBB,0xC1,0xBE,0xC1,0xBE
873 .byte 0xE2,0x9D,0xF3,0x8C,0x78,0x47,0x78,0x47,0x3C,0x23,0x1C,0x1B,0x07,0x07,0x00,0x00
874 .byte 0xC0,0xC0,0x70,0xB0,0x68,0x98,0xC4,0x3C,0xC4,0x3C,0xEE,0x12,0xF2,0x0E,0xE2,0x1E
875 .byte 0xE2,0x1E,0xF2,0x0E,0x7C,0x84,0x7C,0x84,0xF8,0x08,0xF0,0x30,0xC0,0xC0,0x00,0x00
876
877 .endtp1:
878
879 .tp2:
880
881 .frame_data:
882
883 ; Tile 0x00
884 .byte 0xFF,0x00,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F
885 .byte 0xFF,0x00,0x01,0xFE,0x03,0xFC,0x07,0xF8,0x0F,0xF0,0x1F,0xE0,0x3F,0xC0,0x7F,0x80
886 .byte 0xFF,0x00,0xFE,0x01,0xFC,0x03,0xF8,0x07,0xF0,0x0F,0xE0,0x1F,0xC0,0x3F,0x80,0x7F
887 .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
888 .byte 0xFF,0x00,0xFF,0x01,0xFD,0x03,0xF9,0x07,0xF1,0x0F,0xE1,0x1F,0xC1,0x3F,0x81,0x7F
889 .byte 0x80,0x7F,0x81,0x7E,0x83,0x7C,0x87,0x78,0x8F,0x70,0x9F,0x60,0xBF,0x40,0xFF,0x00
890 .byte 0xFF,0x70,0xFF,0x98,0xEF,0xB8,0xCF,0xF8,0xFF,0x70,0xFF,0x00,0xFF,0x00,0xFF,0x01
891 .byte 0xFF,0x00,0xFE,0x01,0xFC,0x03,0xF8,0x07,0xF0,0x0F,0xE0,0x1F,0xC0,0x3F,0xFF,0xFF
892
893 ; Tile 0x08
894 .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF
895 .byte 0x00,0xFF,0x01,0xFE,0x03,0xFC,0x07,0xF8,0x0F,0xF0,0x1F,0xE0,0x3F,0xC0,0xFF,0xFF
896 .byte 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF
897 .byte 0xFF,0x0E,0xFF,0x13,0xFD,0x17,0xF9,0x1F,0xFE,0x0F,0xE0,0x1F,0xC0,0x3F,0x80,0xFF
898 .byte 0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF
899 .byte 0xFF,0x01,0xFF,0x01,0xFD,0x03,0xF9,0x07,0xF1,0x0F,0xE1,0x1F,0xC1,0x3F,0x81,0x7F
900 .byte 0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F,0x80,0x7F
901 .byte 0x01,0xFF,0x01,0xFF,0x03,0xFD,0x07,0xF9,0x0F,0xF1,0x1F,0xE1,0x3F,0xC1,0x7F,0x81
902
903 ; Tile 0x10
904 .byte 0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01
905 .byte 0x01,0xFF,0x01,0xFE,0x03,0xFC,0x77,0xF8,0xFF,0x98,0xEF,0xB8,0xCF,0xF8,0x7F,0xF0
906 .byte 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x0E,0xFF,0x13,0xFD,0x17,0xF9,0x1F,0xFF,0x0E
907 .byte 0x80,0x7F,0x81,0x7E,0x83,0x7C,0x87,0x78,0x8F,0x70,0x9F,0x60,0xBF,0x40,0xFF,0x7F
908 .byte 0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0x01,0xFF,0xFF,0xFF
909
910 .door1_data:
911
912 ; Tile 0x15
913 .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF
914 .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF
915 .byte 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF
916
917 .door2_data:
918
919 ; Tile 0x18
920 .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF
921 .byte 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF
922 .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF
923 .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
924
925 .door3_data:
926
927 ; Tile 0x1C
928 .byte 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF
929 .byte 0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF
930 .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0x00,0xFF
931 .byte 0x00,0xFF,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
932
933 .door4_data:
934
935 ; Tile 0x20
936 .byte 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
937
938 .endtp2:
939
940 .tp3:
941
942 .bkg_data:
943
944 ; Tile 0x00
945 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF
946 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF
947 .byte 0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
948 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF7,0xFF,0xFF
949 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
950 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F
951 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
952 .byte 0xFF,0xFF,0xDF,0xFF,0xEF,0xFF,0xFF,0xF7,0xFF,0xFB,0xFF,0xFD,0xFF,0xFE,0xFE,0xFF
953
954 ; Tile 0x08
955 .byte 0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7D,0xFE,0x7C,0x39
956 .byte 0xFF,0xFF,0xF7,0xFF,0xEF,0xFF,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF
957 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF
958 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFD
959 .byte 0xBB,0x01,0xC7,0x83,0xC7,0x83,0xC7,0x83,0xBB,0x01,0x7C,0x39,0x7D,0xFE,0xFF,0xFF
960 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F
961 .byte 0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF
962 .byte 0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFB,0xAF,0x77,0x27,0x8F,0xDF,0x8F,0x27,0x8F
963
964 ; Tile 0x10
965 .byte 0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
966 .byte 0xFF,0xFB,0xFF,0xF7,0xEF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
967 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
968 .byte 0xFF,0xBF,0xFF,0xDF,0xEF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
969 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
970 .byte 0xFF,0xFF,0xFF,0xFE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
971 .byte 0xAF,0x77,0xFF,0xFB,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
972 .byte 0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF
973
974 ; Tile 0x18
975 .byte 0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF
976 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF
977 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF
978 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7D,0xFE,0x7C,0x39
979 .byte 0xFF,0xFF,0xF7,0xFF,0xEF,0xFF,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF
980 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF
981 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
982 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFD
983
984 ; Tile 0x20
985 .byte 0xFF,0xFF,0xDF,0xFF,0xEF,0xFF,0xFF,0xF7,0xFF,0xFB,0xFE,0xFD,0xFD,0xFE,0xFE,0xFF
986 .byte 0xAB,0x11,0xC7,0x83,0x83,0xC7,0xC7,0x83,0xAB,0x11,0x7C,0x39,0x7D,0xFE,0xFE,0xFF
987 .byte 0xFF,0xFF,0xFF,0xFF,0xFB,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F
988 .byte 0xFB,0xFF,0xFF,0xFD,0xFE,0xFE,0xFE,0xFF,0xFE,0xFE,0xFF,0xFD,0xFB,0xFF,0xFF,0xFF
989 .byte 0xEF,0xFF,0xFF,0xDF,0x3F,0xBF,0x3F,0x7F,0x3F,0xBF,0xFF,0xDF,0xEF,0xFF,0xFF,0xFF
990 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFB,0xFF,0xFF,0xFF,0xFF
991 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xFE,0xFE,0xFD
992 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF
993
994 ; Tile 0x28
995 .byte 0xF7,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
996 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
997 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF
998 .byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
999 .byte 0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
1000
1001 .endtp3:
1002
1003 ; Image size: 0x40 x 0x40
1004 ; Number of tiles (total - unique): 0x40 - 0x2D
1005
1006 .bkg_tiles:
1007
1008 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1009 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1010 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1011 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1012
1013 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1014 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1015 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1016 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1017
1018 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1019 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1020 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1021 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1022
1023 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1024 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1025 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1026 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1027
1028 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1029 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1030 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1031 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1032
1033 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1034 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1035 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1036 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1037
1038 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1039 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1040 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1041 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1042
1043 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1044 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1045 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1046 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1047
1048 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1049 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1050 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1051 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1052
1053 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1054 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1055 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1056 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1057
1058 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1059 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1060 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1061 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1062
1063 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1064 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1065 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1066 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1067
1068 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1069 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1070 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1071 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1072
1073 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1074 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1075 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1076 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1077
1078 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1079 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1080 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1081 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1082
1083 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1084 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1085 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1086 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1087
1088 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1089 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1090 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1091 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1092
1093 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1094 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1095 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1096 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1097
1098 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1099 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1100 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1101 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1102
1103 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1104 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1105 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1106 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1107
1108 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1109 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1110 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1111 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1112
1113 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1114 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1115 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1116 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1117
1118 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1119 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1120 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1121 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1122
1123 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1124 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1125 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1126 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1127
1128 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1129 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1130 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1131 .byte 0x00,0x01,0x02,0x03,0xFC,0xFC,0x04,0xFC
1132
1133 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1134 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1135 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1136 .byte 0xFC,0x05,0x06,0xFC,0x07,0x08,0x09,0x0A
1137
1138 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1139 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1140 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1141 .byte 0xFC,0xFC,0xFC,0x02,0x0B,0x0C,0x0D,0xFC
1142
1143 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1144 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1145 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1146 .byte 0x0E,0x0F,0x10,0xFC,0x11,0x12,0x13,0x14
1147
1148 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1149 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1150 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1151 .byte 0x15,0x16,0x17,0xFC,0x18,0x19,0x1A,0xFC
1152
1153 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1154 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1155 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1156 .byte 0x1B,0x1C,0x1D,0xFC,0xFC,0x1E,0x1F,0x20
1157
1158 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1159 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1160 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1161 .byte 0x21,0x22,0xFC,0x23,0x24,0x25,0xFC,0x26
1162
1163 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1164 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1165 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1166 .byte 0x27,0x13,0x28,0x29,0x2A,0x2B,0x2C,0x11
1167
1168 ; Image size: 0x10 x 0x70
1169 ; Number of tiles (total - unique): 0x1C - 0x1C
1170
1171 .earth_tiles:
1172
1173 .byte 0x00,0x02
1174 .byte 0x04,0x06
1175 .byte 0x08,0x0A
1176 .byte 0x0C,0x0E
1177 .byte 0x10,0x12
1178 .byte 0x14,0x16
1179 .byte 0x18,0x1A
1180
1181 ; Image size: 0x80 x 0x50
1182 ; Number of tiles (total - unique): 0xA0 - 0x15
1183
1184 .frame_tiles:
1185
1186 .byte 0x80,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x84
1187 .byte 0x85,0x86,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x8B,0x8C
1188 .byte 0xFD,0x8D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8E,0x8F
1189 .byte 0x82,0x8C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x85,0x90
1190 .byte 0x8E,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x8D
1191 .byte 0x85,0x90,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x82,0x8C
1192 .byte 0xFD,0x8D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8E,0x8F
1193 .byte 0x82,0x8C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x85,0x90
1194 .byte 0x8E,0x91,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0xFD,0x82,0x83,0x81,0x92,0x8D
1195 .byte 0x93,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x88,0x89,0x8A,0x87,0x94
1196
1197 ; Image size: 0x60 x 0x30
1198 ; Number of tiles (total - unique): 0x48 - 0x03
1199
1200 .door1_tiles:
1201
1202 .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95
1203 .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96
1204 .byte 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97
1205 .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95
1206 .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96
1207 .byte 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97
1208
1209 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1210 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1211 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1212 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1213 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1214 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1215
1216 ; Image size: 0x60 x 0x30
1217 ; Number of tiles (total - unique): 0x48 - 0x04
1218
1219 .door2_tiles:
1220
1221 .byte 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98
1222 .byte 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99
1223 .byte 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A
1224 .byte 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98
1225 .byte 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99
1226 .byte 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B
1227
1228 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1229 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1230 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1231 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1232 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1233
1234 ; Image size: 0x60 x 0x30
1235 ; Number of tiles (total - unique): 0x48 - 0x04
1236
1237 .door3_tiles:
1238
1239 .byte 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C
1240 .byte 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D
1241 .byte 0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E
1242 .byte 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C
1243 .byte 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D
1244 .byte 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F
1245
1246 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1247 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1248 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1249 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1250 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1251
1252 ; Image size: 0x60 x 0x30
1253 ; Number of tiles (total - unique): 0x48 - 0x01
1254
1255 .door4_tiles:
1256
1257 .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95
1258 .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96
1259 .byte 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97
1260 .byte 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95
1261 .byte 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96
1262 .byte 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0
1263
1264 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1265 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1266 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1267 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1268 .byte 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC
1269
1270 .film:
1271 .word .door1_tiles+0x0C*0
1272 .word .door2_tiles+0x0C*0
1273 .word .door3_tiles+0x0C*0
1274 .word .door4_tiles+0x0C*0
1275 .word .door1_tiles+0x0C*1
1276 .word .door2_tiles+0x0C*1
1277 .word .door3_tiles+0x0C*1
1278 .word .door4_tiles+0x0C*1
1279 .word .door1_tiles+0x0C*2
1280 .word .door2_tiles+0x0C*2
1281 .word .door3_tiles+0x0C*2
1282 .word .door4_tiles+0x0C*2
1283 .word .door1_tiles+0x0C*3
1284 .word .door2_tiles+0x0C*3
1285 .word .door3_tiles+0x0C*3
1286 .word .door4_tiles+0x0C*3
1287 .word .door1_tiles+0x0C*4
1288 .word .door2_tiles+0x0C*4
1289 .word .door3_tiles+0x0C*4
1290 .word .door4_tiles+0x0C*4
1291 .word .door1_tiles+0x0C*5
1292 .word .door2_tiles+0x0C*5
1293 .word .door3_tiles+0x0C*5
1294 .word .door4_tiles+0x0C*5
1295 .endfilm:
1296 .word .door1_tiles+0x0C*6
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.