;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; SPRITE_ROUTINE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; X_Speed dcb $00,$00 ; X speed (right,left) SPRITE_ROUTINE LDA $14C8,x ; return if sprite status != 8 CMP #$08 BNE RETURN JSR SUB_GFX LDA $9D ; return if sprites locked BNE RETURN JSR SUB_OFF_SCREEN_X0 ; only process sprite while on screen LDA $15AC,x ; Don't interact with Mario if timer's set BNE RETURN1 JSR Fire_Routine Powerup_routine LDA $187A ;\ If touching Mario... BNE RETURN1 ; | JSL $01A7DC ; | BCC RETURN1 ; | JSR PowerupRoutine ;/ Run powerup routine STZ $14C8,x ; Erase sprite RETURN1 JSL $01802A ; Update position based on speed value RETURN RTS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; fire routine ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fire_Routine PHX TYX LDA $7FAB9E,x INC A STA $7FAB9E,x PLX LDA $E4,x STA $00E4,y LDA $14E0,x STA $14E0,y LDA $D8,x STA $00D8,y LDA $14D4,x STA $14D4,y PHX TYX JSL $07F7D2 JSL $0187A7 LDA #$08 STA $7FAB10,x PLX EndSpawn: RTS