Separated ambient SFX from music track selection
Fixes issue with ambient SFX stopping and starting
This commit is contained in:
@@ -2486,7 +2486,7 @@ JSL BirdTravel_LoadTargetAreaMusic
|
|||||||
BRA + : NOP #14 : +
|
BRA + : NOP #14 : +
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $02B027 ; <- Bank02.asm:7535-7541
|
org $02B027 ; <- Bank02.asm:7535-7541
|
||||||
JSL Overworld_DetermineMusicSFX
|
JSL Overworld_DetermineMusic
|
||||||
BRA + : NOP #42 : +
|
BRA + : NOP #42 : +
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
|
|||||||
50
music.asm
50
music.asm
@@ -16,7 +16,7 @@ PreOverworld_LoadProperties_ChooseMusic:
|
|||||||
|
|
||||||
; if we are in the light world go ahead and set chosen selection
|
; if we are in the light world go ahead and set chosen selection
|
||||||
;LDA $7EF3CA : BEQ .checkInverted+4
|
;LDA $7EF3CA : BEQ .checkInverted+4
|
||||||
+ JSL Overworld_DetermineMusicSFX
|
+ JSL Overworld_DetermineMusic
|
||||||
|
|
||||||
.lastCheck
|
.lastCheck
|
||||||
LDA $0132 : CMP.b #$F2 : BNE +
|
LDA $0132 : CMP.b #$F2 : BNE +
|
||||||
@@ -57,7 +57,8 @@ Overworld_FinishMirrorWarp:
|
|||||||
|
|
||||||
LDA.b #$80 : STA $9B
|
LDA.b #$80 : STA $9B
|
||||||
|
|
||||||
JSL Overworld_DetermineMusicSFX
|
JSL Overworld_DetermineAmbientSFX
|
||||||
|
JSL Overworld_DetermineMusic
|
||||||
|
|
||||||
.done
|
.done
|
||||||
STX $012C
|
STX $012C
|
||||||
@@ -74,14 +75,14 @@ Overworld_FinishMirrorWarp:
|
|||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
BirdTravel_LoadTargetAreaMusic:
|
BirdTravel_LoadTargetAreaMusic:
|
||||||
JSL Overworld_DetermineMusicSFX
|
JSL Overworld_DetermineAmbientSFX
|
||||||
|
JSL Overworld_DetermineMusic
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;X to be set to music track to load
|
;X to be set to music track to load
|
||||||
;$012D to be set to any ambient SFX for the area
|
Overworld_DetermineMusic:
|
||||||
Overworld_DetermineMusicSFX:
|
|
||||||
LDA $7EF3C5 : CMP.b #$02 : !BGE +
|
LDA $7EF3C5 : CMP.b #$02 : !BGE +
|
||||||
LDX.b #$03 ; If phase < 2, play the rain music
|
LDX.b #$03 ; If phase < 2, play the rain music
|
||||||
BRA .done
|
BRA .done
|
||||||
@@ -91,7 +92,6 @@ Overworld_DetermineMusicSFX:
|
|||||||
CMP.b #$47 : BEQ .darkMountain
|
CMP.b #$47 : BEQ .darkMountain
|
||||||
|
|
||||||
LDX.b #$02 ; hyrule field theme
|
LDX.b #$02 ; hyrule field theme
|
||||||
LDA.b #$05 : STA $012D
|
|
||||||
|
|
||||||
LDA $7EF3CA : BEQ +
|
LDA $7EF3CA : BEQ +
|
||||||
LDX.b #$09 ; default dark world theme
|
LDX.b #$09 ; default dark world theme
|
||||||
@@ -113,15 +113,7 @@ Overworld_DetermineMusicSFX:
|
|||||||
LDX #$0F ; dark woods theme
|
LDX #$0F ; dark woods theme
|
||||||
BRA .bunny
|
BRA .bunny
|
||||||
|
|
||||||
; Misery Mire rain SFX
|
|
||||||
+ CMP.b #$70 : BNE .bunny
|
|
||||||
LDA $7EF2F0 : AND.b #$20 : BNE .bunny
|
|
||||||
LDA.b #$01 : CMP $0131 : BEQ +
|
|
||||||
STA $012D : BRA .bunny
|
|
||||||
+ STZ $012D : BRA .bunny
|
|
||||||
|
|
||||||
.darkMountain
|
.darkMountain
|
||||||
LDA.b #$09 : STA $012D ; set storm ambient SFX
|
|
||||||
LDX.b #$0D ; dark mountain theme
|
LDX.b #$0D ; dark mountain theme
|
||||||
|
|
||||||
.bunny
|
.bunny
|
||||||
@@ -134,6 +126,36 @@ Overworld_DetermineMusicSFX:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
;$012D to be set to any ambient SFX for the area
|
||||||
|
Overworld_DetermineAmbientSFX:
|
||||||
|
LDA $7EF3C5 : CMP.b #$02 : !BGE +
|
||||||
|
BRA .done ; rain state sfx handled elsewhere
|
||||||
|
|
||||||
|
+ LDA $8A : CMP.b #$43 : BEQ .darkMountain
|
||||||
|
CMP.b #$45 : BEQ .darkMountain
|
||||||
|
CMP.b #$47 : BEQ .darkMountain
|
||||||
|
|
||||||
|
CMP.b #$70 : BEQ .mire
|
||||||
|
|
||||||
|
LDA.b #$05 : BRA .setSfx ; silence
|
||||||
|
|
||||||
|
.mire
|
||||||
|
LDA $7EF2F0 : AND.b #$20 : BNE .done
|
||||||
|
LDA.b #$01 : BRA .setSfx ; Misery Mire rain SFX
|
||||||
|
|
||||||
|
.darkMountain
|
||||||
|
LDA.b #$09 : BRA .setSfx ; set storm ambient SFX
|
||||||
|
|
||||||
|
.setSfx
|
||||||
|
CMP $0131 : BEQ +
|
||||||
|
STA $012D
|
||||||
|
+ STZ $012D
|
||||||
|
|
||||||
|
.done
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;0 = Is Kakariko Overworld
|
;0 = Is Kakariko Overworld
|
||||||
;1 = Not Kakariko Overworld
|
;1 = Not Kakariko Overworld
|
||||||
|
|||||||
Reference in New Issue
Block a user