Files
alttpr-baserom/flipperkill.asm
2017-05-17 13:00:32 -04:00

44 lines
1.6 KiB
NASM

;================================================================================
; Fake Flippers Softlock Fix
;--------------------------------------------------------------------------------
FlipperKill:
PHP
LDA $5D : CMP #$04 : BNE .done ; skip if we're not swimming
LDA $7EF356 : BNE .done ; skip if we have the flippers
LDA $7F5001 : BEQ .done ; skip if we're not marked in danger for softlock
JSL.l KillFairies ; take away fairies
LDA.b #$00 : STA $7EF36D ; kill link
LDA.b #$00 : STA $7F5001 ; mark fake flipper softlock as impossible
.done
PLP
LDA $7EF36D ; thing we wrote over
RTL
;--------------------------------------------------------------------------------
KillFairies:
LDA $7EF35C : CMP #$06 : BNE +
LDA #$02 : STA $7EF35C
+ LDA $7EF35D : CMP #$06 : BNE +
LDA #$02 : STA $7EF35D
+ LDA $7EF35E : CMP #$06 : BNE +
LDA #$02 : STA $7EF35E
+ LDA $7EF35F : CMP #$06 : BNE +
LDA #$02 : STA $7EF35F
+
RTL
;--------------------------------------------------------------------------------
FlipperReset:
JSL $0998E8 ; AddTransitionSplash
LDA #$00 : STA $7F5001 ; mark fake flipper softlock as impossible
.done
RTL
;--------------------------------------------------------------------------------
FlipperFlag:
LDA $5D : CMP #$04 : BNE .done ; skip if we're not swimming
LDA $7EF356 : BNE .safe ; skip if we have the flippers
LDA #$01 : STA $7F5001 ; mark fake flipper softlock as possible
BRA .done
.safe
LDA #$00 : STA $7F5001 ; mark fake flipper softlock as impossible
.done
RTL
;--------------------------------------------------------------------------------