Animation is finetuned and expanded with one extra sprite.
The mario sprite on the screen is cleared in the wait_frame routine before shifting the background 1 pixel and plotting the mario sprite.
Code: Select all
;----------------------------------------------------------------------------
; Data mario data
;----------------------------------------------------------------------------
mario_spr0_l: ; Mario white mask0
.byte $00,$00,$00,$00,$00,$00,$00,$03
.byte $07,$0e,$09,$03,$33,$31,$3b,$0e
.byte $07,$01,$18,$3b,$37,$37,$3b,$8c
.byte $00,$00,$00,$00,$00,$1e,$1f,$00
mario_spr0_r:
.byte $00,$00,$00,$00,$00,$00,$f0,$f8
.byte $00,$00,$f8,$a8,$a8,$fc,$7c,$00
.byte $80,$f0,$00,$a0,$d4,$c4,$a4,$60
.byte $00,$00,$40,$80,$00,$e0,$70,$00
mario_msk0_l: ; Mario black mask0
.byte $ff,$ff,$ff,$ff,$ff,$ff,$fc,$f8
.byte $f0,$e0,$e0,$c0,$80,$80,$80,$c0
.byte $e0,$e0,$c0,$80,$80,$80,$80,$c0
.byte $c0,$c0,$c0,$e0,$e0,$c0,$c0,$c0
mario_msk0_r:
.byte $ff,$ff,$ff,$ff,$ff,$0f,$07,$03
.byte $01,$00,$01,$03,$03,$01,$01,$01
.byte $03,$07,$0f,$03,$01,$01,$01,$03
.byte $07,$0f,$0f,$1f,$1f,$0f,$07,$07
mario_spr1_l: ; Mario white mask1
.byte $00,$00,$00,$00,$00,$00,$00,$03
.byte $07,$0e,$09,$03,$33,$31,$3b,$0e
.byte $07,$01,$18,$3d,$3b,$3b,$3d,$1e
.byte $00,$00,$00,$00,$06,$07,$03,$00
mario_spr1_r:
.byte $00,$00,$00,$00,$00,$00,$f0,$f8
.byte $00,$00,$f8,$a8,$a8,$fc,$7c,$00
.byte $80,$f0,$00,$ad,$ea,$e2,$d2,$30
.byte $00,$00,$00,$00,$00,$c0,$e0,$00
mario_msk1_l: ; Mario black mask1
.byte $ff,$ff,$ff,$ff,$ff,$ff,$fc,$f8
.byte $f0,$e0,$e0,$c0,$80,$80,$80,$c0
.byte $e0,$e0,$c0,$80,$80,$80,$80,$c0
.byte $e0,$e0,$f0,$f8,$f0,$f0,$f0,$fc
mario_msk1_r:
.byte $ff,$ff,$ff,$ff,$ff,$0f,$07,$03
.byte $01,$00,$01,$03,$03,$01,$01,$01
.byte $03,$07,$07,$01,$00,$00,$00,$01
.byte $07,$07,$0f,$0f,$1f,$1f,$0f,$0f
mario_spr2_l: ; Mario white mask2
.byte $00,$00,$00,$00,$00,$00,$01,$07
.byte $0e,$1c,$13,$07,$67,$63,$76,$1c
.byte $0f,$03,$1c,$38,$37,$2f,$2f,$17
.byte $40,$40,$40,$60,$60,$40,$00,$00
mario_spr2_r:
.byte $00,$00,$00,$00,$00,$00,$e0,$f0
.byte $00,$00,$f0,$50,$50,$f8,$f8,$00
.byte $00,$e0,$00,$e6,$76,$82,$a8,$68
.byte $00,$00,$00,$00,$00,$f0,$f8,$00
mario_msk2_l: ; Mario black mask2
.byte $ff,$ff,$ff,$ff,$ff,$fe,$f8,$f0
.byte $e0,$c0,$c0,$80,$00,$00,$00,$80
.byte $c0,$e0,$c0,$80,$80,$80,$80,$00
.byte $00,$00,$00,$00,$0c,$1c,$3c,$fc
mario_msk2_r:
.byte $ff,$ff,$ff,$ff,$ff,$1f,$0f,$07
.byte $03,$01,$03,$07,$07,$03,$03,$03
.byte $07,$0f,$09,$00,$00,$00,$01,$03
.byte $03,$07,$07,$0f,$0f,$07,$03,$03
mario_spr3_l: ; Mario white mask3
.byte $00,$00,$00,$00,$00,$00,$00,$03
.byte $07,$0e,$09,$03,$33,$31,$3b,$0e
.byte $07,$01,$38,$77,$6f,$6f,$67,$30
.byte $00,$00,$00,$00,$30,$3d,$1e,$00
mario_spr3_r:
.byte $00,$00,$00,$00,$00,$00,$f0,$f8
.byte $00,$00,$f8,$a8,$a8,$fc,$7c,$00
.byte $80,$f0,$00,$60,$b0,$84,$4a,$c6
.byte $06,$06,$06,$0c,$00,$00,$00,$00
mario_msk3_l: ; Mario black mask3
.byte $ff,$ff,$ff,$ff,$ff,$ff,$fc,$f8
.byte $f0,$e0,$e0,$c0,$80,$80,$80,$c0
.byte $e0,$c0,$80,$00,$00,$00,$00,$80
.byte $c0,$c0,$c0,$80,$80,$80,$80,$e0
mario_msk3_r:
.byte $ff,$ff,$ff,$ff,$ff,$0f,$07,$03
.byte $01,$00,$01,$03,$03,$01,$01,$01
.byte $03,$07,$0f,$0f,$03,$00,$00,$00
.byte $00,$00,$00,$0e,$f1,$ff,$ff,$ff
spr_l_lb:
.byte <mario_spr1_l,<mario_spr3_l,<mario_spr1_l,<mario_spr2_l
spr_l_hb:
.byte >mario_spr1_l,>mario_spr3_l,>mario_spr1_l,>mario_spr2_l
spr_r_lb:
.byte <mario_spr1_r,<mario_spr3_r,<mario_spr1_r,<mario_spr2_r
spr_r_hb:
.byte >mario_spr1_r,>mario_spr3_r,>mario_spr1_r,>mario_spr2_r
msk_l_lb:
.byte <mario_msk1_l,<mario_msk3_l,<mario_msk1_l,<mario_msk2_l
msk_l_hb:
.byte >mario_msk1_l,>mario_msk3_l,>mario_msk1_l,>mario_msk2_l
msk_r_lb:
.byte <mario_msk1_r,<mario_msk3_r,<mario_msk1_r,<mario_msk2_r
msk_r_hb:
.byte >mario_msk1_r,>mario_msk3_r,>mario_msk1_r,>mario_msk2_r
And I changed the background colour back to green .....