MSU1: Fade in on resume

This commit is contained in:
Bonta
2021-06-12 23:47:46 +02:00
parent a9a929c6f4
commit 183d439ff7
2 changed files with 20 additions and 7 deletions

View File

@@ -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

25
msu.asm
View File

@@ -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