Fix SPC crash with the new mute/unmute engine commands and the mirror warp track
This commit is contained in:
7
msu.asm
7
msu.asm
@@ -132,6 +132,7 @@
|
|||||||
!REG_SPC_CONTROL = $2140
|
!REG_SPC_CONTROL = $2140
|
||||||
!REG_NMI_FLAGS = $4210
|
!REG_NMI_FLAGS = $4210
|
||||||
|
|
||||||
|
!VAL_COMMAND_STOP_PLAYBACK = #$F0
|
||||||
!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
|
||||||
@@ -513,12 +514,16 @@ command_f2:
|
|||||||
JML spc_continue
|
JML spc_continue
|
||||||
|
|
||||||
command_f1:
|
command_f1:
|
||||||
CPX !VAL_COMMAND_FADE_OUT : BNE load_track
|
CPX !VAL_COMMAND_FADE_OUT : BNE command_f0
|
||||||
STX !REG_SPC_CONTROL
|
STX !REG_SPC_CONTROL
|
||||||
STZ !REG_TARGET_VOLUME
|
STZ !REG_TARGET_VOLUME
|
||||||
STZ !REG_CURRENT_MSU_TRACK
|
STZ !REG_CURRENT_MSU_TRACK
|
||||||
JML spc_continue
|
JML spc_continue
|
||||||
|
|
||||||
|
command_f0:
|
||||||
|
CPX !VAL_COMMAND_STOP_PLAYBACK : !BLT load_track
|
||||||
|
JML spc_continue
|
||||||
|
|
||||||
load_track:
|
load_track:
|
||||||
CPX !REG_CURRENT_MSU_TRACK : BNE +
|
CPX !REG_CURRENT_MSU_TRACK : BNE +
|
||||||
- : CPX #27 : BEQ +
|
- : CPX #27 : BEQ +
|
||||||
|
|||||||
10
spc.asm
10
spc.asm
@@ -12,7 +12,7 @@ db $68, $F0 ; CMP A,#$F0 ; the thing we overwrote
|
|||||||
db $D0, $03 ; BNE +
|
db $D0, $03 ; BNE +
|
||||||
db $5F, $81, $0A ; JMP SilenceSong ; ($0A81)
|
db $5F, $81, $0A ; JMP SilenceSong ; ($0A81)
|
||||||
db $68, $FA ; + : CMP A,#$FA ; new mute command $FA
|
db $68, $FA ; + : CMP A,#$FA ; new mute command $FA
|
||||||
db $D0, $21 ; BNE +
|
db $D0, $1A ; BNE +
|
||||||
db $E8, $00 ; MOV A,#$00
|
db $E8, $00 ; MOV A,#$00
|
||||||
db $C5, $4A, $0A ; MOV $0A4A,A ; $0A49: MOV A,#$70 -> MOV A,#$00
|
db $C5, $4A, $0A ; MOV $0A4A,A ; $0A49: MOV A,#$70 -> MOV A,#$00
|
||||||
db $C5, $F3, $0A ; MOV $0AF3,A ; $0AF2: MOV $059,#$C0 -> MOV $059,#$00
|
db $C5, $F3, $0A ; MOV $0AF3,A ; $0AF2: MOV $059,#$C0 -> MOV $059,#$00
|
||||||
@@ -22,9 +22,7 @@ db $E8, $C4 ; MOV A,#$C4 ; $0D19: MOVW $058,YA -> MOV $058,A
|
|||||||
db $C5, $19, $0D ; MOV $0D19,A
|
db $C5, $19, $0D ; MOV $0D19,A
|
||||||
db $E8, $58 ; MOV A,#$58
|
db $E8, $58 ; MOV A,#$58
|
||||||
db $C5, $1A, $0D ; MOV $0D1A,A
|
db $C5, $1A, $0D ; MOV $0D1A,A
|
||||||
db $3F, $81, $0A ; - : CALL SilenceSong ; ($0A81)
|
db $2F, $21 ; BRA ++
|
||||||
db $FA, $00, $04 ; MOV $04, $00
|
|
||||||
db $5F, $00, $0B ; JMP No_New_Song ; ($0B00)
|
|
||||||
db $68, $FB ; + : CMP A,#$FB ; new unmute command $FB
|
db $68, $FB ; + : CMP A,#$FB ; new unmute command $FB
|
||||||
db $F0, $03 ; BEQ +
|
db $F0, $03 ; BEQ +
|
||||||
db $5F, $9D, $0A ; JMP NewSongInput ; ($0A9D)
|
db $5F, $9D, $0A ; JMP NewSongInput ; ($0A9D)
|
||||||
@@ -38,4 +36,6 @@ db $C5, $19, $0D ; MOV $0D19,A ; $0D19: MOVW $058,YA
|
|||||||
db $E8, $58 ; MOV A,#$58
|
db $E8, $58 ; MOV A,#$58
|
||||||
db $C5, $33, $0C ; MOV $0C33,A
|
db $C5, $33, $0C ; MOV $0C33,A
|
||||||
db $C5, $1A, $0D ; MOV $0D1A,A
|
db $C5, $1A, $0D ; MOV $0D1A,A
|
||||||
db $2F, $D4 ; BRA -
|
db $3F, $81, $0A ; ++ : CALL SilenceSong ; ($0A81)
|
||||||
|
db $FA, $00, $04 ; MOV $04, $00
|
||||||
|
db $6F ; RET
|
||||||
|
|||||||
Reference in New Issue
Block a user