From 79bdace3b32a772d2a48bdf660e79f93f6a0f923 Mon Sep 17 00:00:00 2001 From: Randall Rupper Date: Wed, 15 Nov 2023 14:30:44 -0700 Subject: [PATCH] fix: disable flute in rain state (except glitched modes) fix(msu): GTBK music in DR --- hooks.asm | 3 +++ inventory.asm | 14 ++++++++++++++ msu.asm | 8 +++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/hooks.asm b/hooks.asm index 0ba8bc7..a8f8f87 100644 --- a/hooks.asm +++ b/hooks.asm @@ -1179,6 +1179,9 @@ JSL.l RestoreMenu_SetSubModule : NOP org $88D395 ; <- 45395 - ancilla_bird_travel_intro.asm : 253 JSL.l UpgradeFlute : NOP #2 ;-------------------------------------------------------------------------------- +org $87A408 ; LDA.l $7EF34C +JSL.l FluteCallForDuck +;-------------------------------------------------------------------------------- org $85E4D7 ; <- 2E4D7 - sprite_witch.asm : 213 JSL RemoveMushroom : NOP #2 ;-------------------------------------------------------------------------------- diff --git a/inventory.asm b/inventory.asm index 2ff6b30..7a104f2 100644 --- a/inventory.asm +++ b/inventory.asm @@ -462,6 +462,20 @@ UpgradeFlute: LDA.b #$03 : STA.l FluteEquipment ; upgrade primary inventory RTL ;-------------------------------------------------------------------------------- +; FluteCallForDuck: +;-------------------------------------------------------------------------------- +; sets A to #$02 to ignore summoning the duck +FluteCallForDuck: + LDA.l WarningFlags : AND.b #$20 : BNE .vanilla ; glitched modes allowed flute in rain state + LDA.l ProgressIndicator : CMP.b #$02 : BCS .vanilla ; must rescue Zelda first + + .noDuck + LDA.b #$02 : RTL + + .vanilla + LDA.l FluteEquipment ; what we wrote over +RTL +;-------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------- ; CheckKeys: diff --git a/msu.asm b/msu.asm index 76e8747..013e8a4 100644 --- a/msu.asm +++ b/msu.asm @@ -233,7 +233,13 @@ CheckMusicLoadRequest: LDA.w DungeonID CMP.b #$08 : BNE .check_fallback ; Hyrule Castle 2 .dungeon - LDA.w DungeonID : LSR : !ADD.b #33 : STA.w MusicControlRequest + LDA.w DungeonID : CMP.b #$1A : BNE + + PHA : LDA.l DRMode : BEQ ++ + LDA.w BigKeyField : AND.b #$04 : BEQ ++ + ; if door rando and entering GT with BK + PLA : LDA.b #59 : BRA .check_fallback-3 + ++ PLA + + LSR : !ADD.b #33 : STA.w MusicControlRequest .check_fallback LDX.w MusicControlRequest