Switch SPC fallback mute/unmute to use the new FA/FB N-SPC commands

This commit is contained in:
qwertymodo
2019-09-21 15:23:56 -07:00
parent 5b307e421c
commit 9b4eac681a

90
msu.asm
View File

@@ -135,6 +135,8 @@
!VAL_COMMAND_FADE_OUT = #$F1 !VAL_COMMAND_FADE_OUT = #$F1
!VAL_COMMAND_FADE_HALF = #$F2 !VAL_COMMAND_FADE_HALF = #$F2
!VAL_COMMAND_FULL_VOLUME = #$F3 !VAL_COMMAND_FULL_VOLUME = #$F3
!VAL_COMMAND_MUTE_SPC = #$FA
!VAL_COMMAND_UNMUTE_SPC = #$FB
!VAL_COMMAND_LOAD_NEW_BANK = #$FF !VAL_COMMAND_LOAD_NEW_BANK = #$FF
!VAL_VOLUME_INCREMENT = #$10 !VAL_VOLUME_INCREMENT = #$10
@@ -243,10 +245,7 @@ CheckMusicLoadRequest:
AND.b #$01 : BEQ .secondary_fallback AND.b #$01 : BEQ .secondary_fallback
.mute .mute
LDA.b #$FF : STA $2140 LDA.b !VAL_COMMAND_MUTE_SPC
LDA.b #SPCMutePayload : STA $00
LDA.b #SPCMutePayload>>8 : STA $01
LDA.b #SPCMutePayload>>16
BRA .load BRA .load
.secondary_fallback .secondary_fallback
@@ -273,19 +272,13 @@ CheckMusicLoadRequest:
BRA .check_fallback BRA .check_fallback
.unmute .unmute
LDA.b #$FF : STA $2140 LDA.b !VAL_COMMAND_UNMUTE_SPC
LDA.b #SPCUnmutePayload : STA $00
LDA.b #SPCUnmutePayload>>8 : STA $01
LDA.b #SPCUnmutePayload>>16
.load .load
REP #$10 REP #$10
JSL Sound_LoadLightWorldSongBank_do_load STA !REG_CURRENT_COMMAND
STA !REG_SPC_CONTROL
LDA.b #$01 : STA !REG_SPC_LOADING - : CMP !REG_SPC_CONTROL : BNE -
; Re-enable NMI and joypad
LDA.b #$81 : STA $4200
LDA !REG_MUSIC_CONTROL_REQUEST : CMP.b #08 : BEQ .done+3 ; No SFX during warp track LDA !REG_MUSIC_CONTROL_REQUEST : CMP.b #08 : BEQ .done+3 ; No SFX during warp track
@@ -318,9 +311,68 @@ CheckMusicLoadRequest:
PLY : PLX : PLA : PLP PLY : PLX : PLA : PLP
JML Module_PreDungeon_setAmbientSfx JML Module_PreDungeon_setAmbientSfx
SpiralStairsPreCheck:
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
BRA .fade
+
CMP.w #$006B : BNE .done+2
LDA TournamentSeed : CMP.w #$0001 : BEQ +
LDA !REG_MSU_ID_01 : CMP !VAL_MSU_ID_01 : BNE .done
LDA !REG_MSU_ID_23 : CMP !VAL_MSU_ID_23 : BNE .done
LDA !REG_MSU_ID_45 : CMP !VAL_MSU_ID_45 : BNE .done
+
LDA $7EF366 : AND.w #$0004 : BEQ .done ; Check that we have the GT big key
LDA !REG_MSU_FALLBACK_TABLE+7 : AND.w #$0004 : BEQ .done ; Check that we have the extended track
.fade
LDX.b #$F1 : STX !REG_MUSIC_CONTROL_REQUEST
.done
LDA $A0 ; thing we wrote over
RTL
SpiralStairsPostCheck:
LDA $A0
CMP.w #$000C : BNE +
; Ganon's tower entrance
LDX $0130 : CPX.b #$F1 : BNE .done ; Check that we were fading out
LDX #22 : STX !REG_MUSIC_CONTROL_REQUEST
BRA .done
+
CMP.w #$006B : BNE .done
; Ganon's tower upstairs (with big key)
LDX $0130 : CPX.b #$F1 : BNE .done ; Check that we were fading out
LDX #59 : STX !REG_MUSIC_CONTROL_REQUEST
.done
LDX.b #$1C : LDA $A0 ; thing we wrote over
RTL
msu_init: msu_init:
PHP PHP
STZ $4200
LDA.b #$FF : STA $2140
LDA.b #SPCEngineNewCode : STA.b $00
LDA.b #SPCEngineNewCode>>8 : STA.b $01
LDA.b #SPCEngineNewCode>>16
JSL Sound_LoadLightWorldSongBank_do_load
LDA.b #$81 : STA $4200
LDA NoBGM : BNE .done LDA NoBGM : BNE .done
REP #$20 REP #$20
@@ -561,14 +613,11 @@ pendant_fanfare:
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
LDA !REG_MSU_DELAYED_COMMAND : BNE .continue LDA !REG_MSU_DELAYED_COMMAND : BNE .continue
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
.playing
LDA #$00 : STA !REG_SPC_LOADING
.continue .continue
jml pendant_continue jml pendant_continue
.spc .spc
SEP #$20 SEP #$20
LDA !REG_SPC_CONTROL : BNE .playing LDA !REG_SPC_CONTROL : BNE .continue
LDA !REG_SPC_LOADING : BNE .continue
.done .done
jml pendant_done jml pendant_done
@@ -585,14 +634,11 @@ crystal_fanfare:
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
LDA !REG_MSU_DELAYED_COMMAND : BNE .continue LDA !REG_MSU_DELAYED_COMMAND : BNE .continue
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
.playing
LDA #$00 : STA !REG_SPC_LOADING
.continue .continue
jml crystal_continue jml crystal_continue
.spc .spc
SEP #$20 SEP #$20
LDA !REG_SPC_CONTROL : BNE .playing LDA !REG_SPC_CONTROL : BNE .continue
LDA !REG_SPC_LOADING : BNE .continue
.done .done
jml crystal_done jml crystal_done