From 838c85dc0751929fd32fffe27e824ce49417dd37 Mon Sep 17 00:00:00 2001 From: Karkat Date: Fri, 23 Feb 2018 22:55:44 -0500 Subject: [PATCH] let's dev 2/23/18 fixed shops disregarding item counts (extra hitbox, etc) fixed rupee arrows regarding requiring wooden arrows before being able to fire them finished escape assist mode for ammo management in new game mode --- LTTP_RND_GeneralBugfixes.asm | 2 +- events.asm | 8 ++++++++ hooks.asm | 3 +++ inventory.asm | 9 ++++++++- newitems.asm | 5 ++++- openmode.asm | 4 ++++ pendantcrystalhud.asm | 1 + shopkeeper.asm | 3 ++- tables.asm | 12 ++++++++++-- zelda.asm | 1 + 10 files changed, 42 insertions(+), 6 deletions(-) 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