diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index c1f7c24..a506749 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF db #$00 ; expand file to 2mb org $1FFFF8 ; <- FFFF8 timestamp rom -db #$20, #$18, #$03, #$16 ; year/month/day +db #$20, #$18, #$03, #$28 ; year/month/day ;================================================================================ diff --git a/darkworldspawn.asm b/darkworldspawn.asm index ef06482..af3e219 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -82,6 +82,51 @@ FixAgahnimFollowers: JSL PrepDungeonExit ; thing we wrote over RTL ;-------------------------------------------------------------------------------- +macro SetMinimum(base,compare) + LDA.l : CMP.l : !BLT ?done + STA.l + ?done: +endmacro +RefreshRainAmmo: + LDA $7EF3C5 : CMP.b #$01 : BEQ + : RTL : + ; check if we're in rain state + .rain + LDA $7EF3C8 + + CMP.b #$03 : BNE + ; Uncle + %SetMinimum($7EF36E,RainDeathRefillMagic_Uncle) + %SetMinimum($7EF375,RainDeathRefillBombs_Uncle) + %SetMinimum($7EF377,RainDeathRefillArrows_Uncle) + BRA .done + + CMP.b #$02 : BNE + ; Cell + %SetMinimum($7EF36E,RainDeathRefillMagic_Cell) + %SetMinimum($7EF375,RainDeathRefillBombs_Cell) + %SetMinimum($7EF377,RainDeathRefillArrows_Cell) + BRA .done + + CMP.b #$04 : BNE + ; Mantle + %SetMinimum($7EF36E,RainDeathRefillMagic_Mantle) + %SetMinimum($7EF375,RainDeathRefillBombs_Mantle) + %SetMinimum($7EF377,RainDeathRefillArrows_Mantle) + + + .done +RTL +;-------------------------------------------------------------------------------- +!INFINITE_ARROWS = "$7F50C8" +!INFINITE_BOMBS = "$7F50C9" +!INFINITE_MAGIC = "$7F50CA" +SetEscapeAssist: + LDA $7EF3C5 : CMP.b #$01 : BNE .notrain ; check if we're in rain state + .rain + LDA.l EscapeAssist + BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : + + BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : + + BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : + + BRA ++ + .notrain + LDA.l EscapeAssist : BIT.b #$04 : BEQ + : LDA.b #$00 : STA !INFINITE_MAGIC : + + LDA.l EscapeAssist : BIT.b #$02 : BEQ + : LDA.b #$00 : STA !INFINITE_BOMBS : + + LDA.l EscapeAssist : BIT.b #$01 : BEQ + : LDA.b #$00 : STA !INFINITE_ARROWS : + + ++ +RTL +;-------------------------------------------------------------------------------- SetSilverBowMode: LDA SilverArrowsUseRestriction : BEQ + ; fix bow type for restricted arrow mode LDA $7EF340 : CMP.b #$3 : !BLT + diff --git a/events.asm b/events.asm index 41784b9..b827221 100644 --- a/events.asm +++ b/events.asm @@ -76,19 +76,8 @@ OnFileLoad: + JSL.l SetSilverBowMode - - LDA $7EF3C5 : CMP.b #$01 : BNE .notrain ; check if we're in rain state - .rain - LDA.l EscapeAssist - BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : + - BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : + - BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : + - BRA ++ - .notrain - LDA.l EscapeAssist : BIT.b #$04 : BEQ + : LDA.b #$00 : STA !INFINITE_MAGIC : + - LDA.l EscapeAssist : BIT.b #$02 : BEQ + : LDA.b #$00 : STA !INFINITE_BOMBS : + - LDA.l EscapeAssist : BIT.b #$01 : BEQ + : LDA.b #$00 : STA !INFINITE_ARROWS : + - ++ + JSL.l RefreshRainAmmo + JSL.l SetEscapeAssist RTL ;-------------------------------------------------------------------------------- !RNG_ITEM_LOCK_IN = "$7F5090" diff --git a/tables.asm b/tables.asm index c2f195f..097f58a 100644 --- a/tables.asm +++ b/tables.asm @@ -841,7 +841,28 @@ org $308183 ; PC 0x180183 FreeUncleItemAmount: dw #$12C ; 300 rupees (Default) ;-------------------------------------------------------------------------------- -; 0x180185 - 0x18018F (unused) +org $308185 ; PC 0x180185 +RainDeathRefillTable: +RainDeathRefillMagic_Uncle: +db #$00 +RainDeathRefillBombs_Uncle: +db #$00 +RainDeathRefillArrows_Uncle: +db #$00 +RainDeathRefillMagic_Cell: +db #$00 +RainDeathRefillBombs_Cell: +db #$00 +RainDeathRefillArrows_Cell: +db #$00 +RainDeathRefillMagic_Mantle: +db #$00 +RainDeathRefillBombs_Mantle: +db #$00 +RainDeathRefillArrows_Mantle: +db #$00 +;================================================================================ +; 0x18018E - 0x18018F (unused) ;================================================================================ org $308190 ; PC 0x180190 - 0x180192 TimerStyle: