diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 2944ea2..2408628 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, #$02, #$22 ; year/month/day +db #$20, #$18, #$02, #$23 ; year/month/day ;================================================================================ diff --git a/events.asm b/events.asm index fc64932..12b17e1 100644 --- a/events.asm +++ b/events.asm @@ -26,6 +26,14 @@ OnDungeonExit: PLP : PLA RTL ;-------------------------------------------------------------------------------- +OnUncleItemGet: + JSL Link_ReceiveItem + LDA.l EscapeAssist + BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : + + BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : + + AND.b #$01 : STA !INFINITE_ARROWS +RTL +;-------------------------------------------------------------------------------- OnAga2Defeated: JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first JSL.l IncrementAgahnim2Sword diff --git a/hooks.asm b/hooks.asm index debce6d..1505448 100644 --- a/hooks.asm +++ b/hooks.asm @@ -1151,6 +1151,9 @@ JSL.l SetUncleRainState : RTS org $05EDDF ; <- 2EDDF - sprite_zelda.asm:398 - (LDA.b #$02 : STA $7EF3C5) JSL.l EndRainState : NOP #2 ;-------------------------------------------------------------------------------- +org $05DF49 ; <- 2DF49 - sprite_uncle_and_priest.asm:984 - (JSL Link_ReceiveItem) +JSL.l OnUncleItemGet +;-------------------------------------------------------------------------------- ;================================================================================ ; Generic Keys diff --git a/inventory.asm b/inventory.asm index 8a9d5ab..366bc7b 100644 --- a/inventory.asm +++ b/inventory.asm @@ -208,7 +208,9 @@ AddInventory: LDA !INVENTORY_SWAP : ORA #$01 : STA !INVENTORY_SWAP BRL .incrementCounts + CPY.b #$0B : BNE + ; Bow - LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 + LDA ArrowMode : BNE +++ + LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 + +++ BRL .incrementCounts + CPY.b #$3A : BNE + ; Bow & Arrows LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 @@ -216,6 +218,11 @@ AddInventory: + CPY.b #$3B : BNE + ; Bow & Silver Arrows LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2 BRL .incrementCounts + + CPY.b #$43 : BNE + ; Single arrow + LDA ArrowMode : BEQ +++ + LDA !INVENTORY_SWAP_2 : ORA #$80 : STA !INVENTORY_SWAP_2 ; activate wood arrows in quick-swap + +++ + BRL .incrementCounts + CPY.b #$58 : BNE + ; Upgrade-Only Silver Arrows LDA !INVENTORY_SWAP_2 : ORA #$40 : STA !INVENTORY_SWAP_2 + diff --git a/newitems.asm b/newitems.asm index 2285ce1..77b77a8 100755 --- a/newitems.asm +++ b/newitems.asm @@ -178,7 +178,7 @@ AddReceivedItemExpandedGetItem: JSL.l FreeDungeonItemNotice CMP.b #$0B : BNE + ; Bow LDA !INVENTORY_SWAP_2 : AND.b #$40 : BEQ ++ - LDA.b #03 : STA $7EF340 ; set bow silver + LDA.b #03 : STA $7EF340 ; set bow to silver ++ BRL .done + CMP.b #$4C : BNE + ; 50 bombs @@ -234,6 +234,9 @@ AddReceivedItemExpandedGetItem: LDA $7EF340 : BEQ ++ : CMP.b #$03 : !BGE ++ !ADD.b #$02 : STA $7EF340 ; switch to silver bow ++ + LDA.l ArrowMode : BEQ ++ + LDA.b #$01 : STA $7EF376 + ++ + CMP.b #$59 : BNE + ; 1 Rupoor REP #$20 : LDA $7EF360 : !SUB RupoorDeduction : STA $7EF360 : SEP #$20 ; Take 1 rupee BRL .done diff --git a/openmode.asm b/openmode.asm index 2f87a13..53ff4cb 100644 --- a/openmode.asm +++ b/openmode.asm @@ -1,6 +1,9 @@ ;================================================================================ ; Open Mode Uncle Rain State Check ;================================================================================ +!INFINITE_ARROWS = "$7F50C8" +!INFINITE_BOMBS = "$7F50C9" +!INFINITE_MAGIC = "$7F50CA" SetUncleRainState: LDA.l OpenMode : BEQ + : RTL : + ; we're done if open mode is on LDA.b #$01 : STA $7EF3C5 @@ -13,6 +16,7 @@ InitOpenMode: LDA $7EF3C6 : ORA #$14 : STA $7EF3C6 ; remove uncle LDA $7EF3C8 : CMP #$05 : BEQ ++ : LDA.b #$01 : ++ : STA $7EF3C8 ; set spawn points to house+sanc unless already house+sanc+mountain LDA $7EF29B : ORA.b #$20 : STA $7EF29B ; open castle gate + RTL + RTL ;-------------------------------------------------------------------------------- \ No newline at end of file diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 894c7bb..128c7b9 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -300,6 +300,7 @@ RTL !DrawMagicMeter_mp_tilemap = "$0DFE0F" DrawMagicMeter: LDA !INFINITE_MAGIC : BNE + : BRL .green : + + SEP #$20 : LDA.b #$80 : STA $7EF36E : REP #$20 ; set magic to max LDX.w #$0080 ; load full magic meter graphics LDA $1A : AND.w #$000C : LSR #2 BEQ .red diff --git a/shopkeeper.asm b/shopkeeper.asm index c726214..b86d2b4 100644 --- a/shopkeeper.asm +++ b/shopkeeper.asm @@ -445,7 +445,8 @@ Shopkeeper_SetupHitboxes: JSR.w Shopkeeper_BuyItem .no_interaction INY #4 - CPY.b #$0C : !BLT - + TYA : CMP !SHOP_CAPACITY : !BLT - + ;CPY.b #$0C : !BLT - PLP : PLY : PLX RTS diff --git a/tables.asm b/tables.asm index 0ee0053..3acb355 100644 --- a/tables.asm +++ b/tables.asm @@ -103,7 +103,7 @@ db #$00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- org $308032 ; PC 0x180032 OpenMode: -db #$01 ; #$00 = Normal (default) - #$01 = Open +db #$00 ; #$00 = Normal (default) - #$01 = Open ;-------------------------------------------------------------------------------- org $308033 ; PC 0x180033 HeartBeep: @@ -205,6 +205,14 @@ org $30804C ; PC 0x18004C SmithTravelsFreely: db #$00 ; #$00 = Off (default) - #$01 = On (frog/smith can enter multi-entrance doors) ;-------------------------------------------------------------------------------- +org $30804D ; PC 0x18004D +EscapeAssist: +db #$00 +;---- -mba +;m - Infinite Magic +;b - Infinite Bombs +;a - Infinite Arrows +;-------------------------------------------------------------------------------- org $308080 ; PC 0x180080 Upgrade5BombsRefill: db #$00 @@ -715,7 +723,7 @@ db #$08 ; #$08 = 1 Heart (default) - #$02 = 1/4 Heart ;================================================================================ org $308169 ; PC 0x180169 AgahnimDoorStyle: -db #$00 ; #00 = Never Locked - #$01 = Locked During Escape (default) +db #$01 ; #00 = Never Locked - #$01 = Locked During Escape (default) ;================================================================================ org $30816A ; PC 0x18016A FreeItemText: diff --git a/zelda.asm b/zelda.asm index 83f8def..f03a4ba 100644 --- a/zelda.asm +++ b/zelda.asm @@ -12,6 +12,7 @@ RTL ;-------------------------------------------------------------------------------- EndRainState: LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already + LDA.b #$00 : STA !INFINITE_ARROWS : STA !INFINITE_BOMBS : STA !INFINITE_MAGIC LDA.b #$02 : STA $7EF3C5 ; end rain state + RTL