From fa75373c3bd84f0983df9b03c2ed1f3a8da8fde5 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 7 Jul 2024 19:02:21 -0400 Subject: [PATCH] fix deku mask poof/bubble crash --- Masks/deku_mask.asm | 32 ++++++++++++++------------------ Masks/mask_routines.asm | 9 ++++----- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/Masks/deku_mask.asm b/Masks/deku_mask.asm index aa1d18c..34beb16 100644 --- a/Masks/deku_mask.asm +++ b/Masks/deku_mask.asm @@ -29,30 +29,26 @@ print "End of Masks/deku_mask.asm ", pc ; ========================================================= -; Indicates somaria platform status. -; 0x00 - Not on platform -; 0x01 - On platform -; 0x02 - On platform and moving -SOMPLAT = $7E02F5 - -org $07A64B ; formerly Quake +org $07A64B ; formerly Quake LinkItem_DekuMask: { + ; Don't use magic unless deku form LDA.w $02B2 : CMP.b #$01 : BNE .continue - JSR Link_CheckNewY_ButtonPress : BCC .continue - LDA $3A : AND.b #$BF : STA $3A - LDX.b #$02 - JSR LinkItem_EvaluateMagicCost : BCC .return - JSL DekuLink_ShootBubbleOrStartHover - RTS + ; Don't shoot while transform is active + LDA.w $0C4E : BNE .continue + JSR Link_CheckNewY_ButtonPress : BCC .continue + LDA $3A : AND.b #$BF : STA $3A + LDX.b #$02 + JSR LinkItem_EvaluateMagicCost : BCC .return + JSL DekuLink_ShootBubbleOrStartHover + RTS .continue - LDA.b #$01 - JSL Link_TransformMask : BCC .return - LDA.b #$01 : STA.w SOMPLAT - RTS + ; Don't transform while shooting + LDA.w $0C52 : CMP.b #$0E : BEQ .return + LDA.b #$01 + JSL Link_TransformMask .return - STZ.w SOMPLAT RTS } diff --git a/Masks/mask_routines.asm b/Masks/mask_routines.asm index 61d6c89..bdf658d 100644 --- a/Masks/mask_routines.asm +++ b/Masks/mask_routines.asm @@ -843,7 +843,7 @@ AncillaAdd_MagicBubbleShot: .no_refund_magic BRL .exit_a .free_slot - INY ; Increment ancilla slot, due to 0x1E + INY #4 ; Increment ancilla slot, due to 0x1E PHB PHK PLB @@ -1166,8 +1166,7 @@ MagicBubbleShot_Halted: + LDY.b #$00 - LDA.w AnciTimerA, X - BEQ MagicBubbleShot_Dissipate + LDA.w AnciTimerA, X : BEQ MagicBubbleShot_Dissipate LSR A LSR A @@ -1204,8 +1203,7 @@ MagicBubbleShot_Halted: LDA.b $00 : STA.b ($90), Y - CLC - ADC.b #$08 + CLC : ADC.b #$08 LDY.b #$04 : STA.b ($90), Y LDA.b $01 : CLC : ADC.b #$FD @@ -1213,6 +1211,7 @@ MagicBubbleShot_Halted: LDY.b #$05 : STA.b ($90), Y + ; Character LDA.b #$A4 : LDY.b #$02 : STA.b ($90), Y INC A