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:
{
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

View File

@@ -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 $7EF468 : INC : STA $7EF468 ; Increment Pre Mirror Counter
SEP #$20
+
REP #$20
LDA $7EF423 : INC : STA $7EF423 ; Increment Item Total
SEP #$20
++
.itemCounts
@@ -409,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
@@ -451,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 +
@@ -650,7 +658,7 @@ RTS
RTS
.incrementMail
LDA $7EF424 : !ADD #$40 : STA $7EF424
LDA $7EF46A : !ADD #$40 : STA $7EF46A
RTS
.incrementKeyLong
@@ -659,9 +667,9 @@ RTL
.incrementKey
PHA : PHX
LDA $7EF424 : INC : AND #$3F : TAX
LDA $7EF424 : AND #$C0 : STA $7EF424
TXA : ORA $7EF424 : STA $7EF424
LDA $7EF46A : INC : AND #$3F : TAX
LDA $7EF46A : AND #$C0 : STA $7EF46A
TXA : ORA $7EF46A : STA $7EF46A
PLX : PLA
RTS
@@ -709,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
;--------------------------------------------------------------------------------
;--------------------------------------------------------------------------------

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

View File

@@ -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)