Merge branch '16_bit_collection_rate' of https://github.com/CaitSith2/z3randomizer into InvCountMerge

This commit is contained in:
aerinon
2021-02-13 20:44:25 -07:00
5 changed files with 77 additions and 38 deletions

View File

@@ -8,7 +8,7 @@ DrHudOverride:
HudAdditions: HudAdditions:
{ {
lda.l DRFlags : and #$0008 : beq ++ lda.l DRFlags : and #$0008 : beq ++
lda $7EF423 : and #$00ff lda $7EF423
jsr HudHexToDec4DigitCopy jsr HudHexToDec4DigitCopy
LDX.b $05 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+10 ; draw 100's digit 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 LDX.b $06 : TXA : ORA.w #$2400 : STA !GOAL_DRAW_ADDRESS+12 ; draw 10's digit

View File

@@ -340,13 +340,19 @@ AddInventory:
LDA !MULTIWORLD_RECEIVING_ITEM : CMP #$01 : BEQ ++ LDA !MULTIWORLD_RECEIVING_ITEM : CMP #$01 : BEQ ++
LDA $7EF355 : BNE + ; Check for Boots LDA $7EF355 : BNE + ; Check for Boots
REP #$20
LDA $7EF432 : INC : STA $7EF432 ; Increment Pre Boots Counter LDA $7EF432 : INC : STA $7EF432 ; Increment Pre Boots Counter
SEP #$20
+ +
LDA $7EF353 : BNE + ; Check for Mirror LDA $7EF353 : BNE + ; Check for Mirror
LDA $7EF433 : INC : STA $7EF433 ; Increment Pre Mirror Counter REP #$20
LDA $7EF468 : INC : STA $7EF468 ; Increment Pre Mirror Counter
SEP #$20
+ +
REP #$20
LDA $7EF423 : INC : STA $7EF423 ; Increment Item Total LDA $7EF423 : INC : STA $7EF423 ; Increment Item Total
SEP #$20
++ ++
.itemCounts .itemCounts
@@ -409,6 +415,7 @@ AddInventory:
BRL .done BRL .done
+ CPY.b #$20 : BNE + ; Crystal + CPY.b #$20 : BNE + ; Crystal
JSR .incrementCrystal JSR .incrementCrystal
JSR .setDungeonCompletion
BRL .done BRL .done
+ CPY.b #$21 : BNE + ; Bug Net + CPY.b #$21 : BNE + ; Bug Net
JSR .incrementY JSR .incrementY
@@ -451,6 +458,7 @@ AddInventory:
+ CPY.b #$37 : !BLT + ; Items $37 - $39 - Pendants + CPY.b #$37 : !BLT + ; Items $37 - $39 - Pendants
CPY.b #$3A : !BGE + CPY.b #$3A : !BGE +
JSR .incrementPendant JSR .incrementPendant
JSR .setDungeonCompletion
BRL .done BRL .done
+ CPY.b #$3A : !BLT + ; Items $3A - $3B - Bow & Silver Arrows + CPY.b #$3A : !BLT + ; Items $3A - $3B - Bow & Silver Arrows
CPY.b #$3C : !BGE + CPY.b #$3C : !BGE +
@@ -650,7 +658,7 @@ RTS
RTS RTS
.incrementMail .incrementMail
LDA $7EF424 : !ADD #$40 : STA $7EF424 LDA $7EF46A : !ADD #$40 : STA $7EF46A
RTS RTS
.incrementKeyLong .incrementKeyLong
@@ -659,9 +667,9 @@ RTL
.incrementKey .incrementKey
PHA : PHX PHA : PHX
LDA $7EF424 : INC : AND #$3F : TAX LDA $7EF46A : INC : AND #$3F : TAX
LDA $7EF424 : AND #$C0 : STA $7EF424 LDA $7EF46A : AND #$C0 : STA $7EF46A
TXA : ORA $7EF424 : STA $7EF424 TXA : ORA $7EF46A : STA $7EF46A
PLX : PLA PLX : PLA
RTS RTS
@@ -709,6 +717,33 @@ RTL
%BottomHalf($7EF426) %BottomHalf($7EF426)
+ +
RTS 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
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -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
;================================================================================

View File

@@ -16,10 +16,6 @@
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF423 - item counter ; $7EF423 - item counter
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF424 mmkkkkkk
; m - mail counter
; k - small keys
;--------------------------------------------------------------------------------
; $7EF425w[2] 1111 2222 3333 4444 ; $7EF425w[2] 1111 2222 3333 4444
; 1 - lvl 1 sword bosses ; 1 - lvl 1 sword bosses
; 2 - lvl 2 sword bosses ; 2 - lvl 2 sword bosses
@@ -51,11 +47,9 @@
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF430w[2] - loop frame counter (high) ; $7EF430w[2] - loop frame counter (high)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF432 - locations before boots ; $7EF432w[2] - locations before boots
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF433 - locations before mirror ; $7EF434-7EF439 - FORMER COMPASS COUNTERS. DO NOT REUSE.
;--------------------------------------------------------------------------------
; $7EF434-7EF439 - free space
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF43A - times mirrored outdoors ; $7EF43A - times mirrored outdoors
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -114,8 +108,37 @@
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF466w[2] - mirror timestamp (high) ; $7EF466w[2] - mirror timestamp (high)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF468w[2] - locations before mirror
;--------------------------------------------------------------------------------
; $7EF46A mmkkkkkk
; m - mail counter
; k - small keys
;--------------------------------------------------------------------------------
; $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 ; $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" !LOCK_STATS = "$7EF443"
@@ -324,7 +347,9 @@ RTL
DecrementItemCounter: DecrementItemCounter:
PHA PHA
LDA !LOCK_STATS : BNE + LDA !LOCK_STATS : BNE +
REP #$20
LDA !ITEM_TOTAL : DEC : STA !ITEM_TOTAL LDA !ITEM_TOTAL : DEC : STA !ITEM_TOTAL
SEP #$20
+ +
PLA PLA
RTL RTL
@@ -385,8 +410,9 @@ IndoorSubtileTransitionCounter:
STZ $0642 STZ $0642
JMP StatTransitionCounter JMP StatTransitionCounter
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!DUNGEON_PRIZE_COLLECTED = "$7EF46B"
!CHEST_COUNTER = "$7EF442" !CHEST_COUNTER = "$7EF442"
!MAIL_COUNTER = "$7EF424" ; mmkkkkkk !MAIL_COUNTER = "$7EF46A" ; mmkkkkkk
!BOSS_KILLS = "$7F5037" !BOSS_KILLS = "$7F5037"
!SWORD_KILLS_1 = "$7EF425" !SWORD_KILLS_1 = "$7EF425"
!SWORD_KILLS_2 = "$7EF426" !SWORD_KILLS_2 = "$7EF426"

View File

@@ -16,5 +16,5 @@
%AddStat($7EF453, 0, 0, 08, 3, !FAERIE_REVIVALS_X, !FAERIE_REVIVALS_Y) %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($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($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) %AddStat($7EF43E, 1, 0, 32, 4, !TOTAL_TIME_X, !TOTAL_TIME_Y)