diff --git a/entrances.asm b/entrances.asm index cdbf7a8..6431555 100644 --- a/entrances.asm +++ b/entrances.asm @@ -54,9 +54,9 @@ FlagAgahnimDoor: ;-------------------------------------------------------------------------------- LockAgahnimDoorsCore: LDA.b LinkPosX : CMP.w #1992 : !BLT + ; door too far left, skip - CMP.w #2088 : !BGE + ; door too rat right, skip + CMP.w #2088 : !BGE + ; door too rat right, skip LDA.b LinkPosY : CMP.w #1720 : !BGE + ; door too low, skip - LDA.w #$0001 + LDA.w #$0001 RTS + LDA.w #$0000 @@ -81,7 +81,7 @@ AllowStartFromSingleEntranceCave: PHA TAX LDA.l StartingAreaExitOffset, X - AND.w #$00FF + AND.w #$00FF BNE + JMP .done @@ -126,7 +126,7 @@ AllowStartFromSingleEntranceCave: LDA.l StartingEntrance : TAX LDA.l StartingAreaOverworldDoor, X : STA.l PreviousOverworldDoor ;Load overworld door REP #$20 ; reset 16-bit accumulator - JSL.l CacheDoorFrameData + JSL.l CacheDoorFrameData .done PLA @@ -155,7 +155,7 @@ JML.l AllowStartFromExitReturn STZ.b SubSubModule STZ.w DeathReloadFlag STZ.w RespawnFlag - INC.w UpdateHUD + INC.w UpdateHUDFlag JSL Equipment_SearchForEquippedItemLong JSL HUD_RebuildLong2 diff --git a/events.asm b/events.asm index 9d3da46..8741f09 100644 --- a/events.asm +++ b/events.asm @@ -1,14 +1,14 @@ OnPrepFileSelect: - LDA.b GameSubMode : CMP.b #$03 : BNE + - LDA.b #$06 : STA.b NMISTRIPES ; thing we wrote over - RTL - + - PHA : PHX - REP #$10 - JSL.l LoadAlphabetTilemap - JSL.l LoadFullItemTiles - SEP #$10 - PLX : PLA + LDA.b GameSubMode : CMP.b #$03 : BNE + + LDA.b #$06 : STA.b NMISTRIPES ; thing we wrote over + RTL + + + PHA : PHX + REP #$10 + JSL.l LoadAlphabetTilemap + JSL.l LoadFullItemTiles + SEP #$10 + PLX : PLA RTL ;-------------------------------------------------------------------------------- OnDrawHud: @@ -21,12 +21,12 @@ JML.l ReturnFromOnDrawHud ;-------------------------------------------------------------------------------- OnDungeonEntrance: STA.l PegColor ; thing we wrote over - JSL MaybeFlagDungeonTotalsEntrance - INC.w UpdateHUD + JSL MaybeFlagDungeonTotalsEntrance + INC.w UpdateHUDFlag RTL ;-------------------------------------------------------------------------------- OnDungeonBossExit: - JSL.l StatTransitionCounter + JSL.l StatTransitionCounter RTL ;-------------------------------------------------------------------------------- OnPlayerDead: @@ -38,19 +38,19 @@ OnPlayerDead: RTL ;-------------------------------------------------------------------------------- OnDungeonExit: - PHA : PHP - SEP #$20 ; set 8-bit accumulator - JSL.l SQEGFix - PLP : PLA + PHA : PHP + SEP #$20 ; set 8-bit accumulator + JSL.l SQEGFix + PLP : PLA - STA.w DungeonID : STZ.w Map16ChangeIndex ; thing we wrote over + STA.w DungeonID : STZ.w Map16ChangeIndex ; thing we wrote over - PHA : PHP - INC.w UpdateHUD - JSL.l HUD_RebuildLong - JSL.l FloodGateResetInner - JSL.l SetSilverBowMode - PLP : PLA + PHA : PHP + INC.w UpdateHUDFlag + JSL.l HUD_RebuildLong + JSL.l FloodGateResetInner + JSL.l SetSilverBowMode + PLP : PLA RTL ;-------------------------------------------------------------------------------- OnQuit: @@ -81,9 +81,9 @@ OnUncleItemGet: LDA.l CurrentRupees : !ADD.l FreeUncleItemAmount : STA.l CurrentRupees ; rupee arrows, so also give the player some money to start SEP #$20 ; set 8-bit accumulator + - LDA.l ProgressIndicator : BNE + - LDA.b #$01 : STA.l ProgressIndicator ; handle rain state - + + LDA.l ProgressIndicator : BNE + + LDA.b #$01 : STA.l ProgressIndicator ; handle rain state + + RTL ;-------------------------------------------------------------------------------- OnAga1Defeated: @@ -102,40 +102,40 @@ OnAga1Defeated: RTL ;-------------------------------------------------------------------------------- OnAga2Defeated: - JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first - LDA.b #$01 : STA.l Aga2Duck + JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first + LDA.b #$01 : STA.l Aga2Duck LDA.w DungeonID : CMP.b #$1A : BNE + LDA.l DungeonsCompleted : ORA.b #$04 : STA.l DungeonsCompleted + LDA.b #$FF : STA.w DungeonID - JML.l IncrementAgahnim2Sword + JML.l IncrementAgahnim2Sword ;-------------------------------------------------------------------------------- OnFileCreation: - PHB - LDA.w #$03D7 - LDX.w #$B000 - LDY.w #$0000 - MVN CartridgeSRAM>>16, InitSRAMTable>>16 - ; Skip file name and validity value - LDA.w #$010C - LDX.w #$B3E3 - LDY.w #$03E3 - MVN CartridgeSRAM>>16, InitSRAMTable>>16 - PLB + PHB + LDA.w #$03D7 + LDX.w #$B000 + LDY.w #$0000 + MVN CartridgeSRAM>>16, InitSRAMTable>>16 + ; Skip file name and validity value + LDA.w #$010C + LDX.w #$B3E3 + LDY.w #$03E3 + MVN CartridgeSRAM>>16, InitSRAMTable>>16 + PLB - ; Resolve instant post-aga if standard - SEP #$20 - LDA.l InitProgressIndicator : BIT #$80 : BEQ + - LDA.b #$00 : STA.l ProgressIndicatorSRAM ; set post-aga after zelda rescue - LDA.b #$00 : STA.l OverworldEventDataSRAM+$02 ; keep rain state vanilla - + - REP #$20 + ; Resolve instant post-aga if standard + SEP #$20 + LDA.l InitProgressIndicator : BIT #$80 : BEQ + + LDA.b #$00 : STA.l ProgressIndicatorSRAM ; set post-aga after zelda rescue + LDA.b #$00 : STA.l OverworldEventDataSRAM+$02 ; keep rain state vanilla + + + REP #$20 - ; Set validity value and do some cleanup. Jump to checksum done. - LDA.w #$55AA : STA.l FileValiditySRAM - JSL.l WriteSaveChecksumAndBackup - STZ.b Scrap00 - STZ.b Scrap01 + ; Set validity value and do some cleanup. Jump to checksum done. + LDA.w #$55AA : STA.l FileValiditySRAM + JSL.l WriteSaveChecksumAndBackup + STZ.b Scrap00 + STZ.b Scrap01 JML.l InitializeSaveFile_checksum_done ;-------------------------------------------------------------------------------- @@ -179,12 +179,12 @@ OnNewFile: STZ.w TreePullKills STZ.w TreePullHits STZ.w PrizePackIndexes - STZ.w PrizePackIndexes+1 - STZ.w PrizePackIndexes+2 - STZ.w PrizePackIndexes+3 - STZ.w PrizePackIndexes+4 - STZ.w PrizePackIndexes+5 - STZ.w PrizePackIndexes+6 + STZ.w PrizePackIndexes+1 + STZ.w PrizePackIndexes+2 + STZ.w PrizePackIndexes+3 + STZ.w PrizePackIndexes+4 + STZ.w PrizePackIndexes+5 + STZ.w PrizePackIndexes+6 LDA.b #$00 : STA.l MosaicLevel JSL InitRNGPointerTable PLP : PLX @@ -200,7 +200,7 @@ OnLinkDamaged: JML.l OHKOTimer ;-------------------------------------------------------------------------------- ;OnEnterWater: -; JSL.l UnequipCapeQuiet ; what we wrote over +; JSL.l UnequipCapeQuiet ; what we wrote over ;RTL ;-------------------------------------------------------------------------------- OnLinkDamagedFromPit: @@ -221,13 +221,13 @@ OnLinkDamagedFromPitOutdoors: JML.l OHKOTimer ; make sure this is last ;-------------------------------------------------------------------------------- OnOWTransition: - JSL.l FloodGateReset - JSL.l StatTransitionCounter - PHP - SEP #$20 ; set 8-bit accumulator - LDA.b #$FF : STA.l RNGLockIn ; clear lock-in - INC.w UpdateHUD - PLP + JSL.l FloodGateReset + JSL.l StatTransitionCounter + PHP + SEP #$20 ; set 8-bit accumulator + LDA.b #$FF : STA.l RNGLockIn ; clear lock-in + INC.w UpdateHUDFlag + PLP RTL ;-------------------------------------------------------------------------------- OnLoadDuckMap: @@ -245,52 +245,52 @@ PreItemGet: RTL ;-------------------------------------------------------------------------------- PostItemGet: - STZ.w ShopPurchaseFlag - LDA.w ItemReceiptMethod : CMP.b #$01 : BEQ + - LDX.w CurrentSpriteSlot - STZ.w SpriteMetaData,X - + + STZ.w ShopPurchaseFlag + LDA.w ItemReceiptMethod : CMP.b #$01 : BEQ + + LDX.w CurrentSpriteSlot + STZ.w SpriteMetaData,X + + RTL ;-------------------------------------------------------------------------------- PostItemAnimation: - PHB - LDA.b #$00 : STA.l BusyItem ; mark item as finished - LDA.l TextBoxDefer : BEQ + - STZ.w TextID : STZ.w TextID+1 ; reset decompression buffer - JSL.l Main_ShowTextMessage_Alt - LDA.b #$00 : STA.l TextBoxDefer - + - LDA.w ItemReceiptMethod : CMP.b #$01 : BNE + - LDA.b LinkDirection : BEQ + - JSL.l IncrementChestTurnCounter - + - REP #$20 - PEA.w $7E00 - PLB : PLB - LDA.w TransparencyFlag : BNE .SP05 - LDA.l PalettesCustom_off_black+$00 : STA.w PaletteBuffer+$0170 : STA.w PaletteBufferAux+$0170 - LDA.l PalettesCustom_off_black+$02 : STA.w PaletteBuffer+$0172 : STA.w PaletteBufferAux+$0172 - STA.w PaletteBuffer+$0174 : STA.w PaletteBufferAux+$0174 - STA.w PaletteBuffer+$0176 : STA.w PaletteBufferAux+$0176 - STA.w PaletteBuffer+$0178 : STA.w PaletteBufferAux+$0178 - STA.w PaletteBuffer+$017A : STA.w PaletteBufferAux+$017A - STA.w PaletteBuffer+$017C : STA.w PaletteBufferAux+$017C - STA.w PaletteBuffer+$017E : STA.w PaletteBufferAux+$017E - BRA .done - .SP05 - LDA.l PalettesCustom_off_black+$00 : STA.w PaletteBuffer+$01B0 : STA.w PaletteBufferAux+$01B0 - LDA.l PalettesCustom_off_black+$02 : STA.w PaletteBuffer+$01B2 : STA.w PaletteBufferAux+$01B2 - STA.w PaletteBuffer+$01B4 : STA.w PaletteBufferAux+$01B4 - STA.w PaletteBuffer+$01B6 : STA.w PaletteBufferAux+$01B6 - STA.w PaletteBuffer+$01B8 : STA.w PaletteBufferAux+$01B8 - STA.w PaletteBuffer+$01BA : STA.w PaletteBufferAux+$01BA - STA.w PaletteBuffer+$01BC : STA.w PaletteBufferAux+$01BC - STA.w PaletteBuffer+$01BE : STA.w PaletteBufferAux+$01BE - .done - INC.b NMICGRAM - SEP #$20 + PHB + LDA.b #$00 : STA.l BusyItem ; mark item as finished + LDA.l TextBoxDefer : BEQ + + STZ.w TextID : STZ.w TextID+1 ; reset decompression buffer + JSL.l Main_ShowTextMessage_Alt + LDA.b #$00 : STA.l TextBoxDefer + + + LDA.w ItemReceiptMethod : CMP.b #$01 : BNE + + LDA.b LinkDirection : BEQ + + JSL.l IncrementChestTurnCounter + + + REP #$20 + PEA.w $7E00 + PLB : PLB + LDA.w TransparencyFlag : BNE .SP05 + LDA.l PalettesCustom_off_black+$00 : STA.w PaletteBuffer+$0170 : STA.w PaletteBufferAux+$0170 + LDA.l PalettesCustom_off_black+$02 : STA.w PaletteBuffer+$0172 : STA.w PaletteBufferAux+$0172 + STA.w PaletteBuffer+$0174 : STA.w PaletteBufferAux+$0174 + STA.w PaletteBuffer+$0176 : STA.w PaletteBufferAux+$0176 + STA.w PaletteBuffer+$0178 : STA.w PaletteBufferAux+$0178 + STA.w PaletteBuffer+$017A : STA.w PaletteBufferAux+$017A + STA.w PaletteBuffer+$017C : STA.w PaletteBufferAux+$017C + STA.w PaletteBuffer+$017E : STA.w PaletteBufferAux+$017E + BRA .done + .SP05 + LDA.l PalettesCustom_off_black+$00 : STA.w PaletteBuffer+$01B0 : STA.w PaletteBufferAux+$01B0 + LDA.l PalettesCustom_off_black+$02 : STA.w PaletteBuffer+$01B2 : STA.w PaletteBufferAux+$01B2 + STA.w PaletteBuffer+$01B4 : STA.w PaletteBufferAux+$01B4 + STA.w PaletteBuffer+$01B6 : STA.w PaletteBufferAux+$01B6 + STA.w PaletteBuffer+$01B8 : STA.w PaletteBufferAux+$01B8 + STA.w PaletteBuffer+$01BA : STA.w PaletteBufferAux+$01BA + STA.w PaletteBuffer+$01BC : STA.w PaletteBufferAux+$01BC + STA.w PaletteBuffer+$01BE : STA.w PaletteBufferAux+$01BE + .done + INC.b NMICGRAM + SEP #$20 - STZ.w ItemReceiptMethod : LDA.w AncillaGet, X ; thing we wrote over to get here - PLB + STZ.w ItemReceiptMethod : LDA.w AncillaGet, X ; thing we wrote over to get here + PLB RTL ;-------------------------------------------------------------------------------- diff --git a/hooks.asm b/hooks.asm index b39c15a..68b391d 100644 --- a/hooks.asm +++ b/hooks.asm @@ -1407,22 +1407,29 @@ org $8DFB29 : BRA UpdateHUDBuffer_update_item_check_arrows ;-------------------------------------------------------------------------------- org $8DF1AB : JSR.w RebuildHUD_update org $8DDFC8 : JSR.w RebuildHUD_update -org $8DDB88 ; Don't rebuild HUD twice on icon refresh -NOP #3 ; Not sure why this is here +org $8DDB85 : JSR.w RefreshIcon_UpdateHUD : BRA + : NOP : + ;-------------------------------------------------------------------------------- org $87A205 : JSL.l RebuildHUD_update_long -org $8AEF62 : JSL.l RebuildHUD_update_long org $87A1A4 : JSL.l RebuildHUD_update_long org $87A1CF : JSL.l RebuildHUD_update_long +org $87A21D : JSL.l RebuildHUD_update_long org $87A235 : JSL.l RebuildHUD_update_long +org $8AEF62 : JSL.l RebuildHUD_update_long ;-------------------------------------------------------------------------------- org $8DFFE1 RebuildHUD_update_long: JSR.w RebuildHUD_update : RTL + +RefreshIcon_UpdateHUD: +INC.w UpdateHUDFlag +JSR.w RebuildHUD +JSR.w UpdateEquippedItem +RTS warnpc $8E8000 ;-------------------------------------------------------------------------------- org $8DEDE8 JSL.l DrawHeartPiecesMenu : BRA DrawEquipment_in_a_dungeon +;-------------------------------------------------------------------------------- ;================================================================================ ; 300 Rupee NPC diff --git a/inventory.asm b/inventory.asm index f4a15e9..d3f3d8f 100644 --- a/inventory.asm +++ b/inventory.asm @@ -193,15 +193,15 @@ AddInventory: JSR.w IncrementByOne JSR.w StampItem JSR.w IncrementYAItems - REP #$20 + REP #$30 LDA.l TotalItemCounter : INC : TAY - LDA.l BootsEquipment : BNE + + LDA.l BootsEquipment : AND.w #$00FF : BNE + TYA : STA.l PreBootsLocations + - LDA.l MirrorEquipment : BNE + + LDA.l MirrorEquipment : AND.w #$00FF : BNE + TYA : STA.l PreMirrorLocations + - LDA.l FluteEquipment : BNE + + LDA.l FluteEquipment : AND.w #$00FF : BNE + TYA : STA.l PreFluteLocations + TYA @@ -409,7 +409,7 @@ Link_ReceiveItem_HUDRefresh: + JSL.l HUD_RefreshIconLong ; thing we wrote over - INC.w UpdateHUD + INC.w UpdateHUDFlag JSL.l PostItemGet RTL ;-------------------------------------------------------------------------------- @@ -424,7 +424,7 @@ HandleBombAbsorbtion: LDA.b #$04 : STA.w ItemCursor ; set selected item to bombs LDA.b #$01 : STA.w CurrentYItem ; set selected item to bombs JSL.l HUD_RebuildLong - INC.w UpdateHUD + INC.w UpdateHUDFlag + RTL ;-------------------------------------------------------------------------------- diff --git a/newhud.asm b/newhud.asm index 6c8df77..c0d483e 100644 --- a/newhud.asm +++ b/newhud.asm @@ -72,7 +72,7 @@ NewHUD_DrawArrows: ;================================================================================ NewHUD_DrawGoal: REP #$20 - LDA.w UpdateHUD : BEQ .no_goal + LDA.w UpdateHUDFlag : BEQ .no_goal LDA.l GoalItemRequirement : BEQ .no_goal LDA.l GoalItemIcon : STA.w HUDGoalIndicator @@ -129,7 +129,7 @@ NewHUD_DrawKeys: ;================================================================================ NewHUD_DrawDungeonCounters: - LDA.w UpdateHUD : BEQ NewHUD_DrawPrizeIcon + LDA.w UpdateHUDFlag : BEQ NewHUD_DrawPrizeIcon LDA.l CompassMode : ORA.l MapHUDMode : BIT.b #$03 : BEQ NewHUD_DrawPrizeIcon LDX.b IndoorsFlag : BNE + JMP.w NewHUD_DrawMagicMeter @@ -154,7 +154,7 @@ NewHUD_DrawPrizeIcon: LDA.b GameMode CMP.b #$12 : BEQ .no_prize CMP.b #$0E : BEQ + - LDA.w UpdateHUD : BEQ NewHUD_DrawItemCounter + LDA.w UpdateHUDFlag : BEQ NewHUD_DrawItemCounter + LDA.w DungeonID CMP.b #$1A : BCS .no_prize @@ -204,7 +204,7 @@ NewHUD_DrawPrizeIcon: ;================================================================================ NewHUD_DrawItemCounter: REP #$20 - LDA.w UpdateHUD : BEQ NewHUD_DrawMagicMeter + LDA.w UpdateHUDFlag : BEQ NewHUD_DrawMagicMeter LDA.l ItemCounterHUD : AND.w #$00FF : BEQ NewHUD_DrawMagicMeter LDA.w #!SlashTile : STA.w HUDGoalIndicator+$08 LDA.l TotalItemCount : CMP.w #1000 : BCS .item_four_digits @@ -270,7 +270,7 @@ NewHUD_DrawMagicMeter: ;================================================================================ NewHUD_DoneDrawing: - STZ.w UpdateHUD + STZ.w UpdateHUDFlag PLB RTL diff --git a/newitems.asm b/newitems.asm index 7c4c8ee..c50f5d3 100755 --- a/newitems.asm +++ b/newitems.asm @@ -276,8 +276,8 @@ ItemBehavior: RTS .silversbow - LDA.l SilverArrowsUseRestriction : BNE + LDA.l BowTracking : ORA.b #$40 : STA.l BowTracking + LDA.l SilverArrowsUseRestriction : BNE + LDA.b #03 : STA.l BowEquipment ; set bow to silver + LDA.b #$01 : STA.l BowEquipment @@ -338,8 +338,8 @@ ItemBehavior: RTS .silver_bow - LDA.l SilverArrowsUseRestriction : BNE .noequip LDA.b #$40 : ORA.l BowTracking : STA.l BowTracking + LDA.l SilverArrowsUseRestriction : BNE .noequip LDA.l SilverArrowsAutoEquip : AND.b #$01 : BEQ .noequip LDA.l CurrentArrows : BNE + ; check arrows LDA.b #$03 : BRA ++ ; bow without arrow @@ -414,8 +414,8 @@ ItemBehavior: RTS .silver_arrows - LDA.l SilverArrowsUseRestriction : BNE ++ LDA.l BowTracking : ORA.b #$40 : STA.l BowTracking + LDA.l SilverArrowsUseRestriction : BNE ++ LDA.l SilverArrowsAutoEquip : AND.b #$01 : BEQ ++ LDA.l BowEquipment : BEQ ++ : CMP.b #$03 : !BGE + !ADD.b #$02 : STA.l BowEquipment ; switch to silver bow @@ -429,7 +429,7 @@ ItemBehavior: .single_arrow LDA.l ArrowMode : BEQ + LDA.l CurrentArrows : INC : STA.l CurrentArrows ; Should be sole write to this address - INC.w UpdateHUD ; in retro/rupee bow mode. + INC.w UpdateHUDFlag ; in retro/rupee bow mode. + RTS diff --git a/npcitems.asm b/npcitems.asm index 3206fe5..b4a7fa5 100644 --- a/npcitems.asm +++ b/npcitems.asm @@ -51,8 +51,8 @@ ItemCheck_TreeKid: RTL ItemCheck_TreeKid2: - LDA.l NpcFlags : AND.b #$08 : CMP.b #$08 - TDC ; ?? TODO + LDA.l NpcFlags : AND.b #$08 + LSR #2 RTL ItemCheck_TreeKid3: diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 30ed118..56959b1 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -17,7 +17,7 @@ RTL ;================================================================================ HUDRebuildIndoorHole: PHA - INC.w UpdateHUD + INC.w UpdateHUDFlag LDA.l GenericKeys : BEQ .normal .generic PLA @@ -30,7 +30,7 @@ RTL RTL ;================================================================================ HUDRebuildIndoor: - INC.w UpdateHUD + INC.w UpdateHUDFlag LDA.l GenericKeys : BEQ .normal .generic LDA.b #$00 : STA.l RoomDarkness diff --git a/quickswap.asm b/quickswap.asm index cfcebfe..d16d700 100644 --- a/quickswap.asm +++ b/quickswap.asm @@ -10,7 +10,7 @@ QuickSwap: LDA.l QuickSwapFlag : BEQ .done LDA.w ItemCursor : BEQ .done ; Skip everything if we don't have any items - + INC.w UpdateHUDFlag LDY.b #$14 PHX XBA ; restore the stashed value diff --git a/ram.asm b/ram.asm index e68c886..1968efc 100644 --- a/ram.asm +++ b/ram.asm @@ -388,7 +388,7 @@ DelayTimer = $7E1CE9 ; ; TextID = $7E1CF0 ; Message ID and page. Word length. ; -UpdateHUD = $7E1E03 ; Flag used to mark HUD updates and avoid heavy code segments. +UpdateHUDFlag = $7E1E03 ; Flag used to mark HUD updates and avoid heavy code segments. ; ToastBuffer = $7E1E0E ; Multiworld buffer. Word length. ; diff --git a/retro.asm b/retro.asm index a2b4c29..4493b4a 100644 --- a/retro.asm +++ b/retro.asm @@ -12,7 +12,7 @@ LoadBombCount16: RTL StoreBombCount: JSL IncrementBombsPlacedCounter - INC.w UpdateHUD + INC.w UpdateHUDFlag PHA : LDA.l InfiniteBombs : BEQ .finite .infinite PLA : LDA.b #$01 : RTL diff --git a/sram.asm b/sram.asm index b66ea6b..f35af54 100644 --- a/sram.asm +++ b/sram.asm @@ -172,23 +172,23 @@ CurrentGenericKeys: skip 1 ; Generic small keys ;================================================================================ ; Tracking & Indicators ($7EF38C - $7EF3F0) ;-------------------------------------------------------------------------------- -InventoryTracking: skip 2 ; 2 - - - - - o q b r m p n s k f (bitfield) +InventoryTracking: skip 2 ; - - - - - - o q b r m p n s k f (bitfield) ; b = Blue Boomerang | r = Red Boomerang | m = Mushroom Current ; p = Magic Powder | n = Mushroom Past | s = Shovel ; k = Inactive Flute | f = Active Flute | o = Any bomb acquired - ; q = Quickswap locked | 2 = Item on B -BowTracking: skip 1 ; b s p f - - - - (bitfield) + ; q = Quickswap locked +BowTracking: skip 2 ; - - - - - - - - b s p f - - - - (bitfield) ; b = Any Bow | s = Silver Arrows Upgrade | p = Second Progressive Bow ; f = First progressive bow ; The front end writes two distinct progressive bow items. p ; indicates whether the "second" has been found independent of ; the first -SpecialWeaponLevel: skip 1 ; Keeps track of level of weapon in bomb-only and cane-only modes ItemLimitCounts: skip 16 ; Keeps track of limited non-progressive items such as lamp. ; See: ItemSubstitutionRules in tables.asm ; Right now this is only used for three items but extra space is ; reserved -skip 36 ; Unused +skip 35 ; Unused +SpecialWeaponLevel: skip 1 ; Keeps track of level of weapon in item modes ItemOnB: skip 1 ; same table as $0202; $01 = arrows .. $14 = mirror ProgressIndicator: skip 1 ; $00 = Pre-Uncle | $01 = Post-Uncle item | $02 = Zelda Rescued ; $03 = Agahnim 1 defeated @@ -413,9 +413,10 @@ BombsEquipmentSRAM: skip 31 ; DisplayRupeesSRAM: skip 21 ; CurrentArrowsSRAM: skip 21 ; InventoryTrackingSRAM: skip 2 ; -BowTrackingSRAM: skip 1 ; +BowTrackingSRAM: skip 2 ; +skip 51 ; SpecialWeaponLevelSRAM: skip 1 ; -skip 53 ; +ItemOnBSRAM: skip 1 ; ProgressIndicatorSRAM: skip 1 ; skip 19 ; FileNameVanillaSRAM: skip 8 ; First four characters of file name @@ -544,7 +545,8 @@ endmacro ;-------------------------------------------------------------------------------- %assertSRAM(InventoryTracking, $7EF38C) %assertSRAM(BowTracking, $7EF38E) -%assertSRAM(SpecialWeaponLevel, $7EF38F) +%assertSRAM(SpecialWeaponLevel, $7EF3C3) +%assertSRAM(ItemOnB, $7EF3C4) %assertSRAM(ItemLimitCounts, $7EF390) ;-------------------------------------------------------------------------------- %assertSRAM(GameCounter, $7EF3FF) @@ -676,7 +678,7 @@ endmacro %assertSRAM(CurrentArrowsSRAM, $700377) %assertSRAM(InventoryTrackingSRAM, $70038C) %assertSRAM(BowTrackingSRAM, $70038E) -%assertSRAM(SpecialWeaponLevelSRAM, $70038F) +%assertSRAM(SpecialWeaponLevelSRAM, $7003C3) %assertSRAM(ProgressIndicatorSRAM, $7003C5) %assertSRAM(FileNameVanillaSRAM, $7003D9) %assertSRAM(FileValiditySRAM, $7003E1) diff --git a/stats.asm b/stats.asm index df02aa1..bdb3930 100644 --- a/stats.asm +++ b/stats.asm @@ -83,7 +83,7 @@ IncrementSmallKeys: JSL.l UpdateKeys PHY : LDY.b #24 : JSL.l AddInventory : PLY JSL.l HUD_RebuildLong - INC.w UpdateHUD + INC.w UpdateHUDFlag PLX RTL ;-------------------------------------------------------------------------------- @@ -106,7 +106,7 @@ IncrementSmallKeysNoPrimary: ++ PLP + - INC.w UpdateHUD + INC.w UpdateHUDFlag JSL.l HUD_RebuildLong PLX RTL diff --git a/tables.asm b/tables.asm index 17480f8..845662a 100644 --- a/tables.asm +++ b/tables.asm @@ -94,24 +94,24 @@ db $02 ; #$02 = Tempered Sword (default) ;-------------------------------------------------------------------------------- ; 0x18002B (Unused) ;-------------------------------------------------------------------------------- -org $30802C ; PC 0x18002C +org $B0802C ; PC 0x18002C AllowedItemOnB: db #$00 ; $00 = None (default) ; $01 - $20 = Only selected item ; $FF = Any valid ;-------------------------------------------------------------------------------- -org $30802D ; PC 0x18002D +org $B0802D ; PC 0x18002D ChallengeModes: ; ---- ---i ; i: Permanent Ice Physics db #$00 ; #$00 = Default behavior; ;-------------------------------------------------------------------------------- -org $30802E ; PC 0x18002E +org $B0802E ; PC 0x18002E GanonVulnerabilityItem: db #$00 ; #$00 = Default behavior (silver arrows) ;-------------------------------------------------------------------------------- -org $30802F ; PC 0x18002F +org $B0802F ; PC 0x18002F SpecialWeapons: db #$00 ; s - - - m m m m (bitfield) @@ -127,7 +127,7 @@ db #$00 ; $07 = Unused ; $08 = Bugnet mode ;-------------------------------------------------------------------------------- -org $308030 ; PC 0x180030 +org $B08030 ; PC 0x180030 EnableSRAMTrace: db #$00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- diff --git a/timer.asm b/timer.asm index db06c12..42033c1 100644 --- a/timer.asm +++ b/timer.asm @@ -180,7 +180,7 @@ CheckOHKO: RTS .change STA.l OHKOCached - INC.w UpdateHUD + INC.w UpdateHUDFlag REP #$20 SEC RTS diff --git a/vanillalabels.asm b/vanillalabels.asm index 335f498..d17c204 100644 --- a/vanillalabels.asm +++ b/vanillalabels.asm @@ -108,7 +108,6 @@ Equipment_SearchForEquippedItemLong = $8DE395 HUD_RebuildLong = $8DFA78 HUD_RebuildIndoor_Palace = $8DFA88 HUD_RebuildLong2 = $8DFA88 -RebuildHUD_update = $8DFAA5 Messaging_Text = $8EEE10 AfterDeathCounterOutput = $8E8FD Overworld_TileAttr = $8FFD94 @@ -155,12 +154,16 @@ Ancilla29_MilestoneItemReceipt_skip_crystal_sfx = $88CAE5 Ancilla29_MilestoneItemReceipt_no_sparkle = $88CB2E Ancilla_SetOAM_XY = $88F6F3 Ancilla_AddAncilla = $899CCE +UpdateHUD = $8DDFA9 +UpdateEquippedItem = $8DDFAF DrawProgressIcons = $8DE9C8 ItemMenu_DrawEquippedYItem = $8DEB3A ItemMenu_DrawEquippedYItem_exit = $8DECE6 ItemMenu_DrawEquipment_dungeonitems = $8DEDCC DrawEquipment = $8DED29 DrawEquipment_in_a_dungeon = $8DEDFE +RebuildHUD = $8DFA90 +RebuildHUD_update = $8DFAA5 UpdateHUDBuffer_update_item_check_arrows = $8DFB41 RenderText_DecompressAndDrawSingle = $8EF4FB DecompressFontGFX = $8EF572