From 183d439ff7710c8f629102d13a8390814e2727cf Mon Sep 17 00:00:00 2001 From: Bonta <40473493+Bonta0@users.noreply.github.com> Date: Sat, 12 Jun 2021 23:47:46 +0200 Subject: [PATCH] MSU1: Fade in on resume --- LTTP_RND_GeneralBugfixes.asm | 2 +- msu.asm | 25 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 695604c..ff6eac4 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -86,7 +86,7 @@ db #$20, #$19, #$08, #$31 ; year/month/day !MSU_LOADED_TRACK = $7F5400 !MSU_RESUME_TRACK = $7F5401 !MSU_RESUME_TIME = $7F5402 ; 4 bytes -!MSU_RESUME_CANCEL = $7F5406 +!MSU_RESUME_CONTROL = $7F5406 !REG_MUSIC_CONTROL = $012B ;!REG_MUSIC_CONTROL = $012C !REG_MUSIC_CONTROL_REQUEST = $012C diff --git a/msu.asm b/msu.asm index 51e05cb..f004751 100644 --- a/msu.asm +++ b/msu.asm @@ -123,6 +123,8 @@ !FLAG_MSU_STATUS_AUDIO_BUSY = #$40 !FLAG_MSU_STATUS_DATA_BUSY = #$80 +!FLAG_RESUME_CANCEL = #$01 +!FLAG_RESUME_FADEIN = #$02 !REG_CURRENT_MSU_TRACK = $010B !REG_CURRENT_VOLUME = $0127 @@ -441,7 +443,7 @@ MSUInit: STA !MSU_LOADED_TRACK STA !MSU_RESUME_TRACK STA !MSU_RESUME_TIME : STA !MSU_RESUME_TIME+1 : STA !MSU_RESUME_TIME+2 : STA !MSU_RESUME_TIME+3 - STA !MSU_RESUME_CANCEL + STA !MSU_RESUME_CONTROL LDA NoBGM : BNE .done @@ -559,7 +561,7 @@ MSUMain: LDX !REG_MUSIC_CONTROL : BEQ + JMP .command_ff + - LDA !REG_MSU_DELAYED_COMMAND : BEQ .do_fade + LDA !REG_MSU_DELAYED_COMMAND : BNE + : JMP .do_fade : + .check_busy LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_BUSY : BEQ .ready @@ -568,15 +570,24 @@ MSUMain: LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BEQ .start JML SPCContinue .start - LDA !MSU_RESUME_CANCEL : BEQ + + LDA !MSU_RESUME_CONTROL : AND !FLAG_RESUME_CANCEL : BEQ + REP #$20 : LDA !REG_MSU_LOADED_TRACK : STA !REG_MSU_TRACK : SEP #$20 - LDA #$00 : STA !MSU_RESUME_CANCEL + LDA !MSU_RESUME_CONTROL : EOR !FLAG_RESUME_CANCEL : STA !MSU_RESUME_CONTROL JML SPCContinue + LDA !VAL_VOLUME_FULL STA !REG_TARGET_VOLUME + + LDA !MSU_RESUME_CONTROL : AND !FLAG_RESUME_FADEIN : BEQ + + LDA !MSU_RESUME_CONTROL : EOR !FLAG_RESUME_FADEIN : STA !MSU_RESUME_CONTROL + LDA #$00 + BRA ++ + + + LDA !VAL_VOLUME_FULL + ++ STA !REG_CURRENT_VOLUME STA !REG_MSU_VOLUME + LDA !REG_CURRENT_MSU_TRACK : DEC : PHA AND.b #$07 : TAY PLA : LSR #3 : TAX @@ -677,13 +688,15 @@ MSUMain: LDA !NMI_COUNTER : !SUB !MSU_RESUME_TIME : PHA LDA !NMI_COUNTER+2 : SBC !MSU_RESUME_TIME+2 : BNE ++ PLA : CMP MSUResumeTimer : !BGE +++ - SEP #$20 : BRA .done_resume + SEP #$20 + LDA !FLAG_RESUME_FADEIN : BRA .done_resume ++ PLA +++ SEP #$20 - LDA #$01 : STA !MSU_RESUME_CANCEL + LDA !FLAG_RESUME_CANCEL .done_resume: + STA !MSU_RESUME_CONTROL LDA #$00 : STA !MSU_RESUME_TRACK + CPX #07 : BNE + ; Kakariko Village