Merge branch 'OWMain' into overworld_kara

This commit is contained in:
2021-08-02 19:00:33 -07:00
3 changed files with 57 additions and 175 deletions

View File

@@ -2480,7 +2480,11 @@ dl Overworld_FinishMirrorWarp
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $0AB949 ; <- Bank0A.asm:270 (Different from US ROM) org $0AB949 ; <- Bank0A.asm:270 (Different from US ROM)
JSL BirdTravel_LoadTargetAreaMusic JSL BirdTravel_LoadTargetAreaMusic
NOP #16 BRA + : NOP #14 : +
;--------------------------------------------------------------------------------
org $02B027 ; <- Bank02.asm:7535-7541
JSL Overworld_DetermineMusicSFX
BRA + : NOP #42 : +
;================================================================================ ;================================================================================
;================================================================================ ;================================================================================

View File

@@ -263,7 +263,7 @@ CheckMusicLoadRequest:
.darkwoods .darkwoods
PHA PHA
LDA $7EF37A : CMP.b #$7F : BEQ - LDA $7EF37A : CMP.b #$7F : BEQ -
LDA $7EF3CA : BEQ -- ;LDA $7EF3CA : BEQ --
LDA $8A : CMP #$40 : BNE -- LDA $8A : CMP #$40 : BNE --
PLA PLA
LDA.b #15 : BRA .check_fallback-3 LDA.b #15 : BRA .check_fallback-3

224
music.asm
View File

@@ -7,74 +7,16 @@ PreOverworld_LoadProperties_ChooseMusic:
LDY.b #$58 ; death mountain animated tileset. LDY.b #$58 ; death mountain animated tileset.
LDX.b #$02 ; Default light world theme
LDA $8A : ORA #$40 ; check both light and dark world DM at the same time LDA $8A : ORA #$40 ; check both light and dark world DM at the same time
CMP.b #$43 : BEQ .endOfLightWorldChecks CMP.b #$43 : BEQ +
CMP.b #$45 : BEQ .endOfLightWorldChecks CMP.b #$45 : BEQ +
CMP.b #$47 : BEQ .endOfLightWorldChecks CMP.b #$47 : BEQ +
LDY.b #$5A ; Main overworld animated tileset LDY.b #$5A ; Main overworld animated tileset
; Skip village and lost woods checks if entering dark world or a special area
LDA $8A : CMP.b #$40 : !BGE .notVillageOrWoods
LDX.b #$07 ; Default village theme
; Check what phase we're in
;LDA $7EF3C5 : CMP.b #$03 : !BLT +
; LDX.b #$02 ; Default light world theme (phase >=3)
;+
; Check if we're entering the village
LDA $8A : CMP.b #$18 : BEQ .endOfLightWorldChecks
; For NA release would we also branch on indexes #$22 #$28 #$29
LDX.b #$05 ; Lost woods theme
; check if we've pulled from the master sword pedestal
LDA $7EF300 : AND.b #$40 : BEQ +
LDX.b #$02 ; Default light world theme
+
; check if we are entering lost woods
LDA $8A : BEQ .endOfLightWorldChecks
.notVillageOrWoods
; Use the normal overworld (light world) music
LDX.b #$02
; Check phase ; In phase >= 2
LDA $7EF3C5 : CMP.b #$02 : !BGE +
; If phase < 2, play the legend music
LDX.b #$03
+
.endOfLightWorldChecks
; 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 OWWorldCheck : BEQ .checkInverted+4 + JSL Overworld_DetermineMusicSFX
LDX.b #$0F ; dark woods theme
; This music is used in dark woods
LDA $8A
CMP.b #$40 : BEQ +
LDX.b #$0D ; dark death mountain theme
; This music is used in dark death mountain
CMP.b #$43 : BEQ + : CMP.b #$45 : BEQ + : CMP.b #$47 : BEQ +
LDX.b #$09 ; dark overworld theme
+
; if not inverted and light world, or inverted and dark world, skip moon pearl check
.checkInverted
JSL OWWorldCheck : CLC : ROL #$03 : CMP InvertedMode : BEQ .lastCheck
; Does Link have a moon pearl?
LDA $7EF357 : BNE +
LDX.b #$04 ; bunny theme
+
.lastCheck .lastCheck
LDA $0132 : CMP.b #$F2 : BNE + LDA $0132 : CMP.b #$F2 : BNE +
@@ -115,58 +57,11 @@ Overworld_FinishMirrorWarp:
LDA.b #$80 : STA $9B LDA.b #$80 : STA $9B
LDX.b #$04 ; bunny theme JSL Overworld_DetermineMusicSFX
; if not inverted and light world, or inverted and dark world, skip moon pearl check .done
LDA $7EF3CA : CLC : ROL #$03 : CMP InvertedMode : BEQ +
LDA $7EF357 : BEQ .endOfLightWorldChecks
+
LDX.b #$09 ; default dark world theme
LDA $8A : CMP.b #$40 : !BGE .endOfLightWorldChecks
LDX.b #$02 ; hyrule field theme
; Check if we're entering the lost woods
CMP.b #$00 : BNE +
LDA $7EF300 : AND.b #$40 : BNE .endOfLightWorldChecks
LDX.b #$05 ; lost woods theme
BRA .endOfLightWorldChecks
+
; Check if we're entering the village
CMP.b #$18 : BNE .endOfLightWorldChecks
; Check what phase we're in
; LDA $7EF3C5 : CMP.b #$03 : !BGE .endOfLightWorldChecks
LDX.b #$07 ; Default village theme (phase <3)
.endOfLightWorldChecks
STX $012C STX $012C
LDA $8A : CMP.b #$40 : BNE +
LDX #$0F ; dark woods theme
BRA .bunny
+
CMP.b #$43 : BEQ .darkMountain
CMP.b #$45 : BEQ .darkMountain
CMP.b #$47 : BNE .notDarkMountain
.darkMountain
LDA.b #$09 : STA $012D ; set storm ambient SFX
LDX.b #$0D ; dark mountain theme
.bunny
LDA $7EF357 : ORA InvertedMode : BNE +
LDX #$04 ; bunny theme
+
STX $012C
.notDarkMountain
LDA $11 : STA $010C LDA $11 : STA $010C
STZ $11 STZ $11
@@ -179,80 +74,63 @@ Overworld_FinishMirrorWarp:
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
BirdTravel_LoadTargetAreaMusic: BirdTravel_LoadTargetAreaMusic:
LDX.b #$02 ; Default OW theme JSL Overworld_DetermineMusicSFX
RTL
;--------------------------------------------------------------------------------
; Skip village and lost woods checks if entering dark world or a special area ;--------------------------------------------------------------------------------
LDA $8A : CMP.b #$43 : BEQ .endOfLightWorldChecks ;X to be set to music track to load
CMP.b #$40 : !BGE .notVillageOrWoods ;$012D to be set to any ambient SFX for the area
Overworld_DetermineMusicSFX:
LDA $7EF3C5 : CMP.b #$02 : !BGE +
LDX.b #$03 ; If phase < 2, play the rain music
BRA .done
+ LDA $8A : CMP.b #$43 : BEQ .darkMountain
CMP.b #$45 : BEQ .darkMountain
CMP.b #$47 : BEQ .darkMountain
LDX.b #$07 ; Default village theme LDX.b #$02 ; hyrule field theme
LDA.b #$05 : STA $012D
; Check what phase we're in LDA $7EF3CA : BEQ +
;LDA $7EF3C5 : CMP.b #$03 : !BLT + LDX.b #$09 ; default dark world theme
; LDX.b #$02 ; Default light world theme (phase >=3)
;+
; Check if we're entering the village ; Check if we're entering the village
LDA $8A : CMP.b #$18 : BEQ .endOfLightWorldChecks + LDA $8A : CMP.b #$18 : BNE +
; For NA release would we also branch on indexes #$22 #$28 #$29 ; Check what phase we're in
; LDA $7EF3C5 : CMP.b #$03 : !BGE .bunny
LDX.b #$07 ; Default village theme (phase <3)
BRA .bunny
; Check if we're entering the lost woods
+ CMP.b #$00 : BNE +
LDA $7EF300 : AND.b #$40 : BNE .bunny
LDX.b #$05 ; lost woods theme
BRA .bunny
+ LDA $8A : CMP.b #$40 : BNE +
LDX #$0F ; dark woods theme
BRA .bunny
;LDX.b #$05 ; Lost woods theme
; check if we've pulled from the master sword pedestal
;LDA $7EF300 : AND.b #$40 : BEQ +
; LDX.b #$02 ; Default light world theme
;+
; check if we are entering lost woods
LDA $8A : BEQ .endOfLightWorldChecks
.notVillageOrWoods
; Use the normal overworld (light world) music
LDX.b #$02
; Check phase ; In phase >= 2
LDA $7EF3C5 : CMP.b #$02 : !BGE +
; If phase < 2, play the legend music
LDX.b #$03
+
.endOfLightWorldChecks
; if we are in the light world go ahead and set chosen selection
LDA $7EF3CA : BEQ .checkInverted+4
LDX.b #$09 ; dark overworld theme
LDA $8A
; Misery Mire rain SFX ; Misery Mire rain SFX
CMP.b #$70 : BNE ++ + CMP.b #$70 : BNE .bunny
LDA $7EF2F0 : AND.b #$20 : BNE ++ LDA $7EF2F0 : AND.b #$20 : BNE .bunny
LDA.b #$01 : CMP $0131 : BEQ + LDA.b #$01 : CMP $0131 : BEQ +
STA $012D STA $012D : BRA .bunny
+ : BRA .checkInverted + STZ $012D : BRA .bunny
++
; This music is used in dark death mountain .darkMountain
CMP.b #$43 : BEQ .darkMountain LDA.b #$09 : STA $012D ; set storm ambient SFX
; CMP.b #$45 : BEQ .darkMountain LDX.b #$0D ; dark mountain theme
; CMP.b #$47 : BEQ .darkMountain
LDA.b #$05 : STA $012D
BRA .checkInverted
.darkMountain
LDA $7EF37A : CMP.b #$7F : BEQ +
LDX.b #$0D ; dark death mountain theme
+ : LDA.b #$09 : STA $012D
.bunny
; if not inverted and light world, or inverted and dark world, skip moon pearl check ; if not inverted and light world, or inverted and dark world, skip moon pearl check
.checkInverted LDA $7EF3CA : CLC : ROL #$03 : CMP InvertedMode : BEQ .done
LDA $7EF3CA : CLC : ROL #$03 : CMP InvertedMode : BEQ .lastCheck LDA $7EF357 : BNE .done
LDX #$04 ; bunny theme
; Does Link have a moon pearl? .done
LDA $7EF357 : BNE +
LDX.b #$04 ; bunny theme
+
.lastCheck
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------