More robust bank fix

Shouldn't crash on crystal/pendant anymore
This commit is contained in:
qwertymodo
2021-06-21 13:42:16 -07:00
parent 429fea004f
commit cc9c355ef7
2 changed files with 16 additions and 10 deletions

View File

@@ -22,9 +22,10 @@
!LOCK_STATS = "$7EF443" !LOCK_STATS = "$7EF443"
FrameHookAction: FrameHookAction:
JSL $0080B5 ; Module_MainRouting JSL $0080B5 ; Module_MainRouting
PHP : PHB : PHD : REP #$30 : PHA : PHX : PHY JSL CheckMusicLoadRequest
LDA #$0000 : TCD : SEP #$20 : PHA : PLB PHP : REP #$30 : PHA
JSL CheckMusicLoadRequest
SEP #$20
;LDA EnableSRAMTrace : AND.l TournamentSeedInverse : BEQ + ;LDA EnableSRAMTrace : AND.l TournamentSeedInverse : BEQ +
; LDA $1A : BNE ++ : JSL.l WriteStatusPreview : ++ ; write every 256 frames ; LDA $1A : BNE ++ : JSL.l WriteStatusPreview : ++ ; write every 256 frames
@@ -39,9 +40,9 @@ FrameHookAction:
LDA !ITEM_FRAMES_LOW : INC : STA !ITEM_FRAMES_LOW : BNE + LDA !ITEM_FRAMES_LOW : INC : STA !ITEM_FRAMES_LOW : BNE +
LDA !ITEM_FRAMES_HIGH : INC : STA !ITEM_FRAMES_HIGH LDA !ITEM_FRAMES_HIGH : INC : STA !ITEM_FRAMES_HIGH
+ +
SEP #$20 ; set 8-bit accumulator ?? check this ;SEP #$20 ; set 8-bit accumulator ?? check this
++ ++
REP #$30 : PLY : PLX : PLA : PLD : PLB : PLP REP #$30 : PLA : PLP
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
NMIHookAction: NMIHookAction:

15
msu.asm
View File

@@ -186,6 +186,8 @@ RTS
; Extended OST/SPC fallback, decide which track to actually play ; Extended OST/SPC fallback, decide which track to actually play
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
CheckMusicLoadRequest: CheckMusicLoadRequest:
PHP : PHB : PHD : REP #$30 : PHA : PHX : PHY
LDA #$0000 : TCD : SEP #$20 : PHA : PLB
LDA !REG_MUSIC_CONTROL_REQUEST : BEQ .skip+3 : BMI .skip+3 LDA !REG_MUSIC_CONTROL_REQUEST : BEQ .skip+3 : BMI .skip+3
CMP !REG_CURRENT_COMMAND : BNE .continue CMP !REG_CURRENT_COMMAND : BNE .continue
CMP.b #22 : BNE .skip ; Check GT when mirroring from upstairs CMP.b #22 : BNE .skip ; Check GT when mirroring from upstairs
@@ -195,6 +197,7 @@ CheckMusicLoadRequest:
.skip .skip
LDA !REG_MUSIC_CONTROL_REQUEST LDA !REG_MUSIC_CONTROL_REQUEST
STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST
REP #$30 : PLY : PLX : PLA : PLD : PLB : PLP
RTL RTL
.continue .continue
@@ -355,11 +358,13 @@ CheckMusicLoadRequest:
.done .done
LDA !REG_MUSIC_CONTROL_REQUEST : STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST LDA !REG_MUSIC_CONTROL_REQUEST : STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST
REP #$30 : PLY : PLX : PLA : PLD : PLB : PLP
RTL RTL
.sfx_indoors .sfx_indoors
LDA !REG_MUSIC_CONTROL_REQUEST : STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST LDA !REG_MUSIC_CONTROL_REQUEST : STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST
SEP #$20 : LDA.b #$05 : STA $012D ; Vanilla subroutine expects 8-bit A, doesn't use X/Y SEP #$20 : LDA.b #$05 : STA $012D
REP #$30 : PLY : PLX : PLA : PLD : PLB : PLP
JML Module_PreDungeon_setAmbientSfx JML Module_PreDungeon_setAmbientSfx
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -737,12 +742,12 @@ MSUMain:
; Wait for the fanfare music to start, or else it can get skipped entirely ; Wait for the fanfare music to start, or else it can get skipped entirely
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
FanfarePreload: FanfarePreload:
STA !REG_MUSIC_CONTROL_REQUEST ; thing we wrote over STA.l !REG_MUSIC_CONTROL_REQUEST ; thing we wrote over
PHA PHA
JSL CheckMusicLoadRequest JSL CheckMusicLoadRequest
WAI WAI
PLA PLA
- : CMP !REG_SPC_CONTROL : BNE - - : CMP.l !REG_SPC_CONTROL : BNE -
JML AddReceivedItem_doneWithSoundEffects JML AddReceivedItem_doneWithSoundEffects
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -765,7 +770,7 @@ PendantFanfareWait:
jml PendantFanfareContinue jml PendantFanfareContinue
.spc .spc
SEP #$20 SEP #$20
LDA !REG_SPC_CONTROL : BNE .continue LDA.l !REG_SPC_CONTROL : BNE .continue
.done .done
jml PendantFanfareDone jml PendantFanfareDone
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -789,7 +794,7 @@ CrystalFanfareWait:
jml CrystalFanfareContinue jml CrystalFanfareContinue
.spc .spc
SEP #$20 SEP #$20
LDA !REG_SPC_CONTROL : BNE .continue LDA.l !REG_SPC_CONTROL : BNE .continue
.done .done
jml CrystalFanfareDone jml CrystalFanfareDone
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------