Merge pull request #57 from qwertymodo/master
Allow MSU-1 fanfares to play to the end in non-tournament ROMs
This commit is contained in:
20
hooks.asm
20
hooks.asm
@@ -1321,12 +1321,24 @@ JSL.l GetMagicBatItem
|
||||
; MSU Music
|
||||
;--------------------------------------------------------------------------------
|
||||
org $0080D7 ; <- D7 - Bank00.asm:172 (SEP #$30)
|
||||
spc_nmi:
|
||||
JML msu_main
|
||||
NOP
|
||||
JML msu_main : NOP
|
||||
spc_continue:
|
||||
|
||||
org $0EE6EC ; <- E220 A922 - Bank0E.asm:2892 (SEP #$20)
|
||||
org $08C421 ; <- AD4021 F005 - ancilla_receive_item.asm:108 (LDA $2140 : BEQ .wait_for_music)
|
||||
JML pendant_fanfare : NOP
|
||||
pendant_continue:
|
||||
|
||||
org $08C42B
|
||||
pendant_done:
|
||||
|
||||
org $08C62A ; <- AD4021 D008 - ancilla_receive_item.asm:442 (LDA $2140 : BNE .waitForSilence)
|
||||
JML crystal_fanfare : NOP
|
||||
crystal_done:
|
||||
|
||||
org $08C637
|
||||
crystal_done:
|
||||
|
||||
org $0EE6EC ; <- E220 A922 - Bank0E.asm:2892 (SEP #$20 : LDA.b #$22 : STA $012C)
|
||||
JSL.l ending_wait
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
119
msu.asm
119
msu.asm
@@ -75,37 +75,25 @@
|
||||
!VAL_VOLUME_FULL = #$FF
|
||||
|
||||
msu_main:
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
LDA $4210 ; thing we wrote over
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
LDA !REG_MSU_ID_01
|
||||
CMP !VAL_MSU_ID_01
|
||||
BEQ .continue
|
||||
SEP #$20 ; set 8-BIT accumulator
|
||||
LDA $4210 ; thing we wrote over
|
||||
REP #$20 ; set 16-BIT accumulator
|
||||
LDA !REG_MSU_ID_01 : CMP !VAL_MSU_ID_01 : BEQ .continue
|
||||
.nomsu
|
||||
SEP #$30
|
||||
JML spc_continue
|
||||
.continue
|
||||
LDA !REG_MSU_ID_23
|
||||
CMP !VAL_MSU_ID_23
|
||||
BNE .nomsu
|
||||
LDA !REG_MSU_ID_45
|
||||
CMP !VAL_MSU_ID_45
|
||||
BNE .nomsu
|
||||
LDA !REG_MSU_ID_23 : CMP !VAL_MSU_ID_23 : BNE .nomsu
|
||||
LDA !REG_MSU_ID_45 : CMP !VAL_MSU_ID_45 : BNE .nomsu
|
||||
SEP #$30
|
||||
LDX !REG_MUSIC_CONTROL
|
||||
BNE command_ff
|
||||
LDA !REG_MSU_LOAD_FLAG
|
||||
BEQ do_fade
|
||||
LDX !REG_MUSIC_CONTROL : BNE command_ff
|
||||
LDA !REG_MSU_LOAD_FLAG : BEQ do_fade
|
||||
|
||||
msu_check_busy:
|
||||
LDA !REG_MSU_STATUS
|
||||
BIT !FLAG_MSU_STATUS_AUDIO_BUSY
|
||||
BEQ .ready
|
||||
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_BUSY : BEQ .ready
|
||||
JML spc_continue
|
||||
.ready
|
||||
LDA !REG_MSU_STATUS
|
||||
BIT !FLAG_MSU_STATUS_TRACK_MISSING
|
||||
BNE spc_fallback
|
||||
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE spc_fallback
|
||||
LDA !VAL_VOLUME_FULL
|
||||
STA !REG_TARGET_VOLUME
|
||||
STA !REG_CURRENT_VOLUME
|
||||
@@ -125,23 +113,19 @@ spc_fallback:
|
||||
JML spc_continue
|
||||
|
||||
do_fade:
|
||||
LDA !REG_CURRENT_VOLUME
|
||||
CMP !REG_TARGET_VOLUME
|
||||
BNE .continue
|
||||
LDA !REG_CURRENT_VOLUME : CMP !REG_TARGET_VOLUME : BNE .continue
|
||||
JML spc_continue
|
||||
.continue
|
||||
BCC .increment
|
||||
.decrement
|
||||
SBC !VAL_VOLUME_DECREMENT
|
||||
BCS .set
|
||||
SBC !VAL_VOLUME_DECREMENT : BCS .set
|
||||
.mute
|
||||
STZ !REG_CURRENT_VOLUME
|
||||
STZ !REG_MSU_CONTROL
|
||||
STZ !REG_CURRENT_MSU_TRACK
|
||||
BRA .set
|
||||
.increment
|
||||
ADC !VAL_VOLUME_INCREMENT
|
||||
BCC .set
|
||||
ADC !VAL_VOLUME_INCREMENT : BCC .set
|
||||
LDA !VAL_VOLUME_FULL
|
||||
.set
|
||||
STA !REG_CURRENT_VOLUME
|
||||
@@ -149,38 +133,32 @@ do_fade:
|
||||
JML spc_continue
|
||||
|
||||
command_ff:
|
||||
CPX !VAL_COMMAND_LOAD_NEW_BANK
|
||||
BNE command_f3
|
||||
CPX !VAL_COMMAND_LOAD_NEW_BANK : BNE command_f3
|
||||
JML spc_continue
|
||||
|
||||
command_f3:
|
||||
CPX !VAL_COMMAND_FULL_VOLUME
|
||||
BNE command_f2
|
||||
CPX !VAL_COMMAND_FULL_VOLUME : BNE command_f2
|
||||
STX !REG_SPC_CONTROL
|
||||
LDA !VAL_VOLUME_FULL
|
||||
STA !REG_TARGET_VOLUME
|
||||
JML spc_continue
|
||||
|
||||
command_f2:
|
||||
CPX !VAL_COMMAND_FADE_HALF
|
||||
BNE command_f1
|
||||
CPX !VAL_COMMAND_FADE_HALF : BNE command_f1
|
||||
STX !REG_SPC_CONTROL
|
||||
LDA !VAL_VOLUME_HALF
|
||||
STA !REG_TARGET_VOLUME
|
||||
JML spc_continue
|
||||
|
||||
command_f1:
|
||||
CPX !VAL_COMMAND_FADE_OUT
|
||||
BNE load_track
|
||||
CPX !VAL_COMMAND_FADE_OUT : BNE load_track
|
||||
STX !REG_SPC_CONTROL
|
||||
STZ !REG_TARGET_VOLUME
|
||||
JML spc_continue
|
||||
|
||||
load_track:
|
||||
CPX !REG_CURRENT_MSU_TRACK
|
||||
BNE .continue
|
||||
CPX #$1B
|
||||
BEQ .continue
|
||||
CPX !REG_CURRENT_MSU_TRACK : BNE .continue
|
||||
CPX #$1B : BEQ .continue
|
||||
JML spc_continue
|
||||
.continue
|
||||
STX !REG_MSU_TRACK_LO
|
||||
@@ -191,24 +169,49 @@ load_track:
|
||||
STX !REG_CURRENT_MSU_TRACK
|
||||
JML spc_continue
|
||||
|
||||
pendant_fanfare:
|
||||
REP #$20
|
||||
LDA !TournamentSeed : BNE .spc
|
||||
LDA !REG_MSU_ID_01 : CMP !VAL_MSU_ID_01 : BNE .spc
|
||||
LDA !REG_MSU_ID_23 : CMP !VAL_MSU_ID_23 : BNE .spc
|
||||
LDA !REG_MSU_ID_45 : CMP !VAL_MSU_ID_45 : BNE .spc
|
||||
SEP #$20
|
||||
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
|
||||
.continue
|
||||
jml pendant_continue
|
||||
.spc
|
||||
SEP #$20
|
||||
LDA !REG_SPC_CONTROL : BNE .continue
|
||||
.done
|
||||
jml pendant_done
|
||||
|
||||
|
||||
crystal_fanfare:
|
||||
REP #$20
|
||||
LDA !TournamentSeed : BNE .spc
|
||||
LDA !REG_MSU_ID_01 : CMP !VAL_MSU_ID_01 : BNE .spc
|
||||
LDA !REG_MSU_ID_23 : CMP !VAL_MSU_ID_23 : BNE .spc
|
||||
LDA !REG_MSU_ID_45 : CMP !VAL_MSU_ID_45 : BNE .spc
|
||||
SEP #$20
|
||||
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
|
||||
.continue
|
||||
jml crystal_continue
|
||||
.spc
|
||||
SEP #$20
|
||||
LDA !REG_SPC_CONTROL : BNE .continue
|
||||
.done
|
||||
jml crystal_done
|
||||
|
||||
|
||||
ending_wait:
|
||||
rep #$20
|
||||
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
|
||||
sep #$20
|
||||
REP #$20
|
||||
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
|
||||
SEP #$20
|
||||
.wait
|
||||
lda !REG_MSU_STATUS
|
||||
bit !FLAG_MSU_STATUS_AUDIO_PLAYING
|
||||
bne .wait
|
||||
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BNE .wait
|
||||
.done
|
||||
sep #$20
|
||||
lda #$22
|
||||
rtl
|
||||
SEP #$20
|
||||
LDA #$22
|
||||
RTL
|
||||
|
||||
Reference in New Issue
Block a user