diff --git a/SMSBootLoader/palette.inc b/SMSBootLoader/palette.inc new file mode 100644 index 0000000..af6b694 --- /dev/null +++ b/SMSBootLoader/palette.inc @@ -0,0 +1,48 @@ +;---------------------------------------------------------------------------- +pal_table_bg_fade_0: +.db %00000000 ; 0: Black +.db %00000000 ; 1: Gray 1 +.db %00000000 ; 2: Gray 2 +.db %00000000 ; 3: White +.db %00000000 ; 4: Light Blue +;---------------------------------------------------------------------------- +pal_table_bg_fade_1: +.db %00000000 ; 0: Black +.db %00000000 ; 1: Gray 1 +.db %00000000 ; 2: Gray 2 +.db %00010101 ; 3: White +.db %00010000 ; 4: Light Blue +;---------------------------------------------------------------------------- +pal_table_bg_fade_2: +.db %00000000 ; 0: Black +.db %00000000 ; 1: Gray 1 +.db %00010101 ; 2: Gray 2 +.db %00101010 ; 3: White +.db %00100000 ; 4: Light Blue +;---------------------------------------------------------------------------- +pal_table_bg: +.db %00000000 ; 0: Black +.db %00010101 ; 1: Gray 1 +.db %00101010 ; 2: Gray 2 +.db %00111111 ; 3: White +.db %00110000 ; 4: Light Blue +;---------------------------------------------------------------------------- +pal_table_fg: +.db %00000000 ; 0: +.db %00000000 ; 1: Black +.db %00000110 ; 2: Marron +.db %00000111 ; 3: Light Orange +.db %00011011 ; 4: Peach +.db %00001111 ; 5: Yellow +.db %00011001 ; 6: Green (background) +.db %00111111 ; 7: White +.db %00000000 ; 8: +.db %00000000 ; 9: +.db %00000000 ; 10: +.db %00000000 ; 11: +.db %00000000 ; 12: +.db %00000000 ; 13: +.db %00000000 ; 14: +.db %00000000 ; 15: +;---------------------------------------------------------------------------- + diff --git a/SMSBootLoader/sms.inc b/SMSBootLoader/sms.inc new file mode 100644 index 0000000..6827f51 --- /dev/null +++ b/SMSBootLoader/sms.inc @@ -0,0 +1,99 @@ +;---------------------------------------------------------------------------- +; Sega Master System & Game Gear basic definitions +; by Omar Cornut (Bock) +; Started on February 2001 +; Last update: 10 November 2001 +;---------------------------------------------------------------------------- + +; MEMORY -------------------------------------------------------------------- +.DEFINE PAGE_SIZE $4000 +.DEFINE PAGE_0 $0000 +.DEFINE PAGE_1 (PAGE_0 + PAGE_SIZE) +.DEFINE PAGE_2 (PAGE_1 + PAGE_SIZE) +.DEFINE RAM $C000 +.DEFINE RAM_LEN $1FF8 +.DEFINE RAM_MIRROR $E000 +.DEFINE REG_MAP_SRAM $FFFC +.DEFINE REG_MAP_0 $FFFD +.DEFINE REG_MAP_1 $FFFE +.DEFINE REG_MAP_2 $FFFF +;---------------------------------------------------------------------------- + +; VIDEO --------------------------------------------------------------------- +.DEFINE VDP_DATA $BE +.DEFINE VDP_ADDR $BF +.DEFINE VDP_STATUS $BF +.DEFINE VRAM_TILES $0000 +.DEFINE VRAM_BG_MAP $3800 +.DEFINE VRAM_SPR_MAP $3F00 +.DEFINE VRAM_SPR_LAST 208 +;---------------------------------------------------------------------------- +.DEFINE VRAM_SIZE $4000 +.DEFINE VRAM_TILE_SIZE 32 ; (8 * 8) * 4 bits = 32 bytes +;---------------------------------------------------------------------------- +.DEFINE VREG_CONFIG0 $80 +.DEFINE VREG_CONFIG1 $81 +; .. +.DEFINE VREG_BORDER_COL $87 +.DEFINE VREG_HSCROLL $88 +.DEFINE VREG_VSCROLL $89 +.DEFINE VREG_LINES_CNT $8A +;---------------------------------------------------------------------------- + +; INPUTS -------------------------------------------------------------------- +.DEFINE PORT_INPUT1 $DC +.DEFINE P1_UP $01 +.DEFINE P1_DOWN $02 +.DEFINE P1_LEFT $04 +.DEFINE P1_RIGHT $08 +.DEFINE P1_BUTTON1 $10 +.DEFINE P1_BUTTON2 $20 +.DEFINE P2_UP $40 +.DEFINE P2_DOWN $80 +;---------------------------------------------------------------------------- +.DEFINE P1_UP_BIT 0 +.DEFINE P1_DOWN_BIT 1 +.DEFINE P1_LEFT_BIT 2 +.DEFINE P1_RIGHT_BIT 3 +.DEFINE P1_BUTTON1_BIT 4 +.DEFINE P1_BUTTON2_BIT 5 +.DEFINE P2_UP_BIT 6 +.DEFINE P2_DOWN_BIT 7 +;---------------------------------------------------------------------------- +.DEFINE PORT_INPUT2 $DD +.DEFINE P2_LEFT $01 +.DEFINE P2_RIGHT $02 +.DEFINE P2_BUTTON1 $04 +.DEFINE P2_BUTTON2 $08 +.DEFINE RESET_BUTTON $10 +; Unused $20 +.DEFINE LIGHTGUN1 $40 +.DEFINE LIGHTGUN2 $80 +;---------------------------------------------------------------------------- +.DEFINE PORT_INPUTGG $00 +.DEFINE START_BUTTON $80 +;---------------------------------------------------------------------------- + +; SOUND --------------------------------------------------------------------- +.DEFINE PORT_PSG $7F +.DEFINE PORT_FM_ADDR $F0 +.DEFINE PORT_FM_DATA $F1 +.DEFINE PORT_FM_LATCH $F2 +;---------------------------------------------------------------------------- + +; MISCELLANEOUS ------------------------------------------------------------- +.DEFINE PORT_HARDWARE $3E +.DEFINE PORT_NATION $3F +.DEFINE PORT_VLINE $7E +.DEFINE PORT_HLINE $7F +;---------------------------------------------------------------------------- + +; HEADER -------------------------------------------------------------------- +.DEFINE HEADER $7FF0 +.DEFINE HEADER_ID $7FF0 ; TMR SEGA +; .. +.DEFINE HEADER_CHECKSUM $7FFA +; .. +.DEFINE HEADER_SYS_SIZE $7FFF +;---------------------------------------------------------------------------- + diff --git a/SMSBootLoader/smsboot.asm b/SMSBootLoader/smsboot.asm new file mode 100644 index 0000000..a322c36 --- /dev/null +++ b/SMSBootLoader/smsboot.asm @@ -0,0 +1,222 @@ +;------------------------------------------------------------------------------ +; SMS Boot 0.91 +; by Omar Cornut (Bock) +; Last updated 28 December 2003 +;------------------------------------------------------------------------------ + +.INCLUDE "sms.inc" + +; WlaDX stuffs ---------------------------------------------------------------- +.EMPTYFILL $00 +.SMSTAG +.COMPUTESMSCHECKSUM +.MEMORYMAP + DEFAULTSLOT 0 + SLOTSIZE PAGE_SIZE + SLOT 0 PAGE_0 + SLOT 1 PAGE_1 +.ENDME + +.ROMBANKMAP + BANKSTOTAL 2 + BANKSIZE PAGE_SIZE + BANKS 2 +.ENDRO +.BANK 0 SLOT 0 +;------------------------------------------------------------------------------ + +; Variables ------------------------------------------------------------------- +.DEFINE VAR_frame_cnt (RAM + $1000) ; 1 byte +.DEFINE VAR_menu_slot (RAM + $1001) ; 1 byte +.DEFINE VAR_menu_sprite_y (RAM + $1002) ; 1 byte +;------------------------------------------------------------------------------ + +; Start ----------------------------------------------------------------------- +.ORGA $0000 + di + im 1 + ld sp, $DFF0 + jp start +;------------------------------------------------------------------------------ + +; Tools --------------------------------------------------------------------- +.ORGA $0010 +vdp_write_de: + ld a, e + out (VDP_ADDR), a + ld a, d + out (VDP_ADDR), a + ret +.ORGA $0018 +vdp_write_addr_de: + ld a, e + out (VDP_ADDR), a + ld a, d + or $40 + out (VDP_ADDR), a + ret + +.ORGA $0028 +vdp_write_addr_hl: + ld a, l + out (VDP_ADDR), a + ld a, h + or $40 + out (VDP_ADDR), a + ret + +; Interrupt ------------------------------------------------------------------- +.ORGA $0038 +interrupt: + di + push af + in a, (VDP_STATUS) + and $80 + jr z, interrupt_end + ld a, (VAR_frame_cnt) + inc a + ld (VAR_frame_cnt), a +interrupt_end: + pop af + ei + ret +;------------------------------------------------------------------------------ + +; NMI ------------------------------------------------------------------------- +.ORGA $0066 + reti +;------------------------------------------------------------------------------ + +; SDSC HEADER DATA ------------------------------------------------------------ +sdsc_author: .db "wsoltys", 0 +sdsc_program_name: .db "MiST Boot Loader", 0 +sdsc_unused_but_stored: .db "v0.91", 0 +;------------------------------------------------------------------------------ + +; VDP Library ----------------------------------------------------------------- +.INCLUDE "vdp.asm" +; DATA ------------------------------------------------------------------------ +tiles_data: +.INCLUDE "tiles.inc" +palette_data: +.INCLUDE "palette.inc" +;------------------------------------------------------------------------------ + +start: + call vdp_init + + ; Setup palette for fade start + ld a, 0 + ld b, 5 + ld hl, pal_table_bg_fade_0 + call vdp_set_pal + + ; Load tiles + ld bc, VRAM_TILE_SIZE * GFX_LAST_TILE + ld hl, tiles_data + ld de, $0000 + (1 * VRAM_TILE_SIZE) + call vdp_load_data + + ; Draw SEGA logo to map + ld b, GFX_SEGA_SIZE_X + ld c, GFX_SEGA_SIZE_Y + ld d, GFX_SEGA_TILE + ld e, 0 + ld hl, VRAM_BG_MAP + (10*2+(2)*32) + call vdp_bg_putimage + + ; Draw Master System logo to map + ld b, GFX_MASTERSYSTEM_SIZE_X + ld c, GFX_MASTERSYSTEM_SIZE_Y + ld d, GFX_MASTERSYSTEM_TILE + ld e, 0 + ld hl, VRAM_BG_MAP + (4*2+(12)*32) + call vdp_bg_putimage + + ; Draw Boot Loader logo to map + ld b, GFX_BOOTLOADER_SIZE_X + ld c, GFX_BOOTLOADER_SIZE_Y + ld d, GFX_BOOTLOADER_TILE + ld e, 0 + ld hl, VRAM_BG_MAP + (1*2+(22)*32) + call vdp_bg_putimage + + ; Draw SMS Power copyright to map + ; ld b, GFX_SMSPOWER_SIZE_X + ; ld c, GFX_SMSPOWER_SIZE_Y + ; ld d, GFX_SMSPOWER_TILE - 256 + ; ld e, 1 + ; ld hl, VRAM_BG_MAP + (9*2+(42)*32) + call vdp_bg_putimage + + ; Reset horizontal scrolling + ld de, $8800 + rst $10 + + ; Enable display, 16x8 sprites & vblank + ld de, $81E2 + rst $10 + + ; Fade-in + xor a + ld b, 5 + ld c, 4 + ld d, 10 + ld hl, pal_table_bg_fade_0 + ei + call vdp_fade + di + + ; Enable display & 16x8 sprites, disable vblank + ld de, $81C2 + rst $10 + + ; Setup final palette + ld a, 16 + ld b, 16 + ld hl, pal_table_fg + call vdp_set_pal + + wait_for_rom: + ld a, $3e + ld ($c700),a + ld a, $b8 + ld ($c701),a ; ld a,$b8 + ld a, $d3 + ld ($c702),a + ld a, $3e ; out 3e,(a) + ld ($c703),a + ld a, $c3 + ld ($c704),a + ld a, 00 + ld ($c705),a + ld ($c706),a; jp 0 + jp $c700 + +;------------------------------------------------------------------------------ + +boot_end: + +.BANK 1 SLOT 1 + +; SDSC HEADER ----------------------------------------------------------------- +.ORGA $7FE0 + .DB "SDSC" ; Magic + .DB $00, $91 ; Version 0.91 + .DB $12 ; 17 + .DB $11 ; November + .DW $2001 ; 2001 + .DW sdsc_author + .DW sdsc_program_name + .DW $FFFF + +; CHECKSUM -------------------------------------------------------------------- +.ORGA $7FF0 + + .DB "TMR SEGA" ; Trademark + .DW $0120 ; Year + .DW $0000 ; Checksum not correct + .DW $0000 ; Part Num not correct + .DB $01 ; Version + .DB $4C ; Master System, 32k + diff --git a/SMSBootLoader/smsboot.link b/SMSBootLoader/smsboot.link new file mode 100644 index 0000000..ec07458 --- /dev/null +++ b/SMSBootLoader/smsboot.link @@ -0,0 +1,2 @@ +[objects] +smsboot.o diff --git a/SMSBootLoader/smsboot.txt b/SMSBootLoader/smsboot.txt new file mode 100644 index 0000000..7ee3b30 --- /dev/null +++ b/SMSBootLoader/smsboot.txt @@ -0,0 +1,54 @@ +------------------------------------------- + SMS Boot Loader 0.91 + by Omar Cornut (Bock), for SMS Power 2001 + E-mail: omar AT miracleworld DOT net + Web: http://www.smspower.org +------------------------------------------- + + 17 November 2001 + v0.90: This is a beta release version of my SMS Boot Loader. + v0.91: Minor changes I can't remember! + + This simple program, once run on an original Sega Master System, let + you choose and execute a program from one of the three available slots: + + +-------------------------------------------------------------+ + | System SMS1 SMS2+ MD-PBC | + +-------------------------------------------------------------+ + | Cartridge slot yes yes yes | + | Card slot yes no yes | + | Expansion slot yes no no | + +-------------------------------------------------------------+ + + It has the advantage of not checking any country code or header, so + basically it is possible to boot up an original Japanese mycard game + (for SG-1000 or Mark III) on your US or European Master System 1. + + You can also use it to boot Brasilian 8 megabits games which are + not supported by all models of Master System 1. + + Last but not least, using a homemade pinout converter, it would be + possible the same way to boot up any SG-1000/SC-3000 or Mark III/SMS + cartridge. + + The problem of course is to be able to run the actual SMS Boot Loader + on a real system. Easiest solution is to use a development cartridge, + but the most interesting one is to replace the machine BIOS by this + Boot Loader. + + Things done: + Code run from RAM is copied at 0xC700 as with the real BIOS, + although this is not the same code, no known software rely on + values at that location. + Slot number is written to 0xC000 before booting. + + Things to do: + Fix the bug when pressing button 1 on the title run cartridge + directly (it happens sometimes). + Detect data present on the three slots (and suggest one). + Leave VDP Registers in the same state as the original BIOS does. + Clear three byte variables (currently stored at 0xD00?). + Clean and release source code. + + Enjoy! + diff --git a/SMSBootLoader/tiles.inc b/SMSBootLoader/tiles.inc new file mode 100644 index 0000000..e7f661c --- /dev/null +++ b/SMSBootLoader/tiles.inc @@ -0,0 +1,1327 @@ +.DEFINE GFX_SEGA_TILE 1 +.DEFINE GFX_SEGA_SIZE_X 10 +.DEFINE GFX_SEGA_SIZE_Y 4 + +.DEFINE GFX_MASTERSYSTEM_TILE GFX_SEGA_TILE + GFX_SEGA_SIZE_X * GFX_SEGA_SIZE_Y +.DEFINE GFX_MASTERSYSTEM_SIZE_X 23 +.DEFINE GFX_MASTERSYSTEM_SIZE_Y 3 + +.DEFINE GFX_BOOTLOADER_TILE GFX_MASTERSYSTEM_TILE + GFX_MASTERSYSTEM_SIZE_X * GFX_MASTERSYSTEM_SIZE_Y +.DEFINE GFX_BOOTLOADER_SIZE_X 29 +.DEFINE GFX_BOOTLOADER_SIZE_Y 7 + +.DEFINE GFX_SMSPOWER_TILE GFX_BOOTLOADER_TILE + GFX_BOOTLOADER_SIZE_X * GFX_BOOTLOADER_SIZE_Y +.DEFINE GFX_SMSPOWER_SIZE_X 14 +.DEFINE GFX_SMSPOWER_SIZE_Y 1 + +.DEFINE GFX_CHOICESBOX_TILE GFX_SMSPOWER_TILE + GFX_SMSPOWER_SIZE_X * GFX_SMSPOWER_SIZE_Y +.DEFINE GFX_CHOICESBOX_SIZE_X 14 +.DEFINE GFX_CHOICESBOX_SIZE_Y 7 + +.DEFINE GFX_HAND_TILE 1 + GFX_CHOICESBOX_TILE + GFX_CHOICESBOX_SIZE_X * GFX_CHOICESBOX_SIZE_Y +.DEFINE GFX_HAND_SIZE_X 2 +.DEFINE GFX_HAND_SIZE_Y 2 + +.DEFINE GFX_LAST_TILE GFX_HAND_TILE + GFX_HAND_SIZE_X * GFX_HAND_SIZE_Y + +tiles_sega: + ; x:0 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $07,$07,$00,$00 + .db $1C,$1C,$03,$00, $30,$30,$0F,$00, $60,$60,$1F,$00, $41,$41,$3E,$00, + ; x:1 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $FF,$FF,$00,$00, + ; x:2 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $E1,$E1,$00,$00 + .db $27,$27,$C0,$00, $2C,$2C,$C3,$00, $38,$38,$C7,$00, $F0,$F0,$0F,$00, + ; x:3 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $7F,$7F,$80,$00, + ; x:4 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $F8,$F8,$00,$00 + .db $09,$09,$F0,$00, $0B,$0B,$F0,$00, $0E,$0E,$F1,$00, $FC,$FC,$03,$00, + ; x:5 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $7F,$7F,$00,$00 + .db $C0,$C0,$3F,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $1F,$1F,$E0,$00, + ; x:6 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FE,$FE,$00,$00 + .db $02,$02,$FC,$00, $02,$02,$FC,$00, $02,$02,$FC,$00, $FE,$FE,$00,$00, + ; x:7 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $03,$03,$00,$00 + .db $0E,$0E,$01,$00, $08,$08,$07,$00, $18,$18,$07,$00, $11,$11,$0E,$00, + ; x:8 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $E0,$E0,$00,$00 + .db $39,$39,$C0,$00, $0F,$0F,$F0,$00, $0E,$0E,$F1,$00, $C6,$C6,$39,$00, + ; x:9 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FC,$FC,$00,$00 + .db $86,$86,$78,$00, $7B,$7B,$84,$00, $8D,$8D,$72,$00, $B5,$B5,$4A,$00, + ; x:0 - y:1 + .db $C6,$C6,$39,$00, $84,$84,$7B,$00, $88,$88,$77,$00, $88,$88,$77,$00 + .db $88,$88,$77,$00, $84,$84,$7B,$00, $C6,$C6,$39,$00, $41,$41,$3E,$00, + ; x:1 - y:1 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $FF,$FF,$00,$00 + .db $07,$07,$F8,$00, $01,$01,$FE,$00, $00,$00,$FF,$00, $F0,$F0,$0F,$00, + ; x:2 - y:1 + .db $31,$31,$CE,$00, $21,$21,$DE,$00, $22,$22,$DD,$00, $E2,$E2,$1D,$00 + .db $E2,$E2,$1D,$00, $E2,$E2,$1D,$00, $E2,$E2,$1D,$00, $63,$63,$9C,$00, + ; x:3 - y:1 + .db $80,$80,$7F,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $3F,$3F,$C0,$00 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $FF,$FF,$00,$00, + ; x:4 - y:1 + .db $0C,$0C,$F3,$00, $08,$08,$F7,$00, $08,$08,$F7,$00, $F8,$F8,$07,$00 + .db $18,$18,$E7,$00, $18,$18,$E7,$00, $18,$18,$E7,$00, $F8,$F8,$07,$00, + ; x:5 - y:1 + .db $60,$60,$9F,$00, $40,$40,$BF,$00, $80,$80,$7F,$00, $8F,$8F,$70,$00 + .db $88,$88,$77,$00, $88,$88,$77,$00, $88,$88,$77,$00, $8F,$8F,$70,$00, + ; x:6 - y:1 + .db $02,$02,$FC,$00, $02,$02,$FC,$00, $02,$02,$FC,$00, $FE,$FE,$00,$00 + .db $02,$02,$FC,$00, $02,$02,$FC,$00, $02,$02,$FC,$00, $E2,$E2,$1C,$00, + ; x:7 - y:1 + .db $31,$31,$0E,$00, $22,$22,$1D,$00, $22,$22,$1D,$00, $62,$62,$1D,$00 + .db $44,$44,$3B,$00, $44,$44,$3B,$00, $C4,$C4,$3B,$00, $88,$88,$77,$00, + ; x:8 - y:1 + .db $46,$46,$B9,$00, $22,$22,$DD,$00, $23,$23,$DC,$00, $23,$23,$DC,$00 + .db $11,$11,$EE,$00, $11,$11,$EE,$00, $11,$11,$EE,$00, $88,$88,$77,$00, + ; x:9 - y:1 + .db $8D,$8D,$72,$00, $B5,$B5,$4A,$00, $7B,$7B,$84,$00, $86,$86,$78,$00 + .db $FC,$FC,$00,$00, $00,$00,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, + ; x:0 - y:2 + .db $60,$60,$1F,$00, $30,$30,$0F,$00, $1C,$1C,$03,$00, $FF,$FF,$00,$00 + .db $80,$80,$7F,$00, $80,$80,$7F,$00, $80,$80,$7F,$00, $FF,$FF,$00,$00, + ; x:1 - y:2 + .db $0C,$0C,$F3,$00, $04,$04,$FB,$00, $02,$02,$FD,$00, $E2,$E2,$1D,$00 + .db $02,$02,$FD,$00, $04,$04,$FB,$00, $0C,$0C,$F3,$00, $F0,$F0,$0F,$00, + ; x:2 - y:2 + .db $62,$62,$9D,$00, $22,$22,$DD,$00, $22,$22,$DD,$00, $22,$22,$DD,$00 + .db $22,$22,$DD,$00, $21,$21,$DE,$00, $71,$71,$8E,$00, $70,$70,$8F,$00, + ; x:3 - y:2 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $3F,$3F,$C0,$00 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $80,$80,$7F,$00, $7F,$7F,$80,$00, + ; x:4 - y:2 + .db $18,$18,$E7,$00, $18,$18,$E7,$00, $18,$18,$E7,$00, $F8,$F8,$07,$00 + .db $08,$08,$F7,$00, $08,$08,$F7,$00, $0C,$0C,$F3,$00, $FC,$FC,$03,$00, + ; x:5 - y:2 + .db $88,$88,$77,$00, $88,$88,$77,$00, $88,$88,$77,$00, $8E,$8E,$71,$00 + .db $80,$80,$7F,$00, $40,$40,$BF,$00, $60,$60,$9F,$00, $1F,$1F,$E0,$00, + ; x:6 - y:2 + .db $22,$22,$DC,$00, $23,$23,$DC,$00, $23,$23,$DC,$00, $23,$23,$DC,$00 + .db $23,$23,$DC,$00, $22,$22,$DD,$00, $22,$22,$DD,$00, $E2,$E2,$1D,$00, + ; x:7 - y:2 + .db $88,$88,$77,$00, $88,$88,$77,$00, $11,$11,$EE,$00, $11,$11,$EE,$00 + .db $10,$10,$EF,$00, $22,$22,$DD,$00, $22,$22,$DD,$00, $23,$23,$DC,$00, + ; x:8 - y:2 + .db $88,$88,$77,$00, $88,$88,$77,$00, $C4,$C4,$3B,$00, $C4,$C4,$3B,$00 + .db $04,$04,$FB,$00, $02,$02,$FD,$00, $02,$02,$FD,$00, $FE,$FE,$01,$00, + ; x:9 - y:2 + .db $80,$80,$00,$00, $C0,$C0,$00,$00, $40,$40,$80,$00, $40,$40,$80,$00 + .db $60,$60,$80,$00, $20,$20,$C0,$00, $20,$20,$C0,$00, $30,$30,$C0,$00, + ; x:0 - y:3 + .db $80,$80,$7F,$00, $80,$80,$7F,$00, $80,$80,$7F,$00, $FF,$FF,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:3 + .db $00,$00,$FF,$00, $01,$01,$FE,$00, $07,$07,$F8,$00, $FC,$FC,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:3 + .db $D8,$D8,$07,$00, $8C,$8C,$03,$00, $07,$07,$00,$00, $01,$01,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:3 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $FF,$FF,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:3 + .db $0E,$0E,$F1,$00, $0B,$0B,$F0,$00, $09,$09,$F0,$00, $F8,$F8,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:3 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $C0,$C0,$3F,$00, $7F,$7F,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:6 - y:3 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $FF,$FF,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:7 - y:3 + .db $46,$46,$B9,$00, $46,$46,$B9,$00, $46,$46,$B9,$00, $FF,$FF,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:8 - y:3 + .db $00,$00,$FF,$00, $00,$00,$FF,$00, $00,$00,$FF,$00, $FF,$FF,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:9 - y:3 + .db $10,$10,$E0,$00, $10,$10,$E0,$00, $10,$10,$E0,$00, $F0,$F0,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + +tiles_master_system: + ; x:0 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $1F,$1F,$00,$00, $0F,$0F,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00, + ; x:1 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $83,$83,$00,$00, $83,$83,$00,$00, $83,$83,$00,$00, $83,$83,$00,$00, + ; x:2 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $F0,$F0,$00,$00, $E0,$E0,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00, + ; x:3 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $3C,$3C,$00,$00, $3C,$3C,$00,$00, $7E,$7E,$00,$00, $6E,$7E,$00,$00, + ; x:4 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, $07,$07,$00,$00, + ; x:5 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FA,$FA,$00,$00, $FE,$FE,$00,$00, $8F,$CF,$00,$00, $03,$87,$00,$00, + ; x:6 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $3F,$3F,$00,$00, $3F,$3F,$00,$00, $7B,$7F,$00,$00, $63,$73,$00,$00, + ; x:7 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $F9,$F9,$00,$00, $F8,$F8,$00,$00, $FC,$FC,$00,$00, $9C,$9C,$00,$00, + ; x:8 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, + ; x:9 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $E7,$E7,$00,$00, $F3,$F3,$00,$00, $F1,$F1,$00,$00, $71,$71,$00,$00, + ; x:10 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $CF,$CF,$00,$00, $C3,$C3,$00,$00, + ; x:11 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$80,$00,$00, $80,$80,$00,$00, $C0,$C0,$00,$00, + ; x:12 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $01,$01,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00, $0E,$0F,$00,$00, + ; x:13 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $F5,$F5,$00,$00, $FC,$FC,$00,$00, $1E,$9E,$00,$00, $06,$0E,$00,$00, + ; x:14 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FC,$FC,$00,$00, $F0,$F8,$00,$00, $38,$78,$00,$00, $3C,$3C,$00,$00, + ; x:15 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FC,$FC,$00,$00, $73,$7B,$00,$00, $73,$73,$00,$00, $E7,$E7,$00,$00, + ; x:16 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FA,$FA,$00,$00, $FE,$FE,$00,$00, $8F,$CF,$00,$00, $03,$87,$00,$00, + ; x:17 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $3F,$3F,$00,$00, $3F,$3F,$00,$00, $7B,$7F,$00,$00, $63,$73,$00,$00, + ; x:18 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $F9,$F9,$00,$00, $F8,$F8,$00,$00, $FC,$FC,$00,$00, $9C,$9C,$00,$00, + ; x:19 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, + ; x:20 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $E7,$E7,$00,$00, $F3,$F3,$00,$00, $F1,$F1,$00,$00, $71,$71,$00,$00, + ; x:21 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $E0,$E0,$00,$00, $E0,$E0,$00,$00, $E0,$E0,$00,$00, $E0,$E0,$00,$00, + ; x:22 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $FC,$FC,$00,$00, $F8,$F8,$00,$00, $F0,$F0,$00,$00, $F0,$F0,$00,$00, + ; x:0 - y:1 + .db $07,$07,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00 + .db $06,$06,$00,$00, $06,$06,$00,$00, $06,$06,$00,$00, $06,$06,$00,$00, + ; x:1 - y:1 + .db $C7,$C7,$00,$00, $C7,$C7,$00,$00, $C7,$C7,$00,$00, $C7,$C7,$00,$00 + .db $ED,$ED,$00,$00, $ED,$ED,$00,$00, $ED,$ED,$00,$00, $F9,$FD,$00,$00, + ; x:2 - y:1 + .db $C0,$C0,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00 + .db $C0,$C0,$00,$00, $C1,$C1,$00,$00, $C1,$C1,$00,$00, $C1,$C1,$00,$00, + ; x:3 - y:1 + .db $6F,$6F,$00,$00, $EF,$EF,$00,$00, $CF,$EF,$00,$00, $C7,$C7,$00,$00 + .db $C7,$C7,$00,$00, $C7,$C7,$00,$00, $87,$C7,$00,$00, $FF,$FF,$00,$00, + ; x:4 - y:1 + .db $07,$07,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00 + .db $83,$83,$00,$00, $81,$81,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, + ; x:5 - y:1 + .db $83,$83,$00,$00, $03,$83,$00,$00, $C0,$C0,$00,$00, $F0,$F0,$00,$00 + .db $FC,$FC,$00,$00, $FE,$FE,$00,$00, $7F,$7F,$00,$00, $1F,$1F,$00,$00, + ; x:6 - y:1 + .db $63,$63,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00 + .db $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, + ; x:7 - y:1 + .db $84,$8C,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00 + .db $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, + ; x:8 - y:1 + .db $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, $71,$71,$00,$00 + .db $7F,$7F,$00,$00, $7F,$7F,$00,$00, $71,$71,$00,$00, $70,$70,$00,$00, + ; x:9 - y:1 + .db $11,$31,$00,$00, $01,$01,$00,$00, $81,$81,$00,$00, $81,$81,$00,$00 + .db $81,$81,$00,$00, $81,$81,$00,$00, $81,$81,$00,$00, $81,$81,$00,$00, + ; x:10 - y:1 + .db $C1,$C3,$00,$00, $C1,$C1,$00,$00, $C3,$C3,$00,$00, $C1,$C3,$00,$00 + .db $CF,$CF,$00,$00, $FF,$FF,$00,$00, $FE,$FF,$00,$00, $CF,$CF,$00,$00, + ; x:11 - y:1 + .db $C0,$C0,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00 + .db $80,$80,$00,$00, $80,$80,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:12 - y:1 + .db $0F,$0F,$00,$00, $0E,$0F,$00,$00, $0F,$0F,$00,$00, $0F,$0F,$00,$00 + .db $07,$07,$00,$00, $03,$03,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:13 - y:1 + .db $06,$06,$00,$00, $06,$06,$00,$00, $80,$80,$00,$00, $E0,$E0,$00,$00 + .db $F8,$F8,$00,$00, $FC,$FC,$00,$00, $FE,$FE,$00,$00, $3E,$3E,$00,$00, + ; x:14 - y:1 + .db $3C,$3C,$00,$00, $1E,$1F,$00,$00, $1F,$1F,$00,$00, $0F,$0F,$00,$00 + .db $0F,$0F,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00, + ; x:15 - y:1 + .db $C7,$E7,$00,$00, $C7,$C7,$00,$00, $C7,$C7,$00,$00, $87,$87,$00,$00 + .db $03,$83,$00,$00, $01,$01,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:16 - y:1 + .db $83,$83,$00,$00, $03,$83,$00,$00, $C0,$C0,$00,$00, $F0,$F0,$00,$00 + .db $FC,$FC,$00,$00, $FE,$FE,$00,$00, $7F,$7F,$00,$00, $1F,$1F,$00,$00, + ; x:17 - y:1 + .db $63,$63,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00 + .db $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, + ; x:18 - y:1 + .db $84,$8C,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00 + .db $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, + ; x:19 - y:1 + .db $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, $71,$71,$00,$00 + .db $7F,$7F,$00,$00, $7F,$7F,$00,$00, $71,$71,$00,$00, $70,$70,$00,$00, + ; x:20 - y:1 + .db $11,$31,$00,$00, $01,$01,$00,$00, $81,$81,$00,$00, $81,$81,$00,$00 + .db $81,$81,$00,$00, $81,$81,$00,$00, $81,$81,$00,$00, $81,$81,$00,$00, + ; x:21 - y:1 + .db $F1,$F1,$00,$00, $F1,$F1,$00,$00, $F1,$F1,$00,$00, $F1,$F1,$00,$00 + .db $BB,$BB,$00,$00, $BB,$BB,$00,$00, $BB,$BB,$00,$00, $BE,$BF,$00,$00, + ; x:22 - y:1 + .db $F0,$F0,$00,$00, $F0,$F0,$00,$00, $F0,$F0,$00,$00, $F0,$F0,$00,$00 + .db $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, + ; x:0 - y:2 + .db $06,$06,$00,$00, $06,$06,$00,$00, $06,$06,$00,$00, $06,$06,$00,$00 + .db $0F,$0F,$00,$00, $1F,$1F,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:2 + .db $79,$79,$00,$00, $79,$79,$00,$00, $79,$79,$00,$00, $71,$79,$00,$00 + .db $33,$33,$00,$00, $37,$B7,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:2 + .db $C1,$C1,$00,$00, $C3,$C3,$00,$00, $C3,$C3,$00,$00, $C3,$C3,$00,$00 + .db $E7,$E7,$00,$00, $EF,$FF,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:2 + .db $FF,$FF,$00,$00, $83,$83,$00,$00, $03,$83,$00,$00, $01,$01,$00,$00 + .db $83,$83,$00,$00, $87,$C7,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:2 + .db $C6,$C6,$00,$00, $C4,$C6,$00,$00, $C7,$C7,$00,$00, $C7,$C7,$00,$00 + .db $E3,$E3,$00,$00, $E2,$F2,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:2 + .db $0F,$0F,$00,$00, $07,$0F,$00,$00, $0F,$0F,$00,$00, $1E,$1F,$00,$00 + .db $FE,$FE,$00,$00, $F8,$FC,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:6 - y:2 + .db $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00 + .db $07,$07,$00,$00, $0F,$0F,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:7 - y:2 + .db $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00 + .db $C0,$C0,$00,$00, $C1,$E1,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:8 - y:2 + .db $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:9 - y:2 + .db $01,$01,$00,$00, $19,$19,$00,$00, $39,$39,$00,$00, $71,$71,$00,$00 + .db $F3,$F3,$00,$00, $E7,$E7,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:10 - y:2 + .db $C7,$CF,$00,$00, $C7,$C7,$00,$00, $C3,$C3,$00,$00, $C3,$C3,$00,$00 + .db $E1,$E1,$00,$00, $E1,$F1,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:11 - y:2 + .db $80,$80,$00,$00, $80,$80,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00 + .db $C0,$E0,$00,$00, $F0,$F0,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:12 - y:2 + .db $0C,$0C,$00,$00, $08,$0C,$00,$00, $0E,$0E,$00,$00, $0E,$0E,$00,$00 + .db $07,$07,$00,$00, $05,$05,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:13 - y:2 + .db $1E,$1E,$00,$00, $0E,$1E,$00,$00, $1E,$1E,$00,$00, $3C,$3E,$00,$00 + .db $FC,$FC,$00,$00, $F0,$F8,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:14 - y:2 + .db $07,$07,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00 + .db $0F,$0F,$00,$00, $1F,$1F,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:15 - y:2 + .db $06,$06,$00,$00, $04,$06,$00,$00, $07,$07,$00,$00, $07,$07,$00,$00 + .db $83,$83,$00,$00, $C2,$C2,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:16 - y:2 + .db $0F,$0F,$00,$00, $07,$0F,$00,$00, $0F,$0F,$00,$00, $1F,$1F,$00,$00 + .db $FC,$FE,$00,$00, $F8,$FC,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:17 - y:2 + .db $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00 + .db $07,$07,$00,$00, $0F,$0F,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:18 - y:2 + .db $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00 + .db $C0,$C0,$00,$00, $C1,$E1,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:19 - y:2 + .db $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:20 - y:2 + .db $01,$01,$00,$00, $19,$19,$00,$00, $39,$39,$00,$00, $71,$71,$00,$00 + .db $F3,$F3,$00,$00, $E7,$E7,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:21 - y:2 + .db $9E,$9E,$00,$00, $9E,$9E,$00,$00, $9E,$9E,$00,$00, $9C,$9E,$00,$00 + .db $CC,$CC,$00,$00, $CD,$ED,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:22 - y:2 + .db $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00, $70,$70,$00,$00 + .db $F8,$F8,$00,$00, $F8,$FC,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + +tiles_boot_loader: + ; x:0 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $0F,$07,$00,$00 + .db $07,$0F,$00,$00, $0F,$0F,$00,$00, $1F,$0F,$00,$00, $1F,$0F,$00,$00, + ; x:6 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FB,$C0,$00,$00, + ; x:7 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $BB,$00,$00,$00, + ; x:8 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $BB,$00,$00,$00, + ; x:9 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FC,$FE,$00,$00 + .db $FE,$FF,$00,$00, $FF,$FE,$00,$00, $FF,$FE,$00,$00, $FE,$FE,$00,$00, + ; x:10 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $1F,$0F,$00,$00 + .db $3F,$1F,$00,$00, $3F,$3F,$00,$00, $7F,$3F,$00,$00, $7F,$3F,$00,$00, + ; x:11 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $EE,$00,$00,$00, + ; x:12 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $EE,$00,$00,$00, + ; x:13 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $EF,$03,$00,$00, + ; x:14 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $F0,$F8,$00,$00 + .db $F8,$FC,$00,$00, $FC,$F8,$00,$00, $FD,$F8,$00,$00, $F9,$F8,$00,$00, + ; x:15 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $7F,$3F,$00,$00 + .db $FF,$7F,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FC,$00,$00, + ; x:16 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $BB,$00,$00,$00, + ; x:17 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $BB,$00,$00,$00, + ; x:18 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $BF,$0F,$00,$00, + ; x:19 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $C3,$E1,$00,$00 + .db $E1,$F3,$00,$00, $F3,$E3,$00,$00, $F3,$E3,$00,$00, $E2,$E0,$00,$00, + ; x:20 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $DB,$00,$00,$00, + ; x:21 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $BF,$0F,$00,$00, + ; x:22 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $DD,$E0,$00,$00, + ; x:23 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $FF,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $DD,$00,$00,$00, + ; x:24 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $C0,$C0,$00,$00 + .db $80,$C0,$00,$00, $80,$C0,$00,$00, $C0,$80,$00,$00, $80,$00,$00,$00, + ; x:25 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:26 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:27 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:28 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:0 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:1 + .db $1F,$1F,$00,$00, $1F,$1F,$00,$00, $3F,$1F,$00,$00, $3F,$1F,$00,$00 + .db $3F,$3F,$00,$00, $3F,$3F,$00,$00, $7F,$3F,$00,$00, $3F,$7F,$00,$00, + ; x:6 - y:1 + .db $C0,$C0,$00,$00, $80,$C0,$00,$00, $80,$C0,$00,$00, $AA,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $DB,$00,$00,$00, + ; x:7 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $AA,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $6D,$00,$00,$00, + ; x:8 - y:1 + .db $00,$00,$00,$00, $00,$01,$00,$00, $00,$01,$00,$00, $AB,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $B7,$03,$00,$00, + ; x:9 - y:1 + .db $FC,$FE,$00,$00, $FC,$FE,$00,$00, $FE,$FC,$00,$00, $F8,$FC,$00,$00 + .db $F0,$F8,$00,$00, $F8,$F0,$00,$00, $F1,$F8,$00,$00, $F0,$F9,$00,$00, + ; x:10 - y:1 + .db $3F,$7F,$00,$00, $7E,$7F,$00,$00, $FE,$7F,$00,$00, $FE,$7E,$00,$00 + .db $FE,$FE,$00,$00, $FC,$FE,$00,$00, $FE,$FC,$00,$00, $FE,$FC,$00,$00, + ; x:11 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:12 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:13 - y:1 + .db $03,$03,$00,$00, $03,$07,$00,$00, $03,$07,$00,$00, $07,$07,$00,$00 + .db $0F,$07,$00,$00, $0F,$07,$00,$00, $0F,$0F,$00,$00, $0F,$0F,$00,$00, + ; x:14 - y:1 + .db $F0,$F9,$00,$00, $F1,$F9,$00,$00, $F3,$F1,$00,$00, $F3,$F1,$00,$00 + .db $E3,$F3,$00,$00, $F3,$E3,$00,$00, $E7,$E3,$00,$00, $E3,$E7,$00,$00, + ; x:15 - y:1 + .db $FC,$FC,$00,$00, $F8,$FC,$00,$00, $F8,$FC,$00,$00, $F8,$F8,$00,$00 + .db $F8,$F8,$00,$00, $F0,$F8,$00,$00, $F8,$F0,$00,$00, $F8,$F0,$00,$00, + ; x:16 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:17 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:18 - y:1 + .db $0F,$0F,$00,$00, $0F,$1F,$00,$00, $0F,$1F,$00,$00, $1F,$1F,$00,$00 + .db $3F,$1F,$00,$00, $3F,$1F,$00,$00, $3F,$3F,$00,$00, $3F,$3F,$00,$00, + ; x:19 - y:1 + .db $C0,$E0,$00,$00, $C0,$E0,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00 + .db $80,$C0,$00,$00, $C0,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, + ; x:20 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:21 - y:1 + .db $1F,$0F,$00,$00, $0F,$1F,$00,$00, $1F,$1F,$00,$00, $1F,$1F,$00,$00 + .db $1F,$3F,$00,$00, $1F,$3F,$00,$00, $3F,$3F,$00,$00, $7F,$3F,$00,$00, + ; x:22 - y:1 + .db $C0,$E0,$00,$00, $C0,$C0,$00,$00, $C0,$C0,$00,$00, $80,$C0,$00,$00 + .db $C0,$80,$00,$00, $80,$80,$00,$00, $00,$80,$00,$00, $00,$80,$00,$00, + ; x:23 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:24 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:25 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:26 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:27 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:28 - y:1 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:0 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $01,$00,$00,$00, $01,$00,$00,$00, $01,$00,$00,$00, + ; x:5 - y:2 + .db $7F,$7F,$00,$00, $7E,$7F,$00,$00, $7F,$FE,$00,$00, $7E,$FF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $6A,$95,$00,$00, + ; x:6 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $AA,$55,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $AA,$55,$00,$00, + ; x:7 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $AA,$55,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $D6,$29,$00,$00, + ; x:8 - y:2 + .db $07,$03,$00,$00, $03,$07,$00,$00, $07,$07,$00,$00, $AF,$57,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $D5,$2A,$00,$00, + ; x:9 - y:2 + .db $F0,$F9,$00,$00, $F9,$F1,$00,$00, $F1,$F3,$00,$00, $E1,$F3,$00,$00 + .db $E3,$F3,$00,$00, $E3,$E3,$00,$00, $E3,$C3,$00,$00, $00,$81,$00,$00, + ; x:10 - y:2 + .db $FC,$FC,$00,$00, $F8,$FC,$00,$00, $FC,$F8,$00,$00, $F9,$FE,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $AD,$52,$00,$00, + ; x:11 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $55,$AA,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $55,$AA,$00,$00, + ; x:12 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $55,$AA,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $56,$A9,$00,$00, + ; x:13 - y:2 + .db $1F,$0F,$00,$00, $0F,$1F,$00,$00, $1F,$1F,$00,$00, $5F,$BF,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $DB,$24,$00,$00, + ; x:14 - y:2 + .db $C3,$E7,$00,$00, $E7,$C7,$00,$00, $CF,$C7,$00,$00, $87,$CF,$00,$00 + .db $8F,$CF,$00,$00, $8F,$8F,$00,$00, $8F,$0F,$00,$00, $02,$05,$00,$00, + ; x:15 - y:2 + .db $F0,$F0,$00,$00, $E0,$F0,$00,$00, $F0,$E0,$00,$00, $E5,$FA,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $AA,$55,$00,$00, + ; x:16 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $55,$AA,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $AA,$55,$00,$00, + ; x:17 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $55,$AA,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $AD,$52,$00,$00, + ; x:18 - y:2 + .db $7F,$3F,$00,$00, $3F,$7F,$00,$00, $7F,$7F,$00,$00, $7E,$FF,$00,$00 + .db $FE,$FF,$00,$00, $FE,$FE,$00,$00, $FE,$FC,$00,$00, $B0,$48,$00,$00, + ; x:19 - y:2 + .db $00,$80,$00,$00, $80,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:20 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:21 - y:2 + .db $7F,$3F,$00,$00, $7F,$7F,$00,$00, $7E,$7F,$00,$00, $FE,$7F,$00,$00 + .db $FE,$7E,$00,$00, $FE,$FE,$00,$00, $FC,$FE,$00,$00, $58,$A4,$00,$00, + ; x:22 - y:2 + .db $80,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:23 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:24 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:25 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:26 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:27 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:28 - y:2 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:0 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:6 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:7 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:8 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:9 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:10 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:11 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:12 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:13 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:14 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:15 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:16 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:17 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:18 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:19 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:20 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:21 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:22 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:23 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:24 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:25 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:26 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:27 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:28 - y:3 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:0 - y:4 + .db $00,$01,$00,$00, $01,$01,$00,$00, $03,$01,$00,$00, $03,$01,$00,$00 + .db $01,$03,$00,$00, $03,$03,$00,$00, $07,$03,$00,$00, $07,$03,$00,$00, + ; x:1 - y:4 + .db $FC,$FC,$00,$00, $FC,$FC,$00,$00, $F8,$FC,$00,$00, $FC,$F8,$00,$00 + .db $F8,$F8,$00,$00, $F0,$F8,$00,$00, $F0,$F8,$00,$00, $F8,$F0,$00,$00, + ; x:2 - y:4 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:4 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:4 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:4 + .db $00,$03,$00,$00, $03,$07,$00,$00, $07,$07,$00,$00, $07,$0F,$00,$00 + .db $07,$0F,$00,$00, $0F,$0F,$00,$00, $1F,$0F,$00,$00, $1F,$0F,$00,$00, + ; x:6 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $FB,$E0,$00,$00, $C0,$E0,$00,$00, $C0,$E0,$00,$00, $C0,$C0,$00,$00, + ; x:7 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $BB,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:8 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $BB,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:9 - y:4 + .db $FF,$FE,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $FE,$7F,$00,$00, $FE,$7F,$00,$00, $7E,$FE,$00,$00, $FE,$FE,$00,$00, + ; x:10 - y:4 + .db $00,$00,$00,$00, $80,$00,$00,$00, $80,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $01,$00,$00,$00, $01,$01,$00,$00, + ; x:11 - y:4 + .db $0F,$07,$00,$00, $1F,$0F,$00,$00, $1F,$1F,$00,$00, $1F,$3F,$00,$00 + .db $3F,$7F,$00,$00, $FE,$7F,$00,$00, $FD,$FE,$00,$00, $FC,$FC,$00,$00, + ; x:12 - y:4 + .db $FC,$F8,$00,$00, $FC,$FC,$00,$00, $FE,$FC,$00,$00, $FE,$FE,$00,$00 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $7F,$FF,$00,$00, $FF,$7F,$00,$00, + ; x:13 - y:4 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $80,$00,$00,$00, $00,$80,$00,$00, $80,$C0,$00,$00, + ; x:14 - y:4 + .db $00,$00,$00,$00, $01,$00,$00,$00, $01,$00,$00,$00, $00,$01,$00,$00 + .db $01,$01,$00,$00, $03,$01,$00,$00, $03,$01,$00,$00, $03,$03,$00,$00, + ; x:15 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $FB,$FC,$00,$00, $F8,$FC,$00,$00, $FC,$F8,$00,$00, $F8,$F8,$00,$00, + ; x:16 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $77,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:17 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $77,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:18 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $6F,$1F,$00,$00, $0F,$1F,$00,$00, $1F,$1F,$00,$00, $3F,$1F,$00,$00, + ; x:19 - y:4 + .db $C0,$81,$00,$00, $C3,$E3,$00,$00, $C7,$E3,$00,$00, $C3,$E7,$00,$00 + .db $C7,$E7,$00,$00, $EF,$C7,$00,$00, $CF,$C7,$00,$00, $8F,$CF,$00,$00, + ; x:20 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $ED,$F0,$00,$00, $E0,$F0,$00,$00, $F0,$E0,$00,$00, $E0,$E0,$00,$00, + ; x:21 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $DD,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:22 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $DD,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:23 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $DD,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:24 - y:4 + .db $CF,$8F,$00,$00, $DF,$8F,$00,$00, $9F,$8F,$00,$00, $0F,$9F,$00,$00 + .db $9F,$1F,$00,$00, $3F,$1F,$00,$00, $3F,$1F,$00,$00, $3F,$3F,$00,$00, + ; x:25 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $BB,$C0,$00,$00, $80,$C0,$00,$00, $C0,$80,$00,$00, $80,$80,$00,$00, + ; x:26 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $BB,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:27 - y:4 + .db $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $BA,$01,$00,$00, $00,$01,$00,$00, $01,$01,$00,$00, $03,$01,$00,$00, + ; x:28 - y:4 + .db $FA,$FC,$00,$00, $FE,$FE,$00,$00, $FE,$FE,$00,$00, $FC,$FE,$00,$00 + .db $FC,$FE,$00,$00, $FE,$FC,$00,$00, $FC,$FC,$00,$00, $F8,$FC,$00,$00, + ; x:0 - y:5 + .db $07,$07,$00,$00, $07,$07,$00,$00, $0F,$07,$00,$00, $0F,$07,$00,$00 + .db $0F,$0F,$00,$00, $0F,$0F,$00,$00, $1F,$0F,$00,$00, $0F,$1F,$00,$00, + ; x:1 - y:5 + .db $F0,$F0,$00,$00, $E0,$F0,$00,$00, $F0,$E0,$00,$00, $F0,$E0,$00,$00 + .db $E0,$E0,$00,$00, $C0,$E0,$00,$00, $E0,$C0,$00,$00, $C0,$C0,$00,$00, + ; x:2 - y:5 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:5 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:5 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:5 + .db $1F,$1F,$00,$00, $1F,$1F,$00,$00, $3F,$1F,$00,$00, $3F,$1F,$00,$00 + .db $3F,$3F,$00,$00, $3F,$3F,$00,$00, $7F,$3F,$00,$00, $3F,$7F,$00,$00, + ; x:6 - y:5 + .db $C0,$C0,$00,$00, $80,$C0,$00,$00, $80,$C0,$00,$00, $80,$80,$00,$00 + .db $80,$80,$00,$00, $00,$80,$00,$00, $80,$00,$00,$00, $00,$00,$00,$00, + ; x:7 - y:5 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:8 - y:5 + .db $01,$00,$00,$00, $01,$00,$00,$00, $01,$01,$00,$00, $01,$01,$00,$00 + .db $03,$01,$00,$00, $03,$01,$00,$00, $03,$03,$00,$00, $03,$03,$00,$00, + ; x:9 - y:5 + .db $FC,$FE,$00,$00, $FE,$FC,$00,$00, $FE,$FC,$00,$00, $FC,$FC,$00,$00 + .db $F8,$FC,$00,$00, $FC,$F8,$00,$00, $F8,$F8,$00,$00, $F8,$F8,$00,$00, + ; x:10 - y:5 + .db $03,$03,$00,$00, $07,$03,$00,$00, $0F,$07,$00,$00, $1F,$0F,$00,$00 + .db $1F,$1F,$00,$00, $3F,$3F,$00,$00, $7F,$3F,$00,$00, $FF,$7E,$00,$00, + ; x:11 - y:5 + .db $FC,$F8,$00,$00, $F8,$F0,$00,$00, $E0,$F0,$00,$00, $C0,$E0,$00,$00 + .db $DA,$CF,$00,$00, $BF,$9F,$00,$00, $9F,$3F,$00,$00, $3F,$7F,$00,$00, + ; x:12 - y:5 + .db $7F,$3F,$00,$00, $3F,$3F,$00,$00, $3F,$1F,$00,$00, $1F,$1F,$00,$00 + .db $AF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, + ; x:13 - y:5 + .db $C0,$C0,$00,$00, $E0,$E0,$00,$00, $F0,$E0,$00,$00, $E0,$F0,$00,$00 + .db $F0,$F8,$00,$00, $F8,$F8,$00,$00, $FC,$FC,$00,$00, $FE,$FC,$00,$00, + ; x:14 - y:5 + .db $03,$03,$00,$00, $07,$03,$00,$00, $07,$03,$00,$00, $07,$07,$00,$00 + .db $07,$07,$00,$00, $0F,$07,$00,$00, $07,$0F,$00,$00, $0F,$0F,$00,$00, + ; x:15 - y:5 + .db $F0,$F8,$00,$00, $F0,$F8,$00,$00, $F0,$F0,$00,$00, $F0,$F0,$00,$00 + .db $E0,$F0,$00,$00, $F0,$E0,$00,$00, $E0,$E0,$00,$00, $E0,$E0,$00,$00, + ; x:16 - y:5 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:17 - y:5 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:18 - y:5 + .db $3F,$1F,$00,$00, $3F,$3F,$00,$00, $3F,$3F,$00,$00, $7F,$3F,$00,$00 + .db $7F,$3F,$00,$00, $7F,$7F,$00,$00, $7F,$7F,$00,$00, $FE,$7F,$00,$00, + ; x:19 - y:5 + .db $8F,$CF,$00,$00, $9F,$8F,$00,$00, $9F,$8F,$00,$00, $1F,$9F,$00,$00 + .db $9F,$1F,$00,$00, $BF,$1F,$00,$00, $3F,$1F,$00,$00, $3F,$3F,$00,$00, + ; x:20 - y:5 + .db $EA,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $B6,$C0,$00,$00, $C0,$80,$00,$00, $80,$80,$00,$00, $80,$80,$00,$00, + ; x:21 - y:5 + .db $AA,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $DB,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:22 - y:5 + .db $AA,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $6D,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:23 - y:5 + .db $80,$E0,$00,$00, $E0,$C0,$00,$00, $E0,$C0,$00,$00, $C0,$C0,$00,$00 + .db $80,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:24 - y:5 + .db $3F,$3F,$00,$00, $7F,$3F,$00,$00, $7F,$3F,$00,$00, $7F,$7F,$00,$00 + .db $7E,$7F,$00,$00, $FF,$7E,$00,$00, $7E,$FE,$00,$00, $FE,$FE,$00,$00, + ; x:25 - y:5 + .db $0A,$87,$00,$00, $07,$83,$00,$00, $01,$01,$00,$00, $01,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:26 - y:5 + .db $AA,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $3F,$7F,$00,$00, $3F,$3F,$00,$00, $0F,$1F,$00,$00, $07,$0F,$00,$00, + ; x:27 - y:5 + .db $AB,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $6D,$80,$00,$00, $80,$C0,$00,$00, $F0,$E0,$00,$00, $F8,$F0,$00,$00, + ; x:28 - y:5 + .db $F8,$FC,$00,$00, $FC,$F8,$00,$00, $F0,$F8,$00,$00, $F8,$F0,$00,$00 + .db $40,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:0 - y:6 + .db $1F,$1F,$00,$00, $1F,$1F,$00,$00, $3F,$1F,$00,$00, $3F,$1F,$00,$00 + .db $1A,$05,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:6 + .db $D5,$EA,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $AA,$55,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:6 + .db $55,$AA,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $D6,$29,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:3 - y:6 + .db $55,$AA,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $DB,$24,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:4 - y:6 + .db $56,$A8,$00,$00, $FC,$FE,$00,$00, $FC,$FC,$00,$00, $FC,$FC,$00,$00 + .db $58,$A4,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:5 - y:6 + .db $7F,$7F,$00,$00, $7F,$7F,$00,$00, $FF,$7F,$00,$00, $FF,$7F,$00,$00 + .db $6D,$12,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:6 - y:6 + .db $55,$AA,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $AA,$55,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:7 - y:6 + .db $55,$AA,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $AA,$55,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:8 - y:6 + .db $53,$AF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $D5,$2A,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:9 - y:6 + .db $F9,$F0,$00,$00, $F9,$F1,$00,$00, $F1,$F3,$00,$00, $E3,$E7,$00,$00 + .db $45,$82,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:10 - y:6 + .db $FC,$FE,$00,$00, $F8,$FC,$00,$00, $FC,$F8,$00,$00, $F0,$F0,$00,$00 + .db $B0,$40,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:11 - y:6 + .db $56,$29,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:12 - y:6 + .db $B5,$4B,$00,$00, $01,$01,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:13 - y:6 + .db $FC,$FE,$00,$00, $FE,$FF,$00,$00, $FF,$FF,$00,$00, $7F,$FF,$00,$00 + .db $5A,$25,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:14 - y:6 + .db $1F,$0F,$00,$00, $1F,$0F,$00,$00, $0F,$1F,$00,$00, $1F,$9F,$00,$00 + .db $B5,$0A,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:15 - y:6 + .db $CA,$F5,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $55,$AA,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:16 - y:6 + .db $AA,$55,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $55,$AA,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:17 - y:6 + .db $AA,$55,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $AA,$55,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:18 - y:6 + .db $7F,$FE,$00,$00, $FE,$FE,$00,$00, $FE,$FC,$00,$00, $FC,$F8,$00,$00 + .db $B0,$40,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:19 - y:6 + .db $3F,$3F,$00,$00, $7F,$3F,$00,$00, $3F,$7F,$00,$00, $3F,$7F,$00,$00 + .db $35,$0A,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:20 - y:6 + .db $2A,$D5,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $55,$AA,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:21 - y:6 + .db $AA,$55,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $5B,$A4,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:22 - y:6 + .db $AA,$55,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00, $FF,$FF,$00,$00 + .db $5A,$A5,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:23 - y:6 + .db $AD,$50,$00,$00, $FD,$F8,$00,$00, $F8,$F9,$00,$00, $F9,$F9,$00,$00 + .db $D8,$21,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:24 - y:6 + .db $FC,$FE,$00,$00, $FE,$FC,$00,$00, $FC,$FC,$00,$00, $F8,$FC,$00,$00 + .db $AC,$50,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:25 - y:6 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:26 - y:6 + .db $07,$03,$00,$00, $03,$01,$00,$00, $01,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:27 - y:6 + .db $FC,$F8,$00,$00, $FC,$FE,$00,$00, $FE,$FF,$00,$00, $FF,$7F,$00,$00 + .db $2D,$12,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:28 - y:6 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $80,$80,$00,$00 + .db $C0,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + +tiles_smspower: + ; x:0 - y:0 + .db $3C,$3C,$00,$00, $42,$42,$00,$00, $99,$99,$00,$00, $A1,$A1,$00,$00 + .db $A1,$A1,$00,$00, $99,$99,$00,$00, $42,$42,$00,$00, $3C,$3C,$00,$00, + ; x:1 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, + ; x:2 - y:0 + .db $3E,$3E,$00,$00, $7E,$7E,$00,$00, $70,$70,$00,$00, $7C,$7C,$00,$00 + .db $3E,$3E,$00,$00, $0E,$0E,$00,$00, $7E,$7E,$00,$00, $7C,$7C,$00,$00, + ; x:3 - y:0 + .db $C6,$C6,$00,$00, $EE,$EE,$00,$00, $FE,$FE,$00,$00, $FE,$FE,$00,$00 + .db $D6,$D6,$00,$00, $C6,$C6,$00,$00, $C6,$C6,$00,$00, $C6,$C6,$00,$00, + ; x:4 - y:0 + .db $7C,$7C,$00,$00, $FC,$FC,$00,$00, $E0,$E0,$00,$00, $F8,$F8,$00,$00 + .db $7C,$7C,$00,$00, $1C,$1C,$00,$00, $FC,$FC,$00,$00, $F8,$F8,$00,$00, + ; x:5 - y:0 + .db $3C,$3C,$00,$00, $7E,$7E,$00,$00, $66,$66,$00,$00, $7E,$7E,$00,$00 + .db $7C,$7C,$00,$00, $60,$60,$00,$00, $60,$60,$00,$00, $60,$60,$00,$00, + ; x:6 - y:0 + .db $79,$79,$00,$00, $FD,$FD,$00,$00, $CD,$CD,$00,$00, $CD,$CD,$00,$00 + .db $CD,$CD,$00,$00, $CD,$CD,$00,$00, $FD,$FD,$00,$00, $78,$78,$00,$00, + ; x:7 - y:0 + .db $8C,$8C,$00,$00, $8D,$8D,$00,$00, $8D,$8D,$00,$00, $8D,$8D,$00,$00 + .db $AD,$AD,$00,$00, $FD,$FD,$00,$00, $FD,$FD,$00,$00, $F8,$F8,$00,$00, + ; x:8 - y:0 + .db $F9,$F9,$00,$00, $FB,$FB,$00,$00, $83,$83,$00,$00, $E3,$E3,$00,$00 + .db $E3,$E3,$00,$00, $83,$83,$00,$00, $FB,$FB,$00,$00, $FB,$FB,$00,$00, + ; x:9 - y:0 + .db $E0,$E0,$00,$00, $F0,$F0,$00,$00, $30,$30,$00,$00, $F0,$F0,$00,$00 + .db $E0,$E0,$00,$00, $30,$30,$00,$00, $30,$30,$00,$00, $18,$18,$00,$00, + ; x:10 - y:0 + .db $0F,$0F,$00,$00, $18,$18,$00,$00, $01,$01,$00,$00, $07,$07,$00,$00 + .db $0F,$0F,$00,$00, $1C,$1C,$00,$00, $1F,$1F,$00,$00, $00,$00,$00,$00, + ; x:11 - y:0 + .db $87,$87,$00,$00, $C9,$C9,$00,$00, $D8,$D8,$00,$00, $98,$98,$00,$00 + .db $18,$18,$00,$00, $0C,$0C,$00,$00, $C7,$C7,$00,$00, $00,$00,$00,$00, + ; x:12 - y:0 + .db $07,$07,$00,$00, $89,$89,$00,$00, $D8,$D8,$00,$00, $D8,$D8,$00,$00 + .db $D8,$D8,$00,$00, $8C,$8C,$00,$00, $07,$07,$00,$00, $00,$00,$00,$00, + ; x:13 - y:0 + .db $06,$06,$00,$00, $8E,$8E,$00,$00, $C6,$C6,$00,$00, $C6,$C6,$00,$00 + .db $C6,$C6,$00,$00, $86,$86,$00,$00, $1F,$1F,$00,$00, $00,$00,$00,$00, + +tiles_choicesbox: + ; x:0 - y:0 + .db $FF,$FF,$FF,$00, $FF,$80,$80,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, + ; x:1 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:2 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:3 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:4 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:5 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:6 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:7 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:8 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:9 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:10 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:11 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:12 - y:0 + .db $FF,$FF,$FF,$00, $FF,$00,$00,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:13 - y:0 + .db $FF,$FE,$FE,$00, $FF,$02,$02,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, + ; x:0 - y:1 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, + ; x:1 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:2 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:3 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $0F,$FF,$FF,$00, $1F,$F8,$F8,$00 + .db $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, + ; x:4 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $8F,$FF,$FF,$00, $DF,$F8,$F8,$00 + .db $7C,$9B,$9B,$00, $1F,$FF,$FF,$00, $1F,$F8,$F8,$00, $DC,$FB,$FB,$00, + ; x:5 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $9F,$FF,$FF,$00, $DF,$F8,$F8,$00 + .db $FC,$DB,$DB,$00, $FF,$DF,$DF,$00, $FF,$D8,$D8,$00, $FC,$DB,$DB,$00, + ; x:6 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $9F,$FF,$FF,$00, $CF,$F6,$F6,$00 + .db $E7,$DE,$DE,$00, $E7,$9E,$9E,$00, $C7,$FE,$FE,$00, $E7,$DE,$DE,$00, + ; x:7 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $9F,$FF,$FF,$00, $DF,$38,$38,$00 + .db $1C,$FB,$FB,$00, $1F,$FF,$FF,$00, $1F,$F8,$F8,$00, $1C,$FB,$FB,$00, + ; x:8 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $8F,$FF,$FF,$00, $C7,$FE,$FE,$00 + .db $E7,$DE,$DE,$00, $E7,$9E,$9E,$00, $C7,$FE,$FE,$00, $E7,$DE,$DE,$00, + ; x:9 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $1F,$FF,$FF,$00, $9F,$79,$79,$00 + .db $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, $1D,$FB,$FB,$00, + ; x:10 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $0F,$FF,$FF,$00, $9F,$F8,$F8,$00 + .db $DC,$FB,$FB,$00, $FF,$DB,$DB,$00, $FF,$D8,$D8,$00, $FC,$9B,$9B,$00, + ; x:11 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $9F,$FF,$FF,$00, $DF,$F8,$F8,$00 + .db $7C,$9B,$9B,$00, $DF,$FF,$FF,$00, $FF,$D8,$D8,$00, $FC,$DB,$DB,$00, + ; x:12 - y:1 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $C0,$FF,$FF,$00, $C0,$3F,$3F,$00 + .db $00,$FF,$FF,$00, $80,$FF,$FF,$00, $C0,$3F,$3F,$00, $00,$FF,$FF,$00, + ; x:13 - y:1 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, + ; x:0 - y:2 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, + ; x:1 - y:2 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:2 - y:2 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:3 - y:2 + .db $0F,$FF,$FF,$00, $07,$F8,$F8,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:4 - y:2 + .db $FC,$9B,$9B,$00, $CC,$33,$33,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:5 - y:2 + .db $FC,$DB,$DB,$00, $6C,$93,$93,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:6 - y:2 + .db $E7,$DE,$DE,$00, $63,$9C,$9C,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:7 - y:2 + .db $1C,$FB,$FB,$00, $0C,$F3,$F3,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:8 - y:2 + .db $EF,$DF,$DF,$00, $67,$98,$98,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:9 - y:2 + .db $1F,$FF,$FF,$00, $8F,$70,$70,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:10 - y:2 + .db $CF,$3F,$3F,$00, $87,$78,$78,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:11 - y:2 + .db $FF,$9F,$9F,$00, $CF,$30,$30,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:12 - y:2 + .db $C0,$FF,$FF,$00, $E0,$1F,$1F,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:13 - y:2 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, + ; x:0 - y:3 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, + ; x:1 - y:3 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:2 - y:3 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:3 - y:3 + .db $0F,$FF,$FF,$00, $1F,$F8,$F8,$00, $1C,$FB,$FB,$00, $1C,$FB,$FB,$00 + .db $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, $0F,$FF,$FF,$00, $07,$F8,$F8,$00, + ; x:4 - y:3 + .db $8F,$FF,$FF,$00, $DF,$F8,$F8,$00, $7C,$9B,$9B,$00, $1F,$FF,$FF,$00 + .db $1F,$F8,$F8,$00, $DC,$FB,$FB,$00, $FC,$9B,$9B,$00, $CC,$33,$33,$00, + ; x:5 - y:3 + .db $9F,$FF,$FF,$00, $DF,$F8,$F8,$00, $FC,$DB,$DB,$00, $FF,$DF,$DF,$00 + .db $FF,$D8,$D8,$00, $FC,$DB,$DB,$00, $FC,$DB,$DB,$00, $6C,$93,$93,$00, + ; x:6 - y:3 + .db $9F,$FF,$FF,$00, $DF,$F9,$F9,$00, $FC,$DB,$DB,$00, $FC,$9B,$9B,$00 + .db $DC,$FB,$FB,$00, $FD,$DB,$DB,$00, $FF,$DF,$DF,$00, $6F,$90,$90,$00, + ; x:7 - y:3 + .db $00,$FF,$FF,$00, $80,$FF,$FF,$00, $C0,$FF,$FF,$00, $E0,$DF,$DF,$00 + .db $E0,$DF,$DF,$00, $E0,$9F,$9F,$00, $C0,$3F,$3F,$00, $80,$7F,$7F,$00, + ; x:8 - y:3 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:9 - y:3 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:10 - y:3 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:11 - y:3 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:12 - y:3 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:13 - y:3 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, + ; x:0 - y:4 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, + ; x:1 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:2 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:3 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $1F,$FF,$FF,$00, $1F,$F8,$F8,$00, + ; x:4 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $D8,$FF,$FF,$00, $DC,$3B,$3B,$00, + ; x:5 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $DF,$FF,$FF,$00, $FF,$D8,$D8,$00, + ; x:6 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $8F,$FF,$FF,$00, $DF,$F8,$F8,$00, + ; x:7 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $98,$FF,$FF,$00, $DC,$FF,$FF,$00, + ; x:8 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $CF,$FF,$FF,$00, $FF,$D8,$D8,$00, + ; x:9 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $8F,$FF,$FF,$00, $C7,$FE,$FE,$00, + ; x:10 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $0F,$FF,$FF,$00, $9F,$78,$78,$00, + ; x:11 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $98,$FF,$FF,$00, $DC,$FF,$FF,$00, + ; x:12 - y:4 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $C0,$FF,$FF,$00, $E0,$DF,$DF,$00, + ; x:13 - y:4 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, + ; x:0 - y:5 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, + ; x:1 - y:5 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:2 - y:5 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:3 - y:5 + .db $1C,$FB,$FB,$00, $1F,$FF,$FF,$00, $1F,$F8,$F8,$00, $1C,$FB,$FB,$00 + .db $1F,$FF,$FF,$00, $00,$F0,$F0,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:4 - y:5 + .db $0D,$FF,$FF,$00, $87,$FF,$FF,$00, $CF,$3D,$3D,$00, $1E,$F9,$F9,$00 + .db $DC,$FB,$FB,$00, $0C,$13,$13,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:5 - y:5 + .db $FC,$9B,$9B,$00, $FC,$1B,$1B,$00, $DF,$BF,$BF,$00, $FF,$D8,$D8,$00 + .db $FC,$DB,$DB,$00, $6C,$93,$93,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:6 - y:5 + .db $FC,$DB,$DB,$00, $FF,$DF,$DF,$00, $FF,$98,$98,$00, $DC,$3B,$3B,$00 + .db $1C,$FB,$FB,$00, $0C,$F3,$F3,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:7 - y:5 + .db $FE,$DF,$DF,$00, $FF,$DB,$DB,$00, $FD,$DB,$DB,$00, $FC,$DB,$DB,$00 + .db $FC,$DB,$DB,$00, $6C,$93,$93,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:8 - y:5 + .db $FC,$DB,$DB,$00, $EF,$DF,$DF,$00, $E7,$D8,$D8,$00, $F8,$DF,$DF,$00 + .db $EF,$DF,$DF,$00, $67,$98,$98,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:9 - y:5 + .db $67,$9E,$9E,$00, $87,$FE,$FE,$00, $C7,$FE,$FE,$00, $E7,$DE,$DE,$00 + .db $EF,$9F,$9F,$00, $C7,$38,$38,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:10 - y:5 + .db $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, $1C,$FB,$FB,$00, $1C,$FB,$FB,$00 + .db $0F,$FF,$FF,$00, $87,$78,$78,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:11 - y:5 + .db $FE,$DF,$DF,$00, $FF,$DB,$DB,$00, $FD,$DB,$DB,$00, $FC,$DB,$DB,$00 + .db $FC,$9B,$9B,$00, $CC,$33,$33,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:12 - y:5 + .db $E0,$DF,$DF,$00, $E0,$DF,$DF,$00, $E0,$DF,$DF,$00, $E0,$DF,$DF,$00 + .db $E0,$DF,$DF,$00, $60,$9F,$9F,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, + ; x:13 - y:5 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, + ; x:0 - y:6 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $C0,$BF,$BF,$00 + .db $C0,$BF,$BF,$00, $C0,$BF,$BF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:1 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:2 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:3 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:4 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:5 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:6 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:7 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:8 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:9 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:10 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:11 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:12 - y:6 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00, $00,$FF,$FF,$00 + .db $00,$FF,$FF,$00, $00,$FF,$FF,$00, $FF,$FF,$FF,$00, $FF,$00,$00,$00, + ; x:13 - y:6 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00, $03,$FE,$FE,$00 + .db $03,$FE,$FE,$00, $03,$FE,$FE,$00, $FF,$FE,$FE,$00, $FF,$00,$00,$00, + +padding: + ; x:0 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $09,$00,$00,$00, $00,$00,$00,$00 + .db $00,$00,$0F,$00, $00,$00,$0F,$00, $00,$00,$00,$00, $00,$00,$00,$00, + +tiles_hand: + ; x:0 - y:0 + .db $00,$00,$00,$00, $0F,$00,$00,$00, $D9,$09,$06,$00, $B3,$53,$0C,$00 + .db $E0,$20,$5F,$00, $E0,$20,$5F,$00, $E0,$20,$5F,$00, $E0,$20,$5F,$00, + ; x:0 - y:1 + .db $E0,$20,$5F,$00, $E0,$20,$5F,$00, $F0,$30,$4F,$00, $FF,$3F,$40,$00 + .db $FF,$3F,$40,$00, $BF,$5F,$00,$00, $DF,$00,$00,$00, $00,$00,$00,$00, + ; x:1 - y:0 + .db $00,$00,$00,$00, $00,$00,$00,$00, $80,$00,$00,$00, $FC,$80,$00,$00 + .db $02,$00,$FC,$00, $01,$00,$FE,$00, $03,$02,$FC,$00, $7E,$7C,$80,$00, + ; x:1 - y:1 + .db $7C,$60,$80,$00, $70,$60,$80,$00, $F0,$E0,$00,$00, $E0,$C0,$00,$00 + .db $E0,$C0,$00,$00, $C0,$80,$00,$00, $80,$00,$00,$00, $00,$00,$00,$00, + diff --git a/SMSBootLoader/tiles.pcx b/SMSBootLoader/tiles.pcx new file mode 100644 index 0000000..e5a3904 Binary files /dev/null and b/SMSBootLoader/tiles.pcx differ diff --git a/SMSBootLoader/vdp.asm b/SMSBootLoader/vdp.asm new file mode 100644 index 0000000..0379c04 --- /dev/null +++ b/SMSBootLoader/vdp.asm @@ -0,0 +1,174 @@ +;---------------------------------------------------------------------------- +; Sega Master System & Game Gear - VDP functions +; by Omar Cornut (Bock) +; Started on February 2001 +; Last update: 10 November 2001 +;---------------------------------------------------------------------------- + +; VDP_INIT() ---------------------------------------------------------------- +; Initialize default VDP registers, clear VRAM, clear sprites +;---------------------------------------------------------------------------- +; no parameters +;---------------------------------------------------------------------------- +vdp_init: + in a, (VDP_STATUS) ; Read VDP status once + ld hl, vdp_init_table ; before using VDP + ld b, 11*2 ; + ld c, VDP_ADDR ; Then upload default + otir ; registers. +; VDP_CLEAR() --------------------------------------------------------------- +; Clear VRAM, clear sprites +;---------------------------------------------------------------------------- +; no parameters +;---------------------------------------------------------------------------- +vdp_clear: ; + ld de, $0000 ; Clear VRAM + rst $18 ; Set VDP address to DE + ld bc, VRAM_SIZE ; +vdp_clear_loop: ; + xor a + out (VDP_DATA), a ; + dec bc ; + ld a, b ; + or c ; + jr nz, vdp_clear_loop ; +; VDP_DISABLE_SPRITES() ----------------------------------------------------- +; Clear sprites (by setting the first sprite position to 208) +;---------------------------------------------------------------------------- +; no parameters +;---------------------------------------------------------------------------- +vdp_disable_sprites: + ld de, VRAM_SPR_MAP ; Disable sprites + rst $18 ; + ld a, VRAM_SPR_LAST ; + out (VDP_DATA), a ; + ret +;---------------------------------------------------------------------------- +vdp_init_table: +.db $16, $80, $80, $81, $FF, $82, $FF, $83, $FF, $84 +.db $FF, $85, $FF, $86, $00, $87, $00, $88, $00, $89 +.db $00, $8A +;---------------------------------------------------------------------------- + +; VDP_FRAME() / VDP_FRAME_ONE() --------------------------------------------- +; Wait for one or more frame to pass +;---------------------------------------------------------------------------- +; b = number of frames to wait for +;---------------------------------------------------------------------------- +vdp_frame_one: + ld b, 1 +vdp_frame: + xor a + ld (VAR_frame_cnt), a +vdp_frame_loop: + ld a, (VAR_frame_cnt) + and $FF + jr z, vdp_frame_loop + djnz vdp_frame + ret +;---------------------------------------------------------------------------- + +; VDP_LOAD_DATA() ----------------------------------------------------------- +; Load data from given source to video memory +;---------------------------------------------------------------------------- +; bc = number of bytes +; hl = source in ROM/RAM +; de = destination in VRAM +;---------------------------------------------------------------------------- +vdp_load_data: + push hl + rst $18 ; Set VDP address to DE +vdp_load_data_loop: + ld a, (hl) + inc hl + out (VDP_DATA), a + dec bc + ld a, b + or c + jr nz, vdp_load_data_loop + pop hl + ret +;---------------------------------------------------------------------------- + +; VDP_BG_PUTIMAGE() --------------------------------------------------------- +; Put image to background tile map +;---------------------------------------------------------------------------- +; b = image width (in tile) +; c = image height (in tile) +; d = starting tile number +; e = attribute (automatically set bit 0 when d overflow) +; hl = VRAM address +;---------------------------------------------------------------------------- +vdp_bg_putimage: + push bc + push de + push hl + +vdp_bg_putimage_y: + rst $28 ; Set VDP address to HL + push bc +vdp_bg_putimage_x: + ld a, d + out (VDP_DATA), a + push ix + pop ix + ld a, e + out (VDP_DATA), a + inc d + jr nz, vdp_bg_putimage_attr_end + set 0, e +vdp_bg_putimage_attr_end: + djnz vdp_bg_putimage_x + ld bc, 32*2 + add hl, bc + pop bc + dec c + jr nz, vdp_bg_putimage_y + + pop hl + pop de + pop bc + ret +;---------------------------------------------------------------------------- + +; VDP_SET_PAL() ------------------------------------------------------------- +; Set palette +;---------------------------------------------------------------------------- +; a = starting color +; b = number of colors +; hl = data source +;---------------------------------------------------------------------------- +vdp_set_pal: + out (VDP_ADDR), a ; + ld a, %11000000 ; + out (VDP_ADDR), a ; +vdp_set_pal_loop: ; + ld a, (hl) ; + out (VDP_DATA), a ; + inc hl ; + djnz vdp_set_pal_loop ; + ret ; +;---------------------------------------------------------------------------- + +; VDP_FADE() ---------------------------------------------------------------- +; Fade palette +;---------------------------------------------------------------------------- +; hl = address of fade data +; a = starting affected color +; b = number of colors per step +; c = number of steps +; d = tempo between steps +;---------------------------------------------------------------------------- +vdp_fade: + push af + push bc + call vdp_set_pal + ld b, d + call vdp_frame + pop bc + pop af + dec c + jr nz, vdp_fade + ret +;---------------------------------------------------------------------------- + diff --git a/mboot.mif b/mboot.mif index 996a83d..379418d 100644 --- a/mboot.mif +++ b/mboot.mif @@ -14,7 +14,7 @@ CONTENT BEGIN 0060: 00 00 00 00 00 00 ED 4D 77 73 6F 6C 74 79 73 00 4D 69 53 54 20 42 6F 6F; 0078: 74 20 4C 6F 61 64 65 72 00 76 30 2E 39 31 00 DB BF 21 AA 00 06 16 0E BF; 0090: ED B3 11 00 00 DF 01 00 40 AF D3 BE 0B 78 B1 20 F8 11 00 3F DF 3E D0 D3; -00A8: BE C9 16 80 80 81 FF 82 FF 83 FF 84 FF 85 FF 86 00 87 00 88 00 89 FF 8A; +00A8: BE C9 16 80 80 81 FF 82 FF 83 FF 84 FF 85 FF 86 00 87 00 88 00 89 00 8A; 00C0: 06 01 AF 32 00 D0 3A 00 D0 E6 FF 28 F9 10 F3 C9 E5 DF 7E 23 D3 BE 0B 78; 00D8: B1 20 F7 E1 C9 C5 D5 E5 EF C5 7A D3 BE DD E5 DD E1 7B D3 BE 14 20 02 CB; 00F0: C3 10 EF 01 40 00 09 C1 0D 20 E5 E1 D1 C1 C9 D3 BF 3E C0 D3 BF 7E D3 BE; @@ -597,10 +597,10 @@ CONTENT BEGIN 36D0: 00 06 07 1B 0F 19 3F 00 00 00 00 00 00 00 00 CD 87 00 3E 00 06 05 21 BB; 36E8: 36 CD FF 00 01 C0 35 21 1B 01 11 20 00 CD D0 00 06 0A 0E 04 16 01 1E 00; 3700: 21 54 38 CD DD 00 06 17 0E 03 16 29 1E 00 21 88 39 CD DD 00 06 1D 0E 07; -3718: 16 6E 1E 00 21 C2 3A CD DD 00 CD DD 00 11 04 88 D7 11 E2 81 D7 AF 06 05; +3718: 16 6E 1E 00 21 C2 3A CD DD 00 CD DD 00 11 00 88 D7 11 E2 81 D7 AF 06 05; 3730: 0E 04 16 0A 21 BB 36 FB CD 0C 01 F3 11 C2 81 D7 3E 10 06 10 21 CF 36 CD; 3748: FF 00 3E 3E 32 00 C7 3E B8 32 01 C7 3E D3 32 02 C7 3E 3E 32 03 C7 3E C3; -3760: 32 04 C7 3E 00 32 05 C7 3E 00 32 06 C7 C3 00 C7 00 00 00 00 00 00 00 00; +3760: 32 04 C7 3E 00 32 05 C7 32 06 C7 C3 00 C7 00 00 00 00 00 00 00 00 00 00; 3778: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00; 3790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00; 37A8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00;