diff --git a/10WheelOfFortune.inc b/10WheelOfFortune.inc index 9c94553..9bf7967 100644 --- a/10WheelOfFortune.inc +++ b/10WheelOfFortune.inc @@ -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 diff --git a/14Temperance.inc b/14Temperance.inc index 935bfbb..a09a871 100644 --- a/14Temperance.inc +++ b/14Temperance.inc @@ -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 diff --git a/15TheDevil.inc b/15TheDevil.inc index 789acae..6730d04 100644 --- a/15TheDevil.inc +++ b/15TheDevil.inc @@ -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: diff --git a/card_art/14temperance.aseprite b/card_art/14temperance.aseprite index 0404a46..0674dbb 100644 Binary files a/card_art/14temperance.aseprite and b/card_art/14temperance.aseprite differ diff --git a/card_art/15thedevil.aseprite b/card_art/15thedevil.aseprite index 3975ad1..759d2f0 100644 Binary files a/card_art/15thedevil.aseprite and b/card_art/15thedevil.aseprite differ diff --git a/card_art/KeyArtTiles.asm b/card_art/KeyArtTiles.asm index d046357..42cc12a 100644 --- a/card_art/KeyArtTiles.asm +++ b/card_art/KeyArtTiles.asm @@ -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 diff --git a/card_art/SpriteTiles.asm b/card_art/SpriteTiles.asm index d659daf..c5d2d0f 100644 --- a/card_art/SpriteTiles.asm +++ b/card_art/SpriteTiles.asm @@ -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 diff --git a/hardware_compat.inc b/hardware_compat.inc new file mode 100644 index 0000000..704777d --- /dev/null +++ b/hardware_compat.inc @@ -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()` 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 ` 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 ` +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 `, 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 ` +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 diff --git a/misc.py b/misc.py index 9720805..dc558b0 100644 --- a/misc.py +++ b/misc.py @@ -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)) \ No newline at end of file diff --git a/source.zip b/source.zip index f3e44dc..ae144d9 100644 Binary files a/source.zip and b/source.zip differ