ZSOverworld Ocarina Song of Storms control
This commit is contained in:
@@ -1,9 +1,7 @@
|
|||||||
; =============================================================================
|
; =========================================================
|
||||||
; Ocarina Multiple Song Select
|
; Ocarina Multiple Song Select
|
||||||
;
|
;
|
||||||
; $7EF3CB - Ocarina Song RAM
|
; =========================================================
|
||||||
;
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $0994FE
|
org $0994FE
|
||||||
AddTravelBird:
|
AddTravelBird:
|
||||||
@@ -14,7 +12,7 @@ org $098D11
|
|||||||
org $078021
|
org $078021
|
||||||
Player_DoSfx1:
|
Player_DoSfx1:
|
||||||
|
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
; Song of Healing
|
; Song of Healing
|
||||||
|
|
||||||
; SFX2_Accomp
|
; SFX2_Accomp
|
||||||
@@ -39,7 +37,7 @@ Song_of_Healing:
|
|||||||
db $00
|
db $00
|
||||||
}
|
}
|
||||||
|
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
; D F D - D F D - E F E - F E C
|
; D F D - D F D - E F E - F E C
|
||||||
; D F d D F d e f e f e c
|
; D F d D F d e f e f e c
|
||||||
@@ -88,7 +86,7 @@ Song_of_Storms:
|
|||||||
|
|
||||||
db $00 ; end sfx
|
db $00 ; end sfx
|
||||||
}
|
}
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
org $07A3DB
|
org $07A3DB
|
||||||
LinkItem_FluteHook:
|
LinkItem_FluteHook:
|
||||||
@@ -97,14 +95,14 @@ LinkItem_FluteHook:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
; Free Space Bank07
|
; Free Space Bank07
|
||||||
org $07FC69
|
org $07FC69
|
||||||
ReturnFromFluteHook:
|
ReturnFromFluteHook:
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
LinkItem_NewFlute:
|
LinkItem_NewFlute:
|
||||||
{
|
{
|
||||||
@@ -137,7 +135,7 @@ LinkItem_NewFlute:
|
|||||||
; Play the Song of Storms SFX
|
; Play the Song of Storms SFX
|
||||||
; LDA.b #$12 : JSR Player_DoSfx2
|
; LDA.b #$12 : JSR Player_DoSfx2
|
||||||
LDA.b #$18 : JSR Player_DoSfx1
|
LDA.b #$18 : JSR Player_DoSfx1
|
||||||
JSR OcarinaEffect_SummonStorms
|
JSL OcarinaEffect_SummonStorms
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.song_of_soaring
|
.song_of_soaring
|
||||||
@@ -209,9 +207,7 @@ LinkItem_NewFlute:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; =============================================================================
|
; =========================================================
|
||||||
|
|
||||||
; $7EF3CB - Ocarina Song SRAM
|
|
||||||
|
|
||||||
; $030F - Current Song RAM
|
; $030F - Current Song RAM
|
||||||
; 00 - No Song
|
; 00 - No Song
|
||||||
@@ -253,15 +249,101 @@ UpdateFluteSong:
|
|||||||
.notPressed
|
.notPressed
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
pushpc
|
||||||
|
|
||||||
|
; ZS OW
|
||||||
|
; Load the rain overlay by default for the song of storms
|
||||||
|
org $02B011
|
||||||
|
LDX #$009F
|
||||||
|
|
||||||
|
org $3C8000
|
||||||
OcarinaEffect_SummonStorms:
|
OcarinaEffect_SummonStorms:
|
||||||
{
|
{
|
||||||
LDA.l $7EE00C : BEQ .summonStorms
|
LDA.l $7EE00E : BEQ .summonStorms
|
||||||
|
LDA #$FF : STA $8C
|
||||||
LDA #$01 : STA $7EE00D
|
LDA #$00 : STA $7EE00E
|
||||||
RTS
|
STZ $1D
|
||||||
|
STZ $9A
|
||||||
|
RTL
|
||||||
|
|
||||||
.summonStorms
|
.summonStorms
|
||||||
|
; LDA #$16 : STA $11
|
||||||
|
LDA #$9F : STA $8C
|
||||||
|
LDA.b #$01 : STA.b $1D
|
||||||
|
LDA.b #$72 : STA.b $9A
|
||||||
LDA #$01 : STA $7EE00E
|
LDA #$01 : STA $7EE00E
|
||||||
RTS
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CheckRealTable:
|
||||||
|
{
|
||||||
|
LDA $7EE00E : CMP #$00 : BEQ .continue
|
||||||
|
JML $02A4CD+12 ; Jump to rain sound effect
|
||||||
|
.continue
|
||||||
|
LDA.b $8A : ASL : TAX
|
||||||
|
LDA.l Pool_OverlayTable, X
|
||||||
|
CMP.b #$9F : BEQ .summonStorms
|
||||||
|
RTL
|
||||||
|
.summonStorms
|
||||||
|
JML RainAnimation_Overridden_rainOverlaySet
|
||||||
|
}
|
||||||
|
|
||||||
|
; ZS OW
|
||||||
|
org $02A4CD
|
||||||
|
RainAnimation_Overridden:
|
||||||
|
{
|
||||||
|
JSL CheckRealTable
|
||||||
|
LDA.b $8C : CMP.b #$9F : BEQ .rainOverlaySet
|
||||||
|
; Check the progress indicator
|
||||||
|
LDA.l $7EF3C5 : CMP.b #$02 : BRA .skipMovement
|
||||||
|
.rainOverlaySet
|
||||||
|
|
||||||
|
; If misery mire has been opened already, we're done.
|
||||||
|
;LDA.l $7EF2F0 : AND.b #$20 : BNE .skipMovement
|
||||||
|
; Check the frame counter.
|
||||||
|
; On the third frame do a flash of lightning.
|
||||||
|
LDA.b $1A
|
||||||
|
|
||||||
|
CMP.b #$03 : BEQ .lightning ; On the 0x03rd frame, cue the lightning.
|
||||||
|
CMP.b #$05 : BEQ .normalLight ; On the 0x05th frame, normal light level.
|
||||||
|
CMP.b #$24 : BEQ .thunder ; On the 0x24th frame, cue the thunder.
|
||||||
|
CMP.b #$2C : BEQ .normalLight ; On the 0x2Cth frame, normal light level.
|
||||||
|
CMP.b #$58 : BEQ .lightning ; On the 0x58th frame, cue the lightning.
|
||||||
|
CMP.b #$5A : BNE .moveOverlay ; On the 0x5Ath frame, normal light level.
|
||||||
|
|
||||||
|
.normalLight
|
||||||
|
|
||||||
|
; Keep the screen semi-dark.
|
||||||
|
LDA.b #$72
|
||||||
|
|
||||||
|
BRA .setBrightness
|
||||||
|
|
||||||
|
.thunder
|
||||||
|
|
||||||
|
; Play the thunder sound when outdoors.
|
||||||
|
LDX.b #$36 : STX.w $012E
|
||||||
|
|
||||||
|
.lightning
|
||||||
|
|
||||||
|
LDA.b #$32 ; Make the screen flash with lightning.
|
||||||
|
|
||||||
|
.setBrightness
|
||||||
|
|
||||||
|
STA.b $9A
|
||||||
|
|
||||||
|
.moveOverlay
|
||||||
|
|
||||||
|
; Overlay is only moved every 4th frame.
|
||||||
|
LDA.b $1A : AND.b #$03 : BNE .skipMovement
|
||||||
|
LDA.w $0494 : INC A : AND.b #$03 : STA.w $0494 : TAX
|
||||||
|
|
||||||
|
LDA.b $E1 : CLC : ADC.l $02A46D, X : STA.b $E1
|
||||||
|
LDA.b $E7 : CLC : ADC.l $02A471, X : STA.b $E7
|
||||||
|
|
||||||
|
.skipMovement
|
||||||
|
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
warnpc $02A52D
|
||||||
|
|
||||||
|
pullpc
|
||||||
Reference in New Issue
Block a user