76 lines
1.6 KiB
NASM
76 lines
1.6 KiB
NASM
;================================================================================
|
|
; Frame Hook
|
|
;--------------------------------------------------------------------------------
|
|
FrameHookAction:
|
|
JSL $0080B5 ; Module_MainRouting
|
|
JSL CheckMusicLoadRequest
|
|
PHP : REP #$30 : PHA
|
|
|
|
SEP #$20
|
|
|
|
LDA StatsLocked : BNE ++
|
|
REP #$20 ; set 16-bit accumulator
|
|
LDA LoopFrames : INC : STA LoopFrames : BNE +
|
|
LDA LoopFrames+2 : INC : STA LoopFrames+2
|
|
+
|
|
LDA $10 : CMP.w #$010E : BNE + ; move this to nmi hook?
|
|
LDA MenuFrames : INC : STA MenuFrames : BNE +
|
|
LDA MenuFrames+2 : INC : STA MenuFrames+2
|
|
+
|
|
++
|
|
REP #$30 : PLA : PLP
|
|
RTL
|
|
|
|
!NMI_MW = "$7F5047"
|
|
;--------------------------------------------------------------------------------
|
|
NMIHookAction:
|
|
PHA : PHX : PHY : PHD ; thing we wrote over, push stuff
|
|
|
|
LDA !NMI_MW : BEQ ++
|
|
PHP
|
|
SEP #$30
|
|
|
|
LDA #$00 : STA !NMI_MW
|
|
|
|
; Multiworld text
|
|
LDA !NMI_MW+1 : BEQ +
|
|
LDA #$00 : STA !NMI_MW+1
|
|
JSL.l WriteText
|
|
+
|
|
PLP
|
|
++
|
|
|
|
LDA StatsLocked : AND.w #$00FF : BNE ++
|
|
LDA NMIFrames : INC : STA NMIFrames : BNE +
|
|
LDA NMIFrames+2 : INC : STA NMIFrames+2
|
|
+
|
|
++
|
|
|
|
JML.l NMIHookReturn
|
|
;--------------------------------------------------------------------------------
|
|
!NMI_AUX = "$7F5044"
|
|
|
|
PostNMIHookAction:
|
|
LDA.l !NMI_AUX+2 : BEQ .return
|
|
|
|
PHK
|
|
PEA .return-1
|
|
|
|
PHA
|
|
|
|
LDA.b #$00 : STA.l !NMI_AUX+2
|
|
|
|
REP #$20
|
|
LDA.l !NMI_AUX+0 : DEC : PHA
|
|
SEP #$20
|
|
|
|
RTL
|
|
|
|
.return
|
|
LDA.b $13 : STA.w $2100
|
|
|
|
JML.l PostNMIHookReturn
|
|
|
|
|
|
;--------------------------------------------------------------------------------
|