diff --git a/doorrando/spiral.asm b/doorrando/spiral.asm index 81f8533..a0c0ae7 100644 --- a/doorrando/spiral.asm +++ b/doorrando/spiral.asm @@ -101,6 +101,11 @@ StairCleanup: { rts } +LookupSpiralOffset_long: + PHB : PHK : PLB + JSR LookupSpiralOffset + PLB : RTL + ;Sets the offset in A LookupSpiralOffset: { ;where link currently is in $a2: quad in a8 & #$03 diff --git a/msu.asm b/msu.asm index 5fd40b2..62322e1 100644 --- a/msu.asm +++ b/msu.asm @@ -370,8 +370,15 @@ CheckMusicLoadRequest: ; Fade out music if we're changing tracks on a stair transition ;-------------------------------------------------------------------------------- SpiralStairsPreCheck: - REP #$20 ; thing we wrote over - LDA.l DRMode : BNE .done ; exit if door rando enabled + LDA.l DRMode : BEQ + ; if door rando enabled + JSL LookupSpiralOffset_long + REP #$30 : AND.w #$00FF : ASL #2 : TAX + LDA.l SpiralTable,X + SEP #$10 : TAX : CPX.b #$07 : BNE .done ; check if hera boss + JSL CheckHeraBossDefeated : BCS .done + LDX.b #$F1 : STX !REG_MUSIC_CONTROL_REQUEST + BRA .done + + REP #$20 ; thing we wrote over LDA $A0 CMP.w #$000C : BNE + LDA !REG_CURRENT_MSU_TRACK : AND.w #$00FF : CMP.w #59 : BNE .done @@ -401,8 +408,11 @@ SpiralStairsPreCheck: ; Change music on stair transition (ToH/GT) ;-------------------------------------------------------------------------------- SpiralStairsPostCheck: - LDA.l DRMode : BNE .done ; exit if door rando enabled - LDA $A0 + LDA.l DRMode : BEQ + ; if door rando enabled + LDA.b $A2 : CMP.w #$0007 : BNE .done + LDX.b #$16 : STX !REG_MUSIC_CONTROL_REQUEST + BRA .done + + LDA $A0 CMP.w #$000C : BNE + ; Ganon's tower entrance LDX $0130 : CPX.b #$F1 : BNE .done ; Check that we were fading out