MSU1: Allow resuming any track
This commit is contained in:
21
msu.asm
21
msu.asm
@@ -165,6 +165,21 @@ IsOverworldTrack:
|
|||||||
SEC : RTS
|
SEC : RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
; Check if the track in A should be resumed
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
IsResumableTrack:
|
||||||
|
PHA
|
||||||
|
LDA MSUResumeType : BEQ +
|
||||||
|
PLA
|
||||||
|
JSR IsOverworldTrack
|
||||||
|
RTS
|
||||||
|
+
|
||||||
|
PLA
|
||||||
|
SEC
|
||||||
|
RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Extended OST/SPC fallback, decide which track to actually play
|
; Extended OST/SPC fallback, decide which track to actually play
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -497,13 +512,13 @@ MSUInit:
|
|||||||
MSUStopPlaying:
|
MSUStopPlaying:
|
||||||
PHA : XBA : PHA
|
PHA : XBA : PHA
|
||||||
LDA !MSU_LOADED_TRACK
|
LDA !MSU_LOADED_TRACK
|
||||||
JSR IsOverworldTrack : BCC + ; dont save if this isnt an overworld track
|
JSR IsResumableTrack : BCC +
|
||||||
; dont save if we already saved recently
|
; dont save if we already saved recently
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA !MSU_RESUME_TRACK : AND #$00FF : BEQ ++
|
LDA !MSU_RESUME_TRACK : AND #$00FF : BEQ ++
|
||||||
LDA !NMI_COUNTER : !SUB !MSU_RESUME_TIME : PHA
|
LDA !NMI_COUNTER : !SUB !MSU_RESUME_TIME : PHA
|
||||||
LDA !NMI_COUNTER+2 : SBC !MSU_RESUME_TIME+2 : BNE +++
|
LDA !NMI_COUNTER+2 : SBC !MSU_RESUME_TIME+2 : BNE +++
|
||||||
PLA : CMP MSUResumeDelay : !BLT .too_early
|
PLA : CMP MSUResumeTimer : !BLT .too_early
|
||||||
BRA ++
|
BRA ++
|
||||||
+++
|
+++
|
||||||
PLA
|
PLA
|
||||||
@@ -661,7 +676,7 @@ MSUMain:
|
|||||||
REP #$20
|
REP #$20
|
||||||
LDA !NMI_COUNTER : !SUB !MSU_RESUME_TIME : PHA
|
LDA !NMI_COUNTER : !SUB !MSU_RESUME_TIME : PHA
|
||||||
LDA !NMI_COUNTER+2 : SBC !MSU_RESUME_TIME+2 : BNE ++
|
LDA !NMI_COUNTER+2 : SBC !MSU_RESUME_TIME+2 : BNE ++
|
||||||
PLA : CMP MSUResumeDelay : !BGE +++
|
PLA : CMP MSUResumeTimer : !BGE +++
|
||||||
SEP #$20 : BRA .done_resume
|
SEP #$20 : BRA .done_resume
|
||||||
++
|
++
|
||||||
PLA
|
PLA
|
||||||
|
|||||||
@@ -993,10 +993,13 @@ org $30821B ; PC 0x18021B
|
|||||||
FastFanfare:
|
FastFanfare:
|
||||||
db $00 ; $00 = Normal fanfare (default) $01 = Fast fanfare
|
db $00 ; $00 = Normal fanfare (default) $01 = Fast fanfare
|
||||||
org $30821C ; PC 0x18021C
|
org $30821C ; PC 0x18021C
|
||||||
MSUResumeDelay:
|
MSUResumeType:
|
||||||
|
db $01 ; Type of tracks to resume #$00 = Everything - #$01 = Overworld (default)
|
||||||
|
org $30821D ; PC 0x18021D
|
||||||
|
MSUResumeTimer:
|
||||||
dw $0708 ; Number of frames on a different track until we no longer resume (0x708 = 1800 = ~30s)
|
dw $0708 ; Number of frames on a different track until we no longer resume (0x708 = 1800 = ~30s)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x18021E - 0x18021F (unused)
|
; 0x18021F - 0x18021F (unused)
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; $308220 (0x180220) - $30823F (0x18023F)
|
; $308220 (0x180220) - $30823F (0x18023F)
|
||||||
; Plandomizer Author Name (ASCII) - Leave unused chars as 0
|
; Plandomizer Author Name (ASCII) - Leave unused chars as 0
|
||||||
|
|||||||
Reference in New Issue
Block a user