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:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
173
compasses.asm
173
compasses.asm
@@ -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
|
||||||
|
;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|||||||
10
init.asm
10
init.asm
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
46
newitems.asm
46
newitems.asm
@@ -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
18
ram.asm
Normal 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)
|
||||||
79
sram.asm
79
sram.asm
@@ -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)
|
||||||
|
|||||||
27
tables.asm
27
tables.asm
@@ -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
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user