fast credits

This commit is contained in:
spannerisms
2021-06-12 07:43:18 -04:00
parent 8f74212259
commit 3204ad2ed5
3 changed files with 199 additions and 0 deletions

View File

@@ -197,6 +197,7 @@ incsrc servicerequest.asm
incsrc elder.asm incsrc elder.asm
incsrc toast.asm incsrc toast.asm
incsrc darkroomitems.asm incsrc darkroomitems.asm
incsrc fastcredits.asm
warnpc $A58000 warnpc $A58000
;org $228000 ; contrib area ;org $228000 ; contrib area

177
fastcredits.asm Normal file
View File

@@ -0,0 +1,177 @@
;===================================================================================================
FastCreditsCutsceneTimer:
BIT.b $F2-1 : BVC .slow
LDA.b $C8
CLC
ADC.w #$0004
AND.w #$FFFE
STA.b $C8
SEP #$20
RTL
.slow
INC.b $C8
SEP #$20
RTL
FastCreditsScrollOW:
JSR FastCreditsCutsceneScrollY
TAY
STY.b $30
JSR FastCreditsCutsceneScrollX
TAY
STY.b $31
RTL
FastCreditsCutsceneScrollX:
PHX
TXA
CLC
ADC.w #$0020
TAX
LDY.b #$00
JSR FastCreditsCutsceneScroll
PLX
RTS
FastCreditsCutsceneScrollY:
LDY.b #$06
FastCreditsCutsceneScroll:
LDA.w $00E2,Y
CMP.l $0EC308,X ; compare to target
ROL.b $00 ; put carry in here
LDA.l $0EC348,X ; get movement
BPL ++ ; if positive, leave saved carry alone
INC.b $00 ; otherwise, flip it
++ ROR.b $00 ; recover carry
BCC ++ ; scroll if carry not set
LDA.w #$0000
++ BIT.b $F2-1 : BVC .slow ; check for X held
AND.w #$FFFF ; get sign of A
BPL .positive
EOR.w #$FFFF
INC
ASL
ASL
EOR.w #$FFFF
INC
RTS
.positive
ASL
ASL
.slow
RTS
FastCreditsCutsceneUnderworldX:
LDA.l $0EC368,X
JSR QuadrupleCreditsSpeedUW
CLC
ADC.b $E2
STA.b $E2
RTL
FastCreditsCutsceneUnderworldY:
LDA.l $0EC348,X
JSR QuadrupleCreditsSpeedUW
CLC
ADC.b $E8
STA.b $E8
RTL
QuadrupleCreditsSpeedUW:
BIT.b $F2-1 : BVC .slow
AND.w #$FFFF
BPL .positive
EOR.w #$FFFF
INC
ASL
ASL
EOR.w #$FFFF
INC
RTS
.positive
ASL
ASL
.slow
RTS
FastCreditsCutsceneOverworld:
BIT.b $F2 : BVC .slow
LDA.b $30
JSR .quad
STA.b $30
LDA.b $31
JSR .quad
STA.b $31
.slow
JML $0285B5
.quad
BPL .fine
EOR.b #$FF
INC
ASL
ASL
EOR.b #$FF
INC
RTS
.fine
ASL
ASL
RTS
FastTextScroll:
LDA.b $1A
BIT.b $F2-1 : BVC .slow
AND.w #$0000
RTL
.slow
AND.w #$0003
RTL

View File

@@ -2618,3 +2618,24 @@ db $00, $00
;================================================================================ ;================================================================================
; Fast credits
org $0EC45A
;JSL FastCreditsCutsceneScrollOverworld
org $0EC3AF
JSL FastCreditsScrollOW
JMP.w $0EC3C7
org $0EC41F
JSL FastCreditsCutsceneUnderworldY
org $0EC42C
JSL FastCreditsCutsceneUnderworldX
org $0EC488
JSL FastCreditsCutsceneTimer
org $0EE773
JSL FastTextScroll : NOP