finally finished the last card, the devil

This commit is contained in:
Shoofle 2025-07-19 13:04:28 -04:00
parent 332011c1b0
commit 6925e624fc
10 changed files with 1062 additions and 296 deletions

View File

@ -18,7 +18,7 @@ WheelOfFortune:
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS timer for smoke
ld [hl+], a ; CVS timer for numbers
ld [hl+], a
; drawing 12 characters total
; top sprites

View File

@ -152,7 +152,6 @@ db $00, $11
db $7e,$81,$7c,$83,$18,$e7,$00,$ff,$00,$00,$00,$fe,$00,$00,$00,$00
db $07,$f8,$00,$0f,$00,$7f,$00,$01,$00,$00,$00,$0f,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$03,$ff,$03
db $ff,$00,$ff,$00,$ff,$03,$ff,$1f,$ff,$7f,$ff,$ff,$ff,$3f,$ff,$cf
db $ff,$00,$ff,$00,$ff,$c0,$ff,$f8,$ff,$fe,$ff,$ff,$ff,$ff,$ff,$ff
@ -170,8 +169,8 @@ db $00, $11
db $ff,$e0,$ff,$e0,$ff,$e0,$ff,$c0,$ff,$80,$ff,$80,$ff,$00,$ff,$00
db $e0,$3f,$e0,$3f,$e0,$3f,$e0,$3e,$e0,$1e,$f0,$1e,$e8,$0e,$e6,$0e
db $00,$c0,$01,$81,$01,$01,$01,$01,$03,$03,$01,$01,$02,$02,$0f,$0e
db $e0,$e4,$b0,$87,$b0,$80,$b3,$83,$98,$00,$c7,$00,$03,$04,$c3,$04
db $0b,$07,$0b,$16,$1e,$05,$b5,$8b,$29,$17,$db,$27,$fa,$03,$00,$03
db $e0,$e4,$b0,$87,$b0,$80,$b3,$83,$98,$00,$c4,$00,$03,$04,$c3,$04
db $0b,$07,$0b,$06,$1e,$05,$95,$8b,$09,$17,$1b,$27,$fa,$03,$00,$03
db $b7,$6f,$e5,$ff,$cd,$ff,$db,$fe,$b3,$fe,$37,$fc,$6f,$fc,$dc,$ff
db $e0,$06,$e0,$06,$e0,$04,$e0,$04,$e0,$04,$e0,$04,$e0,$04,$e0,$04
db $04,$0c,$06,$0f,$03,$0c,$07,$08,$07,$08,$06,$08,$04,$08,$00,$08
@ -223,41 +222,40 @@ db $00, $11
db $40,$ff,$40,$ff,$83,$ff,$83,$ff,$06,$fe,$06,$fe,$1c,$fc,$18,$f8
db $3f,$ff,$e0,$e0,$80,$80,$00,$00,$1c,$00,$fe,$00,$ff,$00,$03,$fc
db $f3,$fc,$03,$04,$03,$04,$03,$04,$02,$05,$00,$0f,$e7,$18,$cf,$30
db $01,$01,$03,$03,$03,$03,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07
db $01,$01,$03,$03,$03,$03,$07,$07,$07,$07,$07,$07,$07,$37,$07,$47
db $ff,$ef,$ff,$fd,$ff,$3f,$ff,$cf,$ff,$f8,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$fb,$ff,$5f,$ff,$ff,$ff,$fc,$ff,$07,$ff,$ff,$ff,$ff,$ff,$ff
db $e0,$ef,$f0,$ff,$f0,$3f,$f8,$ff,$fb,$ff,$f8,$ff,$f8,$ff,$ff,$ff
db $00,$ff,$00,$ff,$00,$ff,$01,$ff,$ff,$ff,$01,$ff,$01,$ff,$ff,$ff
db $38,$f8,$78,$f8,$78,$f8,$f0,$f0,$e3,$e0,$80,$e0,$c0,$30,$e0,$18
db $78,$87,$7e,$81,$7e,$81,$3c,$c3,$b9,$46,$13,$6c,$47,$38,$e7,$18
db $07,$77,$07,$87,$03,$73,$00,$00,$00,$1c,$00,$07,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$01,$01,$00,$80,$00,$fc,$00,$00
db $07,$87,$07,$87,$03,$43,$00,$30,$00,$04,$00,$03,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$01,$01,$00,$80,$00,$7c,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$e0,$e0,$00,$00,$00,$03,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$80,$80,$00,$00,$00,$0f,$00,$f8,$00,$00
db $ff,$ff,$ff,$ff,$fc,$ff,$00,$07,$00,$1d,$00,$9f,$00,$e0,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$80,$80,$00,$00,$00,$07,$00,$f8,$00,$00
db $ff,$ff,$ff,$ff,$fc,$ff,$00,$01,$00,$01,$00,$1f,$00,$e0,$00,$00
db $f0,$0f,$f8,$07,$ff,$00,$ff,$00,$7f,$80,$7f,$80,$00,$7f,$00,$00
db $07,$f8,$17,$e8,$f3,$0c,$f3,$0c,$f3,$0c,$e0,$1f,$0f,$f0,$0f,$f0
db $ff,$00,$ff,$00,$ff,$00,$7f,$80,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $1f,$e0,$00,$ff,$1e,$e1,$7f,$80,$ff,$00,$ff,$00,$ff,$00,$fe,$01
db $fe,$01,$fe,$01,$fe,$01,$fe,$01,$fc,$03,$00,$ff,$3c,$c3,$7e,$81
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$00,$ff,$7f,$80,$ff,$00
.KeyArtTilesEnd:
.BackgroundCopy: ; tiles start at 26
db $25, $25, $25, $27, $28, $29, $2a, $25
db $25, $25, $2b, $2c, $2d, $2e, $2f, $25
db $25, $30, $31, $32, $33, $34, $35, $25
db $25, $36, $37, $38, $39, $3a, $25, $25
db $25, $3b, $3c, $3d, $3e, $3f, $40, $25
db $25, $41, $42, $43, $44, $45, $46, $25
db $25, $47, $48, $49, $4a, $4b, $4c, $25
db $25, $4d, $4e, $4f, $50, $50, $51, $25
db $25, $52, $53, $54, $50, $55, $56, $25
db $57, $58, $59, $5a, $5b, $5c, $5d, $5e
db $7e, $5f, $60, $61, $50, $62, $63, $64
db $65, $66, $67, $68, $69, $6a, $6b, $6c
db $6d, $6e, $6f, $70, $71, $72, $73, $7c
db $74, $75, $76, $77, $78, $79, $7a, $7d
db $25, $25, $25, $26, $27, $28, $29, $25
db $25, $25, $2a, $2b, $2c, $2d, $2e, $25
db $25, $2f, $30, $31, $32, $33, $34, $25
db $25, $35, $36, $37, $38, $39, $25, $25
db $25, $3a, $3b, $3c, $3d, $3e, $3f, $25
db $25, $40, $41, $42, $43, $44, $45, $25
db $25, $46, $47, $48, $49, $4a, $4b, $25
db $25, $4c, $4d, $4e, $4f, $4f, $50, $25
db $25, $51, $52, $53, $4f, $54, $55, $25
db $56, $57, $58, $59, $5a, $5b, $5c, $5d
db $7c, $5e, $5f, $60, $4f, $61, $62, $63
db $64, $65, $66, $67, $68, $69, $6a, $6b
db $6c, $6d, $6e, $6f, $70, $71, $72, $7a
db $73, $74, $75, $76, $77, $78, $79, $7b
db $1a, $1a, $1f, $21, $20, $1e, $24, $23
db $1a, $1a, $1b, $22, $1c, $1d, $1a, $1a

View File

@ -15,134 +15,286 @@ TheDevil:
dw .fDraw
dw .fPrintPrep
.fInit: ret
.fUpdate: ret
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS+0 timer for animatinos
ld [hl+], a
ld [hl+], a ; CVS+2 frame for locks
ld [hl+], a ; CVS+3 frame for chain
ld [hl+], a ; CVS+4 index into chain
ld a, [.chains]
ld c, a
ld hl, MY_OAM + 14*4
ld a, 5
.drawSprites
inc hl ; x
inc hl ; tile id
ld [hl], a
inc hl ; attrs
inc hl ; y
dec c
jp nz, .drawSprites
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, :+ ; 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
; increment the frame for the locks
ld b, 3
ld a, [CVS+2]
inc a
call ArrayClampLoopingB
ld [CVS+2], a
; increment the frame for the chain animation
ld hl, .chains + 1
ld a, [CVS+3]
inc a
call ArrayClampLooping
ld [CVS+3], a
:
;set index into links to zero
ld a, 0
ld [CVS+4], a
.chainLoop
; draw a link using index into links
; find the link animation we're interested in
ld de, MY_OAM + 14*4 ; zeroth link OAM entry
; this is complex so that i don't have to provide labels for individual paths.
; ld bc, .chain2 - .chain1 ; i.e., we're replacing this with a calculation.
ld a, [.chains+1] ; get the length of the first animation.
add a, a ; double that bc each point in an animation is 2 bytes.
inc a ; increment because each animation has a length prefix.
ld b, 0
ld c, a ; now bc contains the length of a chain animation.
ld hl, .chains+1 ; zeroth link
ld a, [CVS+4] ; index into links
; add bc to hl a times and also add 4 to de a times
cp a, 0
jp z, .foundLinkAnim
.lookingForLinkAnim
add hl, bc
inc de
inc de
inc de
inc de
dec a
jp nz, .lookingForLinkAnim
.foundLinkAnim
; now hl points to a chain
ld a, [CVS+3] ; index into link animation
ld b, 0
ld c, a
inc hl ; skip length of animation
add hl, bc
add hl, bc ; hl + 2*a = frame of animation
; set y,x for that llink to the animaion values
; load [hl] into [de] and [hl+1] into [de+1]
ld a, [hl]
inc hl
ld [de], a
inc de
ld a, [hl]
ld [de], a
; increment index into links
ld hl, .chains
ld a, [CVS+4]
inc a
call ArrayClampLooping
ld [CVS+4], a
; if index into links is not zero, jump back to .chainLoop
cp a, 0
jp nz, .chainLoop
.doneWithChain
ret
.fDraw: ret
.fPrintPrep: ret
.chains
db 13
db 9, 37, 31, 37, 31, 37, 31, 37, 31, 37, 31, 37, 31, 37, 31, 37, 31, 37, 31
db 9, 43, 30, 44, 30, 45, 32, 45, 33, 43, 34, 43, 35, 43, 34, 43, 32, 43, 31
db 9, 51, 32, 52, 34, 53, 36, 51, 37, 48, 38, 48, 39, 49, 37, 51, 35, 50, 34
db 9, 56, 37, 57, 39, 58, 42, 56, 42, 53, 43, 53, 45, 54, 43, 56, 41, 56, 39
db 9, 61, 43, 61, 44, 61, 46, 60, 47, 59, 48, 59, 49, 60, 49, 61, 46, 61, 44
db 9, 67, 49, 67, 50, 66, 52, 65, 51, 66, 51, 65, 52, 66, 52, 66, 51, 66, 50
db 9, 71, 54, 71, 55, 71, 55, 71, 54, 71, 53, 71, 54, 72, 54, 72, 53, 71, 54
db 9, 76, 59, 76, 59, 77, 58, 77, 57, 77, 55, 78, 55, 78, 54, 78, 55, 77, 58
db 9, 83, 61, 83, 61, 84, 59, 84, 58, 84, 57, 85, 56, 84, 56, 84, 57, 84, 59
db 9, 91, 61, 91, 61, 92, 60, 91, 58, 91, 59, 91, 57, 91, 56, 91, 58, 91, 60
db 9, 98, 60, 98, 60, 98, 59, 97, 57, 98, 58, 98, 56, 97, 56, 98, 57, 98, 59
db 9, 105, 58, 104, 57, 104, 56, 103, 55, 104, 56, 104, 55, 104, 56, 105, 57, 106, 57
db 9, 110, 52, 110, 52, 110, 52, 110, 52, 110, 52, 110, 52, 110, 52, 110, 52, 110, 52
.SpriteTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$1f,$1f,$2f,$38,$4f,$7f,$48,$78,$48,$78,$47,$7f
db $00,$00,$00,$00,$f0,$f0,$e8,$38,$e4,$fc,$24,$3c,$24,$3c,$c4,$fc
db $40,$7f,$40,$7f,$40,$7f,$40,$7f,$20,$3f,$10,$1f,$0f,$0f,$00,$00
db $04,$fc,$04,$fc,$04,$fc,$04,$fc,$08,$f8,$10,$f0,$e0,$e0,$00,$00
db $00,$00,$18,$3c,$3c,$66,$66,$42,$66,$42,$3c,$66,$18,$3c,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$0f,$0f,$10,$1f,$20,$3f,$40,$79
db $00,$00,$38,$38,$7c,$44,$fe,$92,$ee,$2a,$de,$d2,$7c,$e4,$38,$e8
db $80,$f0,$80,$e0,$80,$e0,$80,$f0,$40,$79,$20,$3f,$10,$1f,$0f,$0f
db $10,$f0,$10,$70,$10,$70,$10,$f0,$20,$e0,$40,$c0,$80,$80,$00,$00
db $00,$00,$00,$00,$0c,$0c,$3f,$33,$3f,$2c,$73,$53,$71,$51,$71,$51
db $00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$c0,$40,$c0,$40,$c0,$40
db $39,$29,$38,$28,$38,$28,$1f,$1f,$70,$7f,$40,$7f,$40,$7f,$20,$3f
db $c0,$40,$e0,$a0,$f8,$b8,$c8,$f8,$08,$f8,$04,$fc,$04,$fc,$04,$fc
db $20,$3f,$20,$3f,$20,$3f,$20,$3f,$20,$3f,$10,$1f,$13,$1f,$1c,$1c
db $04,$fc,$04,$fc,$04,$fc,$02,$fe,$02,$fe,$0e,$fe,$f0,$f0,$00,$00
.SpriteTilesEnd:
; original export script by gabriel reis, modified by shoofle
.KeyArtTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$84,$ff,$24,$ff,$a4,$ff,$95,$ff,$55,$ff,$77,$ff,$3f,$ff
db $ff,$ff,$3f,$ff,$8f,$ff,$87,$ff,$b0,$ff,$63,$fc,$cf,$f0,$9f,$e0
db $ff,$ff,$fc,$ff,$f3,$ff,$e3,$ff,$0c,$ff,$e6,$1f,$f3,$0f,$f9,$07
db $3f,$40,$78,$00,$60,$00,$a0,$de,$a4,$c6,$a0,$c0,$e0,$80,$e2,$82
db $fc,$00,$1e,$00,$06,$00,$05,$7b,$25,$63,$05,$03,$05,$03,$4d,$43
db $3e,$3f,$7c,$7f,$fe,$ff,$ff,$ff,$fc,$ff,$fe,$ff,$fb,$ff,$f8,$ff
db $3f,$7f,$3f,$7f,$1f,$7f,$4f,$3f,$0f,$5f,$0f,$1f,$0f,$3f,$df,$3f
db $3f,$ff,$f8,$ff,$f3,$fc,$e6,$f8,$ec,$f0,$c8,$f0,$c8,$f0,$98,$e0
db $31,$c1,$98,$61,$9f,$23,$1c,$07,$08,$17,$06,$19,$05,$0a,$02,$cd
db $99,$87,$b0,$8f,$ff,$c0,$2b,$f4,$98,$64,$f0,$08,$50,$a0,$c0,$31
db $f9,$ff,$1f,$ff,$8f,$7f,$f7,$0f,$73,$0f,$19,$07,$0c,$03,$06,$01
db $b8,$c0,$30,$c1,$30,$c1,$63,$80,$67,$81,$c7,$01,$8e,$03,$8e,$03
db $00,$87,$00,$03,$00,$01,$00,$01,$00,$00,$00,$00,$10,$80,$00,$c0
db $c0,$21,$00,$e1,$00,$c1,$00,$80,$00,$00,$00,$00,$04,$00,$00,$01
db $02,$01,$01,$80,$80,$c0,$80,$e0,$70,$80,$3c,$c0,$3e,$e0,$3f,$f0
db $7f,$ff,$bf,$7f,$9f,$7f,$df,$3f,$6f,$1f,$2f,$1f,$37,$0f,$13,$0f
db $0e,$03,$1e,$07,$1e,$27,$3e,$0f,$7f,$0f,$ff,$1f,$81,$7f,$00,$ff
db $3f,$f8,$3f,$fc,$3f,$fe,$3f,$ff,$3f,$ff,$7f,$ff,$7e,$ff,$7e,$ff
db $99,$07,$89,$07,$c1,$27,$e0,$03,$f0,$81,$b0,$c9,$f8,$c1,$f8,$e0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$ff,$7f,$ff,$3f,$ff
db $ff,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff
db $07,$f8,$34,$cb,$76,$89,$70,$8f,$4f,$b0,$69,$96,$0d,$f2,$60,$9f
db $80,$7f,$52,$ad,$5a,$a5,$c3,$3c,$3a,$c5,$a3,$5c,$30,$cf,$86,$79
db $08,$f0,$c8,$34,$10,$fe,$90,$7e,$38,$ff,$38,$ff,$7d,$fe,$ff,$fe
db $3f,$ff,$1f,$7f,$1f,$3f,$1f,$0f,$1f,$07,$0f,$c7,$0f,$c7,$0f,$47
db $fe,$ff,$ff,$ff,$ff,$ff,$c3,$ff,$81,$ff,$00,$ff,$00,$ff,$00,$ff
db $4e,$b1,$68,$97,$8e,$f1,$80,$ff,$c0,$fe,$c8,$f0,$fe,$f0,$f3,$fc
db $04,$fb,$1e,$e1,$08,$f7,$00,$7f,$1f,$2f,$1f,$27,$0f,$03,$07,$01
db $4a,$b5,$6b,$94,$00,$ff,$00,$ff,$fe,$fd,$fe,$f8,$fc,$f3,$f8,$e6
db $74,$8b,$45,$bb,$69,$97,$03,$ff,$26,$df,$0e,$7f,$0e,$3f,$1c,$7f
db $fd,$fe,$fd,$fe,$fd,$fe,$85,$fe,$00,$ff,$00,$cf,$80,$07,$80,$07
db $4f,$87,$4f,$87,$cf,$07,$8f,$07,$9f,$07,$ff,$0f,$ff,$ff,$ff,$ff
db $fe,$ff,$fe,$ff,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $02,$e1,$02,$81,$06,$81,$07,$81,$87,$c1,$01,$c7,$04,$fb,$04,$cf
db $f1,$fe,$fe,$ff,$fe,$ff,$f8,$ff,$f0,$f8,$e0,$f8,$e9,$f0,$d2,$e0
db $c3,$00,$43,$80,$03,$c0,$03,$e0,$0e,$31,$18,$07,$37,$0f,$6f,$1f
db $70,$ce,$30,$c0,$30,$c0,$20,$c0,$39,$c0,$0d,$f0,$e4,$f8,$f6,$f8
db $1c,$fe,$7c,$fe,$7c,$ff,$3e,$7f,$5e,$3f,$2e,$1f,$97,$0f,$97,$4f
db $80,$05,$80,$05,$80,$07,$80,$07,$c0,$0f,$c6,$ff,$c7,$ff,$c7,$ff
db $ff,$ff,$fc,$ff,$f8,$fc,$f0,$f8,$f0,$f8,$f0,$f9,$f0,$f9,$f0,$f9
db $7d,$ff,$7f,$7c,$18,$18,$08,$08,$0e,$0c,$06,$04,$02,$02,$02,$03
db $d2,$e4,$d2,$24,$72,$84,$72,$04,$62,$14,$63,$14,$20,$1f,$30,$1f
db $96,$48,$94,$48,$9c,$40,$98,$40,$90,$60,$31,$e0,$71,$e0,$72,$e1
db $ff,$ff,$3f,$ff,$bf,$7f,$bf,$7f,$df,$3f,$5f,$3f,$3f,$df,$2f,$df
db $f0,$f9,$f0,$f9,$f0,$f9,$f0,$f9,$f0,$f9,$f0,$f9,$f0,$f9,$f0,$f9
db $43,$01,$02,$01,$02,$01,$02,$01,$02,$01,$02,$01,$02,$01,$02,$01
db $be,$9f,$fe,$df,$7e,$5f,$7e,$7f,$3e,$3f,$2e,$1f,$22,$1f,$38,$1f
db $73,$e1,$73,$e1,$63,$e1,$63,$e2,$63,$e2,$67,$e6,$7d,$ee,$68,$ff
db $2f,$9f,$2f,$9f,$2f,$9f,$2f,$df,$0f,$5f,$0f,$5f,$0f,$5f,$0f,$5f
db $f0,$f9,$f0,$f9,$f0,$fe,$e0,$fb,$e0,$ff,$e0,$fb,$e0,$fe,$e0,$fe
db $00,$45,$00,$29,$00,$11,$00,$10,$00,$10,$00,$10,$00,$10,$00,$10
db $3e,$9f,$3e,$df,$3e,$9f,$3e,$8f,$3e,$8f,$7e,$0f,$7e,$0f,$7e,$1f
db $00,$f3,$30,$e3,$70,$e1,$70,$e3,$78,$e2,$78,$f2,$78,$f6,$78,$fe
db $10,$08,$30,$08,$30,$09,$30,$08,$00,$18,$00,$10,$00,$10,$00,$10
db $0f,$df,$07,$9f,$07,$df,$07,$df,$07,$df,$07,$df,$0f,$df,$0f,$ff
db $fc,$fe,$fc,$fe,$fc,$fe,$fc,$fe,$fc,$fe,$fc,$ff,$fe,$ff,$fe,$ff
db $10,$00,$10,$00,$10,$00,$10,$00,$00,$08,$10,$08,$11,$08,$01,$98
db $7e,$3f,$7e,$3f,$7e,$3f,$7e,$3f,$fe,$3f,$fe,$7f,$fe,$7f,$fe,$7f
db $7f,$fc,$7f,$fe,$7f,$fe,$7f,$fe,$7f,$fe,$7f,$fe,$7f,$ff,$7f,$ff
db $00,$10,$01,$10,$01,$10,$01,$10,$81,$10,$81,$10,$81,$10,$80,$11
db $1f,$ff,$3f,$ff,$3f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$ff,$ff
db $fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$ff,$ff,$ff,$ff
db $11,$08,$01,$88,$01,$88,$01,$88,$01,$88,$03,$88,$03,$88,$03,$88
db $fe,$7f,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff
db $82,$11,$82,$11,$82,$11,$82,$11,$82,$11,$82,$11,$82,$11,$82,$11
db $ff,$ff,$ff,$ff,$fe,$ff,$fc,$ff,$f8,$fe,$f8,$fc,$f0,$fe,$f0,$ff
db $03,$c8,$01,$c0,$01,$80,$00,$00,$00,$00,$00,$10,$00,$1f,$00,$ff
db $fe,$ff,$fe,$ff,$fe,$ff,$7e,$ff,$7e,$ff,$3e,$ff,$3e,$ff,$3e,$ff
db $7f,$ff,$7f,$ff,$7f,$ff,$7f,$fe,$7f,$fc,$7e,$f0,$78,$e4,$70,$ef
db $82,$11,$82,$11,$82,$11,$80,$11,$01,$10,$00,$10,$00,$10,$00,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$ff,$df,$3f,$ef,$1f,$0f,$ff
db $7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f,$ff
db $f3,$fc,$fe,$fc,$fc,$fe,$fc,$fe,$fe,$ff,$fe,$ff,$ff,$ff,$ff,$ff
db $81,$c0,$80,$c0,$80,$e0,$c0,$e0,$c0,$f0,$cf,$f0,$ff,$e0,$ff,$ff
db $8f,$3f,$0f,$0f,$07,$0f,$07,$07,$02,$07,$02,$87,$01,$82,$01,$80
db $c1,$f4,$91,$c4,$91,$c4,$91,$c4,$88,$e5,$c0,$e1,$c0,$f0,$e0,$f0
db $ff,$ff,$0f,$ff,$41,$ff,$e0,$ff,$e6,$ff,$6c,$ff,$f9,$ff,$fb,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$ff,$7f,$ff,$ff,$ff,$7f,$ff
db $7f,$ff,$3f,$ff,$bf,$ff,$3f,$ff,$7f,$ff,$7f,$ff,$ff,$ff,$ff,$ff
db $bc,$fc,$fe,$fe,$7f,$ff,$ff,$ff,$7f,$ff,$bf,$ff,$3f,$ff,$3f,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$ff,$ff
db $fd,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$fe,$ff,$ff,$ff,$3e,$ff,$3e,$7f
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $f7,$f7,$f7,$f7,$eb,$eb,$eb,$eb,$eb,$eb,$dd,$dd,$80,$80,$ff,$ff
db $d7,$d7,$d7,$d7,$d7,$d7,$d7,$d7,$ef,$ef,$ef,$ef,$03,$03,$ff,$ff
db $ff,$ff,$80,$80,$dd,$dd,$eb,$eb,$eb,$eb,$eb,$eb,$f7,$f7,$f7,$f7
db $ff,$ff,$00,$00,$7d,$7d,$7d,$7d,$bb,$bb,$bb,$bb,$bb,$bb,$bb,$bb
db $1f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $f9,$ff,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $64,$9b,$77,$88,$47,$b8,$64,$9b,$06,$f9,$30,$cf,$a7,$58,$37,$c8
db $2d,$d2,$61,$9e,$0e,$f1,$79,$86,$4d,$b2,$61,$9e,$0a,$f5,$7b,$84
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f8,$ff,$f1,$fc
db $00,$7f,$00,$00,$00,$00,$01,$00,$01,$00,$1f,$00,$60,$1f,$88,$77
db $00,$fe,$40,$80,$40,$80,$40,$80,$40,$80,$38,$c0,$06,$f8,$31,$ce
db $50,$3f,$c0,$30,$80,$43,$81,$4f,$87,$5f,$8f,$5f,$0f,$df,$80,$df
db $0a,$fc,$02,$0c,$02,$c0,$82,$f0,$e2,$f8,$f3,$f8,$f1,$fb,$01,$fb
db $96,$ff,$c4,$f4,$e4,$ff,$fb,$ff,$f3,$ff,$f7,$ff,$e7,$ff,$cf,$ff
db $6b,$ff,$23,$2f,$27,$ff,$df,$ff,$df,$ff,$cf,$ff,$e7,$ff,$f3,$ff
db $fe,$ff,$fc,$ff,$30,$30,$20,$20,$60,$60,$40,$41,$c0,$c1,$81,$a0
db $46,$21,$00,$e7,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$10,$02
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$fe,$00,$ff,$00,$fa,$00,$fd,$00,$ea,$00,$f5,$00
db $a8,$00,$f4,$00,$a0,$00,$d4,$00,$80,$00,$40,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$1f,$00,$35,$0a,$05,$3a,$10,$6f
db $00,$00,$01,$03,$01,$03,$00,$03,$80,$03,$80,$03,$00,$83,$00,$83
db $00,$00,$08,$7b,$8c,$ff,$02,$ff,$10,$ff,$8b,$ff,$44,$ff,$09,$ff
db $00,$00,$40,$c0,$40,$c0,$00,$f0,$90,$f0,$f0,$f0,$a0,$f8,$58,$f8
db $a8,$00,$54,$00,$a0,$00,$50,$00,$80,$00,$40,$00,$00,$00,$00,$00
db $02,$81,$02,$81,$04,$83,$7c,$82,$3f,$43,$ff,$ff,$fc,$fe,$00,$66
db $1f,$60,$1f,$60,$0f,$70,$30,$0f,$30,$0e,$30,$0e,$28,$16,$28,$16
db $00,$c2,$00,$c2,$00,$c3,$01,$83,$04,$02,$08,$04,$04,$08,$00,$0e
db $1f,$3f,$06,$3f,$05,$9f,$83,$1f,$07,$1f,$2f,$1f,$73,$0f,$2d,$13
db $e0,$ff,$fd,$ff,$f8,$fc,$fc,$fc,$70,$f8,$f8,$fc,$fc,$fc,$f0,$f0
db $64,$02,$6c,$02,$6e,$01,$6e,$01,$77,$00,$37,$00,$33,$00,$33,$00
db $60,$1e,$40,$3e,$40,$3e,$40,$3e,$00,$fc,$00,$fc,$83,$7c,$9f,$60
db $02,$07,$00,$04,$00,$07,$01,$00,$1f,$00,$e3,$00,$83,$00,$03,$00
db $21,$1f,$00,$7f,$03,$ff,$c6,$3e,$e6,$1e,$02,$fe,$80,$7e,$f9,$07
db $f0,$f0,$f0,$f0,$f0,$f0,$30,$30,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$03,$00,$0f,$00,$3f,$00,$30,$00,$60,$00
db $00,$00,$74,$08,$f6,$08,$c1,$00,$e0,$00,$e0,$00,$39,$00,$07,$08
db $31,$00,$39,$00,$18,$00,$18,$00,$9c,$00,$9e,$00,$cf,$00,$e3,$04
db $be,$40,$f8,$00,$60,$00,$01,$00,$07,$00,$bf,$00,$fe,$01,$60,$9f
db $03,$00,$07,$00,$7f,$00,$fe,$01,$fc,$03,$9c,$63,$3e,$c1,$fe,$c1
db $fb,$07,$e3,$1f,$c3,$3f,$03,$ff,$07,$ff,$0f,$ff,$1f,$ff,$1e,$fe
db $e0,$00,$07,$c0,$0f,$c0,$0f,$40,$3f,$40,$1f,$60,$0f,$70,$0f,$70
db $07,$00,$03,$00,$f9,$00,$fc,$00,$fc,$00,$ff,$00,$3f,$c0,$1f,$e0
db $f0,$03,$f8,$01,$f8,$00,$ec,$10,$33,$0c,$1d,$02,$86,$01,$e3,$00
db $03,$ff,$1c,$fd,$71,$00,$e1,$00,$83,$00,$07,$00,$0f,$00,$1f,$00
db $3c,$c3,$fc,$03,$fc,$03,$f8,$07,$f0,$0f,$f1,$0f,$e1,$1f,$c3,$3f
db $3e,$fe,$3c,$fc,$78,$f8,$f8,$f8,$f0,$f0,$e0,$e0,$c0,$c0,$80,$80
db $0f,$70,$0f,$70,$07,$38,$07,$38,$07,$18,$07,$18,$07,$78,$07,$78
db $0f,$f0,$87,$78,$03,$fc,$21,$fe,$10,$ff,$18,$ff,$0c,$ff,$0e,$ff
db $f1,$00,$f8,$00,$fc,$00,$ff,$00,$ff,$00,$7f,$80,$3f,$c0,$0f,$f0
db $3f,$00,$7f,$00,$ff,$00,$fe,$01,$fe,$01,$fc,$03,$f9,$07,$e3,$1f
db $87,$7f,$8e,$7e,$1c,$fc,$38,$f8,$70,$f0,$e0,$e0,$c0,$c0,$80,$80
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$07,$07,$0e,$0f
db $03,$fc,$23,$dc,$33,$cc,$33,$cc,$f3,$0c,$f0,$0e,$68,$96,$18,$e7
db $09,$f9,$80,$70,$80,$60,$80,$60,$c0,$30,$40,$30,$c0,$38,$c0,$38
db $00,$ff,$c0,$ff,$78,$7f,$0f,$0f,$00,$00,$00,$00,$00,$00,$00,$00
db $0f,$ff,$3c,$fc,$f8,$f8,$e0,$e0,$01,$01,$0f,$0f,$3f,$3f,$fe,$ff
db $00,$00,$00,$00,$1f,$1f,$7f,$7f,$fc,$ff,$e0,$ff,$81,$fe,$03,$fc
db $00,$00,$00,$00,$f8,$f8,$fe,$fe,$07,$ff,$03,$ff,$e1,$1f,$fc,$03
db $00,$00,$01,$01,$03,$03,$02,$03,$00,$03,$80,$83,$c0,$c1,$60,$e0
db $1c,$1f,$f8,$ff,$f0,$ff,$00,$ff,$01,$fe,$63,$9c,$73,$88,$70,$88
db $30,$cf,$e0,$1f,$c0,$3f,$80,$7f,$03,$ff,$0c,$fc,$18,$f8,$20,$e0
db $00,$f8,$00,$f8,$38,$f8,$e0,$e0,$80,$80,$00,$00,$00,$00,$00,$00
db $01,$01,$03,$03,$07,$07,$0f,$0f,$1f,$1f,$3f,$3f,$3e,$3f,$7e,$7f
db $fc,$ff,$f8,$ff,$f0,$ff,$e1,$fe,$83,$fc,$07,$f8,$0f,$f0,$0f,$f0
db $1f,$e0,$3f,$c0,$7f,$80,$ff,$00,$ff,$00,$fe,$00,$f8,$00,$f1,$00
db $fc,$03,$fe,$01,$fe,$01,$ff,$00,$ff,$00,$87,$00,$83,$40,$83,$60
db $38,$f0,$18,$f1,$18,$f9,$0c,$f9,$8c,$7f,$85,$7f,$c7,$3f,$c7,$3e
db $70,$88,$70,$88,$70,$88,$70,$89,$f0,$0b,$f0,$0f,$f0,$0e,$f0,$0e
db $7c,$7f,$78,$7f,$78,$7f,$f0,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff
db $1f,$e0,$3f,$c0,$7f,$80,$ff,$00,$ef,$1e,$e7,$1f,$f0,$0f,$fe,$01
db $e1,$00,$c1,$00,$83,$00,$07,$00,$0c,$03,$9e,$80,$f0,$e0,$08,$f0
db $03,$e0,$01,$f0,$01,$f8,$c1,$f8,$64,$f8,$26,$f8,$03,$7c,$03,$1c
db $e3,$1e,$e7,$1e,$f7,$0c,$f3,$0c,$f9,$06,$79,$06,$39,$06,$3d,$02
db $f0,$0c,$f0,$08,$f0,$08,$b0,$09,$90,$09,$90,$0b,$90,$0a,$90,$0e
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$ff,$ff,$ff
db $f8,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$e0,$ff,$c0,$ff,$83,$fc,$c0,$ff
db $ff,$00,$ff,$00,$7f,$80,$3f,$c0,$03,$fc,$00,$ff,$e0,$1f,$fc,$03
db $80,$7c,$c0,$3f,$f0,$0f,$fc,$03,$ff,$00,$7f,$80,$1f,$e0,$03,$fc
db $01,$0e,$01,$06,$01,$c2,$01,$f0,$00,$f8,$c8,$30,$f8,$00,$f8,$00
db $9f,$00,$8f,$00,$c7,$00,$c0,$00,$e0,$00,$e0,$00,$70,$00,$3f,$00
db $80,$0c,$00,$08,$00,$08,$08,$00,$08,$00,$18,$00,$70,$00,$e0,$00
db $03,$03,$03,$03,$07,$07,$07,$07,$06,$07,$0e,$0f,$0c,$0f,$0c,$0f
db $f8,$ff,$c0,$ff,$07,$f8,$1f,$e0,$3f,$c0,$7f,$80,$7f,$80,$70,$80
db $de,$e1,$18,$e1,$00,$f0,$00,$78,$00,$1c,$00,$04,$20,$04,$10,$28
db $00,$fe,$00,$fe,$0c,$f2,$0f,$f0,$0f,$f0,$87,$78,$07,$78,$07,$78
db $0f,$30,$03,$0c,$03,$0c,$07,$08,$07,$18,$0f,$10,$8e,$10,$8e,$10
db $98,$00,$98,$00,$18,$00,$10,$00,$30,$00,$20,$00,$20,$00,$60,$00
db $1f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $0c,$0f,$0c,$0f,$06,$07,$02,$03,$00,$01,$00,$00,$00,$00,$00,$00
db $71,$82,$31,$c3,$10,$e1,$10,$e1,$30,$c1,$00,$ff,$00,$00,$00,$00
db $00,$10,$00,$90,$00,$f0,$00,$80,$00,$80,$01,$01,$00,$03,$00,$07
db $43,$3c,$43,$3c,$03,$3c,$27,$38,$c7,$f8,$0f,$f0,$0f,$f0,$3f,$c0
db $8e,$10,$8c,$10,$8c,$10,$8c,$10,$be,$3e,$bf,$3f,$82,$73,$01,$e3
db $40,$00,$40,$00,$c0,$00,$80,$40,$80,$00,$80,$00,$80,$80,$00,$80
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$0f,$00,$0f,$00,$07,$0c,$30
db $00,$07,$01,$0e,$03,$1c,$06,$38,$1c,$e0,$77,$80,$3c,$80,$30,$00
db $ff,$00,$cc,$00,$18,$00,$30,$00,$e0,$00,$80,$00,$00,$00,$00,$00
db $01,$e0,$01,$c0,$01,$80,$03,$c0,$02,$f0,$04,$78,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$8a,$00,$00,$00,$2a,$00,$00,$00
db $0c,$30,$24,$38,$16,$18,$08,$0f,$04,$07,$00,$00,$00,$00,$00,$00
db $30,$00,$00,$60,$00,$c0,$00,$c0,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$00,$00,$22,$00,$00,$00
db $08,$00,$00,$00,$22,$00,$00,$00,$aa,$00,$04,$00,$2a,$00,$01,$00
db $aa,$00,$00,$00,$aa,$00,$01,$00,$aa,$00,$45,$00,$aa,$00,$15,$00
db $aa,$00,$45,$00,$aa,$00,$11,$00,$aa,$00,$55,$00,$ab,$00,$55,$00
db $88,$00,$ff,$ff,$41,$63,$63,$63,$aa,$63,$36,$36,$9c,$36,$19,$1c
db $aa,$00,$ff,$ff,$ca,$61,$71,$61,$ab,$61,$35,$61,$bb,$33,$56,$33
db $aa,$00,$d5,$c0,$aa,$80,$d5,$80,$2e,$80,$55,$80,$bb,$00,$55,$00
db $ae,$00,$55,$00,$bb,$00,$55,$00,$ff,$00,$55,$00,$ff,$00,$57,$00
db $ff,$00,$55,$00,$ff,$00,$55,$00,$ff,$00,$df,$00,$ff,$00,$7f,$00
db $ae,$1c,$55,$3e,$bf,$36,$36,$63,$ef,$63,$55,$63,$ff,$ff,$55,$00
db $de,$33,$57,$12,$bf,$1e,$4d,$1e,$ff,$0c,$5d,$0c,$ff,$ff,$77,$00
db $ff,$00,$55,$00,$ff,$00,$77,$00,$ff,$00,$df,$00,$ff,$00,$7f,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7e,$00,$c2,$01,$02,$81
.KeyArtTilesEnd:
.BackgroundCopy: ; tiles start at 26
db $6d, $6b, $1b, $1c, $1d, $67, $68, $6d
db $76, $6c, $6a, $1e, $1f, $20, $69, $6d
db $66, $21, $22, $23, $24, $25, $6d, $6d
db $63, $65, $26, $27, $28, $29, $2a, $6d
db $6d, $64, $2b, $78, $77, $2c, $2d, $2e
db $6d, $2f, $30, $74, $75, $31, $32, $33
db $6d, $34, $35, $36, $37, $38, $39, $3a
db $3b, $3c, $3d, $3e, $3f, $40, $41, $6d
db $42, $43, $44, $79, $7a, $45, $7d, $46
db $47, $48, $49, $7b, $7c, $4a, $7e, $4b
db $4c, $4d, $4e, $72, $73, $4f, $50, $51
db $52, $53, $54, $6d, $6d, $55, $56, $57
db $58, $59, $5a, $6d, $6d, $62, $5b, $6d
db $5c, $5d, $5e, $6d, $6d, $5f, $60, $61
db $6d, $6d, $6d, $70, $71, $6d, $6d, $6d
db $6d, $6d, $6d, $6e, $6f, $6d, $6d, $6d
db $1b, $1c, $7e, $1d, $1e, $1f, $20, $1a
db $21, $1a, $22, $23, $24, $25, $26, $1a
db $1a, $1a, $27, $28, $29, $2a, $2b, $1a
db $2c, $2d, $2e, $2f, $30, $31, $1a, $1a
db $32, $33, $34, $35, $36, $37, $1a, $1a
db $38, $39, $3a, $3b, $3c, $1a, $1a, $3d
db $3e, $3f, $40, $41, $42, $43, $44, $45
db $46, $47, $48, $49, $4a, $4b, $4c, $4d
db $1a, $1a, $4e, $4f, $50, $51, $52, $53
db $54, $55, $56, $57, $58, $59, $5a, $5b
db $5c, $5d, $5e, $5f, $60, $61, $62, $63
db $64, $65, $66, $67, $68, $69, $1a, $1a
db $1a, $6a, $6b, $6c, $6d, $1a, $1a, $6e
db $1a, $6f, $70, $1a, $71, $72, $73, $74
db $1a, $1a, $6e, $75, $76, $77, $78, $79
db $72, $73, $74, $7a, $7b, $7c, $7d, $7d
.BackgroundCopyEnd:

Binary file not shown.

Binary file not shown.

View File

@ -4,123 +4,123 @@
KeyArtTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$01,$01,$01,$03,$03,$02,$03,$06,$06,$04,$06,$0f,$0f,$00,$00
db $09,$19,$09,$19,$0f,$0f,$06,$0f,$06,$0f,$06,$06,$ff,$ff,$00,$00
db $00,$80,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$00,$00
db $00,$07,$f0,$f0,$60,$60,$40,$60,$c0,$c0,$80,$c0,$80,$c0,$80,$80
db $00,$00,$0f,$0f,$04,$06,$06,$06,$02,$03,$03,$03,$01,$01,$01,$01
db $00,$00,$ff,$ff,$60,$60,$20,$60,$30,$30,$10,$30,$10,$30,$19,$19
db $00,$00,$ff,$ff,$11,$33,$31,$33,$21,$63,$61,$63,$41,$c3,$81,$c3
db $c1,$c3,$41,$c3,$61,$63,$21,$63,$31,$33,$11,$33,$ff,$ff,$00,$00
db $7e,$81,$7c,$83,$18,$e7,$00,$ff,$00,$00,$00,$fe,$00,$00,$00,$00
db $07,$f8,$00,$0f,$00,$7f,$00,$01,$00,$00,$00,$0f,$00,$00,$00,$00
db $ff,$00,$ff,$00,$fe,$00,$ff,$00,$fa,$00,$fd,$00,$ea,$00,$f5,$00
db $a8,$00,$f4,$00,$a0,$00,$d4,$00,$80,$00,$40,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$1f,$00,$35,$0a,$05,$3a,$10,$6f
db $00,$00,$01,$03,$01,$03,$00,$03,$80,$03,$80,$03,$00,$83,$00,$83
db $00,$00,$08,$7b,$8c,$ff,$02,$ff,$10,$ff,$8b,$ff,$44,$ff,$09,$ff
db $00,$00,$40,$c0,$40,$c0,$00,$f0,$90,$f0,$f0,$f0,$a0,$f8,$58,$f8
db $a8,$00,$54,$00,$a0,$00,$50,$00,$80,$00,$40,$00,$00,$00,$00,$00
db $02,$81,$02,$81,$04,$83,$7c,$82,$3f,$43,$ff,$ff,$fc,$fe,$00,$66
db $1f,$60,$1f,$60,$0f,$70,$30,$0f,$30,$0e,$30,$0e,$28,$16,$28,$16
db $00,$c2,$00,$c2,$00,$c3,$01,$83,$04,$02,$08,$04,$04,$08,$00,$0e
db $1f,$3f,$06,$3f,$05,$9f,$83,$1f,$07,$1f,$2f,$1f,$73,$0f,$2d,$13
db $e0,$ff,$fd,$ff,$f8,$fc,$fc,$fc,$70,$f8,$f8,$fc,$fc,$fc,$f0,$f0
db $64,$02,$6c,$02,$6e,$01,$6e,$01,$77,$00,$37,$00,$33,$00,$33,$00
db $60,$1e,$40,$3e,$40,$3e,$40,$3e,$00,$fc,$00,$fc,$83,$7c,$9f,$60
db $02,$07,$00,$04,$00,$07,$01,$00,$1f,$00,$e3,$00,$83,$00,$03,$00
db $21,$1f,$00,$7f,$03,$ff,$c6,$3e,$e6,$1e,$02,$fe,$80,$7e,$f9,$07
db $f0,$f0,$f0,$f0,$f0,$f0,$30,$30,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$03,$00,$0f,$00,$3f,$00,$30,$00,$60,$00
db $00,$00,$74,$08,$f6,$08,$c1,$00,$e0,$00,$e0,$00,$39,$00,$07,$08
db $31,$00,$39,$00,$18,$00,$18,$00,$9c,$00,$9e,$00,$cf,$00,$e3,$04
db $be,$40,$f8,$00,$60,$00,$01,$00,$07,$00,$bf,$00,$fe,$01,$60,$9f
db $03,$00,$07,$00,$7f,$00,$fe,$01,$fc,$03,$9c,$63,$3e,$c1,$fe,$c1
db $fb,$07,$e3,$1f,$c3,$3f,$03,$ff,$07,$ff,$0f,$ff,$1f,$ff,$1e,$fe
db $e0,$00,$07,$c0,$0f,$c0,$0f,$40,$3f,$40,$1f,$60,$0f,$70,$0f,$70
db $07,$00,$03,$00,$f9,$00,$fc,$00,$fc,$00,$ff,$00,$3f,$c0,$1f,$e0
db $f0,$03,$f8,$01,$f8,$00,$ec,$10,$33,$0c,$1d,$02,$86,$01,$e3,$00
db $03,$ff,$1c,$fd,$71,$00,$e1,$00,$83,$00,$07,$00,$0f,$00,$1f,$00
db $3c,$c3,$fc,$03,$fc,$03,$f8,$07,$f0,$0f,$f1,$0f,$e1,$1f,$c3,$3f
db $3e,$fe,$3c,$fc,$78,$f8,$f8,$f8,$f0,$f0,$e0,$e0,$c0,$c0,$80,$80
db $0f,$70,$0f,$70,$07,$38,$07,$38,$07,$18,$07,$18,$07,$78,$07,$78
db $0f,$f0,$87,$78,$03,$fc,$21,$fe,$10,$ff,$18,$ff,$0c,$ff,$0e,$ff
db $f1,$00,$f8,$00,$fc,$00,$ff,$00,$ff,$00,$7f,$80,$3f,$c0,$0f,$f0
db $3f,$00,$7f,$00,$ff,$00,$fe,$01,$fe,$01,$fc,$03,$f9,$07,$e3,$1f
db $87,$7f,$8e,$7e,$1c,$fc,$38,$f8,$70,$f0,$e0,$e0,$c0,$c0,$80,$80
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$07,$07,$0e,$0f
db $03,$fc,$23,$dc,$33,$cc,$33,$cc,$f3,$0c,$f0,$0e,$68,$96,$18,$e7
db $09,$f9,$80,$70,$80,$60,$80,$60,$c0,$30,$40,$30,$c0,$38,$c0,$38
db $00,$ff,$c0,$ff,$78,$7f,$0f,$0f,$00,$00,$00,$00,$00,$00,$00,$00
db $0f,$ff,$3c,$fc,$f8,$f8,$e0,$e0,$01,$01,$0f,$0f,$3f,$3f,$fe,$ff
db $00,$00,$00,$00,$1f,$1f,$7f,$7f,$fc,$ff,$e0,$ff,$81,$fe,$03,$fc
db $00,$00,$00,$00,$f8,$f8,$fe,$fe,$07,$ff,$03,$ff,$e1,$1f,$fc,$03
db $00,$00,$01,$01,$03,$03,$02,$03,$00,$03,$80,$83,$c0,$c1,$60,$e0
db $1c,$1f,$f8,$ff,$f0,$ff,$00,$ff,$01,$fe,$63,$9c,$73,$88,$70,$88
db $30,$cf,$e0,$1f,$c0,$3f,$80,$7f,$03,$ff,$0c,$fc,$18,$f8,$20,$e0
db $00,$f8,$00,$f8,$38,$f8,$e0,$e0,$80,$80,$00,$00,$00,$00,$00,$00
db $01,$01,$03,$03,$07,$07,$0f,$0f,$1f,$1f,$3f,$3f,$3e,$3f,$7e,$7f
db $fc,$ff,$f8,$ff,$f0,$ff,$e1,$fe,$83,$fc,$07,$f8,$0f,$f0,$0f,$f0
db $1f,$e0,$3f,$c0,$7f,$80,$ff,$00,$ff,$00,$fe,$00,$f8,$00,$f1,$00
db $fc,$03,$fe,$01,$fe,$01,$ff,$00,$ff,$00,$87,$00,$83,$40,$83,$60
db $38,$f0,$18,$f1,$18,$f9,$0c,$f9,$8c,$7f,$85,$7f,$c7,$3f,$c7,$3e
db $70,$88,$70,$88,$70,$88,$70,$89,$f0,$0b,$f0,$0f,$f0,$0e,$f0,$0e
db $7c,$7f,$78,$7f,$78,$7f,$f0,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff
db $1f,$e0,$3f,$c0,$7f,$80,$ff,$00,$ef,$1e,$e7,$1f,$f0,$0f,$fe,$01
db $e1,$00,$c1,$00,$83,$00,$07,$00,$0c,$03,$9e,$80,$f0,$e0,$08,$f0
db $03,$e0,$01,$f0,$01,$f8,$c1,$f8,$64,$f8,$26,$f8,$03,$7c,$03,$1c
db $e3,$1e,$e7,$1e,$f7,$0c,$f3,$0c,$f9,$06,$79,$06,$39,$06,$3d,$02
db $f0,$0c,$f0,$08,$f0,$08,$b0,$09,$90,$09,$90,$0b,$90,$0a,$90,$0e
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$ff,$ff,$ff
db $f8,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$e0,$ff,$c0,$ff,$83,$fc,$c0,$ff
db $ff,$00,$ff,$00,$7f,$80,$3f,$c0,$03,$fc,$00,$ff,$e0,$1f,$fc,$03
db $80,$7c,$c0,$3f,$f0,$0f,$fc,$03,$ff,$00,$7f,$80,$1f,$e0,$03,$fc
db $01,$0e,$01,$06,$01,$c2,$01,$f0,$00,$f8,$c8,$30,$f8,$00,$f8,$00
db $9f,$00,$8f,$00,$c7,$00,$c0,$00,$e0,$00,$e0,$00,$70,$00,$3f,$00
db $80,$0c,$00,$08,$00,$08,$08,$00,$08,$00,$18,$00,$70,$00,$e0,$00
db $03,$03,$03,$03,$07,$07,$07,$07,$06,$07,$0e,$0f,$0c,$0f,$0c,$0f
db $f8,$ff,$c0,$ff,$07,$f8,$1f,$e0,$3f,$c0,$7f,$80,$7f,$80,$70,$80
db $de,$e1,$18,$e1,$00,$f0,$00,$78,$00,$1c,$00,$04,$20,$04,$10,$28
db $00,$fe,$00,$fe,$0c,$f2,$0f,$f0,$0f,$f0,$87,$78,$07,$78,$07,$78
db $0f,$30,$03,$0c,$03,$0c,$07,$08,$07,$18,$0f,$10,$8e,$10,$8e,$10
db $98,$00,$98,$00,$18,$00,$10,$00,$30,$00,$20,$00,$20,$00,$60,$00
db $1f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $0c,$0f,$0c,$0f,$06,$07,$02,$03,$00,$01,$00,$00,$00,$00,$00,$00
db $71,$82,$31,$c3,$10,$e1,$10,$e1,$30,$c1,$00,$ff,$00,$00,$00,$00
db $00,$10,$00,$90,$00,$f0,$00,$80,$00,$80,$01,$01,$00,$03,$00,$07
db $43,$3c,$43,$3c,$03,$3c,$27,$38,$c7,$f8,$0f,$f0,$0f,$f0,$3f,$c0
db $8e,$10,$8c,$10,$8c,$10,$8c,$10,$be,$3e,$bf,$3f,$82,$73,$01,$e3
db $40,$00,$40,$00,$c0,$00,$80,$40,$80,$00,$80,$00,$80,$80,$00,$80
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$0f,$00,$0f,$00,$07,$0c,$30
db $00,$07,$01,$0e,$03,$1c,$06,$38,$1c,$e0,$77,$80,$3c,$80,$30,$00
db $ff,$00,$cc,$00,$18,$00,$30,$00,$e0,$00,$80,$00,$00,$00,$00,$00
db $01,$e0,$01,$c0,$01,$80,$03,$c0,$02,$f0,$04,$78,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$8a,$00,$00,$00,$2a,$00,$00,$00
db $0c,$30,$24,$38,$16,$18,$08,$0f,$04,$07,$00,$00,$00,$00,$00,$00
db $30,$00,$00,$60,$00,$c0,$00,$c0,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$00,$00,$22,$00,$00,$00
db $08,$00,$00,$00,$22,$00,$00,$00,$aa,$00,$04,$00,$2a,$00,$01,$00
db $aa,$00,$00,$00,$aa,$00,$01,$00,$aa,$00,$45,$00,$aa,$00,$15,$00
db $aa,$00,$45,$00,$aa,$00,$11,$00,$aa,$00,$55,$00,$ab,$00,$55,$00
db $88,$00,$ff,$ff,$41,$63,$63,$63,$aa,$63,$36,$36,$9c,$36,$19,$1c
db $aa,$00,$ff,$ff,$ca,$61,$71,$61,$ab,$61,$35,$61,$bb,$33,$56,$33
db $aa,$00,$d5,$c0,$aa,$80,$d5,$80,$2e,$80,$55,$80,$bb,$00,$55,$00
db $ae,$00,$55,$00,$bb,$00,$55,$00,$ff,$00,$55,$00,$ff,$00,$57,$00
db $ff,$00,$55,$00,$ff,$00,$55,$00,$ff,$00,$df,$00,$ff,$00,$7f,$00
db $ae,$1c,$55,$3e,$bf,$36,$36,$63,$ef,$63,$55,$63,$ff,$ff,$55,$00
db $de,$33,$57,$12,$bf,$1e,$4d,$1e,$ff,$0c,$5d,$0c,$ff,$ff,$77,$00
db $ff,$00,$55,$00,$ff,$00,$77,$00,$ff,$00,$df,$00,$ff,$00,$7f,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$03,$ff,$03
db $ff,$00,$ff,$00,$ff,$03,$ff,$1f,$ff,$7f,$ff,$ff,$ff,$3f,$ff,$cf
db $ff,$00,$ff,$00,$ff,$c0,$ff,$f8,$ff,$fe,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$c0
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$03,$ff,$fe
db $ff,$06,$ff,$0f,$fe,$09,$f9,$1f,$f3,$7f,$e7,$ff,$cf,$ff,$ce,$ff
db $ff,$f7,$80,$ff,$3c,$ff,$ff,$ff,$df,$ff,$bf,$ff,$72,$ff,$e7,$ff
db $07,$ff,$73,$ff,$7d,$ff,$3c,$ff,$be,$ff,$fe,$ff,$fe,$ff,$fe,$df
db $ff,$e0,$ff,$e0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0
db $ff,$03,$ff,$0f,$fc,$1f,$f8,$3f,$f0,$3f,$e0,$3f,$e0,$3f,$e0,$3f
db $ff,$ff,$87,$ff,$01,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$f8,$00,$e0
db $dd,$7f,$9b,$ff,$bf,$ff,$c0,$c0,$c0,$c0,$c0,$c0,$fb,$fb,$fb,$e9
db $ce,$ff,$9c,$ff,$b0,$ff,$ff,$ff,$61,$7f,$2d,$33,$8b,$87,$8b,$07
db $3e,$df,$3e,$df,$7a,$df,$fa,$df,$fa,$df,$fa,$df,$f2,$ff,$f7,$bf
db $ff,$e0,$ff,$e0,$ff,$e0,$ff,$c0,$ff,$80,$ff,$80,$ff,$00,$ff,$00
db $e0,$3f,$e0,$3f,$e0,$3f,$e0,$3e,$e0,$1e,$f0,$1e,$e8,$0e,$e6,$0e
db $00,$c0,$01,$81,$01,$01,$01,$01,$03,$03,$01,$01,$02,$02,$0f,$0e
db $e0,$e4,$b0,$87,$b0,$80,$b3,$83,$98,$00,$c7,$00,$03,$04,$c3,$04
db $0b,$07,$0b,$16,$1e,$05,$b5,$8b,$29,$17,$db,$27,$fa,$03,$00,$03
db $b7,$6f,$e5,$ff,$cd,$ff,$db,$fe,$b3,$fe,$37,$fc,$6f,$fc,$dc,$ff
db $e0,$06,$e0,$06,$e0,$04,$e0,$04,$e0,$04,$e0,$04,$e0,$04,$e0,$04
db $04,$0c,$06,$0f,$03,$0c,$07,$08,$07,$08,$06,$08,$04,$08,$00,$08
db $03,$04,$01,$86,$01,$82,$00,$81,$20,$40,$20,$40,$00,$60,$00,$70
db $01,$07,$91,$0f,$81,$0f,$c0,$1f,$20,$df,$00,$7f,$00,$3f,$00,$1f
db $98,$ff,$30,$ff,$e0,$f1,$00,$e0,$00,$c0,$00,$c0,$00,$80,$00,$80
db $7f,$80,$3f,$c0,$3f,$c0,$3f,$40,$3f,$00,$3f,$00,$7f,$00,$7f,$00
db $e0,$04,$e0,$04,$e0,$04,$e0,$04,$f0,$04,$f8,$04,$f8,$04,$f8,$04
db $00,$08,$00,$09,$00,$09,$01,$0b,$01,$1b,$06,$1f,$0e,$1d,$0e,$11
db $88,$f0,$84,$f8,$82,$fc,$01,$fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$0f,$00,$07,$00,$02,$00,$00,$80,$00,$40,$80,$20,$c0,$10,$e0
db $00,$00,$00,$00,$01,$00,$01,$01,$03,$03,$03,$03,$07,$07,$06,$07
db $df,$20,$bf,$40,$ff,$80,$ff,$80,$ff,$80,$ff,$80,$ff,$80,$7f,$80
db $f8,$04,$f0,$0c,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08
db $0e,$11,$0e,$11,$0f,$10,$0f,$10,$07,$18,$07,$08,$07,$08,$07,$08
db $00,$ff,$00,$ff,$00,$ff,$ff,$7f,$ff,$7f,$fe,$7f,$f8,$7f,$ff,$7f
db $08,$f0,$04,$f8,$00,$ff,$ff,$ff,$80,$ff,$aa,$ff,$00,$ff,$ff,$ff
db $09,$0f,$06,$3f,$78,$ff,$82,$ff,$29,$ff,$86,$ff,$78,$ff,$80,$ff
db $ff,$80,$7f,$80,$ff,$80,$7f,$80,$ff,$80,$7f,$80,$7f,$80,$7f,$80
db $f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08
db $07,$08,$07,$08,$07,$08,$07,$08,$07,$08,$07,$08,$07,$08,$07,$08
db $e0,$ff,$e0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$80,$ff,$80,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $7f,$80,$7f,$80,$7f,$80,$7f,$80,$3f,$c0,$3f,$c0,$1f,$e0,$1f,$e0
db $f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$08,$f0,$38
db $07,$08,$07,$08,$07,$08,$07,$08,$07,$08,$07,$08,$07,$08,$06,$0f
db $80,$ff,$80,$ff,$80,$ff,$80,$ff,$c0,$ff,$c0,$7f,$c0,$7f,$c0,$7f
db $00,$ff,$00,$ff,$01,$ff,$07,$ff,$08,$ff,$10,$ff,$20,$ff,$40,$ff
db $1f,$e0,$0f,$f0,$ff,$f8,$0f,$fc,$07,$fc,$03,$fe,$03,$fe,$03,$ff
db $ff,$00,$fc,$03,$f1,$0f,$e1,$1f,$01,$ff,$00,$ff,$00,$ff,$1f,$e0
db $40,$f8,$80,$f8,$00,$f8,$80,$f8,$c0,$fc,$f8,$ff,$ff,$ff,$ff,$ff
db $01,$0f,$00,$0f,$00,$0f,$00,$0f,$01,$1f,$0f,$ff,$ff,$ff,$ff,$ff
db $60,$ff,$e0,$ff,$60,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e3,$ff,$e0,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$0e,$ff,$f0,$ff,$00,$ff
db $40,$ff,$00,$ff,$80,$ff,$80,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff
db $01,$ff,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$3f,$ff,$c0,$ff,$00,$ff
db $3f,$c0,$80,$ff,$80,$ff,$c0,$ff,$c0,$ff,$e0,$ff,$30,$ff,$10,$ff
db $ff,$4f,$ff,$79,$ff,$3f,$ff,$3f,$ff,$3f,$3f,$ff,$3f,$ff,$ff,$3f
db $ff,$fc,$ff,$27,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $a0,$ff,$a0,$ff,$20,$ff,$20,$ff,$20,$ff,$20,$ff,$20,$ff,$20,$ff
db $02,$ff,$04,$ff,$08,$ff,$10,$ff,$10,$ff,$20,$ff,$20,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$07,$ff
db $1f,$f0,$1f,$f0,$1f,$f0,$0f,$f8,$0f,$f8,$0b,$fc,$08,$ff,$fb,$fc
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$00,$00,$01,$01
db $ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$7f,$ff,$67,$ff,$fc,$ff,$bf
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f9,$ff,$0f,$ff,$fe
db $30,$ff,$10,$ff,$10,$ff,$10,$ff,$90,$ff,$80,$9f,$c1,$cf,$e0,$ef
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$06,$ff,$f8,$ff,$00,$ff
db $40,$ff,$40,$ff,$83,$ff,$83,$ff,$06,$fe,$06,$fe,$1c,$fc,$18,$f8
db $3f,$ff,$e0,$e0,$80,$80,$00,$00,$1c,$00,$fe,$00,$ff,$00,$03,$fc
db $f3,$fc,$03,$04,$03,$04,$03,$04,$02,$05,$00,$0f,$e7,$18,$cf,$30
db $01,$01,$03,$03,$03,$03,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07
db $ff,$ef,$ff,$fd,$ff,$3f,$ff,$cf,$ff,$f8,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$fb,$ff,$5f,$ff,$ff,$ff,$fc,$ff,$07,$ff,$ff,$ff,$ff,$ff,$ff
db $e0,$ef,$f0,$ff,$f0,$3f,$f8,$ff,$fb,$ff,$f8,$ff,$f8,$ff,$ff,$ff
db $00,$ff,$00,$ff,$00,$ff,$01,$ff,$ff,$ff,$01,$ff,$01,$ff,$ff,$ff
db $38,$f8,$78,$f8,$78,$f8,$f0,$f0,$e3,$e0,$80,$e0,$c0,$30,$e0,$18
db $78,$87,$7e,$81,$7e,$81,$3c,$c3,$b9,$46,$13,$6c,$47,$38,$e7,$18
db $07,$77,$07,$87,$03,$73,$00,$00,$00,$1c,$00,$07,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$01,$01,$00,$80,$00,$fc,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$e0,$e0,$00,$00,$00,$03,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$80,$80,$00,$00,$00,$0f,$00,$f8,$00,$00
db $ff,$ff,$ff,$ff,$fc,$ff,$00,$07,$00,$1d,$00,$9f,$00,$e0,$00,$00
db $f0,$0f,$f8,$07,$ff,$00,$ff,$00,$7f,$80,$7f,$80,$00,$7f,$00,$00
db $07,$f8,$17,$e8,$f3,$0c,$f3,$0c,$f3,$0c,$e0,$1f,$0f,$f0,$0f,$f0
db $ff,$00,$ff,$00,$ff,$00,$7f,$80,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $1f,$e0,$00,$ff,$1e,$e1,$7f,$80,$ff,$00,$ff,$00,$ff,$00,$fe,$01
db $fe,$01,$fe,$01,$fe,$01,$fe,$01,$fc,$03,$00,$ff,$3c,$c3,$7e,$81
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$00,$ff,$7f,$80,$ff,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7e,$00,$c2,$01,$02,$81
BackgroundCopy:
db $25, $25, $25, $27, $28, $29, $2a, $25
db $25, $25, $2b, $2c, $2d, $2e, $2f, $25
db $25, $30, $31, $32, $33, $34, $35, $25
db $25, $36, $37, $38, $39, $3a, $25, $25
db $25, $3b, $3c, $3d, $3e, $3f, $40, $25
db $25, $41, $42, $43, $44, $45, $46, $25
db $25, $47, $48, $49, $4a, $4b, $4c, $25
db $25, $4d, $4e, $4f, $50, $50, $51, $25
db $25, $52, $53, $54, $50, $55, $56, $25
db $57, $58, $59, $5a, $5b, $5c, $5d, $5e
db $7e, $5f, $60, $61, $50, $62, $63, $64
db $65, $66, $67, $68, $69, $6a, $6b, $6c
db $6d, $6e, $6f, $70, $71, $72, $73, $7c
db $74, $75, $76, $77, $78, $79, $7a, $7d
db $1a, $1a, $1f, $21, $20, $1e, $24, $23
db $1a, $1a, $1b, $22, $1c, $1d, $1a, $1a
db $1b, $1c, $7e, $1d, $1e, $1f, $20, $1a
db $21, $1a, $22, $23, $24, $25, $26, $1a
db $1a, $1a, $27, $28, $29, $2a, $2b, $1a
db $2c, $2d, $2e, $2f, $30, $31, $1a, $1a
db $32, $33, $34, $35, $36, $37, $1a, $1a
db $38, $39, $3a, $3b, $3c, $1a, $1a, $3d
db $3e, $3f, $40, $41, $42, $43, $44, $45
db $46, $47, $48, $49, $4a, $4b, $4c, $4d
db $1a, $1a, $4e, $4f, $50, $51, $52, $53
db $54, $55, $56, $57, $58, $59, $5a, $5b
db $5c, $5d, $5e, $5f, $60, $61, $62, $63
db $64, $65, $66, $67, $68, $69, $1a, $1a
db $1a, $6a, $6b, $6c, $6d, $1a, $1a, $6e
db $1a, $6f, $70, $1a, $71, $72, $73, $74
db $1a, $1a, $6e, $75, $76, $77, $78, $79
db $72, $73, $74, $7a, $7b, $7c, $7d, $7d

View File

@ -4,43 +4,38 @@
SpriteTiles:
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,$01,$01,$07,$07,$1f,$0f
db $00,$00,$00,$00,$00,$00,$00,$01,$00,$03,$03,$03,$03,$03,$03,$01
db $3f,$03,$7e,$00,$fe,$00,$00,$fe,$00,$fc,$fc,$fc,$fc,$fc,$f8,$f8
db $03,$00,$03,$00,$03,$00,$01,$02,$00,$03,$00,$03,$00,$03,$00,$03
db $f0,$00,$f0,$00,$f0,$00,$f0,$00,$00,$f0,$00,$f0,$00,$f0,$00,$f0
db $00,$03,$02,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03
db $00,$f0,$10,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$e0,$e0,$e0,$e0,$e0,$e0
db $03,$03,$03,$03,$07,$03,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00
db $e0,$e0,$e0,$e0,$e0,$c0,$e0,$00,$e0,$00,$f0,$00,$f0,$00,$f0,$00
db $07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$03,$04
db $f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$e0,$10
db $00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07
db $00,$07,$00,$07,$00,$07,$00,$07,$00,$03,$00,$00,$00,$00,$00,$00
db $00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$e0,$00,$00,$00,$00,$00,$00
db $00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0
db $3e,$3f,$7e,$0e,$fe,$00,$fe,$00,$00,$fc,$00,$fc,$0c,$fc,$f8,$f8
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$04,$07,$1c,$1f
db $00,$00,$00,$00,$00,$00,$01,$00,$00,$03,$00,$03,$03,$03,$03,$03
db $03,$03,$03,$01,$03,$00,$03,$00,$03,$00,$03,$00,$01,$02,$00,$03
db $f0,$f0,$f0,$f0,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$00,$f0
db $00,$03,$00,$03,$00,$03,$00,$03,$00,$03,$02,$03,$03,$03,$03,$03
db $00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$e0,$e0,$e0,$e0,$e0
db $03,$03,$03,$03,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07
db $07,$07,$07,$03,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00
db $f0,$f0,$f0,$e0,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00
db $e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$f0,$f0,$f0,$f0,$f0,$f0
db $07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$03,$04,$00,$07
db $f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$e0,$10,$00,$f0
db $00,$00,$00,$00,$1f,$1f,$2f,$38,$4f,$7f,$48,$78,$48,$78,$47,$7f
db $00,$00,$00,$00,$f0,$f0,$e8,$38,$e4,$fc,$24,$3c,$24,$3c,$c4,$fc
db $40,$7f,$40,$7f,$40,$7f,$40,$7f,$20,$3f,$10,$1f,$0f,$0f,$00,$00
db $04,$fc,$04,$fc,$04,$fc,$04,$fc,$08,$f8,$10,$f0,$e0,$e0,$00,$00
db $00,$00,$18,$3c,$3c,$66,$66,$42,$66,$42,$3c,$66,$18,$3c,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$0f,$0f,$10,$1f,$20,$3f,$40,$79
db $00,$00,$38,$38,$7c,$44,$fe,$92,$ee,$2a,$de,$d2,$7c,$e4,$38,$e8
db $80,$f0,$80,$e0,$80,$e0,$80,$f0,$40,$79,$20,$3f,$10,$1f,$0f,$0f
db $10,$f0,$10,$70,$10,$70,$10,$f0,$20,$e0,$40,$c0,$80,$80,$00,$00
db $00,$00,$00,$00,$0c,$0c,$3f,$33,$3f,$2c,$73,$53,$71,$51,$71,$51
db $00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$c0,$40,$c0,$40,$c0,$40
db $39,$29,$38,$28,$38,$28,$1f,$1f,$70,$7f,$40,$7f,$40,$7f,$20,$3f
db $c0,$40,$e0,$a0,$f8,$b8,$c8,$f8,$08,$f8,$04,$fc,$04,$fc,$04,$fc
db $20,$3f,$20,$3f,$20,$3f,$20,$3f,$20,$3f,$10,$1f,$13,$1f,$1c,$1c
db $04,$fc,$04,$fc,$04,$fc,$02,$fe,$02,$fe,$0e,$fe,$f0,$f0,$00,$00
Sprites:
db $00, $11
db $12, $10
db $13, $14
db $15, $16
db $17, $1a
db $18, $19
db $1b, $1c
db $0d, $0e
db $01, $02, $00, $00, $00, $00, $00, $00
db $03, $04, $00, $00, $00, $00, $00, $00
db $05, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $06, $07
db $00, $00, $00, $00, $00, $00, $08, $09
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $0a, $0b
db $00, $00, $00, $00, $00, $00, $0c, $0d
db $00, $00, $00, $00, $00, $00, $0e, $0f
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00

573
hardware_compat.inc Normal file
View File

@ -0,0 +1,573 @@
;******************************************************************************
; Deprecated Game Boy hardware constant definitions for backwards compatibility
; https://github.com/gbdev/hardware_compat.inc
;******************************************************************************
; To the extent possible under law, the authors of this work have
; waived all copyright and related or neighboring rights to the work.
; See https://creativecommons.org/publicdomain/zero/1.0/ for details.
; SPDX-License-Identifier: CC0-1.0
; If this file was already included, don't do it again
if !def(HARDWARE_COMPAT_INC)
; Check for hardware.inc to have been previously included
if !def(HARDWARE_INC)
fail "'hardware_compat.inc' requires 'hardware.inc'"
endc
; Define the include guard
; (do this after the hardware.inc check since the `def` syntax depends on it)
def HARDWARE_COMPAT_INC equ 1
;******************************************************************************
; Memory-mapped registers ($FFxx range)
;******************************************************************************
def JOYPB_GET_BTN equ B_JOYP_GET_BUTTONS
def JOYPB_GET_DPAD equ B_JOYP_GET_CTRL_PAD
def JOYPF_GET equ JOYP_GET
def JOYP_GET_BTN equ JOYP_GET_BUTTONS
def JOYP_GET_DPAD equ JOYP_GET_CTRL_PAD
def JOYPB_START equ B_JOYP_START
def JOYPB_SELECT equ B_JOYP_SELECT
def JOYPB_B equ B_JOYP_B
def JOYPB_A equ B_JOYP_A
def JOYPB_DOWN equ B_JOYP_DOWN
def JOYPB_UP equ B_JOYP_UP
def JOYPB_LEFT equ B_JOYP_LEFT
def JOYPB_RIGHT equ B_JOYP_RIGHT
def JOYPF_INPUTS equ JOYP_INPUTS
def JOYPF_START equ JOYP_START
def JOYPF_SELECT equ JOYP_SELECT
def JOYPF_B equ JOYP_B
def JOYPF_A equ JOYP_A
def JOYPF_DOWN equ JOYP_DOWN
def JOYPF_UP equ JOYP_UP
def JOYPF_LEFT equ JOYP_LEFT
def JOYPF_RIGHT equ JOYP_RIGHT
def PADB_DOWN equ B_PAD_DOWN
def PADB_UP equ B_PAD_UP
def PADB_LEFT equ B_PAD_LEFT
def PADB_RIGHT equ B_PAD_RIGHT
def PADB_START equ B_PAD_START
def PADB_SELECT equ B_PAD_SELECT
def PADB_B equ B_PAD_B
def PADB_A equ B_PAD_A
def PADF_DOWN equ PAD_DOWN
def PADF_UP equ PAD_UP
def PADF_LEFT equ PAD_LEFT
def PADF_RIGHT equ PAD_RIGHT
def PADF_START equ PAD_START
def PADF_SELECT equ PAD_SELECT
def PADF_B equ PAD_B
def PADF_A equ PAD_A
def PADB_SWAP_START equ B_PAD_SWAP_START
def PADB_SWAP_SELECT equ B_PAD_SWAP_SELECT
def PADB_SWAP_B equ B_PAD_SWAP_B
def PADB_SWAP_A equ B_PAD_SWAP_A
def PADB_SWAP_DOWN equ B_PAD_SWAP_DOWN
def PADB_SWAP_UP equ B_PAD_SWAP_UP
def PADB_SWAP_LEFT equ B_PAD_SWAP_LEFT
def PADB_SWAP_RIGHT equ B_PAD_SWAP_RIGHT
def PADF_SWAP_START equ PAD_SWAP_START
def PADF_SWAP_SELECT equ PAD_SWAP_SELECT
def PADF_SWAP_B equ PAD_SWAP_B
def PADF_SWAP_A equ PAD_SWAP_A
def PADF_SWAP_DOWN equ PAD_SWAP_DOWN
def PADF_SWAP_UP equ PAD_SWAP_UP
def PADF_SWAP_LEFT equ PAD_SWAP_LEFT
def PADF_SWAP_RIGHT equ PAD_SWAP_RIGHT
def SCB_START equ B_SC_START
def SCB_SPEED equ B_SC_SPEED
def SCB_SOURCE equ B_SC_SOURCE
def SCF_START equ SC_START
def SCF_SPEED equ SC_SPEED
def SCF_SOURCE equ SC_SOURCE
def TACB_START equ B_TAC_START
def TACF_STOP equ TAC_STOP
def TACF_START equ TAC_START
def TACF_CLOCK equ TAC_CLOCK
def TACF_4KHZ equ TAC_4KHZ
def TACF_262KHZ equ TAC_262KHZ
def TACF_65KHZ equ TAC_65KHZ
def TACF_16KHZ equ TAC_16KHZ
def IFB_JOYPAD equ B_IF_JOYPAD
def IFB_SERIAL equ B_IF_SERIAL
def IFB_TIMER equ B_IF_TIMER
def IFB_STAT equ B_IF_STAT
def IFB_VBLANK equ B_IF_VBLANK
def IFF_JOYPAD equ IF_JOYPAD
def IFF_SERIAL equ IF_SERIAL
def IFF_TIMER equ IF_TIMER
def IFF_STAT equ IF_STAT
def IFF_VBLANK equ IF_VBLANK
def AUD1SWEEPF_TIME equ AUD1SWEEP_TIME
def AUD1SWEEPB_DIR equ B_AUD1SWEEP_DIR
def AUD1SWEEPF_DIR equ AUD1SWEEP_DIR
def AUD1LENF_DUTY equ AUD1LEN_DUTY
def AUD1LENF_TIMER equ AUD1LEN_TIMER
def AUD1ENVF_INIT_VOL equ AUD1ENV_INIT_VOLUME
def AUD1ENVB_DIR equ B_AUD1ENV_DIR
def AUD1ENVF_DIR equ AUD1ENV_DIR
def AUD1ENVF_PACE equ AUD1ENV_PACE
def AUD1HIGHB_RESTART equ B_AUD1HIGH_RESTART
def AUD1HIGHB_LEN_ENABLE equ B_AUD1HIGH_LEN_ENABLE
def AUD1HIGHF_PERIOD_HIGH equ AUD1HIGH_PERIOD_HIGH
def AUD2LENF_DUTY equ AUD2LEN_DUTY
def AUD2LENF_TIMER equ AUD2LEN_TIMER
def AUD2ENVF_INIT_VOL equ AUD2ENV_INIT_VOLUME
def AUD2ENVB_DIR equ B_AUD2ENV_DIR
def AUD2ENVF_DIR equ AUD2ENV_DIR
def AUD2ENVF_PACE equ AUD2ENV_PACE
def AUD2HIGHB_RESTART equ B_AUD2HIGH_RESTART
def AUD2HIGHB_LEN_ENABLE equ B_AUD2HIGH_LEN_ENABLE
def AUD2HIGHF_PERIOD_HIGH equ AUD2HIGH_PERIOD_HIGH
def AUD3ENAB_ENABLE equ B_AUD3ENA_ENABLE
def AUD3LEVELF_VOLUME equ AUD3LEVEL_VOLUME
def AUD3HIGHB_RESTART equ B_AUD3HIGH_RESTART
def AUD3HIGHB_LEN_ENABLE equ B_AUD3HIGH_LEN_ENABLE
def AUD3HIGHF_PERIOD_HIGH equ AUD3HIGH_PERIOD_HIGH
def AUD4LENF_TIMER equ AUD4LEN_TIMER
def AUD4ENVF_INIT_VOL equ AUD4ENV_INIT_VOLUME
def AUD4ENVB_DIR equ B_AUD4ENV_DIR
def AUD4ENVF_DIR equ AUD4ENV_DIR
def AUD4ENVF_PACE equ AUD4ENV_PACE
def AUD4POLYF_SHIFT equ AUD4POLY_SHIFT
def AUD4POLYB_WIDTH equ B_AUD4POLY_WIDTH
def AUD4POLYF_DIV equ AUD4POLY_DIV
def AUD4GOB_RESTART equ B_AUD4GO_RESTART
def AUD4GOB_LEN_ENABLE equ B_AUD4GO_LEN_ENABLE
def AUDVOLB_VIN_LEFT equ B_AUDVOL_VIN_LEFT
def AUDVOLF_LEFT equ AUDVOL_LEFT
def AUDVOLB_VIN_RIGHT equ B_AUDVOL_VIN_RIGHT
def AUDVOLF_RIGHT equ AUDVOL_RIGHT
def AUDTERMB_4_LEFT equ B_AUDTERM_4_LEFT
def AUDTERMB_3_LEFT equ B_AUDTERM_3_LEFT
def AUDTERMB_2_LEFT equ B_AUDTERM_2_LEFT
def AUDTERMB_1_LEFT equ B_AUDTERM_1_LEFT
def AUDTERMB_4_RIGHT equ B_AUDTERM_4_RIGHT
def AUDTERMB_3_RIGHT equ B_AUDTERM_3_RIGHT
def AUDTERMB_2_RIGHT equ B_AUDTERM_2_RIGHT
def AUDTERMB_1_RIGHT equ B_AUDTERM_1_RIGHT
def AUDENAB_ENABLE equ B_AUDENA_ENABLE
def AUDENAB_ENABLE_CH4 equ B_AUDENA_ENABLE_CH4
def AUDENAB_ENABLE_CH3 equ B_AUDENA_ENABLE_CH3
def AUDENAB_ENABLE_CH2 equ B_AUDENA_ENABLE_CH2
def AUDENAB_ENABLE_CH1 equ B_AUDENA_ENABLE_CH1
def AUDENAF_CH4_OFF equ AUDENA_CH4_OFF
def AUDENAF_CH4_ON equ AUDENA_CH4_ON
def AUDENAF_CH3_OFF equ AUDENA_CH3_OFF
def AUDENAF_CH3_ON equ AUDENA_CH3_ON
def AUDENAF_CH2_OFF equ AUDENA_CH2_OFF
def AUDENAF_CH2_ON equ AUDENA_CH2_ON
def AUDENAF_CH1_OFF equ AUDENA_CH1_OFF
def AUDENAF_CH1_ON equ AUDENA_CH1_ON
def LCDCB_ON equ B_LCDC_ENABLE
def LCDCB_WIN9C00 equ B_LCDC_WIN_MAP
def LCDCB_WINON equ B_LCDC_WINDOW
def LCDCB_BLKS equ B_LCDC_BLOCKS
def LCDCB_BG9C00 equ B_LCDC_BG_MAP
def LCDCB_OBJ16 equ B_LCDC_OBJ_SIZE
def LCDCB_OBJON equ B_LCDC_OBJS
def LCDCB_BGON equ B_LCDC_BG
def LCDCB_PRION equ B_LCDC_PRIO
def LCDCF_OFF equ LCDC_OFF
def LCDCF_ON equ LCDC_ON
def LCDCF_WIN9800 equ LCDC_WIN_9800
def LCDCF_WIN9C00 equ LCDC_WIN_9C00
def LCDCF_WINOFF equ LCDC_WIN_OFF
def LCDCF_WINON equ LCDC_WIN_ON
def LCDCF_BLKS equ LCDC_BLOCKS
def LCDCF_BLK21 equ LCDC_BLOCK21
def LCDCF_BLK01 equ LCDC_BLOCK01
def LCDCF_BG9800 equ LCDC_BG_9800
def LCDCF_BG9C00 equ LCDC_BG_9C00
def LCDCF_OBJ8 equ LCDC_OBJ_8
def LCDCF_OBJ16 equ LCDC_OBJ_16
def LCDCF_OBJOFF equ LCDC_OBJ_OFF
def LCDCF_OBJON equ LCDC_OBJ_ON
def LCDCF_BGOFF equ LCDC_BG_OFF
def LCDCF_BGON equ LCDC_BG_ON
def LCDCF_PRIOFF equ LCDC_PRIO_OFF
def LCDCF_PRION equ LCDC_PRIO_ON
def STATB_LYC equ B_STAT_LYC
def STATB_MODE10 equ B_STAT_MODE_2
def STATB_MODE01 equ B_STAT_MODE_1
def STATB_MODE00 equ B_STAT_MODE_0
def STATB_LYCF equ B_STAT_LYCF
def STATB_BUSY equ B_STAT_BUSY
def STATF_LYC equ STAT_LYC
def STATF_MODE10 equ STAT_MODE_2
def STATF_MODE01 equ STAT_MODE_1
def STATF_MODE00 equ STAT_MODE_0
def STATF_LYCF equ STAT_LYCF
def STATF_BUSY equ STAT_BUSY
def STATF_MODE equ STAT_MODE
def STATF_HBL equ STAT_HBLANK
def STATF_VBL equ STAT_VBLANK
def STATF_OAM equ STAT_OAM
def STATF_LCD equ STAT_LCD
def SYSF_MODE equ SYS_MODE
def SYSF_CGB equ SYS_CGB
def SYSF_DMG equ SYS_DMG
def SYSF_PGB1 equ SYS_PGB1
def SYSF_PGB2 equ SYS_PGB2
def SPDB_DBLSPEED equ B_SPD_DOUBLE
def SPDB_PREPARE equ B_SPD_PREPARE
def SPDF_DBLSPEED equ SPD_DOUBLE
def SPDF_PREPARE equ SPD_PREPARE
def BANKB_ON equ B_BANK_ON
def BANKF_ON equ BANK_ON
def BANKF_OFF equ BANK_OFF
def VDMA_LENB_MODE equ B_VDMA_LEN_MODE
def VDMA_LENF_MODE equ VDMA_LEN_MODE
def VDMA_LENF_MODE_GP equ VDMA_LEN_MODE_GENERAL
def VDMA_LENF_MODE_HBL equ VDMA_LEN_MODE_HBLANK
def VDMA_LENB_BUSY equ B_VDMA_LEN_BUSY
def VDMA_LENF_BUSY equ VDMA_LEN_BUSY
def VDMA_LENF_NO equ VDMA_LEN_NO
def VDMA_LENF_YES equ VDMA_LEN_YES
def VDMA_LENB_SIZE equ VDMA_LEN_SIZE
def RPF_READ equ RP_READ
def RPF_DISREAD equ RP_DISABLE
def RPF_ENREAD equ RP_ENABLE
def RPB_DATAIN equ B_RP_DATA_IN
def RPB_LED_ON equ B_RP_LED_ON
def RPF_DATAIN equ RP_DATA_IN
def RPF_LED_ON equ RP_LED_ON
def RPF_WRITE_LO equ RP_WRITE_LOW
def RPF_WRITE_HI equ RP_WRITE_HIGH
def BGPIB_AUTOINC equ B_BGPI_AUTOINC
def BGPIF_AUTOINC equ BGPI_AUTOINC
def BGPIF_INDEX equ BGPI_INDEX
def OBPIB_AUTOINC equ B_OBPI_AUTOINC
def OBPIF_AUTOINC equ OBPI_AUTOINC
def OBPIF_INDEX equ OBPI_INDEX
def OPRIB_PRI equ B_OPRI_PRIORITY
def OPRIF_PRI equ OPRI_PRIORITY
def WBKF_BANK equ WBK_BANK
def PCM12F_CH2 equ PCM12_CH2
def PCM12F_CH1 equ PCM12_CH1
def PCM34F_CH4 equ PCM34_CH4
def PCM34F_CH3 equ PCM34_CH3
def IEB_JOYPAD equ B_IE_JOYPAD
def IEB_SERIAL equ B_IE_SERIAL
def IEB_TIMER equ B_IE_TIMER
def IEB_STAT equ B_IE_STAT
def IEB_VBLANK equ B_IE_VBLANK
def IEF_JOYPAD equ IE_JOYPAD
def IEF_SERIAL equ IE_SERIAL
def IEF_TIMER equ IE_TIMER
def IEF_STAT equ IE_STAT
def IEF_VBLANK equ IE_VBLANK
;******************************************************************************
; Cartridge registers (MBC)
;******************************************************************************
def CART_SRAM_DISABLE equ RAMG_SRAM_DISABLE
def CART_SRAM_ENABLE equ RAMG_SRAM_ENABLE
def RTC_S equ RAMB_RTC_S
def RTC_M equ RAMB_RTC_M
def RTC_H equ RAMB_RTC_H
def RTC_DL equ RAMB_RTC_DL
def RTC_DH equ RAMB_RTC_DH
def RTC_DHB_CARRY equ B_RAMB_RTC_DH_CARRY
def RTC_DHB_HALT equ B_RAMB_RTC_DH_HALT
def RTC_DHB_HIGH equ B_RAMB_RTC_DH_HIGH
def RTC_DHF_CARRY equ RAMB_RTC_DH_CARRY
def RTC_DHF_HALT equ RAMB_RTC_DH_HALT
def RTC_DHF_HIGH equ RAMB_RTC_DH_HIGH
def CARTB_RUMBLE_ON equ B_RAMB_RUMBLE
def CARTF_RUMBLE_ON equ RAMB_RUMBLE
def CART_RUMBLE_OFF equ RAMB_RUMBLE_OFF
def CART_RUMBLE_ON equ RAMB_RUMBLE_ON
;******************************************************************************
; Screen-related constants
;******************************************************************************
def SCRN_X equ SCREEN_WIDTH_PX
def SCRN_Y equ SCREEN_HEIGHT_PX
def SCRN_X_B equ SCREEN_WIDTH
def SCRN_Y_B equ SCREEN_HEIGHT
def SCRN_B equ SCREEN_AREA
def SCRN_VX equ TILEMAP_WIDTH_PX
def SCRN_VY equ TILEMAP_HEIGHT_PX
def SCRN_VX_B equ TILEMAP_WIDTH
def SCRN_VY_B equ TILEMAP_HEIGHT
def SCRN_V_B equ TILEMAP_AREA
def TILE_X equ TILE_WIDTH
def TILE_Y equ TILE_HEIGHT
def TILE_B equ TILE_SIZE
def COLOR_B equ COLOR_SIZE
def COLORF_GREEN_LOW equ COLOR_GREEN_LOW
def COLORF_RED equ COLOR_RED
def COLORF_BLUE equ COLOR_BLUE
def COLORF_GREEN_HIGH equ COLOR_GREEN_HIGH
def PAL_B equ PAL_SIZE
def _SCRN0 equ TILEMAP0
def _SCRN1 equ TILEMAP1
;******************************************************************************
; OBJ-related constants
;******************************************************************************
def OAMB_PRI equ B_OAM_PRIO
def OAMB_YFLIP equ B_OAM_YFLIP
def OAMB_XFLIP equ B_OAM_XFLIP
def OAMB_PAL1 equ B_OAM_PAL1
def OAMB_BANK1 equ B_OAM_BANK1
def OAMF_PALMASK equ OAM_PALETTE
def OAMF_PRI equ OAM_PRIO
def OAMF_YFLIP equ OAM_YFLIP
def OAMF_XFLIP equ OAM_XFLIP
def OAMF_PAL0 equ OAM_PAL0
def OAMF_PAL1 equ OAM_PAL1
def OAMF_BANK0 equ OAM_BANK0
def OAMF_BANK1 equ OAM_BANK1
def OBJ_B equ OBJ_SIZE
def OAM_B equ OAM_SIZE
;******************************************************************************
; Boot-up register values
;******************************************************************************
def BOOTUPB_B_AGB equ B_BOOTUP_B_AGB
;******************************************************************************
; Aliases
;******************************************************************************
def P1F_GET_BTN equ JOYP_GET_BTN
def P1F_GET_DPAD equ JOYP_GET_DPAD
def P1F_GET_NONE equ JOYP_GET_NONE
def P1F_5 equ JOYP_GET_DPAD
def P1F_4 equ JOYP_GET_BTN
def P1F_3 equ JOYPF_DOWN
def P1F_2 equ JOYPF_UP
def P1F_1 equ JOYPF_LEFT
def P1F_0 equ JOYPF_RIGHT
def KEY0F_MODE equ SYSF_MODE
def KEY0F_CGB equ SYSF_CGB
def KEY0F_DMG equ SYSF_DMG
def KEY0F_PGB1 equ SYSF_PGB1
def KEY0F_PGB2 equ SYSF_PGB2
def KEY1F_DBLSPEED equ SPDF_DBLSPEED
def KEY1F_PREPARE equ SPDF_PREPARE
def HDMA5B_MODE equ VDMA_LENB_MODE
def HDMA5F_MODE_GP equ VDMA_LENF_MODE_GP
def HDMA5F_MODE_HBL equ VDMA_LENF_MODE_HBL
def HDMA5F_BUSY equ VDMA_LENF_BUSY
def BCPSB_AUTOINC equ BGPIB_AUTOINC
def BCPSF_AUTOINC equ BGPIF_AUTOINC
def OCPSB_AUTOINC equ OBPIB_AUTOINC
def OCPSF_AUTOINC equ OBPIF_AUTOINC
def rSMBK equ rWBK
;******************************************************************************
; Memory regions
;******************************************************************************
; Prefer RGBASM and RGBLINK features instead of these values.
; Note that the value of `STARTOF(<section_type>)` is determined at link time.
def _ROM equ $0000 ; $0000-$3FFF / $0000-$7FFF (prefer `STARTOF(ROM0)`)
def _ROMBANK equ $4000 ; $4000-$7FFF (prefer `STARTOF(ROMX)`)
def _VRAM equ $8000 ; $8000-$9FFF (prefer `STARTOF(VRAM)`)
def _SRAM equ $A000 ; $A000-$BFFF (prefer `STARTOF(SRAM)`)
def _RAM equ $C000 ; $C000-$CFFF / $C000-$DFFF (prefer `STARTOF(WRAM0)`)
def _RAMBANK equ $D000 ; $D000-$DFFF (prefer `STARTOF(WRAMX)`)
def _OAMRAM equ $FE00 ; $FE00-$FE9F (prefer `STARTOF(OAM)`)
def _IO equ $FF00 ; $FF00-$FF7F, $FFFF (prefer `ldh [c]` to `ld [_IO+c]`)
def _HRAM equ $FF80 ; $FF80-$FFFE (prefer `STARTOF(HRAM)`)
;******************************************************************************
; Cartridge header
;******************************************************************************
; Prefer RGBFIX instead of these values.
; Zero-filled space can be reserved for fixable header values like this:
;
; SECTION "Cartridge header", ROM0[$0100]
; nop :: jp $0150 ; Entry point ($0100-$0104)
; ds $150 - @, $00 ; Header ($0104-$014FF) filled with $00s for RGBFIX to populate
; -- Nintendo logo ($0104-$0133) ----------------------------------------------
; Prefer `rgbfix -f/--fix-spec l` for the official logo, or `rgbfix -L <logo_file>` for a custom one
MACRO NINTENDO_LOGO
db $CE,$ED,$66,$66,$CC,$0D,$00,$0B,$03,$73,$00,$83,$00,$0C,$00,$0D
db $00,$08,$11,$1F,$88,$89,$00,$0E,$DC,$CC,$6E,$E6,$DD,$DD,$D9,$99
db $BB,$BB,$67,$63,$6E,$0E,$EC,$CC,$DD,$DC,$99,$9F,$BB,$B9,$33,$3E
ENDM
; -- CGB compatibility code ($0143) -------------------------------------------
def CART_COMPATIBLE_DMG equ $00 ; default value if header is zero-filled
def CART_COMPATIBLE_DMG_GBC equ $80 ; prefer `rgbfix -c/--color-compatible`
def CART_COMPATIBLE_GBC equ $C0 ; prefer `rgbfix -C/--color-only`
; -- SGB flag ($0146) ---------------------------------------------------------
def CART_INDICATOR_GB equ $00 ; default value if header is zero-filled
def CART_INDICATOR_SGB equ $03 ; prefer `rgblink -s/--sgb-compatible`
; -- Cartridge type ($0147) ---------------------------------------------------
; Prefer `rgblink -m/--mbc_type <mbc_type>`
def CART_ROM equ $00
def CART_ROM_MBC1 equ $01
def CART_ROM_MBC1_RAM equ $02
def CART_ROM_MBC1_RAM_BAT equ $03
def CART_ROM_MBC2 equ $05
def CART_ROM_MBC2_BAT equ $06
def CART_ROM_RAM equ $08
def CART_ROM_RAM_BAT equ $09
def CART_ROM_MMM01 equ $0B
def CART_ROM_MMM01_RAM equ $0C
def CART_ROM_MMM01_RAM_BAT equ $0D
def CART_ROM_MBC3_BAT_RTC equ $0F
def CART_ROM_MBC3_RAM_BAT_RTC equ $10
def CART_ROM_MBC3 equ $11
def CART_ROM_MBC3_RAM equ $12
def CART_ROM_MBC3_RAM_BAT equ $13
def CART_ROM_MBC5 equ $19
def CART_ROM_MBC5_RAM equ $1A
def CART_ROM_MBC5_RAM_BAT equ $1B
def CART_ROM_MBC5_RUMBLE equ $1C
def CART_ROM_MBC5_RAM_RUMBLE equ $1D
def CART_ROM_MBC5_RAM_BAT_RUMBLE equ $1E
def CART_ROM_MBC7_RAM_BAT_GYRO equ $22
def CART_ROM_POCKET_CAMERA equ $FC
def CART_ROM_BANDAI_TAMA5 equ $FD
def CART_ROM_HUDSON_HUC3 equ $FE
def CART_ROM_HUDSON_HUC1 equ $FF
; -- ROM size ($0148) ---------------------------------------------------------
; Prefer `rgbfix -p/--pad_value <pad_value>`, which pads to the smallest valid size
def CART_ROM_32KB equ $00 ; 2 banks
def CART_ROM_64KB equ $01 ; 4 banks
def CART_ROM_128KB equ $02 ; 8 banks
def CART_ROM_256KB equ $03 ; 16 banks
def CART_ROM_512KB equ $04 ; 32 banks
def CART_ROM_1024KB equ $05 ; 64 banks
def CART_ROM_2048KB equ $06 ; 128 banks
def CART_ROM_4096KB equ $07 ; 256 banks
def CART_ROM_8192KB equ $08 ; 512 banks
def CART_ROM_1152KB equ $52 ; 72 banks
def CART_ROM_1280KB equ $53 ; 80 banks
def CART_ROM_1536KB equ $54 ; 96 banks
; -- SRAM size ($0149) --------------------------------------------------------
; Prefer `rgbfix -r/--ram_size <ram_size>`
def CART_SRAM_NONE equ 0 ; none
def CART_SRAM_2KB equ 1 ; 1 incomplete bank (homebrew only)
def CART_SRAM_8KB equ 2 ; 1 bank
def CART_SRAM_32KB equ 3 ; 4 banks
def CART_SRAM_128KB equ 4 ; 16 banks
; -- Destination code ($014A) -------------------------------------------------
def CART_DEST_JAPANESE equ $00 ; default value if header is zero-filled
def CART_DEST_NON_JAPANESE equ $01 ; prefer `rgbfix -j/--non-japanese`
;******************************************************************************
; Deprecated constants
;******************************************************************************
def AUDLENF_DUTY equ AUD1LENF_DUTY
def AUDLEN_DUTY_12_5 equ AUD1LEN_DUTY_12_5
def AUDLEN_DUTY_25 equ AUD1LEN_DUTY_25
def AUDLEN_DUTY_50 equ AUD1LEN_DUTY_50
def AUDLEN_DUTY_75 equ AUD1LEN_DUTY_75
def AUDLENF_TIMER equ AUD1LENF_TIMER
def AUDENVF_INIT_VOL equ AUD1ENVF_INIT_VOL
def AUDENVB_DIR equ AUD1ENVB_DIR
def AUDENVF_DIR equ AUD1ENVF_DIR
def AUDENV_DOWN equ AUD1ENV_DOWN
def AUDENV_UP equ AUD1ENV_UP
def AUDENVF_PACE equ AUD1ENVF_PACE
def AUDHIGHB_RESTART equ AUD1HIGHB_RESTART
def AUDHIGHB_LEN_ENABLE equ AUD1HIGHB_LEN_ENABLE
def AUDHIGH_RESTART equ AUD1HIGH_RESTART
def AUDHIGH_LENGTH_OFF equ AUD1HIGH_LENGTH_OFF
def AUDHIGH_LENGTH_ON equ AUD1HIGH_LENGTH_ON
def AUDHIGHF_PERIOD_HIGH equ AUD1HIGHF_PERIOD_HIGH
def LCDCB_BG8000 equ LCDCB_BLKS
def LCDCF_BG8800 equ LCDCF_BLK21
def LCDCF_BG8000 equ LCDCF_BLK01
def IEB_HILO equ IEB_JOYPAD
def IEF_HILO equ IEF_JOYPAD
def IEF_LCDC equ IEF_STAT
def sizeof_OAM_ATTRS equ OBJ_B
def _VRAM8000 equ _VRAM
def _VRAM8800 equ _VRAM + $800
def _VRAM9000 equ _VRAM + $1000
endc ; HARDWARE_COMPAT_INC

48
misc.py
View File

@ -1,3 +1,5 @@
import re
def splitfour(the_string):
""" takes a block of sprites output by gb-export.lua from aseprite.
divides it into four line-by-line and returns them as separate sprite maps.
@ -42,3 +44,49 @@ def transpose_gb_tiles(the_string):
return out
def list_from_length_prefix(the_string):
""" converts a string containing a length-prefixed list of entries into a python list"""
raw_list = the_string.strip(', \t').split(",")
length = int(re.search(r'db ([0-9]+)', raw_list[0]).group(1))
rest = [int(s) for s in raw_list[1:]]
step = len(rest) // length
return [rest[i : i+step] for i in range(0, len(rest), step)]
def length_prefix_from_list(l, size=None):
"""converts a python list into a length-prefixed asssembly thing"""
flat_list = ", ".join(", ".join(f'{x}' for x in s) for s in l)
return f'db {len(l)}, {flat_list}'
def transpose_paths(paths):
"""takes a list of paths. returns a list of paths: the first element of each list, etc"""
new_paths = [[] for point in paths[0]]
for path in paths:
for i, point in enumerate(path):
new_paths[i].append(point)
return new_paths
def transpose_and_length_prefix_path(text):
lines = list(text.strip().splitlines())
paths = [list_from_length_prefix(s) for s in lines if s.strip()]
new_paths = transpose_paths(paths)
output = "\n".join(length_prefix_from_list(p) for p in new_paths)
return output
chain_lines = """
db 13, 37, 31, 43, 30, 51, 32, 56, 37, 61, 43, 67, 49, 71, 54, 76, 59, 83, 61, 91, 61, 98, 60, 105, 58, 110, 52,
db 13, 37, 31, 44, 30, 52, 34, 57, 39, 61, 44, 67, 50, 71, 55, 76, 59, 83, 61, 91, 61, 98, 60, 104, 57, 110, 52,
db 13, 37, 31, 45, 32, 53, 36, 58, 42, 61, 46, 66, 52, 71, 55, 77, 58, 84, 59, 92, 60, 98, 59, 104, 56, 110, 52,
db 13, 37, 31, 45, 33, 51, 37, 56, 42, 60, 47, 65, 51, 71, 54, 77, 57, 84, 58, 91, 58, 97, 57, 103, 55, 110, 52,
db 13, 37, 31, 43, 34, 48, 38, 53, 43, 59, 48, 66, 51, 71, 53, 77, 55, 84, 57, 91, 59, 98, 58, 104, 56, 110, 52,
db 13, 37, 31, 43, 35, 48, 39, 53, 45, 59, 49, 65, 52, 71, 54, 78, 55, 85, 56, 91, 57, 98, 56, 104, 55, 110, 52,
db 13, 37, 31, 43, 34, 49, 37, 54, 43, 60, 49, 66, 52, 72, 54, 78, 54, 84, 56, 91, 56, 97, 56, 104, 56, 110, 52,
db 13, 37, 31, 43, 32, 51, 35, 56, 41, 61, 46, 66, 51, 72, 53, 78, 55, 84, 57, 91, 58, 98, 57, 105, 57, 110, 52,
db 13, 37, 31, 43, 31, 50, 34, 56, 39, 61, 44, 66, 50, 71, 54, 77, 58, 84, 59, 91, 60, 98, 59, 106, 57, 110, 52,
"""
#db 13, 1, 4, 3, 3, 0, 3, 0, 0, 2, 3, 2, 4, 2, 3, 4, 2, 4, 3, 1, 1, 0, 1, 2, 1, 1, 2,
print(transpose_and_length_prefix_path(chain_lines))

Binary file not shown.