Reset boss RNG and other things on new file
This commit is contained in:
10
events.asm
10
events.asm
@@ -149,6 +149,16 @@ OnNewFile:
|
|||||||
LDA StartingSword : STA $7EF359 ; set starting sword type
|
LDA StartingSword : STA $7EF359 ; set starting sword type
|
||||||
LDA !INVENTORY_SWAP : STA $70038C ; copy starting equipment swaps to file select screen
|
LDA !INVENTORY_SWAP : STA $70038C ; copy starting equipment swaps to file select screen
|
||||||
LDA !INVENTORY_SWAP_2 : STA $70038E
|
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
|
PLP : PLX
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
1
init.asm
1
init.asm
@@ -56,5 +56,6 @@ RTL
|
|||||||
Init_PostRAMClear:
|
Init_PostRAMClear:
|
||||||
|
|
||||||
JSL MSUInit
|
JSL MSUInit
|
||||||
|
JSL InitRNGPointerTable
|
||||||
|
|
||||||
JML $00D463 ; The original target of the jump table that we hijacked
|
JML $00D463 ; The original target of the jump table that we hijacked
|
||||||
@@ -107,9 +107,9 @@ RTL
|
|||||||
!RNG_POINTERS = "$7F5200"
|
!RNG_POINTERS = "$7F5200"
|
||||||
GetStaticRNG:
|
GetStaticRNG:
|
||||||
PHX : PHP
|
PHX : PHP
|
||||||
REP #$20 ; set 16-bit accumulator and index registers
|
REP #$30 ; set 16-bit accumulator and index registers
|
||||||
AND.w #$007F
|
AND.w #$000F
|
||||||
ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX : ASL ; increment pointer and move value to X
|
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
|
LDA Static_RNG, X ; load RNG value
|
||||||
PLP : PLX
|
PLP : PLX
|
||||||
RTL
|
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
|
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
|
PLP : PLX
|
||||||
RTL
|
RTL
|
||||||
.rngDefaults
|
.rngDefaults
|
||||||
|
|||||||
Reference in New Issue
Block a user