From 62356f0159481dd90793d322f81a0a95b52d4bae 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 7291a0a..62f7fef 100755 --- a/hooks.asm +++ b/hooks.asm @@ -1300,6 +1300,9 @@ org $08D395 ; <- 45395 - ancilla_bird_travel_intro.asm : 253 JSL.l UpgradeFlute NOP #2 ;-------------------------------------------------------------------------------- +org $07A408 ; LDA.l $7EF34C +JSL.l FluteCallForDuck +;-------------------------------------------------------------------------------- org $05E4D7 ; <- 2E4D7 - sprite_witch.asm : 213 JSL.l RemoveMushroom NOP #2 diff --git a/inventory.asm b/inventory.asm index a0fdd29..75991de 100644 --- a/inventory.asm +++ b/inventory.asm @@ -820,6 +820,20 @@ UpgradeFlute: LDA.b #$03 : STA 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 62322e1..9a37d76 100644 --- a/msu.asm +++ b/msu.asm @@ -271,7 +271,13 @@ CheckMusicLoadRequest: LDA $040C CMP.b #$08 : BNE .check_fallback ; Hyrule Castle 2 .dungeon - LDA $040C : LSR : !ADD.b #33 : STA !REG_MUSIC_CONTROL_REQUEST + LDA $040C : 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 !REG_MUSIC_CONTROL_REQUEST .check_fallback LDX !REG_MUSIC_CONTROL_REQUEST