Reset boss RNG and other things on new file

This commit is contained in:
Catobat
2020-12-16 18:04:37 +01:00
parent b10dc742c2
commit 99da1d3115
3 changed files with 15 additions and 4 deletions

View File

@@ -149,6 +149,16 @@ OnNewFile:
LDA StartingSword : STA $7EF359 ; set starting sword type
LDA !INVENTORY_SWAP : STA $70038C ; copy starting equipment swaps to file select screen
LDA !INVENTORY_SWAP_2 : STA $70038E
; reset some values on new file that are otherwise only reset on hard reset
STZ $03C4 ; ancilla slot index
STZ $047A ; EG
STZ $0B08 : STZ $0B09 ; arc variable
STZ $0CFB ; enemies killed (pull trees)
STZ $0CFC ; times taken damage (pull trees)
STZ $0FC7 : STZ $0FC8 : STZ $0FC9 : STZ $0FCA : STZ $0FCB : STZ $0FCC : STZ $0FCD ; prize packs
LDA #$00 : STA $7EC011 ; mosaic
JSL InitRNGPointerTable ; boss RNG
PLP : PLX
RTL
;--------------------------------------------------------------------------------

View File

@@ -56,5 +56,6 @@ RTL
Init_PostRAMClear:
JSL MSUInit
JSL InitRNGPointerTable
JML $00D463 ; The original target of the jump table that we hijacked

View File

@@ -107,9 +107,9 @@ RTL
!RNG_POINTERS = "$7F5200"
GetStaticRNG:
PHX : PHP
REP #$20 ; set 16-bit accumulator and index registers
AND.w #$007F
ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX : ASL ; increment pointer and move value to X
REP #$30 ; set 16-bit accumulator and index registers
AND.w #$000F
ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX ; increment pointer and move value to X
LDA Static_RNG, X ; load RNG value
PLP : PLX
RTL
@@ -123,7 +123,7 @@ InitRNGPointerTable:
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
CPX.w #$007F : !BLT -
CPX.w #$001F : !BLT -
PLP : PLX
RTL
.rngDefaults