diff --git a/hooks.asm b/hooks.asm index 8f9fa53..2f66123 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2790,6 +2790,9 @@ db $B2, $24, $B3, $24, $C2, $24, $19, $24 db $B2, $28, $B3, $28, $C2, $28, $1A, $28 db $B2, $28, $B3, $28, $C2, $28, $1B, $28 ;-------------------------------------------------------------------------------- +org $079CE6 ; Bank07.asm@4632 (LDA #$80 : TSB $3A) +JSL CheckDetonateBomb +;-------------------------------------------------------------------------------- ;================================================================================ ; Variable Ganon Vulnerability diff --git a/rngfixes.asm b/rngfixes.asm index 33cddff..4cb4015 100644 --- a/rngfixes.asm +++ b/rngfixes.asm @@ -109,13 +109,18 @@ RTL ; Out: A = RNG Result ;-------------------------------------------------------------------------------- !RNG_POINTERS = "$7F5200" +!static_rng ?= 1 GetStaticRNG: - 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 + 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 RTL ;-------------------------------------------------------------------------------- InitRNGPointerTable: diff --git a/special_weapons.asm b/special_weapons.asm index 5c25e65..6a5c3fb 100644 --- a/special_weapons.asm +++ b/special_weapons.asm @@ -301,3 +301,22 @@ StoreSwordDamage: LDA #$05 RTL ;-------------------------------------------------------------------------------- +CheckDetonateBomb: + LDA.l SpecialWeapons : CMP.b #$01 : BNE .not_bomb_mode +.detonate_bombs + LDX.b #09 +.check_ancilla + LDA.w $0C4A, X + CMP.b #$07 + BNE .next_ancilla + LDA.b #03 + STA.w $039F, X +.next_ancilla + DEX + BPL .check_ancilla +.not_bomb_mode + ; what we wrote over + LDA.b #$80 + TSB.b $3A + RTL +;-------------------------------------------------------------------------------- diff --git a/variable_ganon_vulnerability.asm b/variable_ganon_vulnerability.asm index 4bf361a..64aadef 100644 --- a/variable_ganon_vulnerability.asm +++ b/variable_ganon_vulnerability.asm @@ -19,7 +19,7 @@ Ganon_CheckAncillaVulnerability: BRA .not_vulnerable_pla .silver_arrows PLA : CMP #$09 : BNE .not_vulnerable - LDA $7EF340 : CMP.b #$03 : !BGE + + LDA $7EF340 : CMP.b #$03 : !BGE + LDA #$09 : BRA .not_vulnerable + BRA .vulnerable