From 72667063159809a5db1ba11015e362868b176fa0 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Mon, 18 Jan 2021 10:28:54 -0800 Subject: [PATCH 1/5] Make inventory count stats 16 bit. --- hudadditions.asm | 2 +- inventory.asm | 16 +++++++++++----- rupeelimit.asm | 22 ---------------------- stats.asm | 16 +++++++++------- 4 files changed, 21 insertions(+), 35 deletions(-) delete mode 100644 rupeelimit.asm diff --git a/hudadditions.asm b/hudadditions.asm index 9b78a0a..94edd3d 100644 --- a/hudadditions.asm +++ b/hudadditions.asm @@ -8,7 +8,7 @@ DrHudOverride: HudAdditions: { lda.l DRFlags : and #$0008 : beq ++ - lda $7EF423 : and #$00ff + lda $7EF423 jsr HudHexToDec4DigitCopy LDX.b $05 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+10 ; draw 100's digit LDX.b $06 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+12 ; draw 10's digit diff --git a/inventory.asm b/inventory.asm index 4214a57..269aec9 100644 --- a/inventory.asm +++ b/inventory.asm @@ -340,13 +340,19 @@ AddInventory: LDA !MULTIWORLD_RECEIVING_ITEM : CMP #$01 : BEQ ++ LDA $7EF355 : BNE + ; Check for Boots + REP #$20 LDA $7EF432 : INC : STA $7EF432 ; Increment Pre Boots Counter + SEP #$20 + LDA $7EF353 : BNE + ; Check for Mirror - LDA $7EF433 : INC : STA $7EF433 ; Increment Pre Mirror Counter + REP #$20 + LDA $7EF434 : INC : STA $7EF434 ; Increment Pre Mirror Counter + SEP #$20 + + REP #$20 LDA $7EF423 : INC : STA $7EF423 ; Increment Item Total + SEP #$20 ++ .itemCounts @@ -650,7 +656,7 @@ RTS RTS .incrementMail - LDA $7EF424 : !ADD #$40 : STA $7EF424 + LDA $7EF436 : !ADD #$40 : STA $7EF436 RTS .incrementKeyLong @@ -659,9 +665,9 @@ RTL .incrementKey PHA : PHX - LDA $7EF424 : INC : AND #$3F : TAX - LDA $7EF424 : AND #$C0 : STA $7EF424 - TXA : ORA $7EF424 : STA $7EF424 + LDA $7EF436 : INC : AND #$3F : TAX + LDA $7EF436 : AND #$C0 : STA $7EF436 + TXA : ORA $7EF436 : STA $7EF436 PLX : PLA RTS diff --git a/rupeelimit.asm b/rupeelimit.asm deleted file mode 100644 index b17f56b..0000000 --- a/rupeelimit.asm +++ /dev/null @@ -1,22 +0,0 @@ -;================================================================================ -; Four Digit Rupees -;-------------------------------------------------------------------------------- -Draw4DigitRupees: - LDA $1B : AND.w #$00FF : BEQ .outdoors ; skip if outdoors - .indoors - LDA $A0 : BNE .normal ; skip except for ganon's room - ;LDA #$246E : STA $7EC712 - ;LDA #$246F : STA $7EC714 - LDA $7EF423 : AND #$00FF - BRA .print - .outdoors - .normal - LDA $7EF362 - .print - JSL.l HexToDec - LDA $7F5004 : AND.w #$00FF : ORA.w #$2400 : STA $7EC750 - LDA $7F5005 : AND.w #$00FF : ORA.w #$2400 : STA $7EC752 - LDA $7F5006 : AND.w #$00FF : ORA.w #$2400 : STA $7EC754 - LDA $7F5007 : AND.w #$00FF : ORA.w #$2400 : STA $7EC756 -RTL -;================================================================================ \ No newline at end of file diff --git a/stats.asm b/stats.asm index b4bf998..9e2fc9c 100644 --- a/stats.asm +++ b/stats.asm @@ -16,10 +16,6 @@ ;-------------------------------------------------------------------------------- ; $7EF423 - item counter ;-------------------------------------------------------------------------------- -; $7EF424 mmkkkkkk -; m - mail counter -; k - small keys -;-------------------------------------------------------------------------------- ; $7EF425w[2] 1111 2222 3333 4444 ; 1 - lvl 1 sword bosses ; 2 - lvl 2 sword bosses @@ -53,9 +49,13 @@ ;-------------------------------------------------------------------------------- ; $7EF432 - locations before boots ;-------------------------------------------------------------------------------- -; $7EF433 - locations before mirror +; $7EF434 - locations before mirror ;-------------------------------------------------------------------------------- -; $7EF434-7EF439 - free space +; $7EF436 mmkkkkkk +; m - mail counter +; k - small keys +;-------------------------------------------------------------------------------- +; $7EF437-7EF439 - free space ;-------------------------------------------------------------------------------- ; $7EF43A - times mirrored outdoors ;-------------------------------------------------------------------------------- @@ -324,7 +324,9 @@ RTL DecrementItemCounter: PHA LDA !LOCK_STATS : BNE + + REP #$20 LDA !ITEM_TOTAL : DEC : STA !ITEM_TOTAL + SEP #$20 + PLA RTL @@ -386,7 +388,7 @@ IndoorSubtileTransitionCounter: JMP StatTransitionCounter ;-------------------------------------------------------------------------------- !CHEST_COUNTER = "$7EF442" -!MAIL_COUNTER = "$7EF424" ; mmkkkkkk +!MAIL_COUNTER = "$7EF436" ; mmkkkkkk !BOSS_KILLS = "$7F5037" !SWORD_KILLS_1 = "$7EF425" !SWORD_KILLS_2 = "$7EF426" From 356bfb3a0570005b8efb30cdd8ee4e375c6378f0 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Mon, 18 Jan 2021 11:19:31 -0800 Subject: [PATCH 2/5] Need more bits for end game stats --- stats/statConfig.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stats/statConfig.asm b/stats/statConfig.asm index c2602ae..e928aba 100755 --- a/stats/statConfig.asm +++ b/stats/statConfig.asm @@ -16,5 +16,5 @@ %AddStat($7EF453, 0, 0, 08, 3, !FAERIE_REVIVALS_X, !FAERIE_REVIVALS_Y) %AddStat($7EF444, 1, 8, 32, 4, !TOTAL_MENU_TIME_X, !TOTAL_MENU_TIME_Y) %AddStat($7F5038, 1, 0, 32, 4, !TOTAL_LAG_TIME_X, !TOTAL_LAG_TIME_Y) -%AddStat($7EF423, 0, 0, 08, 3, !COLLECTION_RATE_X, !COLLECTION_RATE_Y) +%AddStat($7EF423, 0, 0, 10, 3, !COLLECTION_RATE_X, !COLLECTION_RATE_Y) %AddStat($7EF43E, 1, 0, 32, 4, !TOTAL_TIME_X, !TOTAL_TIME_Y) \ No newline at end of file From 244b62207404e81a2e178018d6f21e28a9677d6a Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Wed, 10 Feb 2021 08:41:16 -0800 Subject: [PATCH 3/5] Move stats that were not compass related out of the former compass counters. --- inventory.asm | 10 +++++----- stats.asm | 18 +++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/inventory.asm b/inventory.asm index 269aec9..784bb6e 100644 --- a/inventory.asm +++ b/inventory.asm @@ -347,7 +347,7 @@ AddInventory: LDA $7EF353 : BNE + ; Check for Mirror REP #$20 - LDA $7EF434 : INC : STA $7EF434 ; Increment Pre Mirror Counter + LDA $7EF468 : INC : STA $7EF468 ; Increment Pre Mirror Counter SEP #$20 + REP #$20 @@ -656,7 +656,7 @@ RTS RTS .incrementMail - LDA $7EF436 : !ADD #$40 : STA $7EF436 + LDA $7EF46A : !ADD #$40 : STA $7EF46A RTS .incrementKeyLong @@ -665,9 +665,9 @@ RTL .incrementKey PHA : PHX - LDA $7EF436 : INC : AND #$3F : TAX - LDA $7EF436 : AND #$C0 : STA $7EF436 - TXA : ORA $7EF436 : STA $7EF436 + LDA $7EF46A : INC : AND #$3F : TAX + LDA $7EF46A : AND #$C0 : STA $7EF46A + TXA : ORA $7EF46A : STA $7EF46A PLX : PLA RTS diff --git a/stats.asm b/stats.asm index 9e2fc9c..c2150c1 100644 --- a/stats.asm +++ b/stats.asm @@ -47,15 +47,9 @@ ;-------------------------------------------------------------------------------- ; $7EF430w[2] - loop frame counter (high) ;-------------------------------------------------------------------------------- -; $7EF432 - locations before boots +; $7EF432w[2] - locations before boots ;-------------------------------------------------------------------------------- -; $7EF434 - locations before mirror -;-------------------------------------------------------------------------------- -; $7EF436 mmkkkkkk -; m - mail counter -; k - small keys -;-------------------------------------------------------------------------------- -; $7EF437-7EF439 - free space +; $7EF434-7EF439 - FORMER COMPASS COUNTERS. DO NOT REUSE. ;-------------------------------------------------------------------------------- ; $7EF43A - times mirrored outdoors ;-------------------------------------------------------------------------------- @@ -114,6 +108,12 @@ ;-------------------------------------------------------------------------------- ; $7EF466w[2] - mirror timestamp (high) ;-------------------------------------------------------------------------------- +; $7EF468w[2] - locations before mirror +;-------------------------------------------------------------------------------- +; $7EF46A mmkkkkkk +; m - mail counter +; k - small keys +;-------------------------------------------------------------------------------- ; $7EF4C0 - 7EF4CF - locations checked, indexed by 040C >> 1 ;-------------------------------------------------------------------------------- @@ -388,7 +388,7 @@ IndoorSubtileTransitionCounter: JMP StatTransitionCounter ;-------------------------------------------------------------------------------- !CHEST_COUNTER = "$7EF442" -!MAIL_COUNTER = "$7EF436" ; mmkkkkkk +!MAIL_COUNTER = "$7EF46A" ; mmkkkkkk !BOSS_KILLS = "$7F5037" !SWORD_KILLS_1 = "$7EF425" !SWORD_KILLS_2 = "$7EF426" From d3af10649c2bcc35e5b5271f990dbfae554f3276 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Wed, 10 Feb 2021 09:25:11 -0800 Subject: [PATCH 4/5] Dungeon completion flags, that indicate for which dungeons the prize was collected from. --- inventory.asm | 29 +++++++++++++++++++++++++++++ stats.asm | 3 +++ 2 files changed, 32 insertions(+) diff --git a/inventory.asm b/inventory.asm index 784bb6e..73802f6 100644 --- a/inventory.asm +++ b/inventory.asm @@ -415,6 +415,7 @@ AddInventory: BRL .done + CPY.b #$20 : BNE + ; Crystal JSR .incrementCrystal + JSR .setDungeonCompletion BRL .done + CPY.b #$21 : BNE + ; Bug Net JSR .incrementY @@ -457,6 +458,7 @@ AddInventory: + CPY.b #$37 : !BLT + ; Items $37 - $39 - Pendants CPY.b #$3A : !BGE + JSR .incrementPendant + JSR .setDungeonCompletion BRL .done + CPY.b #$3A : !BLT + ; Items $3A - $3B - Bow & Silver Arrows CPY.b #$3C : !BGE + @@ -715,6 +717,33 @@ RTL %BottomHalf($7EF426) + RTS + +.setDungeonCompletion + LDA $040C + CMP #$FF : BEQ + + LSR : AND #$0F : CMP #$08 : !BGE ++ + JSR .valueShift + ORA $7EF46B : STA $7EF46B + BRA + + ++ + !SUB #$08 + JSR .valueShift + BIT.b #$C0 : BEQ +++ : LDA.b #$C0 : +++ ; Make Hyrule Castle / Sewers Count for Both + ORA $7EF46C : STA $7EF46C + + +RTS + +.valueShift + PHX + TAX : LDA.b #$01 + - + CPX #$00 : BEQ + + ASL + DEX + BRA - + + + PLX +RTS ;-------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------- diff --git a/stats.asm b/stats.asm index c2150c1..0f266a6 100644 --- a/stats.asm +++ b/stats.asm @@ -114,6 +114,8 @@ ; m - mail counter ; k - small keys ;-------------------------------------------------------------------------------- +; $7EF46Bw[2] - Dungeon prizes collected by dungeon location. +;-------------------------------------------------------------------------------- ; $7EF4C0 - 7EF4CF - locations checked, indexed by 040C >> 1 ;-------------------------------------------------------------------------------- @@ -387,6 +389,7 @@ IndoorSubtileTransitionCounter: STZ $0642 JMP StatTransitionCounter ;-------------------------------------------------------------------------------- +!DUNGEON_PRIZE_COLLECTED = "$7EF46B" !CHEST_COUNTER = "$7EF442" !MAIL_COUNTER = "$7EF46A" ; mmkkkkkk !BOSS_KILLS = "$7F5037" From a83608366c5395ae47d7056077734555e6b6ad98 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Fri, 12 Feb 2021 07:48:09 -0800 Subject: [PATCH 5/5] document full usage of 7EF420-7EF4FF in stats.asm --- stats.asm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/stats.asm b/stats.asm index 0f266a6..e854827 100644 --- a/stats.asm +++ b/stats.asm @@ -116,8 +116,29 @@ ;-------------------------------------------------------------------------------- ; $7EF46Bw[2] - Dungeon prizes collected by dungeon location. ;-------------------------------------------------------------------------------- +; $7EF46D - 7EF49F - Free space +;-------------------------------------------------------------------------------- +; $7EF4A0 - 7EF4A7 - Service Request +;-------------------------------------------------------------------------------- +; $7EF4A8 - 7EF4AF - Free space +;-------------------------------------------------------------------------------- +; $7EF4B0 - 7EF4BF - Absorbed keys, indexed by 040C >> 1 +;-------------------------------------------------------------------------------- ; $7EF4C0 - 7EF4CF - locations checked, indexed by 040C >> 1 ;-------------------------------------------------------------------------------- +; $7EF4D0 - 7EF4DA - Multiworld controls +;-------------------------------------------------------------------------------- +; $7EF4DB - 7EF4DF - Free space +;-------------------------------------------------------------------------------- +; $7EF4E0 - 7EF4EF - Collected Keys, indexed by 040C >> 1 +;-------------------------------------------------------------------------------- +; $7EF4F0 - Fresh File Marker. +;-------------------------------------------------------------------------------- +; $7EF4F1 - 7EF4FD - Free space +;-------------------------------------------------------------------------------- +; 7EF4FEw[2] - Save Checksum +;-------------------------------------------------------------------------------- + ;-------------------------------------------------------------------------------- !LOCK_STATS = "$7EF443"