diff --git a/hooks.asm b/hooks.asm index 0731804..efaa51c 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2265,6 +2265,9 @@ org $02A9B0 ; (BCS $A9B7) NOP #2 org $02C1C8 ; (BCS $C1CC) NOP #2 +; +org $02ADA0 ; (LDA.b #$F1 : STA $012C) +JSL Overworld_MosaicDarkWorldChecks : NOP ;-------------------------------------------------------------------------------- org $05CC58 ; <- Bank05.asm:1307 (LDA $040A : CMP.b #$18) JSL PsychoSolder_MusicCheck diff --git a/msu.asm b/msu.asm index b2f5884..5a601a5 100644 --- a/msu.asm +++ b/msu.asm @@ -198,6 +198,7 @@ CheckMusicLoadRequest: CMP.b #02 : BEQ .lightworld CMP.b #09 : BEQ .darkworld CMP.b #13 : BEQ .darkwoods + CMP.b #15 : BEQ .darkwoods CMP.b #16 : BEQ .castle CMP.b #17 : BEQ .dungeon CMP.b #22 : BEQ .dungeon @@ -220,11 +221,7 @@ CheckMusicLoadRequest: LDA.b #61 : BRA .check_fallback-3 .darkwoods PHA - LDA $7EF37A : CMP.b #$7F : BNE + - LDA !REG_MSU_FALLBACK_TABLE+7 : BIT #$10 : BEQ + - PLA : LDA.b #61 : STA !REG_MUSIC_CONTROL_REQUEST - BRA .mute - + + LDA $7EF37A : CMP.b #$7F : BEQ - LDA $7EF3CA : BEQ -- LDA $8A : CMP #$40 : BNE -- PLA diff --git a/music.asm b/music.asm index 7e7e6dd..9269a90 100644 --- a/music.asm +++ b/music.asm @@ -259,6 +259,27 @@ PsychoSolder_MusicCheck: RTL ;-------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------- +; Additional dark world checks to determine whether or not to fade out music +; on mosaic transitions +; +; On entry, A = $8A (overworld area being loaded) +Overworld_MosaicDarkWorldChecks: + CMP.b #$40 : beq .checkCrystals + CMP.b #$42 : beq .checkCrystals + CMP.b #$50 : beq .checkCrystals + CMP.b #$51 : bne .doFade + +.checkCrystals + LDA $7EF37A : CMP.b #$7F : BEQ .done + +.doFade + LDA.b #$F1 : STA $012C ; thing we wrote over, fade out music + +.done + RTL +;-------------------------------------------------------------------------------- + ;-------------------------------------------------------------------------------- !SPCFreeSpace = $0700