From c2e5fca01ce95ce98b80722c17e0e7283eb2ad8d Mon Sep 17 00:00:00 2001 From: Karkat Date: Fri, 15 Sep 2017 23:59:52 -0400 Subject: [PATCH] let's dev sep 15th 2017 added logic to synchronize dungeon key stats moved keysanity table init to menu init so it comes in pre-rendered --- LTTP_RND_GeneralBugfixes.asm | 2 +- clock.asm | 1 - darkworldspawn.asm | 3 +- hooks.asm | 17 +++++++---- pendantcrystalhud.asm | 58 ++++++++++++++++++++++++++++-------- stats.asm | 8 ++++- tables.asm | 2 +- timer.asm | 1 - 8 files changed, 67 insertions(+), 25 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 665c001..f2e696d 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, #$17, #$09, #$10 ; year/month/day +db #$20, #$17, #$09, #$15 ; year/month/day ;================================================================================ diff --git a/clock.asm b/clock.asm index 0481117..8fa0c3e 100644 --- a/clock.asm +++ b/clock.asm @@ -65,7 +65,6 @@ endmacro ;-------------------------------------------------------------------------------- Clock_Test: - LDA $FFFFFF JSL.l Clock_Init JSL.l Clock_IsSupported RTL diff --git a/darkworldspawn.asm b/darkworldspawn.asm index ec98951..a2d3952 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -17,7 +17,6 @@ RTL ;-------------------------------------------------------------------------------- DarkWorldFlagSet: PHA - STA $FFFFFF LDA !FORCE_PYRAMID : AND.b #$08 : BNE .pyramid LDA Bugfix_PreAgaDWDungeonDeathToFakeDW : BEQ + @@ -46,7 +45,7 @@ RTL RTL ;-------------------------------------------------------------------------------- SetDeathWorldChecked: - PHA : STA $FFFFFF + PHA LDA $1B : BEQ + ; skip this for indoors LDA $040C : CMP #$FF : BNE .done ; unless it's a cave + diff --git a/hooks.asm b/hooks.asm index 0c20949..57a95a1 100644 --- a/hooks.asm +++ b/hooks.asm @@ -92,7 +92,8 @@ NOP ;org $05FC7E ; <- 2FC7E - sprite_dash_item.asm : 118 (LDA $7EF36F : INC A : STA $7EF36F) ;JSL.l IncrementSmallKeys ;-------------------------------------------------------------------------------- -org $06D18D ; <- 3518D - sprite_absorbable.asm : 274 (LDA $7EF36F : INC A : STA $7EF36F) +;org $06D18D ; <- 3518D - sprite_absorbable.asm : 274 (LDA $7EF36F : INC A : STA $7EF36F) +org $06D192 ; <- 35192 - sprite_absorbable.asm : 274 (STA $7EF36F) JSL.l IncrementSmallKeys ;-------------------------------------------------------------------------------- org $00F945 ; <- 7945 - Bank00.asm : 8557 (JSL SavePalaceDeaths) @@ -886,7 +887,7 @@ org $0DFC37 ; <- 6FC37 - headsup_display.asm : 828 (LDA.w #$28F7) JSL.l DrawMagicHeader NOP #17 ;-------------------------------------------------------------------------------- -org $0DFB29 ; <- - headsup_display.asm : 688 (LDA.b #$86 : STA $7EC71E) +org $0DFB29 ; <- headsup_display.asm : 688 (LDA.b #$86 : STA $7EC71E) ;LDA.b #$86 : STA $7EC720 ; nudge silver arrow right - remember to update this in newit ;LDA.b #$24 : STA $7EC721 ;LDA.b #$87 : STA $7EC722 @@ -895,15 +896,21 @@ JSL.l DrawHUDSilverArrows : BRA + NOP #18 + ;-------------------------------------------------------------------------------- +org $01CF67 ; <- CF67 - Bank01.asm : 11625 (STA $7EF36F) +JSL.l DecrementSmallKeys +;-------------------------------------------------------------------------------- +org $0DED04 ; <- 6ED04 - equipment.asm : 1963 (REP #$30) +JSL.l DrawHUDDungeonItems +;-------------------------------------------------------------------------------- ; Insert our version of the hud tilemap org $0DFA96 ; <- 6FA96 - headsup_display.asm : 626 (LDX.w #.hud_tilemap) LDX.w #HUD_TileMap org $0DFA9C ; <- 6FA9C - headsup_display.asm : 629 (MVN $0D, $7E ; $Transfer 0x014A bytes from $6FE77 -> $7EC700) MVN $207E ;-------------------------------------------------------------------------------- -org $0DE48E ; <- 6E48E - equipment.asm : 1233 (LDA.w #$11CE : STA $00) - HOOK HERE TO DRAW ON THE ITEM SCREEN -JSL.l DrawHUDDungeonItems -NOP +;org $0DE48E ; <- 6E48E - equipment.asm : 1233 (LDA.w #$11CE : STA $00) - HOOK HERE TO DRAW ON THE ITEM SCREEN +;JSL.l DrawHUDDungeonItems +;NOP ;-------------------------------------------------------------------------------- org $0DFB1F ; 6FB1F - headsup_display.asm : 681 (LDA $7EF340 : BEQ .hastNoBow) JSL.l CheckHUDSilverArrows diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 809ba4d..eb9234d 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -140,11 +140,46 @@ ShowDungeonItems: LDA $040C : AND.w #$00FF : CMP.w #$00FF ; original logic RTL ;-------------------------------------------------------------------------------- +UpdateKeys: + PHX : PHP + SEP #$30 ; set 8-bit accumulator & index registers + LDA $040C : CMP.b $1F : !BLT .skip + + LSR : TAX ; get dungeon index and store to X + + LDA $7EF36F ; load current key count + STA $7EF37C, X ; save to main counts + + CPX.b #$00 : BNE + + STA $7EF37D ; copy HC to sewers + + : CPX.b #$01 : BNE + + STA $7EF37C ; copy sewers to HC + + + .skip + PLP : PLX + JSL.l PostItemGet +RTL +;$37C = Sewer Passage +;$37D = Hyrule Castle +;$37E = Eastern Palace +;$37F = Desert Palace +;$380 = Hyrule Castle 2 +;$381 = Swamp Palace +;$382 = Dark Palace +;$383 = Misery Mire +;$384 = Skull Woods +;$385 = Ice Palace +;$386 = Tower of Hera +;$387 = Gargoyle's Domain +;$388 = Turtle Rock +;$389 = Ganon's Tower +;-------------------------------------------------------------------------------- DrawHUDDungeonItems: - LDA HUDDundeonItems : BNE + - LDA.w #$11CE : STA $00 ; thing we wrote over - RTL - + + LDA.l HUDDungeonItems : BNE + : RTL : + + + PHP + REP #$30 ; set 16-bit accumulator & index registers + ; dungeon names LDA.w #$2D50 : STA $1646 ; sewers LDA.w #$2D54 : STA $1648 ; Agahnims Tower @@ -170,7 +205,7 @@ DrawHUDDungeonItems: INX #2 : CPX.w #$0020 : BCC - LDA !HUD_FLAG : AND.w #$0020 : BEQ + : BRL +++ : + - LDA HUDDundeonItems : AND.w #$0001 : BNE + : BRL ++ : + + LDA HUDDungeonItems : AND.w #$0001 : BNE + : BRL ++ : + LDA.w #$2810 : STA $1684 ; small keys icon SEP #$20 ; set 8-bit accumulator ; Small Keys @@ -195,7 +230,7 @@ DrawHUDDungeonItems: ++ ; Big Keys - LDA HUDDundeonItems : AND.w #$0002 : BNE + : BRL ++ : + + LDA HUDDungeonItems : AND.w #$0002 : BNE + : BRL ++ : + LDA.w #$2811 : STA $16C4 ; big key icon LDA $7EF367 : AND.w #$0080 : BEQ + ; sewers LDA.w #$2826 : STA $16C6 @@ -242,7 +277,7 @@ DrawHUDDungeonItems: +++ LDA !HUD_FLAG : AND.w #$0020 : BNE + : BRL +++ : + ; Maps - LDA HUDDundeonItems : AND.w #$0004 : BNE + : BRL ++ : + + LDA HUDDungeonItems : AND.w #$0004 : BNE + : BRL ++ : + LDA.w #$2821 : STA $1684 ; map icon LDA $7EF369 : AND.w #$0080 : BEQ + ; sewers LDA.w #$2826 : STA $1686 @@ -286,7 +321,7 @@ DrawHUDDungeonItems: ++ ; Compasses - LDA HUDDundeonItems : AND.w #$0008 : BNE + : BRL ++ : + + LDA HUDDungeonItems : AND.w #$0008 : BNE + : BRL ++ : + LDA.w #$2C20 : STA $16C4 ; compass icon LDA $7EF365 : AND.w #$0080 : BEQ + ; sewers LDA.w #$2C26 : STA $16C6 @@ -327,11 +362,8 @@ DrawHUDDungeonItems: LDA $7EF364 : AND.w #$0004 : BEQ + ; Ganon's Tower LDA.w #$2C26 : STA $16E4 + - ++ - - +++ - - LDA.w #$11CE : STA $00 ; thing we wrote over + ++ : +++ + PLP RTL ;-------------------------------------------------------------------------------- ;================================================================================ diff --git a/stats.asm b/stats.asm index 3b99f58..1e5343d 100644 --- a/stats.asm +++ b/stats.asm @@ -194,10 +194,16 @@ IncrementFlute: RTL ;-------------------------------------------------------------------------------- IncrementSmallKeys: + STA $7EF36F ; thing we wrote over, write small key count LDA !LOCK_STATS : BNE + JSL AddInventory_incrementKeyLong + - LDA $7EF36F ; thing we wrote over, read small key count + JSL.l UpdateKeys +RTL +;-------------------------------------------------------------------------------- +DecrementSmallKeys: + STA $7EF36F ; thing we wrote over, write small key count + JSL.l UpdateKeys RTL ;-------------------------------------------------------------------------------- IncrementAgahnim2Sword: diff --git a/tables.asm b/tables.asm index f51ee19..772ded7 100644 --- a/tables.asm +++ b/tables.asm @@ -168,7 +168,7 @@ AllowHammerTablets: db #$00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- org $308045 ; PC 0x180045 -HUDDundeonItems: +HUDDungeonItems: db #$FF ; display ----dcba a: Small Keys, b: Big Key, c: Map, d: Compass ;-------------------------------------------------------------------------------- org $308080 ; PC 0x180080 diff --git a/timer.asm b/timer.asm index eee9287..970acf0 100644 --- a/timer.asm +++ b/timer.asm @@ -48,7 +48,6 @@ macro Blt32(value1,value2) endmacro ;-------------------------------------------------------------------------------- CalculateTimer: - LDA $FFFFFF LDA.w #$0000 STA.l !CLOCK_HOURS ; clear digit storage STA.l !CLOCK_HOURS+2