Requires frontend changes
Change SRAM ammo capacity upgrades to flatly represent max capacity
This commit is contained in:
@@ -2,36 +2,26 @@
|
|||||||
; Capacity Logic
|
; Capacity Logic
|
||||||
;================================================================================
|
;================================================================================
|
||||||
IncrementBombs:
|
IncrementBombs:
|
||||||
LDA BombCapacityUpgrades ; get bomb upgrades
|
LDA.l BombCapacity : BEQ + ; Skip if we can't have bombs
|
||||||
!ADD.l StartingMaxBombs : BEQ + ; Skip if we can't have bombs
|
DEC
|
||||||
DEC
|
CMP.l BombsEquipment : !BLT +
|
||||||
|
LDA.l BombsEquipment
|
||||||
CMP BombsEquipment
|
CMP.b #99 : !BGE +
|
||||||
|
INC : STA.l BombsEquipment
|
||||||
!BLT +
|
+
|
||||||
LDA BombsEquipment
|
|
||||||
CMP.b #99 : !BGE +
|
|
||||||
INC : STA BombsEquipment
|
|
||||||
+
|
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
IncrementArrows:
|
IncrementArrows:
|
||||||
LDA ArrowCapacityUpgrades ; get arrow upgrades
|
LDA.l ArrowCapacity : DEC
|
||||||
!ADD.l StartingMaxArrows : DEC
|
CMP.l CurrentArrows : !BLT +
|
||||||
|
LDA.l CurrentArrows
|
||||||
CMP CurrentArrows
|
CMP.b #99 : !BGE +
|
||||||
|
INC : STA.l CurrentArrows
|
||||||
!BLT +
|
+
|
||||||
LDA CurrentArrows
|
|
||||||
CMP.b #99 : !BGE +
|
|
||||||
INC : STA CurrentArrows
|
|
||||||
+
|
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CompareBombsToMax:
|
CompareBombsToMax:
|
||||||
LDA BombCapacityUpgrades ; get bomb upgrades
|
LDA.l BombCapacity
|
||||||
!ADD.l StartingMaxBombs
|
CMP.l BombsEquipment
|
||||||
|
|
||||||
CMP BombsEquipment
|
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -82,8 +82,8 @@ StartingHealth: db $18 ; PC 0x18336C
|
|||||||
StartingMaximumHealth: db $18 ; PC 0x18336D
|
StartingMaximumHealth: db $18 ; PC 0x18336D
|
||||||
StartingMagic: skip 1 ; PC 0x18336E
|
StartingMagic: skip 1 ; PC 0x18336E
|
||||||
StartingSmallKeys: db $FF ; PC 0x18336F
|
StartingSmallKeys: db $FF ; PC 0x18336F
|
||||||
StartingBombCapacityUpgrade: skip 1 ; PC 0x183370
|
StartingBombCapacity: db $0A ; PC 0x183370
|
||||||
StartingArrowCapacityUpgrade: skip 1 ; PC 0x183371
|
StartingArrowCapacity: db $1E ; PC 0x183371
|
||||||
InitHeartsFiller: skip 1 ; PC 0x183372
|
InitHeartsFiller: skip 1 ; PC 0x183372
|
||||||
InitMagicFiller: skip 1 ; PC 0x183373
|
InitMagicFiller: skip 1 ; PC 0x183373
|
||||||
StartingPendants: skip 1 ; PC 0x183374
|
StartingPendants: skip 1 ; PC 0x183374
|
||||||
|
|||||||
@@ -695,7 +695,7 @@ RTS
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
Link_ReceiveItem_HUDRefresh:
|
Link_ReceiveItem_HUDRefresh:
|
||||||
LDA BombsEquipment : BNE + ; skip if we have bombs
|
LDA BombsEquipment : BNE + ; skip if we have bombs
|
||||||
LDA BombCapacityUpgrades : !ADD.l StartingMaxBombs : BEQ + ; skip if we can't have bombs
|
LDA BombCapacity : BEQ + ; skip if we can't have bombs
|
||||||
LDA BombsFiller : BEQ + ; skip if we are filling no bombs
|
LDA BombsFiller : BEQ + ; skip if we are filling no bombs
|
||||||
DEC : STA BombsFiller ; decrease bomb fill count
|
DEC : STA BombsFiller ; decrease bomb fill count
|
||||||
LDA.b #$01 : STA BombsEquipment ; increase actual bomb count
|
LDA.b #$01 : STA BombsEquipment ; increase actual bomb count
|
||||||
@@ -712,7 +712,7 @@ RTL
|
|||||||
HandleBombAbsorbtion:
|
HandleBombAbsorbtion:
|
||||||
STA BombsFiller ; thing we wrote over
|
STA BombsFiller ; thing we wrote over
|
||||||
LDA $0303 : BNE + ; skip if we already have some item selected
|
LDA $0303 : BNE + ; skip if we already have some item selected
|
||||||
LDA BombCapacityUpgrades : !ADD.l StartingMaxBombs : BEQ + ; skip if we can't have bombs
|
LDA BombCapacity : BEQ + ; skip if we can't have bombs
|
||||||
LDA.b #$04 : STA $0202 ; set selected item to bombs
|
LDA.b #$04 : STA $0202 ; set selected item to bombs
|
||||||
LDA.b #$01 : STA $0303 ; set selected item to bombs
|
LDA.b #$01 : STA $0303 ; set selected item to bombs
|
||||||
JSL.l HUD_RebuildLong
|
JSL.l HUD_RebuildLong
|
||||||
|
|||||||
14
newitems.asm
14
newitems.asm
@@ -208,13 +208,11 @@ AddReceivedItemExpandedGetItem:
|
|||||||
LDA BowTracking : ORA #$40 : STA BowTracking ; mark silver bow on y-toggle
|
LDA BowTracking : ORA #$40 : STA BowTracking ; mark silver bow on y-toggle
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$4C : BNE + ; 50 bombs
|
+ CMP.b #$4C : BNE + ; 50 bombs
|
||||||
;LDA.b #$07 : STA BombCapacityUpgrades ; upgrade bombs
|
LDA.b #50 : STA BombCapacity ; upgrade bombs
|
||||||
LDA.b #50 : !SUB.l StartingMaxBombs : STA BombCapacityUpgrades ; upgrade bombs
|
|
||||||
LDA.b #50 : STA BombsFiller ; fill bombs
|
LDA.b #50 : STA BombsFiller ; fill bombs
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$4D : BNE + ; 70 arrows
|
+ CMP.b #$4D : BNE + ; 70 arrows
|
||||||
;LDA #$07 : STA ArrowCapacityUpgrades ; upgrade arrows
|
LDA.b #70 : STA ArrowCapacity ; upgrade arrows
|
||||||
LDA.b #70 : !SUB.l StartingMaxArrows : STA ArrowCapacityUpgrades ; upgrade arrows
|
|
||||||
LDA.b #70 : STA ArrowsFiller ; fill arrows
|
LDA.b #70 : STA ArrowsFiller ; fill arrows
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$4E : BNE + ; 1/2 magic
|
+ CMP.b #$4E : BNE + ; 1/2 magic
|
||||||
@@ -232,19 +230,19 @@ AddReceivedItemExpandedGetItem:
|
|||||||
LDA.b #$02 : STA SwordEquipment ; set master sword
|
LDA.b #$02 : STA SwordEquipment ; set master sword
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$51 : BNE + ; +5 Bombs
|
+ CMP.b #$51 : BNE + ; +5 Bombs
|
||||||
LDA BombCapacityUpgrades : !ADD.b #$05 : STA BombCapacityUpgrades ; upgrade bombs +5
|
LDA BombCapacity : !ADD.b #$05 : STA BombCapacity ; upgrade bombs +5
|
||||||
LDA.l Upgrade5BombsRefill : STA BombsFiller ; fill bombs
|
LDA.l Upgrade5BombsRefill : STA BombsFiller ; fill bombs
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$52 : BNE + ; +10 Bombs
|
+ CMP.b #$52 : BNE + ; +10 Bombs
|
||||||
LDA BombCapacityUpgrades : !ADD.b #$0A : STA BombCapacityUpgrades ; upgrade bombs +10
|
LDA BombCapacity : !ADD.b #$0A : STA BombCapacity ; upgrade bombs +10
|
||||||
LDA.l Upgrade10BombsRefill : STA BombsFiller ; fill bombs
|
LDA.l Upgrade10BombsRefill : STA BombsFiller ; fill bombs
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$53 : BNE + ; +5 Arrows
|
+ CMP.b #$53 : BNE + ; +5 Arrows
|
||||||
LDA ArrowCapacityUpgrades : !ADD.b #$05 : STA ArrowCapacityUpgrades ; upgrade arrows +5
|
LDA ArrowCapacity : !ADD.b #$05 : STA ArrowCapacity ; upgrade arrows +5
|
||||||
LDA.l Upgrade5ArrowsRefill : STA ArrowsFiller ; fill arrows
|
LDA.l Upgrade5ArrowsRefill : STA ArrowsFiller ; fill arrows
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$54 : BNE + ; +10 Arrows
|
+ CMP.b #$54 : BNE + ; +10 Arrows
|
||||||
LDA ArrowCapacityUpgrades : !ADD.b #$0A : STA ArrowCapacityUpgrades ; upgrade arrows +10
|
LDA ArrowCapacity : !ADD.b #$0A : STA ArrowCapacity ; upgrade arrows +10
|
||||||
LDA.l Upgrade10ArrowsRefill : STA ArrowsFiller ; fill arrows
|
LDA.l Upgrade10ArrowsRefill : STA ArrowsFiller ; fill arrows
|
||||||
JMP .done
|
JMP .done
|
||||||
+ CMP.b #$55 : BNE + ; Programmable Object 1
|
+ CMP.b #$55 : BNE + ; Programmable Object 1
|
||||||
|
|||||||
8
sram.asm
8
sram.asm
@@ -126,8 +126,8 @@ MaximumHealth: skip 1 ; \ Max Health & Current Health
|
|||||||
CurrentHealth: skip 1 ; / Max value for both is $A0 | $04 = half heart | $08 = heart
|
CurrentHealth: skip 1 ; / Max value for both is $A0 | $04 = half heart | $08 = heart
|
||||||
CurrentMagic: skip 1 ; Current magic | Max value is $80
|
CurrentMagic: skip 1 ; Current magic | Max value is $80
|
||||||
CurrentSmallKeys: skip 1 ; Number of small keys held for current dungeon (integer)
|
CurrentSmallKeys: skip 1 ; Number of small keys held for current dungeon (integer)
|
||||||
BombCapacityUpgrades: skip 1 ; \ Bomb & Arrow Capacity Upgrades
|
BombCapacity: skip 1 ; \ Bomb & Arrow Capacity Upgrades
|
||||||
ArrowCapacityUpgrades: skip 1 ; / Indicates flatly how many can be held above vanilla max (integers)
|
ArrowCapacity: skip 1 ; / Indicates flatly how many can be held (integers)
|
||||||
HeartsFiller: skip 1 ; Hearts collected yet to be filled. Write in multiples of $08
|
HeartsFiller: skip 1 ; Hearts collected yet to be filled. Write in multiples of $08
|
||||||
MagicFiller: skip 1 ; Magic collected yet to be filled
|
MagicFiller: skip 1 ; Magic collected yet to be filled
|
||||||
PendantsField: skip 1 ; - - - - - g b r (bitfield)
|
PendantsField: skip 1 ; - - - - - g b r (bitfield)
|
||||||
@@ -483,8 +483,8 @@ endmacro
|
|||||||
%assertSRAM(CurrentHealth, $7EF36D)
|
%assertSRAM(CurrentHealth, $7EF36D)
|
||||||
%assertSRAM(CurrentMagic, $7EF36E)
|
%assertSRAM(CurrentMagic, $7EF36E)
|
||||||
%assertSRAM(CurrentSmallKeys, $7EF36F)
|
%assertSRAM(CurrentSmallKeys, $7EF36F)
|
||||||
%assertSRAM(BombCapacityUpgrades, $7EF370)
|
%assertSRAM(BombCapacity, $7EF370)
|
||||||
%assertSRAM(ArrowCapacityUpgrades, $7EF371)
|
%assertSRAM(ArrowCapacity, $7EF371)
|
||||||
%assertSRAM(HeartsFiller, $7EF372)
|
%assertSRAM(HeartsFiller, $7EF372)
|
||||||
%assertSRAM(MagicFiller, $7EF373)
|
%assertSRAM(MagicFiller, $7EF373)
|
||||||
%assertSRAM(PendantsField, $7EF374)
|
%assertSRAM(PendantsField, $7EF374)
|
||||||
|
|||||||
16
tables.asm
16
tables.asm
@@ -110,11 +110,7 @@ org $308033 ; PC 0x180033
|
|||||||
HeartBeep:
|
HeartBeep:
|
||||||
db #$20 ; #$00 = Off - #$20 = Normal (default) - #$40 = Half Speed - #$80 = Quarter Speed
|
db #$20 ; #$00 = Off - #$20 = Normal (default) - #$40 = Half Speed - #$80 = Quarter Speed
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $308034 ; PC 0x180034 - 0x180035
|
; 0x180034 - 0x180035 (Unused)
|
||||||
StartingMaxBombs:
|
|
||||||
db #10 ; #10 = Default (10 decimal)
|
|
||||||
StartingMaxArrows:
|
|
||||||
db #30 ; #30 = Default (30 decimal)
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $308036 ; PC 0x180036 - 0x180037
|
org $308036 ; PC 0x180036 - 0x180037
|
||||||
RupoorDeduction:
|
RupoorDeduction:
|
||||||
@@ -332,15 +328,15 @@ db $00 ;
|
|||||||
;Warp BL : 7A
|
;Warp BL : 7A
|
||||||
;Warp BR : 7B
|
;Warp BR : 7B
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $308080 ; PC 0x180080 - 0x180083
|
org $308080 ; PC 0x180080 - 0x180083 ; Default to fill on upgrade. Can be set to 0 to not fill.
|
||||||
Upgrade5BombsRefill:
|
Upgrade5BombsRefill:
|
||||||
db #$00
|
db #$32
|
||||||
Upgrade10BombsRefill:
|
Upgrade10BombsRefill:
|
||||||
db #$00
|
db #$32
|
||||||
Upgrade5ArrowsRefill:
|
Upgrade5ArrowsRefill:
|
||||||
db #$00
|
db #$46
|
||||||
Upgrade10ArrowsRefill:
|
Upgrade10ArrowsRefill:
|
||||||
db #$00
|
db #$46
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $308084 ; PC 0x180084 - 0x180085
|
org $308084 ; PC 0x180084 - 0x180085
|
||||||
PotionHealthRefill:
|
PotionHealthRefill:
|
||||||
|
|||||||
Reference in New Issue
Block a user