Remove defines from LTTP_RND_GeneralBugfixes

Replace more labels
Add ROM version and reserve extra 16 bytes in unused hardware vector in
LTTP_RND_GeneralBugfixes
Move IncrementChestCounter to ChestPrep in newitems.asm
Remove IncrementChestCounter hook which was getting overwritten
More revisions to sram.asm
This commit is contained in:
cassidy
2021-12-06 01:13:15 -05:00
parent 1b9734d1af
commit 190653d70f
6 changed files with 106 additions and 160 deletions

View File

@@ -2,6 +2,7 @@
; The Legend of Zelda, A Link to the Past - Randomizer General Development & Bugfixes
;================================================================================
lorom
;================================================================================
;org $00FFC0 ; <- 7FC0 - Bank00.asm : 9173 (db "THE LEGEND OF ZELDA " ; 21 bytes)
@@ -41,28 +42,7 @@ dw !ROM_VERSION_HIGH
!BLT = "BCC"
!BGE = "BCS"
; Rando Specific SRAM assignments
!NPC_FLAGS = "$7EF410"
!NPC_FLAGS_2 = "$7EF411"
!MAP_OVERLAY = "$7EF414" ; [w]
!PROGRESSIVE_SHIELD = "$7EF416" ; ss-- ----
!HUD_FLAG = "$7EF416" ; --h- ----
!FORCE_PYRAMID = "$7EF416" ; ---- p---
!IGNORE_FAIRIES = "$7EF416" ; ---- -i--
!SHAME_CHEST = "$7EF416" ; ---s ----
!HAS_GROVE_ITEM = "$7EF416" ; ---- ---g general flags, don't waste these
!HIGHEST_SWORD_LEVEL = "$7EF417" ; --- -sss
;$7EF418 - Goal Item Counter
;$7EF419 - Service Sequence
;$7EF420 - $7EF46D - Stat Tracking Bank 1 (overlaps with RNG Item Flags)
;$7EF4A0 - $7EF4A7 - Service Request Block
;$700500 - $70050F - Extended File Name
;$701000 - $70100F - Password (incorporate into log header)
;$702000 - $702014 - Rom title copy (incorporate into log header)
!MS_GOT = "$7F5031"
!DARK_WORLD = "$7EF3CA"
!REDRAW = "$7F5000"
!GANON_WARP_CHAIN = "$7F5032";
@@ -114,7 +94,6 @@ incsrc heartpieces.asm
incsrc npcitems.asm
incsrc utilities.asm
incsrc flipperkill.asm
incsrc previewdatacopy.asm
incsrc pendantcrystalhud.asm
incsrc potions.asm
incsrc shopkeeper.asm
@@ -335,21 +314,21 @@ warnpc $B08000
;RAM
;$7EC900[0x1F00]: BIGRAM buffer
;$7EF000[0x500]: SRAM mirror First 0x500 bytes of SRAM
; See sram.asm for labels and assignments
;$7F5000[0x800]: Rando's main free ram region
; See tables.asm for specific assignments
;$7F6000[0x500]: Free RAM (reclaimed from damage table) Not allocated yet
;$7F6000[0x500]: SRAM buffer save 2 0x500
;$7F6500[0xB00]: SRAM mirror for last 0xB00 bytes of SRAM (extended sram)
;$7F6000[0x1000]: SRAM buffer mapped to vanilla save slots 1 and 2
; See sram.asm for labels and assignments
;$7F7667[0x6719] - free ram
;================================================================================
;SRAM Map
;$70:0000 ( 4K) Game state
; 0000-04FF Vanilla Slot 1 (mirrored at 0x7EF000)
; See earlier in this file for rando specific assignments
; 0500-0FFF Ext Slot 1 (not yet mirrored)
; See earlier in this file for rando specific assignments
;$70:1000 (20K) Log entries
;$70:6000 ( 8K) Scratch buffers
;See sram.asm for rando-specific assignments
;$70:0000 (5K) Game state
; 0000-04FF Vanilla Slot 1 (mirrored at $7EF000)
; 0500-14FF Ext Slot 1 (mirrored at $7F6000)
;$70:2000 (0x25) ROM Name and version number
;$70:3000 (0x16) Password
;$70:6000 (8K) Scratch buffers
;================================================================================
;org $0080DC ; <- 0xDC - Bank00.asm:179 - Kill Music
;db #$A9, #$00, #$EA

View File

@@ -541,10 +541,6 @@ org $0288D1 ; <- 108D1 - Bank02.asm : 1690 (STZ $0646)
JSL.l IndoorSubtileTransitionCounter
NOP #2
;--------------------------------------------------------------------------------
org $07B574 ; <- 3B574 - Bank07.asm : 8519 (LDA.b #$01 : STA $02E9)
JSL.l IncrementChestCounter
NOP
;--------------------------------------------------------------------------------
;org $05FC7E ; <- 2FC7E - sprite_dash_item.asm : 118 (LDA $7EF36F : INC A : STA $7EF36F)
;JSL.l IncrementSmallKeys
;--------------------------------------------------------------------------------
@@ -2101,7 +2097,7 @@ JSL.l ItemCheck_TreeKid2
org $06AF9B ; <- 32F9B - FluteBoy_Chillin : 73 : LDA $7EF34C : CMP.b #$02 : BCS .player_has_flute
;NOP #8
LDA !HAS_GROVE_ITEM : AND.b #$01
LDA HasGroveItem : AND.b #$01
db #$D0 ; BNE
org $06B062 ; <- 33062 - FluteAardvark_InitialStateFromFluteState : 225 : LDA $7EF34C : AND.b #$03 : !BGE #$05
@@ -2472,7 +2468,7 @@ org $00DF62 ; <- Bank00.asm:4672 (LDX.w #$0000 : LDY.w #$0040)
JML ReloadingFloors
NOP : NOP
ReloadingFloorsResume:
org $00DF6E ; <- A few instructions later, right after JSR Do3To4High16Bit
org $00DF6E ; <- A few instructions later, right after JSR Do3To.high16Bit
ReloadingFloorsCancel:
;================================================================================

View File

@@ -1,5 +1,3 @@
RomVersionSRAM = $701FFC
;--------------------------------------------------------------------------------
; Init_Primary
;--------------------------------------------------------------------------------

View File

@@ -1,17 +1,16 @@
;================================================================================
; Inventory Updates
;================================================================================
; Item Tracking Slot
; InventoryTracking
; brmpnskf -------q
; b = blue boomerang |
; r = red boomerang |
; m = mushroom current |
; p = magic powder |
; n = mushroom past |
; s = shovel |
; k = fake flute |
; f = working flute |
; brmpnskf ------oq
; b = blue boomerang | -
; r = red boomerang | -
; m = mushroom current | -
; p = magic powder | -
; n = mushroom past | -
; s = shovel | -
; k = fake flute | o = any bomb acquired from item location
; f = working flute | q = quickswap locked
;--------------------------------------------------------------------------------
; BowTracking
; Item Tracking Slot #2
@@ -35,8 +34,8 @@ ProcessMenuButtons:
BIT #$20 : BNE .sel_pressed ; check for P1 Select button
LDA $F0 : BIT #$20 : BNE .sel_held
.sel_unheld
LDA !HUD_FLAG : AND #$20 : BEQ +
LDA !HUD_FLAG : AND #$DF : STA !HUD_FLAG ; select is released, unset hud flag
LDA HudFlag : AND #$20 : BEQ +
LDA HudFlag : AND #$DF : STA HudFlag ; select is released, unset hud flag
LDA $1B : BEQ + ; skip if outdoors
LDA.b #$20 : STA $012F ; menu select sound
+
@@ -45,11 +44,8 @@ ProcessMenuButtons:
.sel_held
CLC ; no buttons
RTL
;.l_pressed
;JSL.l SpawnAngryCucco
;RTL
.sel_pressed
LDA !HUD_FLAG : ORA #$20 : STA !HUD_FLAG ; set hud flag
LDA HudFlag : ORA #$20 : STA HudFlag ; set hud flag
LDA.b #$20 : STA $012F ; menu select sound
JSL.l ResetEquipment
RTL
@@ -178,8 +174,6 @@ RTL
;--------------------------------------------------------------------------------
; AddInventory:
;--------------------------------------------------------------------------------
!LOCK_STATS = "$7EF443"
macro TopHalf(address)
LDA <address> : !ADD #$10 : STA <address>
endmacro
@@ -193,16 +187,16 @@ macro BottomHalf(address)
endmacro
;--------------------------------------------------------------------------------
;FullInventoryExternal:
; LDA !LOCK_STATS : BEQ + : RTL : +
; LDA StatsLocked : BEQ + : RTL : +
; PHA : PHX : PHP : JMP AddInventory_fullItemCounts
;--------------------------------------------------------------------------------
FullInventoryExternal:
LDA !LOCK_STATS : BEQ + : RTL : +
LDA StatsLocked : BEQ + : RTL : +
PHA : PHX : PHP : JMP AddInventory_incrementCounts
;--------------------------------------------------------------------------------
!SHAME_CHEST = "$7EF416" ; ---s ----
AddInventory:
PHA : PHX : PHP
PHA : LDA DummyValue : PLA
CPY.b #$0C : BNE + ; Blue Boomerang
LDA InventoryTracking : ORA #$80 : STA InventoryTracking
JMP .incrementCounts
@@ -248,7 +242,7 @@ AddInventory:
+
.incrementCounts
LDA !LOCK_STATS : BEQ + : JMP .done : +
LDA StatsLocked : BEQ + : JMP .done : +
; don't count any of this stuff
CPY.b #$20 : BNE + : JMP .itemCounts : + ; Crystal
@@ -292,79 +286,63 @@ AddInventory:
.dungeonCounts
LDA $1B : BNE + : JMP .fullItemCounts : +
; ==BEGIN INDOOR-ONLY SECTION
;REP #$20 ; Set 16-bit Accumulator
;LDA $A0 ; load room ID
;CMP.w #$0010 : BNE + ; Ganon Fall Room - I think this got taken out
;!SHAME_CHEST = "$7EF416" ; ---s ----
;LDA !SHAME_CHEST : ORA.w #$0010 : STA !SHAME_CHEST
;+
SEP #$20 ; Set 8-bit Accumulator
LDA $040C ; get dungeon id
CMP.b #$00 : BNE + ; Sewers (Escape)
LDA SewersLocations : INC : STA SewersLocations
LDA HCLocations : INC : STA HCLocations
BRA ++
+ CMP.b #$02 : BNE + ; Hyrule Castle (Escape)
++
CPY.b #$32 : BNE ++ : JMP .itemCounts : ++ ; Ball & Chain Guard's Big Key
%TopHalf($7EF434)
LDA HCLocations : INC : STA HCLocations
LDA SewersLocations : INC : STA SewersLocations
JMP .fullItemCounts
+ CMP.b #$04 : BNE + ; Eastern Palace
LDA $7EF436 : INC : AND #$07 : TAX
LDA $7EF436 : AND #$F8 : STA $7EF436
TXA : ORA $7EF436 : STA $7EF436
LDA EPLocations : INC : STA EPLocations
JMP .fullItemCounts
+ CMP.b #$06 : BNE + ; Desert Palace
LDA $7EF435 : !ADD #$20 : STA $7EF435
LDA DPLocations : INC : STA DPLocations
JMP .fullItemCounts
+ CMP.b #$08 : BNE + ; Agahnim's Tower
LDA $7EF435 : INC : AND #$03 : TAX
LDA $7EF435 : AND #$FC : STA $7EF435
TXA : ORA $7EF435 : STA $7EF435
LDA CTLocations : INC : STA CTLocations
JMP .fullItemCounts
+ CMP.b #$0A : BNE + ; Swamp Palace
%BottomHalf($7EF439)
LDA SPLocations : INC : STA SPLocations
JMP .fullItemCounts
+ CMP.b #$0C : BNE + ; Palace of Darkness
%BottomHalf($7EF434)
LDA PDLocations : INC : STA PDLocations
JMP .fullItemCounts
+ CMP.b #$0E : BNE + ; Misery Mire
%BottomHalf($7EF438)
LDA MMLocations : INC : STA MMLocations
JMP .fullItemCounts
+ CMP.b #$10 : BNE + ; Skull Woods
%TopHalf($7EF437)
LDA SWLocations : INC : STA SWLocations
JMP .fullItemCounts
+ CMP.b #$12 : BNE + ; Ice Palace
%TopHalf($7EF438)
LDA IPLocations : INC : STA IPLocations
JMP .fullItemCounts
+ CMP.b #$14 : BNE + ; Tower of Hera
LDA $7EF435 : !ADD #$04 : AND #$1C : TAX
LDA $7EF435 : AND #$E3 : STA $7EF435
TXA : ORA $7EF435 : STA $7EF435
LDA THLocations : INC : STA THLocations
JMP .fullItemCounts
+ CMP.b #$16 : BNE + ; Thieves' Town
%BottomHalf($7EF437)
LDA TTLocations : INC : STA TTLocations
JMP .fullItemCounts
+ CMP.b #$18 : BNE + ; Turtle Rock
%TopHalf($7EF439)
LDA TRLocations : INC : STA TRLocations
JMP .fullItemCounts
+ CMP.b #$1A : BNE + ; Ganon's Tower
LDA $7EF436 : !ADD #$08 : STA $7EF436
LDA GTLocations : INC : STA GTLocations
LDA BigKeyField : AND #$04 : BNE ++
JSR .incrementGTowerPreBigKey
++
;JMP .fullItemCounts
+
; == END INDOOR-ONLY SECTION
.fullItemCounts
;CPY.b #$3B : BNE + ; Skip Total Counts for Repeat Silver Arrows
; LDA $7EF42A : BIT #$20 : BEQ + : BRA .itemCounts
;+
LDA BootsEquipment : BNE + ; Check for Boots
LDA PreBootsLocations : INC : STA PreBootsLocations ; Increment Pre Boots Counter
+
@@ -377,7 +355,7 @@ AddInventory:
LDA PreFluteLocations : INC : STA PreFluteLocations ; Increment Pre Mirror Counter
+
LDA $7EF423 : INC : STA $7EF423 ; Increment Item Total
LDA TotalItemCounter : INC : STA TotalItemCounter ; Increment Item Total
.itemCounts
@@ -462,12 +440,12 @@ AddInventory:
;JSR .incrementHeartContainer
JMP .done
+ CPY.b #$27 : BNE + ; 1 Bomb
;JSR .maybeIncrementBombs
JSR .maybeIncrementBombs
JMP .done
+ CPY.b #$28 : BNE + ; 3 Bombs
;JSR .maybeIncrementBombs
JSR .maybeIncrementBombs
JMP .done
+ CPY.b #$29 : BNE + ; Musoroom
+ CPY.b #$29 : BNE + ; Mushroom
JSR .incrementY
JMP .done
+ CPY.b #$2A : !BLT + ; Items $2A - $2D
@@ -475,7 +453,7 @@ AddInventory:
JSR .incrementY
JMP .done
+ CPY.b #$31 : BNE + ; 10 Bombs
;JSR .maybeIncrementBombs
JSR .maybeIncrementBombs
JMP .done
+ CPY.b #$32 : BNE + ; Big Key
JSR .incrementBigKey
@@ -516,9 +494,9 @@ AddInventory:
JSR .stampBoots
JSR .incrementA
JMP .done
+ CPY.b #$4C : BNE + ; Bomb Capacity Upgrade
+ CPY.b #$4C : BNE + ; 50 Bomb Capacity Upgrade
JSR .incrementCapacity
;JSR .maybeIncrementBombs
JSR .maybeIncrementBombs
JMP .done
+ CPY.b #$4D : !BLT + ; Items $4D - $4F - Capacity Upgrades
CPY.b #$50 : !BGE +
@@ -528,6 +506,14 @@ AddInventory:
LDX #$02
JSR .incrementSword
JMP .done
+ CPY.b #$51 : BNE + ; 5 Bomb Capacity Upgrade
LDX #$02
JSR .maybeIncrementBombs
JMP .done
+ CPY.b #$52 : BNE + ; 10 Bomb Capacity Upgrade
LDX #$02
JSR .maybeIncrementBombs
JMP .done
+ CPY.b #$51 : !BLT + ; Items $51 - $54 - Capacity Upgrades
CPY.b #$55 : !BGE +
JSR .incrementCapacity
@@ -577,49 +563,42 @@ RTL
; WHICH BEE IS BOTTLED?
; MAKE SURE FAIRY FOUNTAINS DON'T FUCK THE COUNTS UP
!NMI_TIME = "$7EF43E"
!SWORD_TIME = "$7EF458"
!BOOTS_TIME = "$7EF45C"
!FLUTE_TIME = "$7EF460"
!MIRROR_TIME = "$7EF464"
.stampSword
REP #$20 ; set 16-bit accumulator
LDA !SWORD_TIME : BNE +
LDA !SWORD_TIME+2 : BNE +
LDA !NMI_TIME : STA !SWORD_TIME
LDA !NMI_TIME+2 : STA !SWORD_TIME+2
LDA SwordTime : BNE +
LDA SwordTime+2 : BNE +
LDA NMIFrames : STA SwordTime
LDA NMIFrames+2 : STA SwordTime+2
+
SEP #$20 ; set 8-bit accumulator
RTS
.stampBoots
REP #$20 ; set 16-bit accumulator
LDA !BOOTS_TIME : BNE +
LDA !BOOTS_TIME+2 : BNE +
LDA !NMI_TIME : STA !BOOTS_TIME
LDA !NMI_TIME+2 : STA !BOOTS_TIME+2
LDA BootsTime : BNE +
LDA BootsTime+2 : BNE +
LDA NMIFrames : STA BootsTime
LDA NMIFrames+2 : STA BootsTime+2
+
SEP #$20 ; set 8-bit accumulator
RTS
.stampFlute
REP #$20 ; set 16-bit accumulator
LDA !FLUTE_TIME : BNE +
LDA !FLUTE_TIME+2 : BNE +
LDA !NMI_TIME : STA !FLUTE_TIME
LDA !NMI_TIME+2 : STA !FLUTE_TIME+2
LDA FluteTime : BNE +
LDA FluteTime+2 : BNE +
LDA NMIFrames : STA FluteTime
LDA NMIFrames+2 : STA FluteTime+2
+
SEP #$20 ; set 8-bit accumulator
RTS
.stampMirror
REP #$20 ; set 16-bit accumulator
LDA !MIRROR_TIME : BNE +
LDA !MIRROR_TIME+2 : BNE +
LDA !NMI_TIME : STA !MIRROR_TIME
LDA !NMI_TIME+2 : STA !MIRROR_TIME+2
LDA MirrorTime : BNE +
LDA MirrorTime+2 : BNE +
LDA NMIFrames : STA MirrorTime
LDA NMIFrames+2 : STA MirrorTime+2
+
SEP #$20 ; set 8-bit accumulator
RTS
@@ -684,36 +663,30 @@ RTS
RTL
.incrementKey
PHA : PHX
LDA $7EF424 : INC : AND #$3F : TAX
LDA $7EF424 : AND #$C0 : STA $7EF424
TXA : ORA $7EF424 : STA $7EF424
PLX : PLA
LDA SmallKeyCounter : INC : STA SmallKeyCounter
RTS
.incrementCompass
%BottomHalf($7EF428)
%BottomHalf(MapsCompasses)
RTS
.incrementBigKey
LDA $7EF427 : !ADD #$10 : STA $7EF427
%TopHalf(BigKeysBigChests)
RTS
.incrementGTowerPreBigKey
LDA $7EF42A : INC : AND #$1F : TAX
LDA $7EF42A : AND #$E0 : STA $7EF42A
TXA : ORA $7EF42A : STA $7EF42A
LDA PreGTBKLocations : INC : STA PreGTBKLocations
RTS
;.maybeIncrementBombs
; LDA $7EF42A : AND #$80 : BNE +
; LDA $7EF42A : ORA #$80 : STA $7EF42A
; JSR .incrementY
; +
;RTS
.maybeIncrementBombs
LDA InventoryTracking+1 : AND #$02 : BNE +
LDA InventoryTracking+1 : ORA #$02 : STA InventoryTracking+1
JSR .incrementY
+
RTS
.incrementMap
LDA $7EF428 : !ADD #$10 : STA $7EF428
%TopHalf(MapsCompasses)
RTS
.incrementBossSwordLong
@@ -723,16 +696,17 @@ RTL
.incrementBossSword
LDA SwordEquipment
BNE + : -
%TopHalf($7EF452) : RTS
LDA SwordlessBossKills : INC : STA SwordlessBossKills
RTS
+ CMP #$FF : BEQ -
+ CMP #$01 : BNE +
%TopHalf($7EF425) : RTS
%TopHalf(SwordBossKills) : RTS
+ CMP #$02 : BNE +
%BottomHalf($7EF425) : RTS
%BottomHalf(SwordBossKills) : RTS
+ CMP #$03 : BNE +
%TopHalf($7EF426) : RTS
%TopHalf(SwordBossKills+1) : RTS
+ CMP #$04 : BNE +
%BottomHalf($7EF426)
%BottomHalf(SwordBossKills+1)
+
RTS
;--------------------------------------------------------------------------------
@@ -865,7 +839,7 @@ LoadKeys:
LDA CurrentGenericKeys
RTL
+
LDA SewerKeys, X
LDA DungeonKeys, X
RTL
;--------------------------------------------------------------------------------
@@ -878,7 +852,7 @@ SaveKeys:
PLA : STA CurrentGenericKeys
RTL
+
PLA : STA SewerKeys, X
PLA : STA DungeonKeys, X
RTL
;--------------------------------------------------------------------------------

View File

@@ -155,14 +155,14 @@ ProcessEventItems:
LDA $02D8
CMP.b #$E0 : BNE +
REP #$30 ; set 16-bit accumulator & index registers
LDA $7EF450 : ASL : TAX
LDA RNGItem : ASL : TAX
LDA.l EventDataOffsets, X : !ADD #EventDataTable : STA $00
SEP #$20 ; set 8-bit accumulator
LDA.b #$AF : STA $02
JSL.l LoadDialogAddressIndirect
LDA $7EF450 : INC : STA $7EF450
LDA RNGItem : INC : STA RNGItem
SEP #$10 ; set 8-bit index registers
@@ -373,7 +373,7 @@ AddReceivedItemExpandedGetItem:
JMP .done
+ CMP.b #$A0 : !BLT + : CMP.b #$B0 : !BGE + ; Free Small Key
AND #$0F : TAX
LDA SewerKeys, X : INC : STA SewerKeys, X ; Increment Key Count
LDA DungeonKeys, X : INC : STA DungeonKeys, X ; Increment Key Count
CPX.b #$00 : BNE ++
STA HyruleCastleKeys ; copy HC to sewers
@@ -400,8 +400,6 @@ RTL
; #$90 - Big Keys
; #$A0 - Small Keys
;--------------------------------------------------------------------------------
!HIGHEST_ARMOR_SHIELD_SWORD = "$7EF416" ; ss-- ----
!RNG_ITEM = "$7EF450"
!SCRATCH_AREA = "$7F5020"
!SINGLE_INDEX_TEMP = "$7F5020"
!SINGLE_INDEX_OFFSET_TEMP = "$7F5021"
@@ -966,7 +964,6 @@ RTL
LDA.b #$24 : STA $7EC723
RTL
;--------------------------------------------------------------------------------
!RNG_ITEM = "$7EF450"
!SCRATCH_AREA = "$7F5020"
!SINGLE_INDEX_TEMP = "$7F5020"
!SINGLE_INDEX_OFFSET_TEMP = "$7F5021"
@@ -1004,7 +1001,7 @@ RTL
;--------------------------------------------------------------------------------
CheckSingleItem:
LSR #3 : TAX
LDA.l !RNG_ITEM, X : STA !SINGLE_INDEX_BITMASK_TEMP ; load value to temporary
LDA.l RNGItem, X : STA !SINGLE_INDEX_BITMASK_TEMP ; load value to temporary
PHX
LDA !SINGLE_INDEX_TEMP : AND #$07 : TAX ; load 0-7 part into X
LDA !SINGLE_INDEX_BITMASK_TEMP
@@ -1022,7 +1019,7 @@ MarkRNGItemSingle:
;STA !SINGLE_INDEX_TEMP
LSR #3 : STA !SINGLE_INDEX_OFFSET_TEMP : TAX
LDA.l !RNG_ITEM, X
LDA.l RNGItem, X
STA.l !SINGLE_INDEX_BITMASK_TEMP
LDA.l !SINGLE_INDEX_TEMP : AND #$07 : TAX ; load 0-7 part into X
LDA.b #01
@@ -1037,7 +1034,7 @@ MarkRNGItemSingle:
LDA.l !SINGLE_INDEX_OFFSET_TEMP : TAX
PLA
ORA.l !SINGLE_INDEX_BITMASK_TEMP
STA.l !RNG_ITEM, X
STA.l RNGItem, X
RTS
;--------------------------------------------------------------------------------
GetRNGItemMulti:
@@ -1114,6 +1111,7 @@ JML.l StatsFinalPrep
;--------------------------------------------------------------------------------
ChestPrep:
LDA.b #$01 : STA $02E9
JSL.l IncrementChestCounter
LDA.l ServerRequestMode : BEQ +
JSL.l ChestItemServiceRequest
RTL

View File

@@ -1,4 +1,3 @@
org 0
;================================================================================
; SRAM Labels & Assertions
;--------------------------------------------------------------------------------
@@ -9,6 +8,7 @@ org 0
; $7F6000 - $7F6FFF in WRAM maps to the next 4k bytes, occupying the 2nd and 3rd vanilla
; save file locations. ($700500 - $701500)
;--------------------------------------------------------------------------------
org 0 ; This module writes no bytes. Asar gives bank cross errors without this.
;================================================================================
; Room Data ($7EF000 - $7EF27F
@@ -365,7 +365,8 @@ ExtendedFileNameSRAM: skip 24 ; We read and write the file name directly from
skip $1AE8 ;
RomNameSRAM: skip 21 ; ROM name from $FFC0, burned in during init (21 bytes)
; If value in the ROM doesn't match SRAM, save is cleared.
VERSIONSRAM: skip 4 ; ALTTPR ROM version (32 bytes)
RomVersionSRAM: skip 4 ; ALTTPR ROM version. Low byte is the version, high byte writes
; $01 for now (32-bits total)
skip 4071 ;
PasswordSRAM: skip 16 ; Password value (16 bytes)
@@ -573,7 +574,7 @@ assert InventoryTrackingSRAM = $70038C, "InventoryTracking labeled at incorrect
assert BowTrackingSRAM = $70038E, "BowTracking labeled at incorrect address"
assert ExtendedFileNameSRAM = $700500, "ExtendedFilenameSRAM labeled at incorrect address"
assert RomNameSRAM = $702000, "RomNameSRAM at incorrect address"
assert VERSIONSRAM = $702015, "VERSIONSRAM at incorrect address"
assert RomVersionSRAM = $702015, "RomVersionSRAM at incorrect address"
assert PasswordSRAM = $703000, "PasswordSRAM at incorrect address"
;--------------------------------------------------------------------------------