Move compass counts to ROM and trackable RAM

Add flag if compass HUD count has been displayed in SRAM
Move low hearts fix from tables.asm to bugfixes.asm
Rearrange dungeon stats in SRAM to match door rando ROM
This commit is contained in:
cassidy
2021-12-14 22:52:20 -05:00
parent 6c9b33ed93
commit c8ea2c6dce
11 changed files with 241 additions and 135 deletions

View File

@@ -80,6 +80,7 @@ incsrc treekid.asm
incsrc spriteswap.asm incsrc spriteswap.asm
incsrc hashalphabethooks.asm incsrc hashalphabethooks.asm
incsrc sharedplayerpalettefix.asm incsrc sharedplayerpalettefix.asm
incsrc ram.asm
incsrc sram.asm incsrc sram.asm
;org $208000 ; bank #$20 ;org $208000 ; bank #$20

View File

@@ -214,3 +214,9 @@ FixJingleGlitch:
.exit .exit
RTL RTL
;--------------------------------------------------------------------------------
; Fix spawning with more hearts than capacity when less than 3 heart containers
pushpc
org $09F4AC ; <- module_death.asm:331
db $08, $08, $10
pullpc

View File

@@ -5,11 +5,11 @@
; HexToDec when drawing the "??/XX" item counter ; HexToDec when drawing the "??/XX" item counter
; %DrawConstantNumber(1,4) draws 14 ; %DrawConstantNumber(1,4) draws 14
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
macro DrawConstantNumber(digit1,digit2) ;macro DrawConstantNumber(digit1,digit2)
LDA.w #$2490+<digit1> : STA $7EC79A ; LDA.w #$2490+<digit1> : STA $7EC79A
LDA.w #$2490+<digit2> : STA $7EC79C ; LDA.w #$2490+<digit2> : STA $7EC79C
SEP #$20 ; SEP #$20
endmacro ;endmacro
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
DrawDungeonCompassCounts: DrawDungeonCompassCounts:
@@ -27,12 +27,23 @@ DrawDungeonCompassCounts:
BEQ .done ; skip if we don't have compass BEQ .done ; skip if we don't have compass
++ ++
JMP (CompassCountDungeonHandlers, X) : .return_spot LDA $040C : LSR
BNE +
; we switch to 8-bit A in the jump before this INC
+
TAX : LDA.l CompassTotalsWRAM, X : AND #$00FF
SEP #$20
JSR HudHexToDec2Digit JSR HudHexToDec2Digit
REP #$20 REP #$20
PHX
LDX.b $06 : TXA : ORA #$2400 : STA $7EC79A
LDX.b $07 : TXA : ORA #$2400 : STA $7EC79C
PLX
LDA DungeonLocationsChecked-1, X : AND #$00FF
SEP #$20
JSR HudHexToDec2Digit
REP #$20
LDX.b $06 : TXA : ORA #$2400 : STA $7EC794 ; Draw the item count LDX.b $06 : TXA : ORA #$2400 : STA $7EC794 ; Draw the item count
LDX.b $07 : TXA : ORA #$2400 : STA $7EC796 LDX.b $07 : TXA : ORA #$2400 : STA $7EC796
@@ -45,76 +56,76 @@ DungeonItemMasks: ; these are dungeon correlations to $7EF364 - $7EF369 so it kn
dw $8000, $4000, $2000, $1000, $0800, $0400, $0200, $0100 dw $8000, $4000, $2000, $1000, $0800, $0400, $0200, $0100
dw $0080, $0040, $0020, $0010, $0008, $0004 dw $0080, $0040, $0020, $0010, $0008, $0004
CompassCountDungeonHandlers: ; pointers to functions that handle dungeon-specific code ;CompassCountDungeonHandlers: ; pointers to functions that handle dungeon-specific code
dw CompassCount_Escape, CompassCount_Escape ; (hyrule castle, sewers) ; dw CompassCount_Escape, CompassCount_Escape ; (hyrule castle, sewers)
dw CompassCount_Eastern, CompassCount_Desert, CompassCount_Agah ; dw CompassCount_Eastern, CompassCount_Desert, CompassCount_Agah
dw CompassCount_Swamp, CompassCount_PoD, CompassCount_Mire ; dw CompassCount_Swamp, CompassCount_PoD, CompassCount_Mire
dw CompassCount_Skull, CompassCount_Ice, CompassCount_Hera ; dw CompassCount_Skull, CompassCount_Ice, CompassCount_Hera
dw CompassCount_Thieves, CompassCount_Trock, CompassCount_Gt ; dw CompassCount_Thieves, CompassCount_Trock, CompassCount_Gt
} ;}
;
CompassCount_Escape: ;CompassCount_Escape:
%DrawConstantNumber(0,8) ; %DrawConstantNumber(0,8)
LDA SewersLocations ; LDA SewersLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Eastern: ;CompassCount_Eastern:
%DrawConstantNumber(0,6) ; %DrawConstantNumber(0,6)
LDA EPLocations ; LDA EPLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Desert: ;CompassCount_Desert:
%DrawConstantNumber(0,6) ; %DrawConstantNumber(0,6)
LDA DPLocations ; LDA DPLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Agah: ;CompassCount_Agah:
%DrawConstantNumber(0,2) ; %DrawConstantNumber(0,2)
LDA CTLocations ; LDA CTLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Swamp: ;CompassCount_Swamp:
%DrawConstantNumber(1,0) ; %DrawConstantNumber(1,0)
LDA SPLocations ; LDA SPLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_PoD: ;CompassCount_PoD:
%DrawConstantNumber(1,4) ; %DrawConstantNumber(1,4)
LDA PDLocations ; LDA PDLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Mire: ;CompassCount_Mire:
%DrawConstantNumber(0,8) ; %DrawConstantNumber(0,8)
LDA MMLocations ; LDA MMLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Skull: ;CompassCount_Skull:
%DrawConstantNumber(0,8) ; %DrawConstantNumber(0,8)
LDA SWLocations ; LDA SWLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Ice: ;CompassCount_Ice:
%DrawConstantNumber(0,8) ; %DrawConstantNumber(0,8)
LDA IPLocations ; LDA IPLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Hera: ;CompassCount_Hera:
%DrawConstantNumber(0,6) ; %DrawConstantNumber(0,6)
LDA THLocations ; LDA THLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Thieves: ;CompassCount_Thieves:
%DrawConstantNumber(0,8) ; %DrawConstantNumber(0,8)
LDA TTLocations ; LDA TTLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Trock: ;CompassCount_Trock:
%DrawConstantNumber(1,2) ; %DrawConstantNumber(1,2)
LDA TRLocations ; LDA TRLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;
CompassCount_Gt: ;CompassCount_Gt:
%DrawConstantNumber(2,7) ; %DrawConstantNumber(2,7)
LDA GTLocations ; LDA GTLocations
JMP DrawDungeonCompassCounts_return_spot ; JMP DrawDungeonCompassCounts_return_spot
;

View File

@@ -21,9 +21,10 @@ OnDrawHud:
JSL.l PollService JSL.l PollService
JML.l ReturnFromOnDrawHud JML.l ReturnFromOnDrawHud
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;OnDungeonEntrance: OnDungeonEntrance:
; STA $7EC172 ; thing we wrote over STA $7EC172 ; thing we wrote over
;RTL JSL MaybeFlagCompassTotalEntrance
RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
OnPlayerDead: OnPlayerDead:
PHA PHA

View File

@@ -41,8 +41,8 @@ ReturnCheckZSNES:
;================================================================================ ;================================================================================
; Dungeon Entrance Hook (works, but not needed at the moment) ; Dungeon Entrance Hook (works, but not needed at the moment)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;org $02D8C7 ; <- 158C7 - Bank02.asm : 10981 (STA $7EC172) org $02D8C7 ; <- 158C7 - Bank02.asm : 10981 (STA $7EC172)
;JSL.l OnDungeonEntrance JSL.l OnDungeonEntrance
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;================================================================================ ;================================================================================

View File

@@ -67,5 +67,15 @@ Init_PostRAMClear:
JSL MSUInit JSL MSUInit
JSL InitRNGPointerTable JSL InitRNGPointerTable
JSR InitCompassTotalsRAM
JML $00D463 ; The original target of the jump table that we hijacked JML $00D463 ; The original target of the jump table that we hijacked
;--------------------------------------------------------------------------------
InitCompassTotalsRAM:
LDX #$00
-
LDA CompassTotalsROM, X : STA CompassTotalsWRAM, X
INX
CPX #$0F : !BLT -
RTS

View File

@@ -196,7 +196,6 @@ FullInventoryExternal:
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
AddInventory: AddInventory:
PHA : PHX : PHP PHA : PHX : PHP
PHA : LDA DummyValue : PLA
CPY.b #$0C : BNE + ; Blue Boomerang CPY.b #$0C : BNE + ; Blue Boomerang
LDA InventoryTracking : ORA #$80 : STA InventoryTracking LDA InventoryTracking : ORA #$80 : STA InventoryTracking
JMP .incrementCounts JMP .incrementCounts
@@ -434,6 +433,7 @@ AddInventory:
JSR .incrementKey JSR .incrementKey
JMP .done JMP .done
+ CPY.b #$25 : BNE + ; Compass + CPY.b #$25 : BNE + ; Compass
JSL MaybeFlagCompassTotalPickup
JSR .incrementCompass JSR .incrementCompass
JMP .done JMP .done
+ CPY.b #$26 : BNE + ; Liar Heart (Container) + CPY.b #$26 : BNE + ; Liar Heart (Container)
@@ -546,6 +546,7 @@ AddInventory:
JMP .done JMP .done
+ CPY.b #$80 : !BLT + ; Items $80 - $8F - Free Compasses + CPY.b #$80 : !BLT + ; Items $80 - $8F - Free Compasses
CPY.b #$90 : !BGE + CPY.b #$90 : !BGE +
JSL MaybeFlagCompassTotalPickup
JSR .incrementCompass JSR .incrementCompass
JMP .done JMP .done
+ CPY.b #$90 : !BLT + ; Items $90 - $9F - Free Big Keys + CPY.b #$90 : !BLT + ; Items $90 - $9F - Free Big Keys

View File

@@ -1120,3 +1120,49 @@ ChestPrep:
SEC SEC
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; Set a flag in SRAM if we pick up a compass in its own dungeon with HUD compass
; counts on
MaybeFlagCompassTotalPickup:
LDA CompassMode : BEQ .done
LDA $040C : CMP #$FF : BEQ .done
LSR : STA $04 : LDA #$0F : !SUB $04 ; Compute flag "index"
CPY #$25 : BEQ .setFlag ; Set flag if it's a compass for this dungeon
STA $04
TYA : AND #$0F : CMP $04 : BNE .done ; Check if compass is for this dungeon
.setFlag
CMP #$08 : !BGE ++
%ValueShift()
ORA CompassCountDisplay : STA CompassCountDisplay
BRA .done
++
!SUB #$08
%ValueShift()
BIT.b #$C0 : BEQ + : LDA.b #$C0 : + ; Make Hyrule Castle / Sewers Count for Both
ORA CompassCountDisplay+1 : STA CompassCountDisplay+1
.done
RTL
;--------------------------------------------------------------------------------
; Set the compass count display flag if we're entering a dungeon and alerady have
; that compass
MaybeFlagCompassTotalEntrance:
LDX $040C : CPX #$FF : BEQ .done ; Skip if we're not entering dungeon
LDA CompassMode : BEQ .done ; Skip if we're not showing compass counts
CMP.w #$0002 : BEQ .countShown
LDA CompassField : AND.l DungeonItemMasks, X : BEQ .done ; skip if we don't have compass
.countShown
SEP #$20
TXA : LSR : STA.b $04 : LDA.b #$0F : !SUB $04 ; Compute flag "index"
CMP #$08 : !BGE ++
%ValueShift()
ORA CompassCountDisplay : STA CompassCountDisplay
REP #$20
BRA .done
++
!SUB #$08
%ValueShift()
BIT.b #$C0 : BEQ + : LDA.b #$C0 : + ; Make Hyrule Castle / Sewers Count for Both
ORA CompassCountDisplay+1 : STA CompassCountDisplay+1
REP #$20
.done
RTL
;--------------------------------------------------------------------------------

18
ram.asm Normal file
View File

@@ -0,0 +1,18 @@
;================================================================================
; RAM Labels & Assertions
;--------------------------------------------------------------------------------
; Labels for values in WRAM and assertions that ensure they're correct and
; at the expected addresses. All values larger than one byte are little endian.
;--------------------------------------------------------------------------------
; Placeholder and for compass item max count allocations, still WIP
;--------------------------------------------------------------------------------
CompassTotalsWRAM = $7F5410
;================================================================================
; RAM Assertions
;--------------------------------------------------------------------------------
macro assertRAM(label, address)
assert <label> = <address>, "<label> labeled at incorrect address."
endmacro
%assertRAM(CompassTotalsWRAM, $7F5410)

View File

@@ -172,10 +172,11 @@ BowTracking: skip 2 ; b s p - - - - - (bitfield)
; The front end writes two distinct progressive bow items. p ; The front end writes two distinct progressive bow items. p
; indicates whether the "second" has been found independent of ; indicates whether the "second" has been found independent of
; the first ; the first
ItemLimitCounts: skip 24 ; Keeps track of limited non-progressive items such as lamp. ItemLimitCounts: skip 16 ; Keeps track of limited non-progressive items such as lamp.
; See: ItemSubstitutionRules in tables.asm ; See: ItemSubstitutionRules in tables.asm
; Right now this is only used for three items but extra space is ; Right now this is only used for three items but extra space is
skip 29 ; reserved ; reserved
skip 37 ; Unused
ProgressIndicator: skip 1 ; $00 = Pre-Uncle | $01 = Post-Uncle item | $02 = Zelda Rescued ProgressIndicator: skip 1 ; $00 = Pre-Uncle | $01 = Post-Uncle item | $02 = Zelda Rescued
; $03 = Agahnim 1 defeated ; $03 = Agahnim 1 defeated
; $04 and above don't do anything. $00-$02 used in standard mode ; $04 and above don't do anything. $00-$02 used in standard mode
@@ -214,7 +215,15 @@ skip 28 ; Unused
GameCounter: skip 2 ; Number of deaths and save + quits (16-bit integer) GameCounter: skip 2 ; Number of deaths and save + quits (16-bit integer)
PostGameCounter: skip 2 ; Initialized to $FFFF, replaced with GameCounter on goal completion PostGameCounter: skip 2 ; Initialized to $FFFF, replaced with GameCounter on goal completion
; Number is displayed on file select when not $FFFF. Max 999 (16-bit integer) ; Number is displayed on file select when not $FFFF. Max 999 (16-bit integer)
skip 13 ; CompassCountDisplay: skip 2 ; Compass count display flags (bitfield)
; Sets a flag if the total item count has been displayed on HUD
; Low byte: w i h b t g - -
; w = Skull Woods | i = Ice Palace | h = Hera | b = Thieves' Town
; t = Turtle Rock | g = Ganon's Tower
; High Byte: x c e d a s p m
; x = Sewers | c = Hyrule Castle | e = Eastern Palace | d = Desert Palace
; a = Castle Tower | s = Swamp Palace | p = PoD | m = Mire
skip 11 ;
NpcFlags: skip 2 ; l - c s t k z o (bitfield) NpcFlags: skip 2 ; l - c s t k z o (bitfield)
; l = Library | c = Catfish | s = Sahasrahla | t = Stumpy ; l = Library | c = Catfish | s = Sahasrahla | t = Stumpy
; k = Sick Kid | z = King Zora | o = Old Man ; k = Sick Kid | z = King Zora | o = Old Man
@@ -298,23 +307,7 @@ skip 46 ; Unused
ServiceSequenceRx: ; Service sequence receive ServiceSequenceRx: ; Service sequence receive
ServiceSequenceTx: ; Service sequence transmit ServiceSequenceTx: ; Service sequence transmit
ServiceSequence: skip 8 ; Service request block. See servicerequest.asm ServiceSequence: skip 8 ; Service request block. See servicerequest.asm
skip 24 ; Unused skip 8 ; Unused
DungeonLocationsChecked: ; \ Dungeon locations checked counters (integers)
SewersLocations: skip 1 ; | Sewer Passage
HCLocations: skip 1 ; | Hyrule Castle
EPLocations: skip 1 ; | Eastern Palace
DPLocations: skip 1 ; | Desert Palace
CTLocations: skip 1 ; | Agahnim's Tower
SPLocations: skip 1 ; | Swamp Palace
PDLocations: skip 1 ; | Palace of Darkness
MMLocations: skip 1 ; | Misery Mire
SWLocations: skip 1 ; | Skull Woods
IPLocations: skip 1 ; | Ice Palace
THLocations: skip 1 ; | Tower of Hera
TTLocations: skip 1 ; | Thieves' Town
TRLocations: skip 1 ; | Turtle Rock
GTLocations: skip 1 ; / Ganon's Tower:
skip 2 ; Reserved for previous table
DungeonAbsorbedKeys: ; \ Absorbed key counters (integers) DungeonAbsorbedKeys: ; \ Absorbed key counters (integers)
SewerAbsorbedKeys: skip 1 ; | Sewer Passage SewerAbsorbedKeys: skip 1 ; | Sewer Passage
HCAbsorbedKeys: skip 1 ; | Hyrule Castle HCAbsorbedKeys: skip 1 ; | Hyrule Castle
@@ -331,6 +324,23 @@ TTAbsorbedKeys: skip 1 ; | Thieves' Town
TRAbsorbedKeys: skip 1 ; | Turtle Rock TRAbsorbedKeys: skip 1 ; | Turtle Rock
GTAbsorbedKeys: skip 1 ; / Ganon's Tower GTAbsorbedKeys: skip 1 ; / Ganon's Tower
skip 2 ; Reserved for previous table skip 2 ; Reserved for previous table
DungeonLocationsChecked: ; \ Dungeon locations checked counters (integers)
SewersLocations: skip 1 ; | Sewer Passage
HCLocations: skip 1 ; | Hyrule Castle
EPLocations: skip 1 ; | Eastern Palace
DPLocations: skip 1 ; | Desert Palace
CTLocations: skip 1 ; | Agahnim's Tower
SPLocations: skip 1 ; | Swamp Palace
PDLocations: skip 1 ; | Palace of Darkness
MMLocations: skip 1 ; | Misery Mire
SWLocations: skip 1 ; | Skull Woods
IPLocations: skip 1 ; | Ice Palace
THLocations: skip 1 ; | Tower of Hera
TTLocations: skip 1 ; | Thieves' Town
TRLocations: skip 1 ; | Turtle Rock
GTLocations: skip 1 ; / Ganon's Tower:
skip 2 ; Reserved for previous table
skip 16 ; Currently occupied by multiworld stuff in DR, can be reclaimed
DungeonCollectedKeys: ; \ Chest Key Counters. Only counts keys placed in chests. (integers) DungeonCollectedKeys: ; \ Chest Key Counters. Only counts keys placed in chests. (integers)
SewerCollectedKeys: skip 1 ; | Sewer Passage SewerCollectedKeys: skip 1 ; | Sewer Passage
HCCollectedKeys: skip 1 ; | Hyrule Castle HCCollectedKeys: skip 1 ; | Hyrule Castle
@@ -498,6 +508,7 @@ endmacro
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
%assertSRAM(GameCounter, $7EF3FF) %assertSRAM(GameCounter, $7EF3FF)
%assertSRAM(PostGameCounter, $7EF401) %assertSRAM(PostGameCounter, $7EF401)
%assertSRAM(CompassCountDisplay, $7EF403)
%assertSRAM(NpcFlags, $7EF410) %assertSRAM(NpcFlags, $7EF410)
%assertSRAM(MapOverlay, $7EF414) %assertSRAM(MapOverlay, $7EF414)
%assertSRAM(GeneralFlags, $7EF416) %assertSRAM(GeneralFlags, $7EF416)
@@ -552,6 +563,20 @@ endmacro
%assertSRAM(ServiceSequenceRx, $7EF4A0) %assertSRAM(ServiceSequenceRx, $7EF4A0)
%assertSRAM(ServiceSequenceTx, $7EF4A0) %assertSRAM(ServiceSequenceTx, $7EF4A0)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
%assertSRAM(SewerAbsorbedKeys, $7EF4B0)
%assertSRAM(HCAbsorbedKeys, $7EF4B1)
%assertSRAM(EPAbsorbedKeys, $7EF4B2)
%assertSRAM(DPAbsorbedKeys, $7EF4B3)
%assertSRAM(CTAbsorbedKeys, $7EF4B4)
%assertSRAM(SPAbsorbedKeys, $7EF4B5)
%assertSRAM(PDAbsorbedKeys, $7EF4B6)
%assertSRAM(MMAbsorbedKeys, $7EF4B7)
%assertSRAM(SWAbsorbedKeys, $7EF4B8)
%assertSRAM(IPAbsorbedKeys, $7EF4B9)
%assertSRAM(THAbsorbedKeys, $7EF4BA)
%assertSRAM(TTAbsorbedKeys, $7EF4BB)
%assertSRAM(TRAbsorbedKeys, $7EF4BC)
%assertSRAM(GTAbsorbedKeys, $7EF4BD)
%assertSRAM(SewersLocations, $7EF4C0) %assertSRAM(SewersLocations, $7EF4C0)
%assertSRAM(HCLocations, $7EF4C1) %assertSRAM(HCLocations, $7EF4C1)
%assertSRAM(EPLocations, $7EF4C2) %assertSRAM(EPLocations, $7EF4C2)
@@ -566,20 +591,6 @@ endmacro
%assertSRAM(TTLocations, $7EF4CB) %assertSRAM(TTLocations, $7EF4CB)
%assertSRAM(TRLocations, $7EF4CC) %assertSRAM(TRLocations, $7EF4CC)
%assertSRAM(GTLocations, $7EF4CD) %assertSRAM(GTLocations, $7EF4CD)
%assertSRAM(SewerAbsorbedKeys, $7EF4D0)
%assertSRAM(HCAbsorbedKeys, $7EF4D1)
%assertSRAM(EPAbsorbedKeys, $7EF4D2)
%assertSRAM(DPAbsorbedKeys, $7EF4D3)
%assertSRAM(CTAbsorbedKeys, $7EF4D4)
%assertSRAM(SPAbsorbedKeys, $7EF4D5)
%assertSRAM(PDAbsorbedKeys, $7EF4D6)
%assertSRAM(MMAbsorbedKeys, $7EF4D7)
%assertSRAM(SWAbsorbedKeys, $7EF4D8)
%assertSRAM(IPAbsorbedKeys, $7EF4D9)
%assertSRAM(THAbsorbedKeys, $7EF4DA)
%assertSRAM(TTAbsorbedKeys, $7EF4DB)
%assertSRAM(TRAbsorbedKeys, $7EF4DC)
%assertSRAM(GTAbsorbedKeys, $7EF4DD)
%assertSRAM(SewerCollectedKeys, $7EF4E0) %assertSRAM(SewerCollectedKeys, $7EF4E0)
%assertSRAM(HCCollectedKeys, $7EF4E1) %assertSRAM(HCCollectedKeys, $7EF4E1)
%assertSRAM(EPCollectedKeys, $7EF4E2) %assertSRAM(EPCollectedKeys, $7EF4E2)

View File

@@ -1556,8 +1556,8 @@ dw #9999 ; Rupee Limit
; $7F5200 - $7F52FF - RNG Pointer Block ; $7F5200 - $7F52FF - RNG Pointer Block
; $7F5300 - $7F53FF - Multiworld Block ; $7F5300 - $7F53FF - Multiworld Block
; $7F5400 - $7F540F - MSU Block ; $7F5400 - $7F540F - MSU Block
; $7F5410 - $7F545F - Dungeon Tracking Block
; $7F5410 - $7F56FF - Unused ; $7F5460 - $7F56FF - Unused
; $7F5700 - $7F57FF - Dialog Buffer ; $7F5700 - $7F57FF - Dialog Buffer
; ;
@@ -1651,11 +1651,6 @@ db $01, $51, $64, $00, $07, $FF, $00, $00
db $01, $53, $64, $00, $07, $FF, $00, $00 db $01, $53, $64, $00, $07, $FF, $00, $00
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
; Fix spawning with more hearts than capacity when less than 3 heart containers
LowHeartFix:
org $09F4AC ; <- module_death.asm:331
db $08, $08, $10
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; 0x185060 - 1850FF (unused) ; 0x185060 - 1850FF (unused)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -2653,7 +2648,18 @@ org $30EA84 : RoomHeader_012E: ; pc 0x186A84
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; 0x186C00 - 187FFF (unused) ; 0x186C00 - 186FFE (unused)
;--------------------------------------------------------------------------------
org $30EFFF ; PC 0x186FFF
BallNChainDungeon:
db #$02
org $30F000 ; PC 0x187000-0x18700F
CompassTotalsROM:
db $08, $08, $06, $06, $02, $0A, $0E, $08, $08, $08, $06, $08, $0C, $1B, $00, $00
;--------------------------------------------------------------------------------
; 0x187010 - 187FFF (unused)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -2670,11 +2676,6 @@ db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF