From 5c0e852c9504cb865beb0907238df471db389b4f Mon Sep 17 00:00:00 2001 From: shoofle Date: Sun, 23 Mar 2025 16:52:56 -0400 Subject: [PATCH] added animations for 13 14 16 and 17 --- 13Death.inc | 153 +++++++++++++++- 13death.aseprite | Bin 5678 -> 5921 bytes 14Temperance.inc | 183 +++++++++++++++---- 14temperance.aseprite | Bin 6094 -> 6818 bytes 16TheTower.inc | 397 +++++++++++++++++++++++++++++++++--------- 16thetower.aseprite | Bin 5712 -> 2667 bytes 17TheStar.inc | 163 ++++++++++++++++- 17thestar.aseprite | Bin 5382 -> 2026 bytes Async.inc | 2 +- KeyArtTiles.asm | 137 +++++++-------- SpriteTiles.asm | 146 +++------------- source.zip | Bin 358871 -> 373809 bytes 12 files changed, 859 insertions(+), 322 deletions(-) diff --git a/13Death.inc b/13Death.inc index e58ecfe..18c21d7 100644 --- a/13Death.inc +++ b/13Death.inc @@ -14,10 +14,159 @@ Death: dw .fUpdate dw .fDraw -.fInit: ret -.fUpdate: ret +.fInit: + ld hl, CVS + ld a, 0 + ld [hl+], a ; CVS timer stars + ld [hl+], a + ld [hl+], a ; cvs+2 for starrs 2 + ld [hl+], a + ld [hl+], a ; cvs+4 for starrs 3 + ld [hl+], a + + ld a, %11000100 + ld [rOBP0], a + + ld hl, MY_OAM + ld [hl], 24+8 + inc hl + ld [hl], 16+8 + inc hl + ld [hl], 1 + + ld hl, MY_OAM+4*1 + ld [hl], 24+16 + inc hl + ld [hl], 16+32 + inc hl + ld [hl], 2 + + ld hl, MY_OAM+4*2 + ld [hl], 24+2 + inc hl + ld [hl], 16+57 + inc hl + ld [hl], 2 + + ld hl, MY_OAM+4*3 + ld [hl], 24+0 + inc hl + ld [hl], 16+40 + inc hl + ld [hl], 3 + + ld hl, MY_OAM+4*4 + ld [hl], 24-2 + inc hl + ld [hl], 16+20 + inc hl + ld [hl], 3 + + ld hl, MY_OAM+4*5 + ld [hl], 24+24 + inc hl + ld [hl], 16+60 + inc hl + ld [hl], 3 + + ld hl, MY_OAM+4*6 + ld [hl], 24+20 + inc hl + ld [hl], 16+5 + inc hl + ld [hl], 3 + ret +.fUpdate: + ld hl, CVS + call IncrementTimer + + ld a, [CVS+1] ; checking the high byte of the timer + cp a, $05 ; $10 = 1 second, $02 = 1/8 of a 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 + + call .blink +: + + ld hl, CVS+2 + call IncrementTimer + + ld a, [CVS+2+1] ; checking the high byte of the timer + cp a, $03 ; $10 = 1 second, $02 = 1/8 of a 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+2], a + ld [CVS+2+1], a + + call .blink2 +: + + ld hl, CVS+4 + call IncrementTimer + + ld a, [CVS+4+1] ; checking the high byte of the timer + cp a, $04 ; $10 = 1 second, $02 = 1/8 of a 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+4], a + ld [CVS+4+1], a + + call .blink3 +: + ret .fDraw: ret + +.blink: + ld a, 2 + + ld hl, MY_OAM+2 + cp a, [hl] + jp z, :+ + jp nz, :++ +: dec [hl] + jp :++ +: inc [hl] +: + ret + +.blink2: + ld a, 2 + + ld hl, MY_OAM+(4*1)+2 + cp a, [hl] + jp z, :+ + jp nz, :++ +: inc [hl] + jp :++ +: dec [hl] +: + ret + +.blink3: + ld a, 2 + + ld hl, MY_OAM+(4*2)+2 + cp a, [hl] + jp z, :+ + jp nz, :++ +: inc [hl] + jp :++ +: dec [hl] +: + ret .SpriteTiles: + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $20,$00,$50,$00,$88,$20,$50,$00,$20,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$20,$00,$50,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .SpriteTilesEnd: ; original export script by gabriel reis, modified by shoofle diff --git a/13death.aseprite b/13death.aseprite index 0b157f1ed53600a21e9e2bb51af3a93f2ad0f794..f383a08037321a27982c067b88e081430674647b 100644 GIT binary patch delta 216 zcmZ3dvrvyoQG6m(9p6GR28LfB*%(t87#P?XH}=&D@P`AL$_gwX0U&0XoX8`oA6!tB zS&|x(nUh+q02Hj4lbo57~9mr)>U}6wp;9&UA4CH_TGXvw~JYjjU$=)X8_MeG*AEl delta 74 zcmZ3ew@!yiPi!Jn9p5@p28LfB|1qR6FfjaM*w|MmFnOw=?`Bq^KaA|XKrvPYrpf*y eJ&eqg?}!vKvP||9&0%Dlyjyf8Bm3k~u`>W_h8Cy* diff --git a/14Temperance.inc b/14Temperance.inc index d866e93..dbd05c4 100644 --- a/14Temperance.inc +++ b/14Temperance.inc @@ -14,10 +14,122 @@ Temperance: dw .fUpdate dw .fDraw -.fInit: ret -.fUpdate: ret -.fDraw: ret +.fInit: + ld hl, CVS + ld a, 0 + ld [hl+], a ; CVS timer for waterfall + ld [hl+], a + ld [hl+], a ; CVS+2 frame of animation + ret +.fUpdate: + ld hl, CVS + call IncrementTimer + + ld a, [CVS+1] ; checking the high byte of the timer + cp a, $01 ; $10 = 1 second, $02 = 1/8 of a second + jp c, :+ + + ld a, 0 + ld [CVS], a + ld [CVS+1], a + + ld b, 6 + ld a, [CVS+2] + inc a + call ArrayClampLoopingB + ld [CVS+2], a + + call .waterfall + +: + + ret +.fDraw: + ld a, [CVS+2] + sra a + cp a, 0 + jp z, .frame0 + cp a, 1 + jp z, .frame1 + cp a, 2 + jp z, .frame2 + +.frame0 + ld a, %10_01_00_00 + ld [rOBP0], a + ret +.frame1 + ld a, %01_00_10_00 + ld [rOBP0], a + ret +.frame2 + ld a, %00_10_01_00 + ld [rOBP0], a + ret + +.waterfall: + ld hl, .waterfall1 + ld a, [CVS+2] + bit 0, a + jp nz, :+ + ld hl, .waterfall2 +: + ld de, MY_OAM + ld b, 4*8 + ld c, 3*8 + ld a, $83 + call BuildMetaSprite + ret + +.waterfall1 +db $00, $00, $0f +db $13, $12, $11 +db $15, $14, $00 +db $16, $17, $00 +db $18, $19, $00 +db $1a, $1d, $00 +db $1b, $1c, $00 +db $01, $02, $00 +.waterfall2 +db $00, $00, $0f +db $0d, $0c, $0e +db $0a, $0b, $00 +db $09, $03, $00 +db $07, $08, $00 +db $06, $05, $00 +db $04, $10, $00 +db $01, $02, $00 .SpriteTiles: + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$07,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$f0,$00,$e0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$f0,$00,$f0,$10,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0 + db $00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07 + db $e0,$00,$f0,$00,$f0,$00,$f0,$00,$e0,$10,$00,$f0,$00,$f0,$00,$f0 + db $07,$00,$07,$00,$07,$00,$07,$00,$03,$04,$00,$07,$00,$07,$00,$07 + db $03,$03,$03,$01,$03,$00,$03,$00,$03,$00,$03,$00,$07,$00,$07,$00 + db $f0,$f0,$e0,$e0,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00 + db $00,$03,$00,$03,$02,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03 + db $03,$03,$03,$01,$03,$00,$03,$00,$01,$02,$00,$03,$00,$03,$00,$03 + db $fe,$fe,$fc,$f8,$fc,$00,$fc,$00,$fc,$00,$00,$f8,$00,$f8,$00,$f0 + db $00,$00,$01,$01,$03,$03,$07,$03,$1f,$00,$3f,$40,$00,$ff,$01,$ff + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01 + db $80,$c0,$80,$e0,$c0,$e0,$e0,$e0,$e0,$00,$80,$60,$00,$80,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$c0 + db $00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0 + db $00,$c0,$00,$e0,$00,$e0,$80,$e0,$e0,$e0,$e0,$00,$80,$00,$00,$00 + db $00,$00,$01,$01,$03,$03,$07,$07,$1f,$03,$7f,$00,$ff,$00,$00,$ff + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01 + db $00,$fe,$fc,$fc,$fc,$fc,$fc,$f8,$fc,$00,$f8,$00,$f8,$00,$f0,$00 + db $00,$03,$03,$03,$03,$03,$03,$01,$03,$00,$03,$00,$03,$00,$01,$02 + 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,$10,$f0,$f0,$f0,$f0,$f0 + db $03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$07,$03,$07,$00 + db $f0,$f0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$c0,$e0,$00 + db $07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00 + db $07,$00,$07,$00,$07,$00,$03,$04,$00,$07,$00,$07,$00,$07,$00,$07 + db $f0,$00,$f0,$00,$f0,$00,$e0,$10,$00,$f0,$00,$f0,$00,$f0,$00,$f0 + db $e0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00 .SpriteTilesEnd: @@ -27,34 +139,33 @@ Temperance: .KeyArtTiles: db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$00,$01,$01,$01,$01,$03,$03,$03,$03,$06,$06,$07,$07,$00,$00 - db $1b,$1b,$1b,$1b,$1b,$1b,$1b,$1b,$0e,$0e,$0e,$0e,$ff,$ff,$00,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$00,$00 - db $00,$00,$e0,$e0,$c0,$c0,$c0,$c0,$80,$80,$80,$80,$80,$80,$80,$80 - db $00,$00,$07,$07,$03,$03,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00 - db $00,$00,$ff,$ff,$60,$60,$60,$60,$31,$31,$31,$31,$31,$31,$31,$31 - db $00,$00,$ff,$ff,$1b,$1b,$33,$33,$b3,$b3,$e3,$e3,$e3,$e3,$c3,$c3 - db $c3,$c3,$a3,$a3,$a3,$a3,$33,$33,$13,$13,$1b,$1b,$ff,$ff,$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,$00,$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 $00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$03,$00,$07,$01,$02,$07 db $00,$00,$00,$00,$7f,$00,$ff,$3f,$c1,$7f,$80,$ff,$00,$ff,$00,$ff - db $00,$00,$00,$00,$80,$01,$c0,$01,$f0,$c3,$7c,$c3,$7c,$e2,$3c,$f2 + db $00,$00,$00,$00,$80,$01,$c0,$01,$f0,$c3,$7c,$c3,$7c,$62,$3c,$32 db $00,$3f,$00,$f3,$00,$c7,$00,$9f,$00,$ff,$00,$bf,$00,$0f,$00,$00 db $00,$80,$00,$c0,$00,$e0,$00,$e0,$0c,$e0,$1f,$e0,$07,$f8,$07,$f8 db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$c0,$00,$e0,$00 - db $02,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$03,$00,$03,$00,$05 - db $00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$f8,$00,$e0,$00,$e0,$00,$80 - db $3c,$f2,$1d,$f3,$1c,$d3,$1e,$11,$0e,$11,$02,$1d,$01,$72,$01,$b2 + db $02,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$03,$00,$02,$00,$06 + db $00,$ff,$00,$fe,$00,$fc,$00,$f8,$00,$e0,$00,$80,$00,$00,$00,$00 + db $3c,$32,$1d,$13,$1c,$13,$1e,$11,$0e,$11,$02,$1d,$01,$72,$01,$b2 db $00,$00,$b8,$b8,$00,$a0,$00,$00,$00,$00,$00,$71,$00,$83,$80,$7c db $07,$f8,$07,$e8,$07,$e8,$07,$e8,$07,$e8,$07,$e8,$07,$d8,$00,$df db $f0,$00,$f0,$08,$e0,$18,$e0,$18,$e0,$18,$c0,$30,$90,$70,$30,$f0 - db $00,$07,$00,$06,$00,$07,$00,$03,$00,$07,$00,$07,$00,$07,$00,$07 - db $00,$01,$00,$03,$00,$06,$00,$07,$00,$06,$00,$06,$00,$04,$00,$0d + db $00,$01,$00,$03,$00,$02,$00,$03,$00,$02,$00,$06,$00,$04,$00,$0d db $01,$e2,$00,$01,$00,$01,$00,$18,$00,$f8,$00,$e8,$00,$f8,$00,$fc db $c0,$30,$00,$e0,$00,$e8,$40,$e8,$40,$c8,$c1,$c1,$7f,$ff,$00,$41 db $00,$d7,$00,$77,$03,$77,$00,$3f,$20,$3f,$e0,$e2,$70,$8e,$00,$38 db $60,$e0,$e0,$e0,$c0,$c0,$00,$80,$00,$80,$00,$c0,$00,$c0,$00,$40 - db $00,$06,$00,$06,$00,$06,$00,$06,$00,$06,$00,$06,$00,$06,$00,$04 - db $00,$0b,$00,$0f,$00,$08,$00,$18,$00,$18,$00,$18,$00,$19,$00,$1f + db $00,$04,$00,$04,$00,$04,$00,$04,$00,$04,$00,$04,$00,$04,$00,$04 + db $00,$0b,$00,$0f,$00,$08,$00,$08,$00,$08,$00,$08,$00,$09,$00,$0f db $00,$78,$00,$3c,$00,$3c,$00,$3c,$00,$36,$0c,$32,$20,$f2,$ec,$f2 db $3f,$40,$00,$23,$00,$37,$00,$1c,$00,$08,$00,$00,$00,$00,$00,$00 db $80,$60,$00,$80,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$02,$03 @@ -64,8 +175,8 @@ Temperance: db $80,$b1,$06,$39,$00,$38,$07,$38,$00,$38,$07,$38,$00,$18,$07,$18 db $00,$00,$00,$00,$00,$ff,$07,$f8,$00,$00,$ff,$00,$00,$00,$ff,$00 db $0e,$0e,$38,$7e,$f8,$e6,$f8,$06,$78,$06,$f8,$06,$38,$06,$f8,$06 - db $00,$08,$00,$0c,$00,$0c,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08 - db $00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$18,$00,$08 + db $00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08 + db $00,$18,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08 db $00,$38,$0f,$30,$00,$30,$0f,$30,$00,$30,$0f,$30,$00,$30,$1f,$e0 db $18,$06,$f8,$06,$18,$06,$fc,$02,$0c,$02,$fc,$02,$04,$03,$fc,$03 db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01 @@ -83,15 +194,15 @@ Temperance: db $0f,$30,$0f,$30,$0f,$30,$0f,$30,$1f,$20,$1f,$20,$1f,$20,$1f,$20 db $fc,$02,$fd,$02,$fc,$02,$fd,$02,$fc,$02,$fd,$02,$fc,$02,$fc,$03 db $00,$c0,$80,$40,$00,$40,$80,$40,$00,$40,$80,$40,$00,$c0,$00,$c0 - db $1f,$60,$3f,$40,$3f,$40,$7f,$00,$7f,$00,$7f,$00,$7f,$80,$ff,$00 + db $1f,$60,$3f,$40,$3f,$40,$7f,$00,$7f,$00,$7f,$00,$ff,$00,$ff,$00 db $fe,$01,$fe,$01,$fe,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $00,$00,$7f,$80,$00,$80,$3f,$c0,$80,$c0,$df,$e0,$e0,$e0,$f3,$fc - db $00,$03,$f8,$07,$00,$0f,$f3,$0f,$03,$1f,$e7,$1f,$0f,$3f,$9f,$7f + db $00,$00,$7f,$80,$00,$80,$3f,$c0,$80,$c0,$df,$e0,$e0,$e0,$f7,$f8 + db $00,$03,$fc,$03,$00,$03,$fb,$07,$03,$07,$e7,$1f,$0f,$3f,$9f,$7f db $40,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$80,$c0,$80,$c0 db $00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00 db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$80 db $f0,$7e,$b8,$7f,$8e,$5f,$87,$47,$83,$43,$80,$43,$80,$40,$80,$40 - db $00,$80,$38,$c7,$00,$ff,$f4,$fe,$fc,$fe,$00,$07,$00,$83,$00,$c3 + db $00,$00,$38,$c7,$00,$ff,$f4,$fe,$fc,$fe,$00,$07,$00,$83,$00,$c3 db $3f,$ff,$7e,$ff,$dc,$df,$00,$1f,$00,$0f,$00,$09,$00,$08,$00,$08 db $00,$c0,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80 db $00,$01,$01,$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00 @@ -113,17 +224,17 @@ Temperance: db $1a, $1a, $1a, $1a, $1a, $1a, $1a, $1a db $1a, $23, $24, $25, $26, $27, $28, $1a db $1a, $29, $2a, $2b, $2c, $2d, $2e, $1a - db $1a, $2f, $30, $31, $32, $33, $34, $1a - db $1a, $35, $36, $37, $38, $39, $3a, $1a - db $1a, $3b, $3c, $3d, $3e, $3f, $1a, $1a - db $1a, $40, $41, $42, $6a, $43, $1a, $1a - db $44, $45, $46, $47, $6a, $48, $49, $1a - db $4a, $4b, $4c, $4d, $6a, $4e, $4f, $1a - db $1a, $50, $51, $6a, $6a, $6a, $52, $1a - db $1a, $53, $54, $55, $6a, $56, $57, $1a - db $58, $59, $69, $5a, $5b, $5c, $5d, $1a - db $5e, $5f, $60, $61, $62, $63, $64, $1a - db $1a, $65, $66, $1a, $67, $68, $1a, $1a + db $1a, $34, $2f, $30, $31, $32, $33, $1a + db $1a, $34, $35, $36, $37, $38, $39, $1a + db $1a, $3a, $3b, $3c, $3d, $3e, $1a, $1a + db $1a, $3f, $40, $41, $69, $42, $1a, $1a + db $43, $44, $45, $46, $69, $47, $48, $1a + db $49, $4a, $4b, $4c, $69, $4d, $4e, $1a + db $1a, $4f, $50, $69, $69, $69, $51, $1a + db $1a, $52, $53, $54, $69, $55, $56, $1a + db $57, $58, $68, $59, $5a, $5b, $5c, $1a + db $5d, $5e, $5f, $60, $61, $62, $63, $1a + db $1a, $64, $65, $1a, $66, $67, $1a, $1a db $1a, $1a, $1f, $21, $20, $1e, $1a, $1a db $1a, $1a, $1b, $22, $1c, $1d, $1a, $1a .BackgroundCopyEnd: diff --git a/14temperance.aseprite b/14temperance.aseprite index f1636a289d082651a3bccf36836c4ce5ff1fbf17..fb870de6ce229cb526af65d427b1db77c65435ae 100644 GIT binary patch delta 1383 zcmV-t1(^EIFQPR9q8gC`ehnfT008>&F#%)%001$ujl~NO6axSNBOn6+000I6002;v zVGJaH-2wmrc$}?RfwJQu2o(7Lf4(XU0%~LWj+xE|Bd9BaX>0#Q7$^Wk-mBK2wxV{1 z{+>k*47(qJ)PcF(iJaQa=l7{k{OZFxS+BLBPRG|}UD&&nhV){!AMXd1iVSK+kt?&% zt=;;$U5h?hD*u;400Ib>vThrh=r|0{WRx`*!b)4w+m55^RuFL<0v zcsa+5<9htDAuos-kj_A#3||sx47OxyJnjaMIA`f{em8t?=x>3Cn9e+Z z6m1`hJ|1jdajVCBF;r)sne6<=?%4SG8)qIP*a5`ufJ@&HPn$V?*1TLJFm3bF`5ki0 z=kmgA_UFJH@6mRGM%2nM|EzcDO^-FrEdz(~)U~rvIbXMROhx#fB#w~BdFNtn)-&Nj zf*82+Dj*jbl2arTGH235C~fj*%4Xqzy;YT+j)a;P>Wdsr3YfbuQQPo5jmSubsgKnX%bZLayk1(t%%FQ042u=ZWusqy23R zk;g&SJ`E7nMC@xyZjm!S2tDDi;slSf^@#_qU*lpus9_}uS92gUE%6%|3#C)JVSHDX z1e!7^dN?#Kq#;Fzd)boj4|j@YYb@&V`}!mvcT0vsycyy_ufrWBq{-XuQkDbJQuo98 zz*mOetPp>U1)({tJTtw&>v8NDtZVP$am%-vA8YXQo!vxS5X_9l#Zgu%?$3kr zqr4HJ(tklB%1f#XhgP2=4ll{zL`T9~2&5&u{GA^mDV8u$Q;e=CXZjgrODU1-DO7wX zhg=Qsna0q1D6?eXl8JSQlOqykxLZD_svK+#^+3rlFSHjo2mQW`^UI^y-ecaemZ$v} z`2Ui0paAC%6qz8>)Hc$zeUvo2bd!GH{l|G<`yBt(LA~bl@ARKiE2^Czdph&ubm&C6 zo10~RU(IbWF#nf)0F7t_x3hr{HUX2N5={XklkXB03I_mFaB^vMWpf0x>k=~o0oIcr z6ghtdibFvVMbVB-+}+*XC+<2E+5c{GAr&G82R`r8Un!-`u)qo%>~N^ZIpKmE9(duC z7J(lD1Q9~`twj+-90??)rI1DjS>)8~@+hE)8%na5Q9%_oX>~NvLACzxV}Ij&e>i51q^V2d60IN&yjll=1!|MGptMSb26j4(j|)if|c3!Q9t z!|o1EfdBvi1t0*f=A3nm_rInk zHn_3jK`q+sU2ET-9x00005AOn;96pR4`lZh2^0R@x$6>I?qlV}#10SJ=<7tC4ihB5#E delta 1016 zcmV&5CLQW000oNjl~NO8v_6UBOn6+000I6002>w zVGJaH7^;uau`T#q)V~ax`l3YSn5cBTIuTEmRVea`?$vQ>+(mvvyeyn&uQS0=hCT{3H-^LKn zIEb>}R|n)f#4HkBZ)GX-d5~)o!FqB;-lLzjci@1JWwJOu3)5n}FvfAq<5gjDPuFSx zxqYpoo=12z==n6DsdU-czjV(i5g!Ua;jd*9Jb1X`LC>#oF&}pmQIeEUpa|!9@O-GN|>KKzfk66z%S9WhLK#JS(5_-{*JxjJuMdEZ%@t(d%%>=F;TbS&7;KxhPw4p?zqAlUei|B?AF8|_OrIa$m0xN8=!=aw%gbQwX;Dt|`9{~gr zLKqQgQN$2O0!gH#rIA4vIpo#*3Mit4JIb^dLK_`)rS;I4w*&mj{xXy{ z!Wa|TrG&=-sW1Cw1CaRCIA&lqe029rD)nE?lr))~x&5bJmV diff --git a/16TheTower.inc b/16TheTower.inc index faa64ed..5bb2bff 100644 --- a/16TheTower.inc +++ b/16TheTower.inc @@ -14,99 +14,328 @@ TheTower: dw .fUpdate dw .fDraw -.fInit: ret -.fUpdate: ret -.fDraw: ret +.fInit: + ld hl, CVS + ld a, 0 + ld [hl+], a ; CVS timer for lightning bolt + ld [hl+], a + ld [hl+], a ; CVS+2 frame of lightning bolt + ld [hl+], a ; CVS+3 timer for flame + ld [hl+], a + ld [hl+], a ; CVS+5 frame of flame cycle + + ; past the 18 sprites needed for the lightning bolt + ; and past the 16 sprites needed for the ground flash + ; we need to set sprites to use palette 1, not palette 0 + ld hl, MY_OAM+(18+16)*4 + inc hl ; now poining at x + inc hl ; now pointing at tile id + inc hl ; now pointing at attributes + set OAMB_PAL1, [hl] + inc hl ; now pointing at y for next sprite + inc hl ; now poining at x + inc hl ; now pointing at tile id + inc hl ; now pointing at attributes + set OAMB_PAL1, [hl] + inc hl ; now pointing at y for next sprite + inc hl ; now poining at x + inc hl ; now pointing at tile id + inc hl ; now pointing at attributes + set OAMB_PAL1, [hl] + inc hl ; now pointing at y for next sprite + inc hl ; now poining at x + inc hl ; now pointing at tile id + inc hl ; now pointing at attributes + set OAMB_PAL1, [hl] + + ld a, %11_10_00_00 + ld [rOBP0], a + ld a, %00_10_01_00 + ld [rOBP1], a + + ret +.fUpdate: + ld hl, CVS + call IncrementTimer + + ld a, [CVS+1] ; checking the high byte of the timer + cp a, $40 ; $10 = 1 second, $02 = 1/8 of a second + jp c, :+ + + ld a, 0 + ld [CVS], a + ld [CVS+1], a + + ld a, 1 + ld [CVS+2], a +: + + ld a, [CVS+2] + cp a, 0 + jp z, :+ + + ld b, 20 + inc a + call ArrayClampLoopingB + ld [CVS+2], a + + + ld hl, .bolt + ld de, MY_OAM + ld b, 8*(2+1) + ld c, 8*(1+1+3) + ld a, $55 + call BuildMetaSpritePacked + + ld hl, .doorAndFloor + ld de, MY_OAM + 4*18 + ld b, 8*(2+1+8) + ld c, 8*(1+1) + ld a, $58 + call BuildMetaSpritePacked + +: + + ld a, [CVS+2] + cp a, 0 + call z, .clearBolts + ld a, [CVS+2] + cp a, 6 + call z, .clearBolts + ld a, [CVS+2] + cp a, 7 + call z, .clearBolts + ld a, [CVS+2] + cp a, 8 + call z, .clearBolts + ld a, [CVS+2] + cp a, 9 + call z, .clearBolts + + + ld hl, CVS+3 + call IncrementTimer + + ld a, [CVS+3+1] ; checking the high byte of the timer + cp a, $01 ; $10 = 1 second, $02 = 1/8 of a second + jp c, :+ + + ld a, 0 + ld [CVS+3], a + ld [CVS+3+1], a + + ld b, 12 + ld a, [CVS+5] + inc a + call ArrayClampLoopingB + ld [CVS+5], a + + call .cycle +: + + ret +.clearBolts: + ld hl, ZEROES + ld de, MY_OAM + ld bc, 4*(16+18) + call CopyRange + ret +.cycle: + ld hl, .flames + ld a, [CVS+5] + and a, %0000_0011 + sla a + sla a + ld c, a + ld b, 0 + add hl, bc + ; hl now points to the correct frame of .flames + + ld de, MY_OAM + (18+16)*4 + ld b, (6+2+1)*8 + ld c, (1+1+1)*8 + ld a, $22 + call BuildMetaSprite + ret +.fDraw: + ld a, [CVS+5] + sra a + sra a + cp a, 0 + jp z, .frame0 + cp a, 1 + jp z, .frame1 + cp a, 2 + jp z, .frame2 + +.frame0 + ld a, %10_00_01_00 + ld [rOBP1], a + ret +.frame1 + ld a, %01_10_00_00 + ld [rOBP1], a + ret +.frame2 + ld a, %00_01_10_00 + ld [rOBP1], a + ret + + + +.bolt: ; $55, 18 active sprites + db $00, $00, $00, $00, $01 + db $00, $0a, $0b, $02, $03 + db $1c, $20, $04, $05, $06 + db $21, $07, $08, $0c, $09 + db $22, $0e, $0f, $0d, $00 +.doorAndFloor: ; $58, 16 active sprites + db $00, $00, $00, $00, $00, $1d, $00, $00 + db $00, $00, $00, $00, $10, $1f, $00, $00 + db $00, $00, $00, $00, $11, $12, $00, $00 + db $15, $16, $17, $17, $13, $14, $19, $1e + db $18, $00, $00, $00, $00, $00, $1a, $1b +.burningWindow: ; $21, 2 active sprites + db $21 + db $22 +.flames: ; $22, stride of four, four sprites + db $2a, $2b + db $31, $2f + + db $24, $25 + db $28, $30 + + db $26, $27 + db $29, $2e + + db $2c, $2d + db $23, $32 + .SpriteTiles: + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $30,$00,$30,$00,$38,$00,$18,$00,$18,$00,$3c,$00,$ce,$00,$07,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3c,$00,$ff,$00,$67,$00 + db $06,$00,$06,$00,$0e,$00,$0e,$00,$3c,$00,$7c,$00,$f8,$00,$e0,$00 + db $00,$00,$01,$00,$01,$00,$03,$00,$03,$00,$03,$00,$03,$00,$03,$00 + db $ff,$00,$e0,$00,$a0,$00,$a0,$00,$20,$00,$10,$00,$10,$00,$00,$00 + db $e0,$00,$20,$00,$20,$00,$10,$00,$08,$00,$08,$00,$10,$00,$20,$00 + db $01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$3c,$3f,$40,$3f,$40 + db $03,$00,$83,$00,$47,$00,$3e,$00,$1c,$00,$f8,$00,$f0,$00,$20,$00 + db $e0,$00,$10,$00,$08,$00,$08,$00,$04,$00,$04,$00,$04,$00,$00,$00 + db $00,$00,$04,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $08,$00,$08,$00,$38,$00,$c8,$00,$04,$00,$02,$00,$01,$00,$00,$00 + db $00,$00,$80,$00,$80,$00,$80,$00,$80,$00,$40,$00,$20,$00,$10,$00 + db $1e,$00,$10,$00,$30,$00,$20,$00,$20,$00,$40,$00,$40,$00,$00,$00 + db $3e,$41,$3e,$41,$3e,$41,$3e,$41,$3e,$41,$3e,$41,$00,$7f,$00,$3f + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$0d + db $00,$0d,$00,$0d,$00,$1d,$00,$15,$00,$15,$00,$15,$00,$15,$00,$15 + db $00,$60,$00,$70,$00,$50,$00,$50,$00,$50,$60,$10,$00,$70,$00,$50 + db $00,$15,$00,$15,$00,$15,$00,$ff,$00,$ff,$00,$ff,$00,$00,$00,$00 + db $00,$50,$00,$50,$00,$50,$00,$50,$00,$fe,$00,$ff,$00,$1f,$00,$01 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$1f,$00,$f0 + db $00,$00,$00,$00,$00,$00,$00,$03,$00,$ff,$00,$ff,$00,$f0,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$ff,$00,$ff,$00,$ff,$00,$00,$00,$00 + db $00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$fc,$00,$ff + db $00,$0f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$c0,$00,$f0,$00,$1c,$00,$07,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$78,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$e0,$00,$1c,$00,$02,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$60 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0e,$00,$01 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$00,$00,$00,$00,$00,$07 + db $00,$00,$00,$00,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $06,$01,$07,$00,$03,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$0f,$00,$0f,$00,$24,$03,$36,$01,$37,$00,$3f,$00 + db $00,$00,$3c,$00,$fe,$00,$fe,$00,$3e,$c0,$0e,$f0,$42,$fc,$10,$fe + db $00,$00,$00,$00,$08,$00,$2c,$00,$47,$20,$05,$c2,$84,$43,$84,$43 + db $00,$00,$00,$00,$0c,$00,$1e,$00,$fe,$00,$fe,$00,$e0,$1e,$00,$fe + db $1f,$00,$1e,$01,$0f,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $85,$43,$44,$03,$06,$01,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $3f,$3f,$1f,$10,$0f,$08,$0f,$08,$07,$04,$07,$04,$07,$04,$07,$04 + db $f8,$f8,$fc,$04,$fe,$02,$fe,$02,$0e,$f0,$86,$78,$82,$7c,$c2,$3c + db $40,$00,$70,$00,$7e,$00,$7f,$00,$30,$0f,$18,$07,$1e,$01,$0e,$01 + db $00,$00,$00,$00,$00,$00,$fe,$00,$0e,$f0,$00,$fe,$c0,$fe,$fc,$fe + db $be,$fe,$e2,$fe,$02,$fe,$e2,$1e,$e0,$00,$00,$00,$00,$00,$00,$00 + db $c2,$3c,$e0,$1e,$f0,$0e,$f8,$06,$e0,$e0,$00,$00,$00,$00,$00,$00 + db $88,$7e,$06,$fe,$e2,$1e,$f2,$0e,$e0,$00,$00,$00,$00,$00,$00,$00 + db $07,$04,$07,$04,$03,$02,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00 + db $7c,$fe,$0e,$fe,$86,$7e,$e2,$1e,$e0,$00,$00,$00,$00,$00,$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 $7f,$80,$7f,$80,$7f,$80,$77,$88,$7f,$80,$78,$87,$47,$bf,$3f,$ff - db $be,$c1,$ce,$f1,$f2,$fd,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $fe,$01,$dc,$23,$fe,$01,$76,$89,$fe,$01,$dc,$23,$fe,$01,$76,$89 - db $fe,$01,$fe,$01,$fe,$01,$f6,$09,$fe,$01,$fe,$01,$fe,$01,$7e,$81 - db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff - db $7f,$80,$5d,$a2,$7f,$80,$77,$88,$7f,$80,$5d,$a2,$7f,$80,$77,$88 - db $7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $08,$f7,$00,$ff,$00,$ff,$00,$ff,$08,$f7,$00,$ff,$02,$fd,$00,$ff - db $88,$77,$00,$ff,$00,$ff,$00,$ff,$88,$77,$00,$ff,$02,$fd,$00,$ff - db $28,$d7,$00,$ff,$22,$dd,$00,$ff,$2a,$d5,$00,$ff,$22,$dd,$00,$ff - db $a8,$57,$00,$ff,$22,$dd,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff - db $2a,$d5,$00,$ff,$2a,$d5,$00,$ff,$2a,$d5,$04,$fb,$2a,$d5,$00,$ff - db $aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55,$04,$fb,$aa,$55,$00,$ff - db $2a,$d5,$44,$bb,$2a,$d5,$10,$ef,$2a,$d5,$44,$bb,$2a,$d5,$11,$ee - db $aa,$55,$44,$bb,$aa,$55,$10,$ef,$aa,$55,$44,$bb,$aa,$55,$11,$ee - db $aa,$55,$44,$bb,$aa,$55,$10,$ef,$aa,$55,$44,$bb,$aa,$55,$10,$ef - db $2a,$d5,$54,$ab,$2a,$d5,$11,$ee,$2a,$d5,$55,$aa,$2a,$d5,$15,$ea - db $aa,$55,$54,$ab,$aa,$55,$11,$ee,$aa,$55,$55,$aa,$aa,$55,$15,$ea - db $aa,$55,$54,$ab,$aa,$55,$10,$ef,$aa,$55,$54,$ab,$aa,$55,$14,$eb - db $2a,$d5,$55,$aa,$2a,$d5,$55,$aa,$2e,$d1,$55,$aa,$2a,$d5,$55,$aa - db $aa,$55,$55,$aa,$aa,$55,$55,$aa,$ae,$51,$55,$aa,$aa,$55,$55,$aa - db $aa,$55,$54,$ab,$aa,$55,$54,$ab,$ae,$51,$54,$ab,$aa,$55,$54,$ab - db $6e,$91,$55,$aa,$3a,$c5,$55,$aa,$6e,$91,$55,$aa,$3b,$c4,$55,$aa - db $ee,$11,$55,$aa,$ba,$45,$55,$aa,$ee,$11,$55,$aa,$bb,$44,$55,$aa - db $ee,$11,$54,$ab,$ba,$45,$54,$ab,$ee,$11,$54,$ab,$ba,$45,$54,$ab - db $7f,$80,$55,$aa,$3b,$c4,$55,$aa,$7f,$80,$55,$aa,$3f,$c0,$55,$aa - db $fe,$01,$54,$ab,$ba,$45,$54,$ab,$fe,$01,$54,$ab,$be,$41,$54,$ab - db $7f,$80,$55,$aa,$7f,$80,$55,$aa,$7f,$80,$5d,$a2,$7f,$80,$55,$aa - db $fe,$01,$d4,$2b,$fe,$01,$54,$ab,$fe,$01,$dc,$23,$fe,$01,$54,$ab - db $bf,$5f,$1f,$ff,$3f,$df,$1f,$ff,$bf,$5f,$3f,$ff,$3f,$ff,$3f,$ff - db $ff,$7f,$7f,$ff,$ff,$7f,$7f,$ff,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff - db $aa,$55,$54,$ab,$aa,$55,$11,$ee,$aa,$55,$55,$aa,$ab,$55,$15,$eb - db $ab,$55,$55,$ab,$ab,$55,$55,$ab,$af,$51,$55,$ab,$ab,$55,$57,$ab - db $ef,$13,$57,$ab,$bb,$47,$57,$ab,$ef,$13,$57,$ab,$bb,$47,$57,$af - db $ff,$07,$57,$af,$bf,$47,$57,$af,$ff,$07,$57,$af,$bf,$47,$5f,$af - db $ff,$0f,$df,$2f,$ff,$0f,$5f,$af,$ff,$0f,$df,$2f,$ff,$0f,$5f,$af - db $ff,$00,$55,$aa,$bb,$44,$55,$aa,$ff,$00,$55,$aa,$bf,$c0,$d5,$aa - db $ff,$80,$d5,$aa,$ff,$80,$d5,$aa,$ff,$80,$dd,$e2,$ff,$c0,$d5,$ea + db $ff,$00,$55,$aa,$ff,$00,$55,$aa,$ff,$00,$5f,$a7,$df,$3f,$7f,$ff + db $ff,$c0,$fd,$f2,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $ff,$00,$55,$aa,$ff,$00,$55,$aa,$ff,$00,$5d,$a2,$ff,$00,$d5,$aa + db $9f,$7f,$1f,$ff,$3f,$df,$1f,$ff,$9f,$7f,$1f,$ff,$3f,$ff,$3f,$ff + db $ff,$7f,$7f,$ff,$ff,$7f,$7f,$ff,$ff,$7f,$7f,$ff,$ff,$7f,$ff,$ff + db $ab,$55,$45,$bb,$ab,$55,$11,$ef,$ab,$55,$45,$bb,$ab,$55,$11,$ef + db $ab,$55,$57,$ab,$ab,$57,$53,$af,$ab,$57,$57,$ab,$ab,$57,$57,$ab + db $eb,$17,$57,$ab,$af,$57,$57,$af,$af,$57,$57,$af,$af,$57,$57,$af + db $ef,$17,$57,$af,$bf,$4f,$5f,$af,$ef,$1f,$5f,$af,$bf,$4f,$5f,$af + db $ea,$15,$55,$aa,$aa,$55,$55,$aa,$ae,$51,$55,$aa,$aa,$d5,$d5,$aa + db $ee,$91,$d5,$aa,$bb,$c4,$d5,$aa,$ee,$91,$d5,$ea,$fb,$c4,$d5,$ea db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $88,$77,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $ff,$3f,$ff,$3f,$fc,$3f,$c3,$3f,$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $ff,$ff,$f8,$ff,$07,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $ff,$ff,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $ff,$ff,$07,$ff,$f8,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $ff,$c0,$fd,$e2,$ff,$e0,$f7,$e8,$ff,$e0,$fd,$e2,$ff,$e0,$f7,$e8 - db $ff,$ff,$ff,$ff,$7f,$ff,$87,$ff,$f8,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $ff,$e0,$ff,$e0,$ff,$e0,$f7,$f8,$ff,$f0,$0f,$f0,$f3,$fc,$fc,$ff - db $ff,$1f,$df,$3f,$ff,$1f,$7f,$9f,$ff,$1f,$df,$3f,$ff,$1f,$7f,$9f - db $ea,$d5,$c0,$ff,$ea,$d5,$e0,$ff,$ea,$f5,$e4,$fb,$ea,$f5,$e0,$ff - db $ea,$f5,$e4,$fb,$fa,$f5,$f0,$ff,$fa,$f5,$f4,$fb,$fa,$f5,$f1,$fe - db $fa,$f5,$fc,$fb,$fa,$fd,$f9,$fe,$fa,$fd,$fd,$fa,$fa,$fd,$fd,$fa - db $fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe,$fe,$fd,$ff,$fe - db $fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$ff,$fe,$ff,$ff - db $bf,$7f,$3f,$ff,$bf,$7f,$3f,$ff,$bf,$7f,$7f,$ff,$ff,$7f,$7f,$ff - db $a8,$d7,$80,$ff,$a2,$dd,$80,$ff,$ea,$d5,$c0,$ff,$e2,$dd,$c0,$ff - db $88,$77,$00,$ff,$03,$ff,$0f,$ff,$9f,$7f,$1f,$ff,$1f,$ff,$1f,$ff - db $88,$77,$00,$ff,$00,$ff,$00,$ff,$88,$f7,$80,$ff,$82,$fd,$80,$ff - db $88,$77,$f0,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$07,$07,$ff,$ff - db $ff,$ff,$ff,$ff,$00,$00,$fb,$fb,$f3,$f3,$f3,$f3,$e7,$e7,$67,$67 - db $6f,$6f,$0f,$0f,$0f,$0f,$8f,$8f,$9f,$9f,$9f,$9f,$00,$00,$ff,$ff - db $ff,$ff,$ff,$ff,$00,$00,$e4,$e4,$c4,$c4,$4e,$4e,$0e,$0e,$1e,$1e - db $9f,$9f,$1f,$1f,$0f,$0f,$67,$67,$73,$73,$fb,$fb,$00,$00,$ff,$ff - db $ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$f0,$f0,$ff,$ff - db $ff,$ff,$ff,$ff,$f0,$f0,$fd,$fd,$fc,$fc,$fe,$fe,$ff,$ff,$ff,$ff - db $ff,$ff,$ff,$ff,$07,$07,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3f + db $80,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $ff,$3f,$7f,$bf,$ff,$3f,$7f,$bf,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $fe,$c1,$d5,$ea,$fb,$c4,$d5,$ea,$ff,$e0,$f5,$ea,$ff,$e0,$f5,$ea + db $ff,$e0,$f5,$ea,$ff,$e0,$f5,$fa,$ff,$f0,$fd,$f2,$ff,$fc,$ff,$ff + db $ff,$0f,$5f,$af,$bf,$4f,$5f,$bf,$ff,$1f,$5f,$bf,$bf,$5f,$5f,$bf + db $e8,$d7,$c0,$ff,$e2,$dd,$c0,$ff,$ea,$d5,$e0,$ff,$e2,$fd,$e0,$ff + db $ea,$f5,$e0,$ff,$ea,$f5,$e0,$ff,$fa,$f5,$f0,$ff,$fa,$f5,$f0,$ff + db $fa,$f5,$f4,$fb,$fa,$f5,$f8,$ff,$fa,$fd,$fc,$fb,$fa,$fd,$f9,$fe + db $fa,$fd,$fc,$fb,$fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe + db $fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$fe,$ff,$ff,$ff + db $bf,$7f,$3f,$ff,$3f,$ff,$3f,$ff,$bf,$7f,$3f,$ff,$7f,$ff,$7f,$ff + db $88,$f7,$80,$ff,$a0,$df,$80,$ff,$88,$f7,$80,$ff,$e2,$dd,$c0,$ff + db $80,$7f,$00,$ff,$03,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$1f,$ff,$1f,$ff + db $80,$7f,$00,$ff,$00,$ff,$00,$ff,$08,$f7,$00,$ff,$00,$ff,$80,$ff + db $80,$7f,$f0,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff + db $80,$7f,$00,$ff,$00,$ff,$00,$ff,$08,$f7,$00,$ff,$00,$ff,$00,$ff + db $88,$77,$00,$ff,$20,$df,$00,$ff,$88,$77,$00,$ff,$22,$dd,$00,$ff + db $a8,$57,$00,$ff,$22,$dd,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff + db $aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff + db $aa,$55,$44,$bb,$aa,$55,$10,$ef,$aa,$55,$44,$bb,$aa,$55,$01,$fe + db $aa,$55,$44,$bb,$aa,$55,$11,$ee,$aa,$55,$45,$ba,$aa,$55,$11,$ee + db $aa,$55,$55,$aa,$aa,$55,$51,$ae,$aa,$55,$55,$aa,$aa,$55,$55,$aa + db $ea,$15,$55,$aa,$aa,$55,$55,$aa,$ae,$51,$55,$aa,$aa,$55,$55,$aa + db $ee,$11,$55,$aa,$bb,$44,$55,$aa,$ee,$11,$55,$aa,$bb,$44,$55,$aa + db $fe,$01,$55,$aa,$bb,$44,$55,$aa,$ff,$00,$55,$aa,$bf,$40,$55,$aa + db $ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$fc,$fd,$fc,$f8,$f8,$ff,$ff + db $7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$3f,$3f,$ff,$ff + db $ff,$ff,$f8,$f8,$fd,$fc,$fc,$fc,$fe,$fc,$fe,$fe,$ff,$fe,$ff,$ff + db $ff,$ff,$00,$00,$f5,$e4,$e4,$e4,$ee,$e4,$4e,$4c,$5e,$4e,$3f,$1e + db $ff,$ff,$00,$00,$fb,$f2,$f3,$f2,$f7,$f2,$f7,$f2,$67,$66,$6f,$66 + db $ff,$ff,$3f,$3f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f + db $9f,$1e,$5f,$0f,$4f,$4f,$ef,$e7,$e7,$e7,$f7,$e7,$00,$00,$ff,$ff + db $6f,$66,$6f,$6e,$0f,$0e,$9f,$0e,$9f,$9e,$9f,$9e,$00,$00,$ff,$ff + db $ff,$ff,$ff,$ff,$f1,$ff,$ce,$ff,$de,$ff,$de,$ff,$be,$ff,$be,$ff + db $be,$ff,$be,$ff,$be,$ff,$be,$ff,$a0,$ff,$00,$ff,$01,$ff,$1f,$ff .KeyArtTilesEnd: .BackgroundCopy: ; tiles start at 26 - db $1f, $1f, $1f, $1f, $1f, $1f, $1f, $1f - db $22, $23, $52, $42, $54, $53, $23, $23 - db $24, $25, $38, $41, $41, $51, $25, $25 - db $26, $27, $50, $41, $41, $4b, $27, $27 - db $28, $29, $39, $41, $41, $4c, $29, $2a - db $2b, $3a, $41, $41, $41, $4d, $2c, $2d - db $2e, $3b, $41, $41, $41, $4e, $2f, $30 - db $31, $3c, $41, $41, $41, $4f, $32, $33 - db $34, $3d, $41, $41, $41, $41, $3f, $35 - db $36, $3e, $41, $41, $41, $41, $40, $37 - db $20, $4a, $41, $41, $41, $41, $47, $1d - db $1b, $43, $44, $45, $46, $48, $49, $1e - db $21, $41, $41, $41, $41, $41, $41, $1c - db $41, $41, $41, $41, $41, $41, $41, $41 - db $41, $41, $5b, $58, $56, $5c, $41, $41 - db $41, $41, $5a, $59, $57, $55, $41, $41 + db $36, $36, $36, $36, $36, $36, $36, $36 + db $37, $37, $33, $27, $35, $34, $37, $37 + db $38, $38, $1e, $26, $26, $32, $38, $38 + db $39, $39, $31, $26, $26, $2c, $39, $39 + db $3a, $3a, $1f, $26, $26, $2d, $3a, $3a + db $3b, $3b, $26, $26, $26, $2e, $3b, $3b + db $3c, $20, $49, $26, $26, $2f, $3c, $3c + db $3d, $21, $4a, $26, $26, $30, $3d, $3d + db $3e, $22, $26, $26, $26, $26, $24, $3e + db $3f, $23, $26, $26, $26, $26, $25, $3f + db $40, $2b, $26, $26, $26, $26, $29, $40 + db $1b, $28, $26, $26, $26, $26, $2a, $1d + db $26, $26, $26, $26, $26, $26, $26, $1c + db $26, $26, $26, $26, $26, $26, $26, $26 + db $26, $26, $43, $44, $45, $46, $26, $26 + db $26, $26, $41, $47, $48, $42, $26, $26 .BackgroundCopyEnd: diff --git a/16thetower.aseprite b/16thetower.aseprite index 974cc7ec6eff30273062ea677ed302e804e348fb..5bbb60376e7c1c6e5e6a7b35674c9d48ff9dd444 100644 GIT binary patch delta 1333 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 diff --git a/17TheStar.inc b/17TheStar.inc index 1aa102e..7da1f25 100644 --- a/17TheStar.inc +++ b/17TheStar.inc @@ -14,10 +14,167 @@ TheStar: dw .fUpdate dw .fDraw -.fInit: ret -.fUpdate: ret -.fDraw: ret +.fInit: + ld hl, CVS + ld a, 0 + ld [hl+], a ; CVS timer for star flicker + ld [hl+], a + ld [hl+], a ; CVS+2 frame of star flicker + ld [hl+], a ; CVS+3 timer for lil stars + ld [hl+], a + ld [hl+], a ; CVS+5 frame of lill stars + + ; star flare is first 20 OAM sprites + ld hl, MY_OAM+20*4 + ld b, 21 +.paletteLoop + inc hl ; now poining at x + inc hl ; now pointing at tile id + inc hl ; now pointing at attributes + set OAMB_PAL1, [hl] + inc hl ; now pointing at y for next sprite + dec b + jp nz, .paletteLoop + + ld a, %00_01_10_00 + ld [rOBP0], a + ld a, %10_01_00_00 + ld [rOBP1], a + + ld hl, .starflare + ld de, MY_OAM + ld b, (2+1)*8 + ld c, (1+1+2)*8 + ld a, $54 + call BuildMetaSprite + + ld hl, MY_OAM + 20*4 + ld [hl], (2+1)*8 + 3 + inc hl + ld [hl], (1+1)*8 + 7 + inc hl + ld [hl], 1 + + ld hl, MY_OAM + 20*4 + 1*4 + ld [hl], (2+1)*8 + 7 + inc hl + ld [hl], (1+1+6)*8 + 6 + inc hl + ld [hl], 1 + + ld hl, MY_OAM + 20*4 + 2*4 + ld [hl], (2+1+5)*8 + 2 + inc hl + ld [hl], (1+1+2)*8 + 5 + inc hl + ld [hl], 2 + + ld hl, MY_OAM + 20*4 + 3*4 + ld [hl], (2+1+6)*8 + 2 + inc hl + ld [hl], (1+1+5)*8 + 4 + inc hl + ld [hl], 2 + + ret +.fUpdate: + ld hl, CVS + call IncrementTimer + + ld a, [CVS+1] ; checking the high byte of the timer + cp a, $04 ; $10 = 1 second, $02 = 1/8 of a second + jp c, :+ + + ld a, 0 + ld [CVS], a + ld [CVS+1], a + + ld b, 4 + ld a, [CVS+2] + inc a + call ArrayClampLoopingB + ld [CVS+2], a +: + + ld hl, CVS+3 + call IncrementTimer + + ld a, [CVS+3+1] ; checking the high byte of the timer + cp a, $02 ; $10 = 1 second, $02 = 1/8 of a second + jp c, :+ + + ld a, 0 + ld [CVS+3], a + ld [CVS+3+1], a + + ld b, 12 + ld a, [CVS+5] + inc a + call ArrayClampLoopingB + ld [CVS+5], a +: + call .flicker + ret + +.flicker: + + ret +.fDraw: + ld a, [CVS+2] + cp a, 0 + jp z, .frame0 + cp a, 1 + jp z, .frame1 + cp a, 2 + jp z, .frame2 + cp a, 3 + jp z, .frame3 + +.frame0 + ld a, %00_00_00_00 + ld [rOBP0], a + ret +.frame1 + ld a, %00_00_01_00 + ld [rOBP0], a + ret +.frame2 + ld a, %00_01_10_00 + ld [rOBP0], a + ret +.frame3 + ld a, %00_00_01_00 + ld [rOBP0], a + ret + +.starflare + db $09, $0a, $0b, $0c + db $07, $08, $0d, $04 + db $05, $06, $0e, $0f + db $00, $13, $10, $00 + db $00, $12, $11, $00 + .SpriteTiles: + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$20,$00,$50,$20,$88,$00,$50,$00,$20,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$20,$20,$50,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$f0,$00,$0c,$f0,$f0,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$01,$00,$01,$00,$03,$00,$03,$00,$07,$00,$00,$00 + db $80,$7e,$80,$7f,$80,$7f,$3a,$c1,$62,$81,$c2,$01,$82,$01,$02,$01 + db $00,$00,$00,$00,$01,$00,$0f,$00,$38,$07,$0f,$00,$01,$00,$00,$00 + db $80,$7f,$00,$fe,$00,$f8,$00,$f0,$00,$f0,$00,$f0,$80,$70,$00,$78 + db $00,$00,$00,$00,$00,$00,$06,$00,$03,$00,$03,$00,$01,$00,$01,$00 + db $01,$00,$01,$00,$01,$00,$03,$00,$c2,$01,$62,$81,$32,$c1,$98,$67 + db $80,$00,$80,$00,$80,$00,$80,$00,$c3,$00,$4f,$80,$59,$86,$23,$dc + db $00,$00,$00,$00,$00,$00,$c0,$00,$80,$00,$80,$00,$00,$00,$00,$00 + db $02,$fc,$00,$7e,$01,$1e,$01,$0e,$00,$0f,$01,$0e,$03,$0c,$00,$1c + db $04,$78,$06,$f8,$02,$fc,$03,$fc,$59,$86,$4d,$82,$47,$80,$41,$80 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$c0,$00 + db $40,$80,$40,$80,$40,$80,$40,$80,$40,$80,$c0,$00,$80,$00,$80,$00 + db $80,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $02,$01,$02,$01,$02,$01,$02,$01,$03,$00,$01,$00,$01,$00,$01,$00 .SpriteTilesEnd: ; original export script by gabriel reis, modified by shoofle diff --git a/17thestar.aseprite b/17thestar.aseprite index 401293661b9dfaf8724b705be456478662b45d5b..e3f5b5949b227d158f1b51309ce699673f7de3d6 100644 GIT binary patch delta 481 zcmZqEdd1KEik*Ss!BR#B2Zn};+@-u(K<=-P!3-%33=F{&d-d68FfuSGD=2$%#CY^}z*2nI)+qnK`M&TY-WVbCw2o3pFTkF#r3%__3+? zr8AGLmWw1e2>vx?^k7I)2!#1yBgfE+EcJ`2P11n5s;tkXEv%3G87XEnS?B{$ZdAVp{nX6M# zTbG!4|C#h#BI5h9EVXkU9J-rXzQW%6_sxu!)zURPn0@u#Mb8P8+ML{V-S|!S-@Nw) z*ZM>2_no@UGo95hRem!MC%@6<}iq7tB=7?eRG zLF^0=zZQc6z!HdA6@UZ~{AYsD44{w%hQQl{jJ!aRLkqt9=kl2^fJ!!$Gb=DKFzy3# zS%G2ruBwvGqh;yKepySN%`@{7f)=u!4 rJb9Vzm7eC~-TrpExgQlCOnN`XY=_{)EB3sVpZi0mq?Vg$Fzg2a$s(rp delta 2282 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 diff --git a/Async.inc b/Async.inc index d030781..951c2bb 100644 --- a/Async.inc +++ b/Async.inc @@ -18,7 +18,7 @@ def ASYNC_STACK_TOP equ $ffc0 ; second value is the destination of the async call, at ffbc = ffbe-2 = ffc0-2-2 def ASYNC_THREAD_CALL equ ASYNC_STACK_TOP - 2 - 2 -def SAFE_ASYNC_START EQU 147 +def SAFE_ASYNC_START EQU 148 def SAFE_ASYNC_END EQU 153 Async_Spawn_HL: diff --git a/KeyArtTiles.asm b/KeyArtTiles.asm index 82ea54b..1fa81ed 100644 --- a/KeyArtTiles.asm +++ b/KeyArtTiles.asm @@ -4,82 +4,71 @@ KeyArtTiles: db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$ff,$00,$00,$22,$9c,$00,$9c,$14,$c9,$00,$c9,$00,$eb,$04,$e3 - db $10,$e3,$00,$eb,$00,$c9,$14,$c9,$00,$9c,$22,$9c,$00,$00,$00,$ff - db $48,$93,$48,$93,$48,$93,$48,$93,$48,$93,$48,$93,$00,$00,$00,$ff - db $00,$ff,$00,$00,$48,$93,$48,$93,$48,$93,$48,$93,$48,$93,$48,$93 - db $c7,$ff,$dc,$fc,$78,$f8,$70,$70,$60,$60,$60,$60,$60,$60,$60,$60 - db $00,$ff,$00,$ff,$00,$ff,$07,$ff,$1e,$fe,$78,$f8,$e0,$e0,$00,$00 - db $00,$01,$00,$1f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff - db $00,$ff,$00,$ff,$00,$ff,$3b,$ff,$de,$fe,$70,$f0,$c0,$c0,$00,$00 - db $00,$0f,$00,$3f,$00,$ff,$00,$ff,$00,$ff,$40,$ff,$87,$ff,$1f,$ff - db $0c,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$0c,$fe,$08,$fc,$18,$f8 - db $3c,$fc,$78,$f8,$f0,$f0,$c0,$c0,$00,$00,$00,$00,$00,$00,$00,$00 - db $04,$ff,$04,$ff,$04,$ff,$24,$ff,$24,$ff,$20,$ff,$20,$ff,$21,$ff - db $30,$f0,$20,$e0,$00,$e0,$00,$c0,$00,$80,$00,$80,$00,$80,$00,$80 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$03,$00,$0f,$00,$ff - db $00,$00,$00,$00,$00,$00,$00,$01,$e0,$ff,$c0,$ff,$c0,$ff,$c0,$ff - db $00,$00,$00,$00,$00,$00,$00,$07,$20,$3f,$c0,$ff,$01,$ff,$02,$ff - db $1c,$ff,$14,$ff,$10,$ff,$00,$ff,$00,$ff,$02,$ff,$02,$ff,$04,$ff - db $23,$ff,$23,$ff,$23,$ff,$20,$ff,$20,$fe,$60,$fe,$60,$fe,$60,$fe - db $60,$fe,$60,$fc,$64,$fc,$64,$fc,$64,$fc,$64,$fc,$64,$fc,$60,$fc - db $60,$fc,$60,$f8,$60,$f8,$60,$f8,$40,$f8,$40,$f8,$40,$f8,$40,$f8 - db $00,$f8,$20,$f8,$20,$f8,$20,$f8,$20,$f0,$20,$f0,$20,$f0,$20,$f0 - db $20,$f0,$20,$f0,$40,$f0,$40,$f0,$40,$f0,$40,$f0,$70,$f0,$50,$f0 - db $fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$e3,$fc,$00,$ff,$00,$ff - db $00,$00,$1c,$00,$fc,$00,$ff,$00,$ff,$00,$fe,$01,$00,$ff,$00,$ff - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07 - db $00,$ff,$02,$fe,$06,$fe,$04,$fe,$04,$fc,$08,$fc,$08,$fc,$04,$fc - db $0c,$fc,$04,$fc,$0c,$fc,$0c,$fc,$0c,$fc,$0b,$ff,$0f,$ff,$1c,$ff - db $70,$f0,$30,$f0,$30,$f0,$20,$f0,$20,$f0,$20,$f0,$20,$f0,$20,$f0 - db $20,$f0,$20,$f0,$20,$f0,$00,$f0,$00,$f0,$00,$f0,$10,$f0,$10,$f0 - db $18,$f8,$08,$f8,$08,$f8,$08,$f8,$08,$f8,$08,$f8,$08,$f8,$08,$fc - db $00,$fc,$02,$fc,$03,$fc,$01,$fe,$01,$fe,$21,$fe,$10,$ff,$10,$ff - db $7f,$80,$3f,$c0,$0f,$f0,$03,$fc,$81,$fe,$80,$ff,$f8,$ff,$60,$ff - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$fe,$ff,$00,$ff,$00,$ff - db $3f,$00,$7f,$00,$ff,$00,$fd,$03,$fe,$1f,$70,$ff,$20,$ff,$00,$ff - db $ff,$00,$ff,$00,$ff,$00,$ff,$fc,$0f,$fe,$03,$ff,$03,$ff,$01,$ff - db $80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $ff,$80,$7f,$c0,$3f,$f0,$0f,$fe,$c1,$ff,$00,$ff,$00,$ff,$00,$ff - db $30,$f0,$60,$e0,$c0,$c0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$ff,$fc,$ff,$02,$ff,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$00,$3f,$00,$ff - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$f0,$00,$fc - db $08,$ff,$0c,$ff,$0e,$ff,$07,$ff,$03,$ff,$01,$ff,$03,$ff,$00,$ff - db $00,$00,$00,$00,$80,$00,$e0,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $00,$00,$0f,$00,$3f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $00,$00,$80,$00,$c0,$00,$e0,$00,$e0,$00,$f0,$00,$f8,$00,$fc,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$1f,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$00,$ff,$00,$ff,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$fe,$00,$ff,$00,$ff,$00 - db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$f8,$ff,$fe,$ff,$ff,$ff,$ff,$ff - db $00,$ff,$38,$ff,$06,$ff,$01,$ff,$00,$ff,$00,$ff,$80,$ff,$e0,$ff + db $ff,$00,$55,$aa,$ff,$00,$55,$aa,$ff,$00,$5f,$a7,$df,$3f,$7f,$ff + db $ff,$c0,$fd,$f2,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $ff,$00,$55,$aa,$ff,$00,$55,$aa,$ff,$00,$5d,$a2,$ff,$00,$d5,$aa + db $9f,$7f,$1f,$ff,$3f,$df,$1f,$ff,$9f,$7f,$1f,$ff,$3f,$ff,$3f,$ff + db $ff,$7f,$7f,$ff,$ff,$7f,$7f,$ff,$ff,$7f,$7f,$ff,$ff,$7f,$ff,$ff + db $ab,$55,$45,$bb,$ab,$55,$11,$ef,$ab,$55,$45,$bb,$ab,$55,$11,$ef + db $ab,$55,$57,$ab,$ab,$57,$53,$af,$ab,$57,$57,$ab,$ab,$57,$57,$ab + db $eb,$17,$57,$ab,$af,$57,$57,$af,$af,$57,$57,$af,$af,$57,$57,$af + db $ef,$17,$57,$af,$bf,$4f,$5f,$af,$ef,$1f,$5f,$af,$bf,$4f,$5f,$af + db $ea,$15,$55,$aa,$aa,$55,$55,$aa,$ae,$51,$55,$aa,$aa,$d5,$d5,$aa + db $ee,$91,$d5,$aa,$bb,$c4,$d5,$aa,$ee,$91,$d5,$ea,$fb,$c4,$d5,$ea db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $00,$ff,$01,$ff,$1e,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$ff,$ff - db $f8,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $00,$ff,$00,$ff,$e0,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff - db $00,$ff,$00,$ff,$00,$ff,$e0,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff - db $20,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $80,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $ff,$3f,$7f,$bf,$ff,$3f,$7f,$bf,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $fe,$c1,$d5,$ea,$fb,$c4,$d5,$ea,$ff,$e0,$f5,$ea,$ff,$e0,$f5,$ea + db $ff,$e0,$f5,$ea,$ff,$e0,$f5,$fa,$ff,$f0,$fd,$f2,$ff,$fc,$ff,$ff + db $ff,$0f,$5f,$af,$bf,$4f,$5f,$bf,$ff,$1f,$5f,$bf,$bf,$5f,$5f,$bf + db $e8,$d7,$c0,$ff,$e2,$dd,$c0,$ff,$ea,$d5,$e0,$ff,$e2,$fd,$e0,$ff + db $ea,$f5,$e0,$ff,$ea,$f5,$e0,$ff,$fa,$f5,$f0,$ff,$fa,$f5,$f0,$ff + db $fa,$f5,$f4,$fb,$fa,$f5,$f8,$ff,$fa,$fd,$fc,$fb,$fa,$fd,$f9,$fe + db $fa,$fd,$fc,$fb,$fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe + db $fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$fe,$ff,$ff,$ff + db $bf,$7f,$3f,$ff,$3f,$ff,$3f,$ff,$bf,$7f,$3f,$ff,$7f,$ff,$7f,$ff + db $88,$f7,$80,$ff,$a0,$df,$80,$ff,$88,$f7,$80,$ff,$e2,$dd,$c0,$ff + db $80,$7f,$00,$ff,$03,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$1f,$ff,$1f,$ff + db $80,$7f,$00,$ff,$00,$ff,$00,$ff,$08,$f7,$00,$ff,$00,$ff,$80,$ff + db $80,$7f,$f0,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff + db $80,$7f,$00,$ff,$00,$ff,$00,$ff,$08,$f7,$00,$ff,$00,$ff,$00,$ff + db $88,$77,$00,$ff,$20,$df,$00,$ff,$88,$77,$00,$ff,$22,$dd,$00,$ff + db $a8,$57,$00,$ff,$22,$dd,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff + db $aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff + db $aa,$55,$44,$bb,$aa,$55,$10,$ef,$aa,$55,$44,$bb,$aa,$55,$01,$fe + db $aa,$55,$44,$bb,$aa,$55,$11,$ee,$aa,$55,$45,$ba,$aa,$55,$11,$ee + db $aa,$55,$55,$aa,$aa,$55,$51,$ae,$aa,$55,$55,$aa,$aa,$55,$55,$aa + db $ea,$15,$55,$aa,$aa,$55,$55,$aa,$ae,$51,$55,$aa,$aa,$55,$55,$aa + db $ee,$11,$55,$aa,$bb,$44,$55,$aa,$ee,$11,$55,$aa,$bb,$44,$55,$aa + db $fe,$01,$55,$aa,$bb,$44,$55,$aa,$ff,$00,$55,$aa,$bf,$40,$55,$aa + db $ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$fc,$fd,$fc,$f8,$f8,$ff,$ff + db $7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$3f,$3f,$ff,$ff + db $ff,$ff,$f8,$f8,$fd,$fc,$fc,$fc,$fe,$fc,$fe,$fe,$ff,$fe,$ff,$ff + db $ff,$ff,$00,$00,$f5,$e4,$e4,$e4,$ee,$e4,$4e,$4c,$5e,$4e,$3f,$1e + db $ff,$ff,$00,$00,$fb,$f2,$f3,$f2,$f7,$f2,$f7,$f2,$67,$66,$6f,$66 + db $ff,$ff,$3f,$3f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f + db $9f,$1e,$5f,$0f,$4f,$4f,$ef,$e7,$e7,$e7,$f7,$e7,$00,$00,$ff,$ff + db $6f,$66,$6f,$6e,$0f,$0e,$9f,$0e,$9f,$9e,$9f,$9e,$00,$00,$ff,$ff + db $ff,$ff,$ff,$ff,$f1,$ff,$ce,$ff,$de,$ff,$de,$ff,$be,$ff,$be,$ff + db $be,$ff,$be,$ff,$be,$ff,$be,$ff,$a0,$ff,$00,$ff,$01,$ff,$1f,$ff KeyArt: - db $34, $1a, $1a, $28, $29, $21, $22, $40 - db $35, $2a, $23, $20, $1f, $3e, $1a, $1a - db $2b, $24, $25, $1a, $55, $33, $42, $44 - db $26, $27, $1a, $1a, $1a, $1a, $1a, $1a - db $2c, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $2d, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $2e, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $2f, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $30, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $36, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $37, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $38, $1a, $1a, $1a, $1a, $1a, $1a, $1a - db $39, $46, $47, $48, $1a, $49, $4a, $4b - db $45, $3a, $3b, $31, $32, $3c, $3d, $43 - db $4c, $4d, $54, $1b, $1e, $51, $41, $3f - db $4e, $4f, $50, $1c, $1d, $4e, $52, $53 + db $36, $36, $36, $36, $36, $36, $36, $36 + db $37, $37, $33, $27, $35, $34, $37, $37 + db $38, $38, $1e, $26, $26, $32, $38, $38 + db $39, $39, $31, $26, $26, $2c, $39, $39 + db $3a, $3a, $1f, $26, $26, $2d, $3a, $3a + db $3b, $3b, $26, $26, $26, $2e, $3b, $3b + db $3c, $20, $49, $26, $26, $2f, $3c, $3c + db $3d, $21, $4a, $26, $26, $30, $3d, $3d + db $3e, $22, $26, $26, $26, $26, $24, $3e + db $3f, $23, $26, $26, $26, $26, $25, $3f + db $40, $2b, $26, $26, $26, $26, $29, $40 + db $1b, $28, $26, $26, $26, $26, $2a, $1d + db $26, $26, $26, $26, $26, $26, $26, $1c + db $26, $26, $26, $26, $26, $26, $26, $26 + db $26, $26, $43, $44, $45, $46, $26, $26 + db $26, $26, $41, $47, $48, $42, $26, $26 diff --git a/SpriteTiles.asm b/SpriteTiles.asm index 284be15..e79f3e0 100644 --- a/SpriteTiles.asm +++ b/SpriteTiles.asm @@ -4,129 +4,31 @@ 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,$00,$00,$00,$00,$07,$07 - db $78,$7f,$40,$7f,$81,$ff,$02,$ff,$05,$ff,$0a,$fe,$00,$f4,$e0,$fc - db $80,$80,$40,$c0,$00,$c0,$80,$c0,$00,$80,$00,$00,$00,$00,$00,$00 - db $0f,$0f,$07,$07,$04,$07,$04,$07,$06,$07,$00,$01,$01,$01,$01,$01 - db $fc,$fc,$fc,$fc,$1c,$fc,$00,$fc,$00,$fe,$00,$fe,$00,$ff,$00,$ff - db $80,$ff,$80,$ff,$80,$ff,$80,$ff,$80,$ff,$00,$7f,$40,$7f,$40,$7f - db $00,$00,$00,$80,$00,$80,$00,$81,$40,$c3,$42,$c7,$45,$c7,$4a,$cf - db $00,$00,$00,$00,$00,$00,$c0,$c0,$20,$e0,$20,$e0,$20,$e0,$40,$c0 - db $00,$00,$03,$03,$06,$07,$04,$07,$00,$07,$00,$07,$00,$07,$00,$07 - db $00,$00,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$1f,$ff,$0f,$ff - db $40,$7f,$c0,$ff,$40,$ff,$40,$ff,$40,$ff,$c0,$ff,$c0,$ff,$c0,$ff - db $54,$df,$68,$ef,$60,$ff,$61,$ff,$61,$ff,$62,$fe,$5e,$fe,$40,$c0 - db $40,$c0,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$03 - db $0c,$fc,$0c,$fc,$04,$fc,$04,$fc,$06,$fe,$03,$ff,$03,$ff,$03,$ff - db $c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$80,$ff,$80,$ff,$81,$ff - db $40,$c0,$40,$c0,$40,$c0,$40,$c0,$c0,$c0,$80,$80,$80,$80,$80,$80 - db $00,$03,$00,$03,$00,$03,$00,$03,$02,$03,$01,$03,$00,$03,$03,$03 - db $01,$ff,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff - db $81,$ff,$81,$ff,$01,$ff,$01,$ff,$03,$ff,$05,$ff,$c9,$ff,$fe,$fe - db $01,$01,$00,$00,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01 - db $c0,$c0,$80,$80,$00,$ff,$00,$ff,$3f,$c0,$ff,$00,$ff,$00,$ff,$00 - db $00,$0e,$04,$3a,$1c,$e2,$7c,$82,$fc,$02,$fc,$02,$fc,$02,$fc,$02 - db $00,$01,$00,$01,$00,$01,$02,$01,$06,$01,$1e,$01,$3f,$00,$7f,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$fc,$03,$41,$be,$7f,$80,$7f,$80 - db $fc,$02,$fc,$02,$fc,$02,$7d,$82,$7d,$82,$fd,$02,$fd,$02,$fd,$02 - db $00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$e0,$00,$f8,$00,$fc,$00 - db $fe,$01,$f8,$06,$f7,$08,$ff,$00,$ff,$00,$7f,$00,$1f,$60,$03,$3c - db $7f,$80,$7f,$80,$7f,$80,$3f,$c0,$bf,$40,$ff,$00,$ff,$00,$ff,$00 - db $fc,$03,$fc,$02,$fd,$02,$fd,$02,$fb,$04,$ff,$00,$ff,$00,$ff,$00 - db $fc,$00,$3e,$c0,$de,$20,$fe,$00,$fe,$00,$f8,$04,$e0,$18,$c0,$30 - db $00,$07,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $fc,$03,$00,$ff,$00,$03,$00,$02,$00,$02,$01,$02,$03,$04,$00,$0c - db $04,$fb,$00,$fe,$00,$18,$00,$08,$00,$c8,$f0,$08,$18,$04,$00,$06 - db $00,$e0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$08,$00,$08,$00,$08,$00,$18,$00,$18,$08,$19,$0d,$0c,$1e,$1e - db $00,$02,$00,$02,$10,$e2,$00,$13,$00,$03,$02,$9b,$9a,$02,$06,$06 - db $0a,$0e,$f3,$ff,$8f,$ff,$eb,$ff,$ba,$fe,$ba,$fe,$20,$20,$00,$00 - db $00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $1f,$1f,$1a,$1f,$0a,$0f,$0a,$0f,$0a,$0f,$00,$03,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$00,$03,$03,$04,$07,$04,$07,$04,$07,$0f,$0f - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f0,$f0,$08,$f8 - db $08,$0f,$10,$1f,$60,$7f,$40,$7f,$41,$7f,$40,$7f,$fe,$ff,$ff,$ff - db $00,$f8,$20,$f8,$50,$f0,$a0,$f0,$40,$c0,$00,$40,$00,$c0,$c0,$c0 - db $7f,$7f,$41,$7f,$40,$7f,$60,$7f,$00,$1f,$10,$1f,$10,$1f,$18,$1f - db $c0,$c0,$c0,$c0,$00,$c0,$00,$e0,$00,$e0,$00,$f0,$00,$f0,$00,$f8 - db $08,$0f,$08,$0f,$08,$0f,$08,$0f,$00,$03,$02,$03,$02,$03,$02,$03 - db $00,$f8,$00,$f8,$04,$fc,$04,$fc,$04,$fc,$04,$fc,$02,$fe,$02,$fe - db $00,$00,$0e,$0e,$01,$1f,$11,$3f,$21,$3f,$51,$7f,$a2,$fe,$82,$fe - db $00,$01,$18,$1f,$30,$3f,$20,$3f,$00,$3f,$00,$3f,$00,$3f,$00,$3f - db $06,$ff,$02,$ff,$02,$ff,$02,$ff,$06,$ff,$fe,$ff,$7e,$ff,$66,$e7 - db $03,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$02,$ff,$02,$fe,$02,$fe - db $44,$7c,$04,$fc,$08,$f8,$08,$f8,$10,$f0,$f0,$f0,$00,$00,$00,$00 - db $00,$3f,$00,$3f,$00,$1f,$00,$1f,$00,$1f,$00,$1f,$00,$1f,$00,$0f - db $66,$e7,$26,$e7,$26,$e7,$16,$f7,$0e,$ff,$0e,$ff,$0e,$ff,$06,$ff - db $02,$fe,$02,$fe,$06,$fe,$04,$fc,$04,$fc,$04,$fc,$04,$fc,$04,$fc - db $00,$0f,$00,$0f,$00,$0f,$00,$0f,$08,$0f,$07,$0f,$03,$0f,$0f,$0f - db $06,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff,$00,$00 - db $04,$fc,$04,$fc,$0c,$fc,$14,$fc,$24,$fc,$38,$f8,$c0,$f8,$10,$28 - db $06,$06,$00,$03,$00,$03,$00,$03,$01,$02,$01,$02,$01,$02,$01,$02 - db $00,$00,$00,$ff,$01,$fe,$7f,$80,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $30,$c8,$70,$88,$f0,$08,$f0,$08,$f0,$08,$f8,$04,$f8,$04,$f8,$04 - db $01,$02,$01,$02,$01,$02,$05,$02,$0c,$03,$3e,$01,$7e,$01,$fc,$03 - db $ff,$00,$ff,$00,$fe,$01,$f8,$07,$83,$7c,$ff,$00,$ff,$00,$ff,$00 - db $f8,$04,$fa,$04,$fb,$04,$fb,$04,$fb,$04,$fb,$04,$f9,$06,$f8,$05 - db $00,$00,$00,$00,$80,$00,$c0,$00,$f0,$00,$f8,$00,$f8,$00,$7c,$80 - db $fc,$01,$fa,$05,$f7,$08,$ff,$00,$ff,$00,$7f,$00,$1f,$60,$00,$3f - db $ff,$00,$ff,$00,$3f,$c0,$bf,$40,$ff,$00,$ff,$00,$ff,$00,$fc,$03 - db $fb,$04,$fb,$04,$f7,$08,$ff,$00,$ff,$00,$ff,$00,$84,$7b,$00,$fe - db $bc,$40,$fc,$00,$f8,$00,$f0,$08,$c0,$30,$c0,$30,$00,$e0,$00,$00 - db $00,$ff,$00,$03,$00,$02,$00,$02,$01,$02,$03,$04,$00,$0c,$00,$08 - db $00,$98,$00,$08,$00,$48,$70,$88,$98,$04,$00,$06,$00,$02,$00,$02 - db $00,$08,$00,$08,$00,$08,$00,$0c,$04,$0c,$06,$06,$0f,$0f,$0f,$0f - db $10,$e2,$00,$13,$00,$03,$02,$db,$d9,$01,$03,$03,$05,$07,$79,$ff - db $0d,$0f,$05,$07,$05,$07,$05,$07,$01,$01,$00,$00,$00,$00,$00,$00 - db $47,$ff,$75,$ff,$5d,$ff,$5d,$ff,$50,$f0,$00,$00,$00,$00,$00,$00 - db $80,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3c,$3c - db $01,$01,$02,$03,$04,$07,$0c,$0f,$10,$1f,$10,$1f,$10,$1f,$3f,$3f - db $c2,$fe,$02,$fe,$08,$ff,$0a,$ff,$14,$fe,$28,$f8,$00,$d0,$80,$f0 - db $3f,$3f,$1f,$1f,$10,$1f,$10,$1f,$18,$1f,$00,$07,$04,$07,$04,$07 - db $f0,$f0,$f0,$f0,$70,$f0,$00,$f0,$00,$f8,$00,$f8,$00,$fc,$00,$fc - db $06,$07,$02,$03,$02,$03,$02,$03,$02,$03,$00,$01,$01,$01,$01,$01 - db $00,$fc,$00,$fe,$00,$fe,$00,$fe,$01,$ff,$01,$ff,$01,$ff,$01,$ff - db $00,$00,$00,$00,$03,$07,$00,$0f,$08,$1f,$14,$1f,$29,$3f,$11,$7f - db $00,$00,$00,$00,$00,$00,$80,$80,$80,$80,$80,$80,$00,$00,$00,$00 - db $00,$00,$0c,$0f,$18,$1f,$10,$1f,$00,$1f,$00,$1f,$00,$1f,$00,$0f - db $01,$01,$03,$ff,$01,$ff,$01,$ff,$01,$ff,$03,$ff,$7f,$ff,$1f,$ff - db $01,$ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$80,$ff,$81,$ff - db $42,$7e,$a2,$be,$82,$fe,$84,$fc,$84,$fc,$88,$f8,$b8,$f8,$00,$00 - db $00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$07 - db $19,$f9,$19,$f9,$09,$f9,$09,$f9,$0d,$fd,$07,$ff,$07,$ff,$07,$ff - db $81,$ff,$81,$ff,$81,$ff,$81,$ff,$81,$ff,$01,$ff,$01,$ff,$03,$ff - db $00,$07,$00,$07,$00,$07,$00,$07,$04,$07,$02,$07,$01,$07,$07,$07 - db $03,$ff,$03,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff - db $02,$fe,$02,$fe,$02,$fe,$02,$fe,$06,$fe,$0a,$fe,$92,$fe,$fc,$fc - db $03,$03,$01,$01,$00,$03,$00,$03,$00,$03,$01,$02,$01,$02,$01,$02 - db $80,$80,$00,$00,$00,$ff,$00,$ff,$7f,$80,$ff,$00,$ff,$00,$ff,$00 - db $00,$1c,$08,$74,$38,$c4,$f8,$04,$f8,$04,$f8,$04,$f8,$04,$f8,$04 - db $01,$02,$01,$02,$01,$02,$02,$01,$06,$01,$1e,$01,$3f,$00,$7f,$00 - db $f8,$04,$f8,$04,$fc,$02,$7d,$82,$7d,$82,$fd,$02,$fd,$02,$fd,$02 - db $00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$e8,$00,$fc,$00,$fc,$00 - db $fe,$00,$3e,$c0,$de,$20,$fe,$00,$f8,$04,$f0,$08,$e0,$10,$c0,$30 - db $00,$08,$00,$08,$00,$08,$00,$18,$00,$18,$08,$19,$05,$0c,$0e,$0e - db $00,$02,$00,$02,$10,$e2,$00,$13,$00,$03,$02,$9b,$99,$01,$03,$03 - db $0f,$0f,$0d,$0f,$05,$07,$05,$07,$05,$07,$00,$01,$00,$00,$00,$00 - db $85,$87,$79,$ff,$47,$ff,$75,$ff,$5d,$ff,$5c,$fe,$00,$00,$00,$00 - db $00,$00,$80,$80,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$20,$00,$50,$20,$88,$00,$50,$00,$20,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$20,$20,$50,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$f0,$00,$0c,$f0,$f0,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$01,$00,$01,$00,$03,$00,$03,$00,$07,$00,$00,$00 + db $80,$7e,$80,$7f,$80,$7f,$3a,$c1,$62,$81,$c2,$01,$82,$01,$02,$01 + db $00,$00,$00,$00,$01,$00,$0f,$00,$38,$07,$0f,$00,$01,$00,$00,$00 + db $80,$7f,$00,$fe,$00,$f8,$00,$f0,$00,$f0,$00,$f0,$80,$70,$00,$78 + db $00,$00,$00,$00,$00,$00,$06,$00,$03,$00,$03,$00,$01,$00,$01,$00 + db $01,$00,$01,$00,$01,$00,$03,$00,$c2,$01,$62,$81,$32,$c1,$98,$67 + db $80,$00,$80,$00,$80,$00,$80,$00,$c3,$00,$4f,$80,$59,$86,$23,$dc + db $00,$00,$00,$00,$00,$00,$c0,$00,$80,$00,$80,$00,$00,$00,$00,$00 + db $02,$fc,$00,$7e,$01,$1e,$01,$0e,$00,$0f,$01,$0e,$03,$0c,$00,$1c + db $04,$78,$06,$f8,$02,$fc,$03,$fc,$59,$86,$4d,$82,$47,$80,$41,$80 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$c0,$00 + db $40,$80,$40,$80,$40,$80,$40,$80,$40,$80,$c0,$00,$80,$00,$80,$00 + db $80,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $02,$01,$02,$01,$02,$01,$02,$01,$03,$00,$01,$00,$01,$00,$01,$00 Sprites: - db $00, $00, $4f, $00, $00 - db $00, $50, $51, $00, $00 - db $00, $52, $53, $00, $00 - db $00, $54, $55, $56, $57 - db $58, $59, $5a, $5b, $00 - db $5c, $5d, $5e, $00, $00 - db $5f, $60, $61, $00, $00 - db $62, $63, $64, $00, $00 - db $65, $19, $66, $67, $00 - db $1c, $1d, $1e, $68, $00 - db $20, $21, $22, $23, $00 - db $00, $69, $6a, $00, $00 - db $00, $6b, $6c, $6d, $00 + db $09, $0a, $0b, $0c + db $07, $08, $0d, $04 + db $05, $06, $0e, $0f + db $00, $13, $10, $00 + db $00, $12, $11, $00 diff --git a/source.zip b/source.zip index a95e15603b6e6e78a2a49a337c17c86c4481f7df..7f37dbdb71dc50cf83cd0fc286d127fdc83f0577 100644 GIT binary patch delta 12733 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