RedOrbCode: LDX #$00 RedOrbLoop: LDA enemy_type,X BEQ BlueSlotEmpty ; This should branch to "RedSlotEmpty" LDA enemy_collision,X AND #$F0 BNE RedSlotEmpty LDA enemy_type,X ORA #$80 STA enemy_type,X LDA #$03 STA enemy_damage_state,X LDA #$00 STA enemy_health,X RedSlotEmpty: INX CPX #$01 BCC RedOrbLoop JMP DeselectItem DeselectItem: LDA #$07 ; $07 = no item selected STA defence_item LDA #$80 JMP Somewhere -------------------------------- BlueOrbCode: LDX #$00 BlueOrbLoop: LDA obj_type,X BEQ BlueSlotEmpty CMP #$37 BEQ BlueSlotEmpty LDA obj_collision,X AND #$F0 BNE BlueSlotEmpty LDA obj_state,X ORA #$80 STA obj_state,X LDA #$05 STA obj_iframes,X LDA #$00 STA obj_health,X BlueSlotEmpty: INX CPX #$08 BCC BlueOrbLoop LDX #$00 TXA ProjectileClearLoop: JSR ClearProjectileRam ; This is the subroutine in the post above INX CPX #$08 BCC ProjectileClearLoop JMP DeselectItem