diff --git a/rngfixes.asm b/rngfixes.asm index e37f2a4..a9bf38c 100644 --- a/rngfixes.asm +++ b/rngfixes.asm @@ -110,18 +110,17 @@ RTL ; Out: A = RNG Result ;-------------------------------------------------------------------------------- !RNG_POINTERS = "$7F5200" -!static_rng ?= 1 GetStaticRNG: - if !static_rng - PHX : PHP - 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 - else - JML GetRandomInt - endif + LDA.l SeededRNG : BNE .seeded + JML GetRandomInt + RTL +.seeded + PHX : PHP + 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 ;-------------------------------------------------------------------------------- InitRNGPointerTable: diff --git a/tables.asm b/tables.asm index dafa821..3fdb03d 100644 --- a/tables.asm +++ b/tables.asm @@ -413,7 +413,9 @@ org $30808E ; PC 0x18008E FakeBoots: db $00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- -; 0x18008F (unused) +org $30808F ; PC 0x18008F +SeededRNG: +db $01 ; #$00 = Off - #$01 = Seeded RNG (default for rando) ;-------------------------------------------------------------------------------- org $308090 ; PC 0x180090 - 0x180097 ProgressiveSwordLimit: