gb-tarot/00TheFool.inc

508 lines
16 KiB
PHP

; this is a card struct
; starts with five length-prefixed strings in memory
; then a 16bit value of the offset between the tile set and the end
; then the 16bit address of the tile set
; then a 16bit value of the offset between tile map and end
; then the 16bit address of the tile map
TheFool:
def Card_Offset_title equ @-TheFool
db 10, "THE FOOL "
db 10, " "
def Card_Offset_description equ @-TheFool
db 9, "beginning"
db 9, "leap "
db 9, "naivete "
def Card_Offset_tilemap equ @-TheFool
dw .BackgroundCopyEnd - .BackgroundCopy
dw .BackgroundCopy
def Card_Offset_keytiles equ @-TheFool
dw .KeyArtTilesEnd - .KeyArtTiles
dw .KeyArtTiles
def Card_Offset_spritetiles equ @-TheFool
dw .SpriteTilesEnd - .SpriteTiles
dw .SpriteTiles
def Card_Offset_functions equ @-TheFool
dw .fInit
dw .fUpdate
dw .fDraw
dw .fPrintPrep
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS: timer for dog
ld [hl+], a
ld [hl+], a ; CVS+2: frame for dog
ld [hl+], a ; CVS+3: timer for zero
ld [hl+], a
ld [hl+], a ; CVS+5: frame for zero
ld [hl+], a ; CVS+6: timer for cloud 1
ld [hl+], a
ld [hl+], a ; CVS+8: frame for cloud 1
ld [hl+], a ; CVS+9: timer for cloud 2
ld [hl+], a
ld [hl+], a ; CVS+11: frame for cloud 2
ld [hl+], a ; CVS+12: timer for cloud 3
ld [hl+], a
ld [hl+], a ; CVS+14: frame for cloud 3
ld hl, .doggie1
ld de, MY_OAM
ld b, 134
ld c, 34
ld a, $23
; takkes similar args as copytilestomapunsafe but builds several sprites
; instead.
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
call BuildMetaSprite
ret ; we're getting rid of everything but the doggie
ld hl, .zero
ld de, MY_OAM + 6*4 ; we've already written six sprites for the doggie, 4 bytes each
ld bc, $100*26+41
ld a, $22 ; two by two
call BuildMetaSprite
; set up the palette for the clouds
ld hl, rOBP1
ld [hl], %11_10_01_00
ld hl, .cloud1
; six sprites for the doggie, four for the zero, 4 bytes each
ld de, MY_OAM + 10*4
ld bc, 78*$100 + 15
ld a, $13 ; one by three
call BuildMetaSprite
; set those three sprites to use OBP palette 1
ld hl, MY_OAM + 10*4 + 3
set 4, [hl]
ld hl, MY_OAM + 11*4 + 3
set 4, [hl]
ld hl, MY_OAM + 12*4 + 3
set 4, [hl]
ld hl, .cloud2
; six sprites for the doggie, four for the zero, 4 bytes each
ld de, MY_OAM + 13*4
ld bc, 84*$100 + 58
ld a, $13 ; one by three
call BuildMetaSprite
ld hl, MY_OAM + 13*4 + 3
set 4, [hl]
ld hl, MY_OAM + 14*4 + 3
set 4, [hl]
ld hl, MY_OAM + 15*4 + 3
set 4, [hl]
ld hl, .cloud3
ld de, MY_OAM + 16*4
ld bc, 92*$100 + 67
ld a, $11
call BuildMetaSprite
ld hl, MY_OAM + 16*4+3
set 4, [hl]
ret
.fUpdate:
ld hl, CVS
call IncrementTimer
ld a, [CVS+1] ; checking the high byte of the timer
cp a, $06 ; $10 00 = 1 second
jp c, .doneWithTimer1 ; if the timer is less than $0600, skip
; if the timer is greater or equal to $0600, reset it
ld a, 0
ld [CVS], a
ld [CVS+1], a
call .dogDance ; and make the dog dance
.doneWithTimer1
ret ; don't need anything else
ld hl, CVS+3
call IncrementTimer
ld a, [CVS+3+1] ; check the high byte of the zero sprite timer
cp a, $30 ; $10 00 = 1 second
jp c, .doneWithTimer2
ld a, 0
ld [CVS+3], a
ld [CVS+3+1], a
call .zeroRotate
.doneWithTimer2
ld hl, CVS+6
call IncrementTimer
ld a, [CVS+6+1]
cp a, $20
jp c, .doneWithTimer3
ld a, 0
ld [CVS+6], a
ld [CVS+6+1], a
call .cloud1Move
.doneWithTimer3
ld hl, CVS+9
call IncrementTimer
ld a, [CVS+9+1]
cp a, $20
jp c, .doneWithTimer4
ld a, 0
ld [CVS+9], a
ld [CVS+9+1], a
call .cloud2Move
.doneWithTimer4
ld hl, CVS+12
call IncrementTimer
ld a, [CVS+12+1]
cp a, $60
jp c, .doneWithTimer5
ld a, 0
ld [CVS+12], a
ld [CVS+12+1], a
call .cloud3Move
.doneWithTimer5
ret
.dogDance:
ld a, [CVS+2] ; dog animation frame
inc a
cp a, 2
jp nz, :+
ld a, 0 ; zero the frame if it was 2
:
ld [CVS+2], a
cp a, 0
jp z, .frame1
cp a, 1
jp z, .frame2
ret ; shouldn't ever hit this
.frame1
ld hl, .doggie1
ld de, MY_OAM
ld b, 134
ld c, 34
ld a, $23
; takkes similar args as copytilestomapunsafe but builds several sprites
; instead.
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
call BuildMetaSprite
ret
.frame2
ld hl, .doggie2
ld de, MY_OAM
ld b, 133
ld c, 34
ld a, $23
call BuildMetaSprite
ret
.doggie1: ; tiles start at 0
db $01, $02, $03
db $04, $08, $06
.doggie2:
db $01, $02, $07
db $04, $05, $09
.zeroRotate:
ld hl, .zeroCoords
ld a, [CVS+5]
inc a
call ArrayClampLooping
ld [CVS+5], a
ld b, 0
ld c, a
ld hl, .zeroCoords+1
add hl, bc ; add bc twice (it's a list of pairs) to jump to the bc'th element
add hl, bc ; of the list
ld b, [hl] ; load y into b
inc hl
ld c, [hl] ; load x into c
ld hl, .zero
ld de, MY_OAM + 6*4 ; we've already written six sprites for the doggie, 4 bytes each
ld a, $22 ; two by two
ld bc, 0
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c (set above)
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
call BuildMetaSprite
ret
.zero:
db $0a, $0b
db $0c, $0d
.zeroCoords: ; length-prefixed list of y, x
db 4, 26, 41, 27, 42, 26, 43, 25, 42
.cloud1Move:
ld hl, .cloud1Anim
ld a, [CVS+8]
inc a
call ArrayClampLooping
ld [CVS+8], a
ld b, 0
ld c, a
ld hl, .cloud1Anim+1
add hl, bc ; add bc twice (it's a list of pairs) to jump to the bc'th element
add hl, bc ; of the list
ld b, [hl] ; load y into b
inc hl
ld c, [hl] ; load x into c
ld hl, .cloud1
; six sprites for the doggie, four for the zero, 4 bytes each
ld de, MY_OAM + 10*4
ld bc, 0
ld a, $13 ; two by two
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c (set above)
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
call BuildMetaSprite
ret
.cloud1:
db $0e, $0f, $10
.cloud1Anim:
db 9, 78, 15, 78, 15, 78, 16, 78, 17, 78, 18, 78, 19, 78, 18, 78, 17, 78, 16,
.cloud2Move:
ld hl, .cloud2Anim
ld a, [CVS+11]
inc a
call ArrayClampLooping
ld [CVS+11], a
ld b, 0
ld c, a
ld hl, .cloud2Anim+1
add hl, bc ; add bc twice (it's a list of pairs) to jump to the bc'th element
add hl, bc ; of the list
ld b, [hl] ; load y into b
inc hl
ld c, [hl] ; load x into c
ld hl, .cloud2
; six sprites for the doggie, four for the zero, 4 bytes each
ld de, MY_OAM + 13*4
ld bc, 0
ld a, $13 ; two by two
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c (set above)
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
call BuildMetaSprite
ret
.cloud2:
db $11, $12, $13
.cloud2Anim:
db 4, 84, 58, 84, 59, 84, 60, 84, 59,
.cloud3Move:
ld hl, .cloud3Anim
ld a, [CVS+14]
inc a
call ArrayClampLooping
ld [CVS+14], a
ld b, 0
ld c, a
ld hl, .cloud3Anim+1
add hl, bc ; add bc twice (it's a list of pairs) to jump to the bc'th element
add hl, bc ; of the list
ld b, [hl] ; load y into b
inc hl
ld c, [hl] ; load x into c
ld hl, .cloud3
; six sprites for the doggie, four for the zero, 4 bytes each
ld de, MY_OAM + 16*4
ld bc, 0
ld a, $11
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c (set above)
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
call BuildMetaSprite
ret
.cloud3:
db $14
.cloud3Anim:
db 2, 92, 66, 92, 67,
.fDraw:
ret
.fPrintPrep:
ret
.SpriteTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $01,$01,$01,$01,$01,$01,$01,$01,$1f,$1f,$1f,$10,$1f,$10,$1f,$1c
db $f0,$f0,$fc,$5c,$fe,$06,$5f,$a3,$ff,$01,$ff,$00,$ff,$00,$ff,$00
db $00,$00,$00,$00,$00,$00,$07,$07,$87,$85,$ff,$fd,$ff,$01,$ff,$01
db $07,$07,$01,$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$93,$fe,$d2,$7e,$76,$1c,$1c
db $ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$c9,$7f,$69,$3f,$3b,$0e,$0e
db $00,$00,$00,$00,$00,$00,$0e,$0e,$8f,$8b,$ff,$fd,$ff,$01,$ff,$01
db $ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$93,$fe,$96,$fc,$dc,$70,$70
db $ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$c9,$7f,$4b,$7e,$6e,$38,$38
db $00,$00,$00,$03,$00,$07,$00,$0c,$00,$18,$00,$18,$00,$30,$00,$30
db $00,$00,$00,$c0,$00,$e0,$00,$30,$00,$18,$00,$18,$00,$0c,$00,$0c
db $00,$30,$00,$30,$00,$18,$00,$18,$00,$0c,$00,$07,$00,$03,$00,$00
db $00,$0c,$00,$0c,$00,$18,$00,$18,$00,$30,$00,$e0,$00,$c0,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$3f,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$1f,$00,$ff,$00,$ff,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$c0,$00,$f0,$00,$f0,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$78,$00,$ff,$00,$ff,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$f0,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00
.SpriteTilesEnd:
.KeyArtTiles:
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,$80,$00,$80,$00
db $1f,$00,$0f,$00,$0f,$00,$0f,$00,$07,$00,$07,$00,$07,$00,$07,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00
db $c0,$00,$c0,$00,$e0,$00,$e0,$00,$f0,$00,$f0,$00,$f0,$00,$f8,$00
db $07,$00,$03,$00,$03,$00,$03,$00,$03,$00,$03,$00,$01,$00,$01,$00
db $fe,$00,$fe,$00,$fc,$00,$fc,$00,$fc,$00,$fc,$00,$fc,$00,$fc,$00
db $f8,$00,$fc,$00,$fc,$00,$fe,$00,$fe,$00,$fe,$00,$ff,$00,$ff,$00
db $01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$fe,$00,$c0,$00,$87,$1f,$0f,$30,$1f,$62,$7f,$81
db $ff,$00,$ff,$00,$01,$00,$fc,$fc,$e0,$1e,$fe,$3e,$e0,$1e,$90,$ff
db $f8,$00,$f8,$00,$f8,$00,$f8,$00,$f8,$00,$38,$00,$10,$80,$00,$c0
db $00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$03,$00,$03,$00,$07,$00
db $80,$00,$80,$00,$c0,$00,$c0,$00,$c0,$00,$e0,$00,$e0,$00,$f0,$00
db $00,$00,$00,$01,$00,$01,$01,$02,$03,$04,$07,$08,$0f,$10,$0f,$10
db $78,$86,$f0,$08,$f2,$08,$e2,$10,$e4,$10,$c4,$21,$c8,$21,$81,$42
db $40,$7f,$00,$7f,$00,$ff,$00,$7f,$f0,$cf,$f8,$87,$f8,$07,$f8,$87
db $00,$f0,$00,$fc,$00,$f8,$00,$f8,$00,$f8,$00,$f8,$00,$fc,$80,$7c
db $07,$00,$07,$00,$0f,$00,$0f,$00,$0f,$00,$1f,$00,$1f,$00,$3f,$00
db $f0,$00,$f0,$00,$f8,$00,$f8,$00,$fc,$00,$fc,$00,$fe,$00,$fe,$00
db $1f,$20,$1f,$20,$0f,$11,$07,$0a,$04,$06,$05,$04,$06,$04,$05,$04
db $f9,$7a,$de,$8f,$a9,$03,$55,$01,$a8,$02,$55,$00,$aa,$00,$55,$00
db $fc,$43,$fd,$02,$3e,$c1,$0e,$31,$81,$9e,$8f,$f0,$8e,$71,$5e,$9e
db $80,$7c,$80,$7c,$00,$fc,$00,$fc,$17,$ff,$c4,$ff,$0c,$ff,$9f,$3f
db $00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$40,$c0,$e0,$e0,$e1,$e0
db $3f,$00,$3f,$00,$7f,$00,$7f,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$00,$3f,$00,$1f,$00
db $fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $06,$04,$05,$04,$07,$05,$86,$06,$84,$04,$c0,$00,$c0,$00,$c0,$00
db $aa,$00,$55,$01,$ff,$ff,$01,$01,$39,$01,$3a,$02,$3b,$02,$1a,$02
db $33,$ae,$ff,$47,$79,$47,$fb,$46,$7e,$44,$e5,$5c,$3e,$44,$b9,$46
db $5f,$0f,$af,$07,$57,$03,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$ab,$81
db $d1,$f0,$89,$f8,$84,$fc,$86,$fe,$86,$fe,$86,$fe,$86,$fe,$86,$fe
db $0f,$00,$07,$00,$03,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $e0,$00,$e0,$00,$f0,$00,$f0,$00,$f8,$00,$f8,$00,$f8,$00,$fc,$00
db $1b,$02,$1a,$02,$1b,$02,$1a,$02,$1b,$02,$1a,$02,$0b,$02,$0a,$03
db $3c,$42,$9e,$21,$5e,$21,$9e,$21,$5f,$20,$af,$10,$4f,$10,$af,$11
db $d5,$81,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$ab,$83,$d7,$83,$ab,$03
db $86,$fe,$86,$fe,$86,$fe,$86,$fe,$86,$fe,$0c,$fc,$0d,$fc,$19,$f8
db $fc,$00,$fe,$00,$fe,$00,$ff,$00,$ff,$00,$7e,$00,$3e,$00,$18,$00
db $09,$01,$09,$01,$03,$03,$07,$07,$0f,$0f,$3f,$3f,$ff,$ff,$7f,$ff
db $4f,$11,$8f,$31,$e7,$f9,$f3,$fd,$ff,$fd,$ff,$ff,$ff,$ff,$ff,$ff
db $57,$03,$ab,$03,$57,$03,$af,$07,$54,$04,$ad,$04,$55,$04,$a9,$08
db $33,$f0,$67,$e0,$cf,$c0,$9f,$80,$3f,$00,$ff,$00,$ff,$00,$ff,$00
db $fe,$00,$fc,$00,$f8,$00,$f0,$00,$e0,$00,$c0,$00,$80,$00,$00,$00
db $00,$03,$03,$0c,$0f,$10,$0f,$10,$0f,$10,$1f,$20,$1f,$20,$3f,$40
db $ff,$7f,$ff,$3f,$ff,$1f,$ff,$0f,$ff,$0f,$ff,$07,$fb,$07,$e0,$18
db $ff,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$7f
db $73,$30,$f3,$70,$fb,$f8,$fb,$f8,$fb,$f8,$fb,$f8,$f9,$f8,$f0,$f0
db $e0,$00,$f8,$00,$ff,$00,$ff,$00,$87,$00,$31,$30,$5c,$7c,$43,$73
db $00,$00,$00,$00,$c0,$01,$f9,$02,$f1,$02,$e3,$04,$47,$08,$0f,$10
db $7f,$80,$7f,$80,$fe,$01,$f8,$06,$f0,$08,$e0,$10,$c0,$20,$88,$40
db $80,$60,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $7f,$7f,$7f,$7e,$3f,$40,$3f,$40,$3f,$40,$3f,$40,$3f,$40,$3f,$40
db $f0,$f0,$c0,$20,$c0,$20,$c0,$20,$c0,$20,$80,$40,$80,$40,$80,$40
db $00,$00,$00,$00,$00,$00,$00,$00,$03,$00,$0f,$00,$3f,$00,$7f,$00
db $03,$00,$0f,$00,$3f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $40,$70,$20,$38,$90,$1c,$c8,$0e,$e4,$07,$f2,$03,$f9,$01,$fd,$01
db $ff,$f0,$3f,$20,$3c,$23,$1c,$12,$1e,$1e,$0e,$0e,$04,$84,$09,$c8
db $18,$80,$38,$80,$3c,$00,$7c,$00,$fc,$00,$fc,$00,$fc,$00,$fe,$00
db $3f,$40,$3f,$40,$3f,$40,$3f,$40,$1f,$20,$0f,$10,$07,$08,$03,$04
db $80,$40,$80,$40,$c0,$20,$c0,$20,$e0,$10,$e0,$10,$f0,$08,$f1,$08
db $7f,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $fc,$00,$fe,$00,$ff,$00,$ee,$11,$55,$aa,$aa,$55,$55,$aa,$aa,$55
db $93,$f0,$63,$64,$05,$0a,$ee,$11,$55,$aa,$aa,$55,$55,$aa,$aa,$55
db $55,$aa,$bb,$44,$55,$aa,$ee,$11,$55,$aa,$aa,$55,$55,$aa,$aa,$55
db $41,$a2,$b8,$41,$54,$a8,$ee,$10,$55,$aa,$aa,$55,$55,$aa,$aa,$55
db $f9,$04,$f8,$04,$7c,$82,$3c,$42,$1e,$21,$9f,$20,$0f,$90,$87,$48
db $55,$aa,$bb,$44,$55,$aa,$2e,$51,$15,$2a,$0a,$95,$85,$42,$f2,$31
db $55,$aa,$aa,$55,$55,$aa,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55
db $55,$aa,$aa,$55,$55,$aa,$aa,$55,$11,$ee,$af,$57,$47,$bf,$ae,$5f
db $55,$aa,$aa,$55,$55,$aa,$af,$5f,$ff,$ff,$f0,$ff,$fe,$ff,$0f,$ff
db $55,$aa,$aa,$55,$55,$aa,$ff,$ff,$ff,$ff,$00,$ff,$00,$ff,$80,$ff
db $55,$aa,$aa,$55,$7f,$ff,$ff,$ff,$00,$fe,$00,$fe,$00,$fe,$00,$fe
db $43,$a4,$a1,$52,$c7,$c7,$18,$18,$60,$60,$80,$80,$80,$c0,$80,$ff
db $c9,$48,$84,$84,$02,$02,$02,$02,$06,$0e,$0c,$1c,$30,$71,$c0,$c7
db $55,$aa,$af,$5f,$ff,$ff,$f8,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $11,$ee,$aa,$55,$44,$bb,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55
db $16,$ef,$ae,$57,$46,$bf,$af,$57,$03,$ff,$ab,$57,$01,$ff,$ab,$55
db $01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$80,$ff
db $f0,$ff,$3e,$ff,$07,$ff,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$fe,$00,$ff,$f8,$ff,$ff,$ff,$7f,$ff,$00,$ff,$00,$ff,$00,$ff
db $7f,$7f,$00,$00,$07,$ff,$ff,$ff,$ff,$ff,$01,$ff,$00,$ff,$00,$ff
db $80,$9f,$00,$3f,$00,$ff,$f0,$ff,$ff,$ff,$ff,$ff,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$02,$ff,$ff,$ff,$ff,$ff,$00,$ff,$00,$ff
db $00,$ff,$22,$dd,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$88,$77
db $01,$ff,$23,$dd,$01,$ff,$ab,$55,$00,$ff,$22,$dd,$00,$ff,$88,$77
db $80,$ff,$80,$ff,$80,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$e0,$ff,$e0,$7f
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $60,$ff,$60,$ff,$60,$ff,$60,$ff,$60,$ff,$30,$ff,$30,$ff,$30,$ff
.KeyArtTilesEnd:
.BackgroundCopy: ; tiles start at 26
db $1b, $1a, $1c, $1d, $1d, $1e, $1a, $1a
db $1f, $1a, $20, $1d, $1d, $21, $1a, $1a
db $22, $1a, $23, $24, $25, $26, $1a, $27
db $1d, $28, $29, $2a, $2b, $2c, $1a, $2d
db $1d, $2e, $2f, $30, $31, $32, $33, $34
db $35, $36, $37, $38, $39, $3a, $3b, $1d
db $3c, $35, $3d, $3e, $3f, $40, $41, $1d
db $1a, $3c, $42, $43, $44, $45, $46, $47
db $1a, $1a, $48, $49, $4a, $4b, $47, $1a
db $4c, $4d, $4e, $4f, $50, $51, $52, $53
db $54, $55, $56, $1a, $57, $58, $59, $1d
db $5a, $5b, $5c, $5c, $5d, $5e, $5f, $5c
db $60, $61, $62, $63, $64, $65, $66, $67
db $68, $69, $6a, $6b, $6c, $6d, $6e, $6f
db $70, $71, $72, $73, $73, $73, $73, $73
db $73, $73, $74, $73, $73, $73, $73, $73
.BackgroundCopyEnd: