lorom org $A3DCA6 JSR $F330 org $A3F330 ;E6C8: Left or Right Wall LDA $1840 ;Duration of screen-shaking? CMP #$001E ;1E frames BNE END LDA $183E ;Type of screen-shaking? CMP #$0014 ;Type #$14 BNE END ;Checks for wall shaking due to super missile LDA $0FB2, X ;Misc enemy ram. Used by most enemy as flags, indexes, counters, etc STA $7E7806, X ;Save current AI (Unknown, initialized to BF31 by Ceres Ridley) LDA #$E785 ; STA $0FB2, X ;Set to falling AI (Misc enemy ram. Used by most enemy as flags, indexes, counters, etc) BRA START END: RTL ;E785: Falling START: LDA $7E7802, X ;Uh. Not sure when this was initialized.(Unknown, initialized to BF31 by Ceres Ridley) STA $12 LDA $7E7804, X ;Unknown, initialized to 1 by Norfair Ridley, 0 by Ceres Ridley STA $14 JSL $A0C786 ;Vertical motion BCC BETA ;Branch if no collision LDA $0FB4, X ;Check initial speed? (Misc enemy ram. Used by most enemy as flags, indexes, counters, etc) CMP #$00FF BNE ALPHA LDA #$0080 STA $0FA8, X ;Misc enemy ram. Used by most enemy as flags, indexes, counters, etc STA $0FAA, X ;Misc enemy ram. Used by most enemy as flags, indexes, counters, etc ALPHA: LDA #$0000 STA $7E7802, X STA $7E7804, X STA $7E7808, X ;Clear speeds LDA $7E7806, X STA $0FB2, X ;Restore previous AI RTL BETA: LDA $7E7804, X CMP #$0004 ;Cap speed at 4 pixels per frame BPL GAMMA LDA $7E7802, X CLC ADC #$8000 STA $7E7802, X LDA $7E7804, X ADC #$0000 STA $7E7804, X ;Accelerate due to gravity GAMMA: LDA $7E7802, X BNE DELTA LDA $7E7804, X BNE DELTA LDA #$E6C8 STA $0FB2, X ;... If stopped, set to floor AI? This probably doesn't ever happen DELTA: RTL