Fix up labels
still WIP still do not use
This commit is contained in:
@@ -144,27 +144,24 @@ RefreshRainAmmo:
|
|||||||
.done
|
.done
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
!INFINITE_ARROWS = "$7F50C8"
|
|
||||||
!INFINITE_BOMBS = "$7F50C9"
|
|
||||||
!INFINITE_MAGIC = "$7F50CA"
|
|
||||||
SetEscapeAssist:
|
SetEscapeAssist:
|
||||||
LDA ProgressIndicator : CMP.b #$01 : BNE .no_train ; check if we're in rain state
|
LDA ProgressIndicator : CMP.b #$01 : BNE .no_train ; check if we're in rain state
|
||||||
.rain
|
.rain
|
||||||
LDA.l EscapeAssist
|
LDA.l EscapeAssist
|
||||||
BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : +
|
BIT.b #$04 : BEQ + : STA InfiniteMagicModifier : +
|
||||||
BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : +
|
BIT.b #$02 : BEQ + : STA InfiniteBombsModifier : +
|
||||||
BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : +
|
BIT.b #$01 : BEQ + : STA InfiniteArrowsModifier : +
|
||||||
BRA ++
|
BRA ++
|
||||||
.no_train ; choo choo
|
.no_train ; choo choo
|
||||||
LDA.l EscapeAssist
|
LDA.l EscapeAssist
|
||||||
BIT.b #$40 : BEQ + : STA !INFINITE_MAGIC : +
|
BIT.b #$40 : BEQ + : STA InfiniteMagicModifier : +
|
||||||
BIT.b #$20 : BEQ + : STA !INFINITE_BOMBS : +
|
BIT.b #$20 : BEQ + : STA InfiniteBombsModifier : +
|
||||||
BIT.b #$10 : BEQ + : STA !INFINITE_ARROWS : +
|
BIT.b #$10 : BEQ + : STA InfiniteArrowsModifier : +
|
||||||
++
|
++
|
||||||
|
|
||||||
LDA.l SpecialWeapons : CMP #$01 : BNE +
|
LDA.l SpecialWeapons : CMP #$01 : BNE +
|
||||||
LDA.l !WEAPON_LEVEL : BEQ +
|
LDA.l SpecialWeaponLevel : BEQ +
|
||||||
LDA #$01 : STA !INFINITE_BOMBS
|
LDA #$01 : STA InfiniteBombsModifier
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
18
dialog.asm
18
dialog.asm
@@ -309,7 +309,7 @@ DialogGanon2:
|
|||||||
LDA.l SpecialWeapons : AND.w #$00FF
|
LDA.l SpecialWeapons : AND.w #$00FF
|
||||||
CMP.w #$0001 : BEQ .bombs ; bombs if special bomb mode
|
CMP.w #$0001 : BEQ .bombs ; bombs if special bomb mode
|
||||||
.silver_arrows
|
.silver_arrows
|
||||||
LDA.l $BowTracking
|
LDA.l BowTracking
|
||||||
|
|
||||||
BIT.w #$0080 : BNE + ; branch if bow
|
BIT.w #$0080 : BNE + ; branch if bow
|
||||||
LDA.w #$0192 : JMP .done
|
LDA.w #$0192 : JMP .done
|
||||||
@@ -330,26 +330,26 @@ DialogGanon2:
|
|||||||
CMP.w #$0005 : BEQ .powder
|
CMP.w #$0005 : BEQ .powder
|
||||||
CMP.w #$0010 : BEQ .bee
|
CMP.w #$0010 : BEQ .bee
|
||||||
PHX : TAX
|
PHX : TAX
|
||||||
LDA.l $7EF33F, X : PLX : AND #$00FF : BNE +
|
LDA.l EquipmentWRAM-1, X : PLX : AND #$00FF : BNE +
|
||||||
LDA.w #$0192 : JMP .done
|
LDA.w #$0192 : JMP .done
|
||||||
+
|
+
|
||||||
LDA.w #$0195 : BRA .done
|
LDA.w #$0195 : BRA .done
|
||||||
.bombs
|
.bombs
|
||||||
LDA.l $7EF343 : AND #$00FF : BNE +
|
LDA.l BombsEquipment : AND #$00FF : BNE +
|
||||||
LDA.l $7F50C9 : AND #$00FF : BNE + ; check for infinite bombs
|
LDA.l InfiniteBombsModifier : AND #$00FF : BNE + ; check for infinite bombs
|
||||||
LDA.w #$0192 : BRA .done
|
LDA.w #$0192 : BRA .done
|
||||||
+
|
+
|
||||||
LDA.w #$0195 : BRA .done
|
LDA.w #$0195 : BRA .done
|
||||||
.powder
|
.powder
|
||||||
LDA.l $7EF38C : AND #$0010 : BNE +
|
LDA.l InventoryTracking : AND #$0010 : BNE + ; check for powder
|
||||||
LDA.w #$0192 : BRA .done
|
LDA.w #$0192 : BRA .done
|
||||||
+
|
+
|
||||||
LDA.w #$0195 : BRA .done
|
LDA.w #$0195 : BRA .done
|
||||||
.bee
|
.bee
|
||||||
LDA.l $7EF35C : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
LDA.l BottleContentsOne : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
||||||
LDA.l $7EF35D : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
LDA.l BottleContentsTwo : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
||||||
LDA.l $7EF35E : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
LDA.l BottleContentsThree : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
||||||
LDA.l $7EF35F : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
LDA.l BottleContentsFour : AND #$00FF : CMP.w #$0007 : BEQ + : CMP.w #$0008 : BEQ +
|
||||||
LDA.w #$0192 : BRA .done
|
LDA.w #$0192 : BRA .done
|
||||||
+
|
+
|
||||||
LDA.w #$0195 : BRA .done
|
LDA.w #$0195 : BRA .done
|
||||||
|
|||||||
@@ -59,9 +59,9 @@ RTL
|
|||||||
OnUncleItemGet:
|
OnUncleItemGet:
|
||||||
PHA
|
PHA
|
||||||
LDA.l EscapeAssist
|
LDA.l EscapeAssist
|
||||||
BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : +
|
BIT.b #$04 : BEQ + : STA InfiniteMagicModifier : +
|
||||||
BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : +
|
BIT.b #$02 : BEQ + : STA InfiniteBombsModifier : +
|
||||||
BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : +
|
BIT.b #$01 : BEQ + : STA InfiniteArrowsModifier : +
|
||||||
|
|
||||||
LDA UncleItem_Player : STA !MULTIWORLD_ITEM_PLAYER_ID
|
LDA UncleItem_Player : STA !MULTIWORLD_ITEM_PLAYER_ID
|
||||||
PLA
|
PLA
|
||||||
|
|||||||
@@ -78,9 +78,9 @@ JMP .done
|
|||||||
PHA
|
PHA
|
||||||
TYA ; load bomb upgrade item
|
TYA ; load bomb upgrade item
|
||||||
!SUB #$B0 ; convert to bomb level
|
!SUB #$B0 ; convert to bomb level
|
||||||
CMP.l !WEAPON_LEVEL : !BGE + ; skip if highest is lower (this is an upgrade)
|
CMP.l SpecialWeaponLevel : !BGE + ; skip if highest is lower (this is an upgrade)
|
||||||
LDA.l !WEAPON_LEVEL : !ADD #$B0 ; convert to item id
|
LDA.l SpecialWeaponLevel : !ADD #$B0 ; convert to item id
|
||||||
TAY : PLA : LDA.l !WEAPON_LEVEL ; put bomb level into the thing to write
|
TAY : PLA : LDA.l SpecialWeaponLevel ; put bomb level into the thing to write
|
||||||
JMP .done
|
JMP .done
|
||||||
+
|
+
|
||||||
PLA
|
PLA
|
||||||
@@ -89,9 +89,9 @@ JMP .done
|
|||||||
PHA
|
PHA
|
||||||
TYA ; load cane upgrade item
|
TYA ; load cane upgrade item
|
||||||
!SUB #$B6 ; convert to cane level
|
!SUB #$B6 ; convert to cane level
|
||||||
CMP.l !WEAPON_LEVEL : !BGE + ; skip if highest is lower (this is an upgrade)
|
CMP.l SpecialWeaponLevel : !BGE + ; skip if highest is lower (this is an upgrade)
|
||||||
LDA.l !WEAPON_LEVEL : !ADD #$B6 ; convert to item id
|
LDA.l SpecialWeaponLevel : !ADD #$B6 ; convert to item id
|
||||||
TAY : PLA : LDA.l !WEAPON_LEVEL ; put cane level into the thing to write
|
TAY : PLA : LDA.l SpecialWeaponLevel ; put cane level into the thing to write
|
||||||
JMP .done
|
JMP .done
|
||||||
+
|
+
|
||||||
PLA
|
PLA
|
||||||
|
|||||||
15
newhud.asm
15
newhud.asm
@@ -3,15 +3,14 @@ NewDrawHud:
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
; Draw bomb count
|
; Draw bomb count
|
||||||
!BOMBCOUNT_DRAW_ADDRESS = "$7EC75A"
|
!BOMBCOUNT_DRAW_ADDRESS = "$7EC75A"
|
||||||
!INFINITE_BOMBS = "$7F50C9"
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
LDA !INFINITE_BOMBS : BNE .infinite_bombs
|
LDA InfiniteBombsModifier : BNE .infinite_bombs
|
||||||
.finite_bombs
|
.finite_bombs
|
||||||
LDA.l SpecialWeapons : CMP #$01 : BNE .normal
|
LDA.l SpecialWeapons : CMP #$01 : BNE .normal
|
||||||
LDA.l !WEAPON_LEVEL : BEQ .no_bombs
|
LDA.l SpecialWeaponLevel : BEQ .no_bombs
|
||||||
.normal
|
.normal
|
||||||
LDA.l $7EF343 ; bombs
|
LDA.l BombsEquipment ; bombs
|
||||||
JSR HudHexToDec2Digit ;requires 8 bit registers!
|
JSR HudHexToDec2Digit ;requires 8 bit registers!
|
||||||
REP #$20
|
REP #$20
|
||||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !BOMBCOUNT_DRAW_ADDRESS ; Draw bombs 10 digit
|
LDX.b $06 : TXA : ORA.w #$2400 : STA !BOMBCOUNT_DRAW_ADDRESS ; Draw bombs 10 digit
|
||||||
@@ -43,14 +42,13 @@ NewDrawHud:
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
; Draw arrow count
|
; Draw arrow count
|
||||||
!ARROWCOUNT_DRAW_ADDRESS = "$7EC760"
|
!ARROWCOUNT_DRAW_ADDRESS = "$7EC760"
|
||||||
!INFINITE_ARROWS = "$7F50C8"
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.l ArrowMode : BNE +
|
LDA.l ArrowMode : BNE +
|
||||||
LDA !INFINITE_ARROWS : BNE .infinite_arrows
|
LDA InfiniteArrowsModifier : BNE .infinite_arrows
|
||||||
.finite_arrows
|
.finite_arrows
|
||||||
LDA.l $7EF377 ; arrows
|
LDA.l CurrentArrows ; arrows
|
||||||
JSR HudHexToDec2Digit
|
JSR HudHexToDec2Digit
|
||||||
REP #$20
|
REP #$20
|
||||||
LDX.b $06 : TXA : ORA.w #$2400 : STA !ARROWCOUNT_DRAW_ADDRESS ; Draw arrows 10 digit
|
LDX.b $06 : TXA : ORA.w #$2400 : STA !ARROWCOUNT_DRAW_ADDRESS ; Draw arrows 10 digit
|
||||||
@@ -175,7 +173,6 @@ NewDrawHud:
|
|||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; Draw Magic Meter
|
; Draw Magic Meter
|
||||||
!INFINITE_MAGIC = "$7F50CA"
|
|
||||||
!DrawMagicMeter_mp_tilemap = "$0DFE0F"
|
!DrawMagicMeter_mp_tilemap = "$0DFE0F"
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LDA CurrentMagic : AND #$00FF ; crap we wrote over when placing the hook for OnDrawHud
|
LDA CurrentMagic : AND #$00FF ; crap we wrote over when placing the hook for OnDrawHud
|
||||||
@@ -183,7 +180,7 @@ NewDrawHud:
|
|||||||
AND #$FFF8
|
AND #$FFF8
|
||||||
TAX ; end of crap
|
TAX ; end of crap
|
||||||
|
|
||||||
LDA !INFINITE_MAGIC : AND.w #$00FF : BNE + : JMP .green : +
|
LDA InfiniteMagicModifier : AND.w #$00FF : BNE + : JMP .green : +
|
||||||
SEP #$20 : LDA.b #$80 : STA CurrentMagic : REP #$30 ; set magic to max
|
SEP #$20 : LDA.b #$80 : STA CurrentMagic : REP #$30 ; set magic to max
|
||||||
LDX.w #$0080 ; load full magic meter graphics
|
LDX.w #$0080 ; load full magic meter graphics
|
||||||
LDA $1A : AND.w #$000C : LSR #2
|
LDA $1A : AND.w #$000C : LSR #2
|
||||||
|
|||||||
31
newitems.asm
31
newitems.asm
@@ -418,14 +418,14 @@ AddReceivedItemExpandedGetItem:
|
|||||||
LDA.b #$FF : STA.w $0B58,Y ; allows them to expire
|
LDA.b #$FF : STA.w $0B58,Y ; allows them to expire
|
||||||
++ JMP .done
|
++ JMP .done
|
||||||
+ CMP.b #$B2 : BNE + ; Fairy
|
+ CMP.b #$B2 : BNE + ; Fairy
|
||||||
LDA.b #$E3 : JSL Sprite_SpawnDynamically : BMI .done
|
LDA.b #$E3 : JSL Sprite_SpawnDynamically : BMI ++
|
||||||
LDA $22 : CLC : ADC.b #$03 : AND.b #$F8 : STA $0D10,Y
|
LDA $22 : CLC : ADC.b #$03 : AND.b #$F8 : STA $0D10,Y
|
||||||
LDA $23 : ADC.b #$00 : STA $0D30,Y ; round X to nearest 8
|
LDA $23 : ADC.b #$00 : STA $0D30,Y ; round X to nearest 8
|
||||||
LDA.b $20 : SEC : SBC.b #$10 : STA.w $0D00,Y
|
LDA.b $20 : SEC : SBC.b #$10 : STA.w $0D00,Y
|
||||||
LDA.b $21 : SBC.b #$00 : STA.w $0D20,Y ; move up 16 pixels
|
LDA.b $21 : SBC.b #$00 : STA.w $0D20,Y ; move up 16 pixels
|
||||||
LDA.b $EE : STA.w $0F20,Y ; spawns on same layer as link
|
LDA.b $EE : STA.w $0F20,Y ; spawns on same layer as link
|
||||||
LDA.b #$FF : STA.w $0B58,Y ; allows them to expire
|
LDA.b #$FF : STA.w $0B58,Y ; allows them to expire
|
||||||
BRA .done
|
++ JMP .done
|
||||||
+ CMP.b #$B3 : BNE + ; Chicken
|
+ CMP.b #$B3 : BNE + ; Chicken
|
||||||
LDA.b #$0B : JSL Sprite_SpawnDynamically : BMI .done
|
LDA.b #$0B : JSL Sprite_SpawnDynamically : BMI .done
|
||||||
LDA $22 : CLC : ADC.b #$03 : AND.b #$F8 : STA $0D10,Y
|
LDA $22 : CLC : ADC.b #$03 : AND.b #$F8 : STA $0D10,Y
|
||||||
@@ -442,17 +442,17 @@ AddReceivedItemExpandedGetItem:
|
|||||||
BRA .done
|
BRA .done
|
||||||
+ CMP.b #$B6 : BNE + ; Bomb Upgrade
|
+ CMP.b #$B6 : BNE + ; Bomb Upgrade
|
||||||
LDA.l SpecialWeapons : CMP #$01 : BNE .done
|
LDA.l SpecialWeapons : CMP #$01 : BNE .done
|
||||||
LDA #$01 : STA $7F50C9 ; infinite bombs
|
LDA #$01 : STA InfiniteBombsModifier ; infinite bombs
|
||||||
JMP .done
|
JMP .done
|
||||||
+ : CMP.b #$B7 : BNE + ; Cane Upgrade
|
+ : CMP.b #$B7 : BNE + ; Cane Upgrade
|
||||||
LDA.l SpecialWeapons : CMP #$03 : BEQ .blue_cane
|
LDA.l SpecialWeapons : CMP #$03 : BEQ .blue_cane
|
||||||
CMP #$04 : BEQ .red_cane
|
CMP #$04 : BEQ .red_cane
|
||||||
BRA .done
|
BRA .done
|
||||||
.blue_cane
|
.blue_cane
|
||||||
LDA #$01 : STA $7EF351
|
LDA #$01 : STA ByrnaEquipment
|
||||||
BRA .done
|
BRA .done
|
||||||
.red_cane
|
.red_cane
|
||||||
LDA #$01 : STA $7EF350
|
LDA #$01 : STA SomariaEquipment
|
||||||
BRA .done
|
BRA .done
|
||||||
+
|
+
|
||||||
.done
|
.done
|
||||||
@@ -600,7 +600,7 @@ AddReceivedItemExpanded:
|
|||||||
LDA.b #$0E : STA $02D8 : JMP .done ; Bee in a bottle
|
LDA.b #$0E : STA $02D8 : JMP .done ; Bee in a bottle
|
||||||
+++
|
+++
|
||||||
++ : CMP.b #$B6 : BNE ++ ; Progressive Bombs
|
++ : CMP.b #$B6 : BNE ++ ; Progressive Bombs
|
||||||
LDA !WEAPON_LEVEL
|
LDA SpecialWeaponLevel
|
||||||
CMP.b #$00 : BNE + ; have no Bombs
|
CMP.b #$00 : BNE + ; have no Bombs
|
||||||
LDA.b #$B1 : STA $02D8 : JMP .done
|
LDA.b #$B1 : STA $02D8 : JMP .done
|
||||||
+ : CMP.b #$01 : BNE + ; have L-1 Bombs
|
+ : CMP.b #$01 : BNE + ; have L-1 Bombs
|
||||||
@@ -612,7 +612,7 @@ AddReceivedItemExpanded:
|
|||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$B5 : STA $02D8 : JMP .done
|
LDA.b #$B5 : STA $02D8 : JMP .done
|
||||||
++ : CMP.b #$BC : BNE ++ ; Progressive Cane
|
++ : CMP.b #$BC : BNE ++ ; Progressive Cane
|
||||||
LDA !WEAPON_LEVEL
|
LDA SpecialWeaponLevel
|
||||||
CMP.b #$00 : BNE + ; have no Cane
|
CMP.b #$00 : BNE + ; have no Cane
|
||||||
LDA.b #$B7 : STA $02D8 : JMP .done
|
LDA.b #$B7 : STA $02D8 : JMP .done
|
||||||
+ : CMP.b #$01 : BNE + ; have L-1 Cane
|
+ : CMP.b #$01 : BNE + ; have L-1 Cane
|
||||||
@@ -1300,6 +1300,23 @@ ChestPrep:
|
|||||||
SEC
|
SEC
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
UpdateInventoryLocationExpanded:
|
||||||
|
{
|
||||||
|
REP #$30
|
||||||
|
TYA : AND #$00FF : ASL A : TAX
|
||||||
|
|
||||||
|
; Tells what inventory location to write to.
|
||||||
|
LDA.w AddReceivedItemExpanded_item_target_addr, X : STA $00
|
||||||
|
|
||||||
|
SEP #$30
|
||||||
|
|
||||||
|
LDA.b #$7E : STA $02
|
||||||
|
|
||||||
|
LDA.w AddReceivedItemExpanded_item_values, Y
|
||||||
|
JSL ItemDowngradeFix
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
; Set a flag in SRAM if we pick up a compass in its own dungeon with HUD compass
|
; Set a flag in SRAM if we pick up a compass in its own dungeon with HUD compass
|
||||||
; counts on
|
; counts on
|
||||||
MaybeFlagCompassTotalPickup:
|
MaybeFlagCompassTotalPickup:
|
||||||
|
|||||||
14
retro.asm
14
retro.asm
@@ -1,6 +1,5 @@
|
|||||||
!INFINITE_BOMBS = "$7F50C9"
|
|
||||||
IsItemAvailable:
|
IsItemAvailable:
|
||||||
LDA !INFINITE_BOMBS : BEQ .finite
|
LDA InfiniteBombsModifier : BEQ .finite
|
||||||
.infinite
|
.infinite
|
||||||
CPX.b #$04 : BNE .finite
|
CPX.b #$04 : BNE .finite
|
||||||
LDA.b #$01 : RTL
|
LDA.b #$01 : RTL
|
||||||
@@ -8,35 +7,34 @@ IsItemAvailable:
|
|||||||
LDA EquipmentWRAM-1, X
|
LDA EquipmentWRAM-1, X
|
||||||
RTL
|
RTL
|
||||||
LoadBombCount:
|
LoadBombCount:
|
||||||
LDA !INFINITE_BOMBS : BNE .infinite
|
LDA InfiniteBombsModifier : BNE .infinite
|
||||||
.finite
|
.finite
|
||||||
LDA BombsEquipment
|
LDA BombsEquipment
|
||||||
.infinite
|
.infinite
|
||||||
RTL
|
RTL
|
||||||
LoadBombCount16:
|
LoadBombCount16:
|
||||||
LDA !INFINITE_BOMBS : AND.w #$00FF : BNE .infinite
|
LDA InfiniteBombsModifier : AND.w #$00FF : BNE .infinite
|
||||||
.finite
|
.finite
|
||||||
LDA BombsEquipment
|
LDA BombsEquipment
|
||||||
.infinite
|
.infinite
|
||||||
RTL
|
RTL
|
||||||
StoreBombCount:
|
StoreBombCount:
|
||||||
JSL IncrementBombsPlacedCounter
|
JSL IncrementBombsPlacedCounter
|
||||||
PHA : LDA !INFINITE_BOMBS : BEQ .finite
|
PHA : LDA InfiniteBombsModifier : BEQ .finite
|
||||||
.infinite
|
.infinite
|
||||||
PLA : LDA.b #$01 : RTL
|
PLA : LDA.b #$01 : RTL
|
||||||
.finite
|
.finite
|
||||||
PLA : STA BombsEquipment
|
PLA : STA BombsEquipment
|
||||||
RTL
|
RTL
|
||||||
SearchForEquippedItem:
|
SearchForEquippedItem:
|
||||||
LDA !INFINITE_BOMBS : BEQ +
|
LDA InfiniteBombsModifier : BEQ +
|
||||||
LDA.b #$01 : LDX.b #$00 : RTL
|
LDA.b #$01 : LDX.b #$00 : RTL
|
||||||
+
|
+
|
||||||
LDA BowEquipment ; thing we wrote over
|
LDA BowEquipment ; thing we wrote over
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
!INFINITE_ARROWS = "$7F50C8"
|
|
||||||
DecrementArrows:
|
DecrementArrows:
|
||||||
LDA !INFINITE_ARROWS : BNE .infinite
|
LDA InfiniteArrowsModifier : BNE .infinite
|
||||||
LDA.l ArrowMode : BNE .rupees : BRA .normal
|
LDA.l ArrowMode : BNE .rupees : BRA .normal
|
||||||
.infinite
|
.infinite
|
||||||
LDA.b #$01 : RTL
|
LDA.b #$01 : RTL
|
||||||
|
|||||||
@@ -53,17 +53,17 @@ DamageClassCalc:
|
|||||||
.not_cane_or_beam
|
.not_cane_or_beam
|
||||||
CMP #$07 : BNE .no_change
|
CMP #$07 : BNE .no_change
|
||||||
LDA SpecialWeapons : CMP #$01 : BNE .normal_bombs
|
LDA SpecialWeapons : CMP #$01 : BNE .normal_bombs
|
||||||
LDA !WEAPON_LEVEL : BEQ .normal_bombs
|
LDA SpecialWeaponLevel : BEQ .normal_bombs
|
||||||
LDA $0E20, X : CMP.b #$D6 : BEQ .unstunned_ganon
|
LDA $0E20, X : CMP.b #$D6 : BEQ .unstunned_ganon
|
||||||
CMP.b #$D7 : BEQ .stunned_ganon
|
CMP.b #$D7 : BEQ .stunned_ganon
|
||||||
CMP.b #$88 : BEQ .mothula
|
CMP.b #$88 : BEQ .mothula
|
||||||
CMP.b #$91 : BEQ .stalfos_knight
|
CMP.b #$91 : BEQ .stalfos_knight
|
||||||
CMP.b #$92 : BEQ .helmasaur_king
|
CMP.b #$92 : BEQ .helmasaur_king
|
||||||
.special_level
|
.special_level
|
||||||
LDA !WEAPON_LEVEL
|
LDA SpecialWeaponLevel
|
||||||
BRA .done
|
BRA .done
|
||||||
.mothula
|
.mothula
|
||||||
LDA !WEAPON_LEVEL
|
LDA SpecialWeaponLevel
|
||||||
CMP #$04 : !BGE .fix_mothula
|
CMP #$04 : !BGE .fix_mothula
|
||||||
BRA .done
|
BRA .done
|
||||||
.fix_mothula
|
.fix_mothula
|
||||||
@@ -95,7 +95,7 @@ DamageClassCalc:
|
|||||||
LDA.l !ANCILLA_DAMAGE, X
|
LDA.l !ANCILLA_DAMAGE, X
|
||||||
PLX
|
PLX
|
||||||
CMP.b #$06 : BNE .done ; not arrows
|
CMP.b #$06 : BNE .done ; not arrows
|
||||||
LDA $7EF340 : CMP.b #$03 : !BGE .actual_silver_arrows
|
LDA BowEquipment : CMP.b #$03 : !BGE .actual_silver_arrows
|
||||||
.normal_arrows
|
.normal_arrows
|
||||||
LDA #$06
|
LDA #$06
|
||||||
.done
|
.done
|
||||||
@@ -352,7 +352,7 @@ AllowBombingBarrier:
|
|||||||
DrawBombInMenu:
|
DrawBombInMenu:
|
||||||
JSL LoadBombCount16 : AND.w #$00FF : BEQ .noBombs
|
JSL LoadBombCount16 : AND.w #$00FF : BEQ .noBombs
|
||||||
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanillaBombs
|
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanillaBombs
|
||||||
LDA.l !WEAPON_LEVEL : AND.w #$00FF : BEQ .noBombs : STA $02
|
LDA.l SpecialWeaponLevel : AND.w #$00FF : BEQ .noBombs : STA $02
|
||||||
LDA.w #$FC81 : STA $04
|
LDA.w #$FC81 : STA $04
|
||||||
BRA .done
|
BRA .done
|
||||||
.vanillaBombs
|
.vanillaBombs
|
||||||
@@ -370,7 +370,7 @@ DrawSwordInMenu:
|
|||||||
CMP.w #$0003 : BEQ .specialSword
|
CMP.w #$0003 : BEQ .specialSword
|
||||||
CMP.w #$0004 : BEQ .specialSword
|
CMP.w #$0004 : BEQ .specialSword
|
||||||
CMP.w #$0005 : BEQ .specialSword
|
CMP.w #$0005 : BEQ .specialSword
|
||||||
LDA $7EF359 : AND.w #$00FF : CMP.w #$00FF : BEQ .noSword
|
LDA SwordEquipment : AND.w #$00FF : CMP.w #$00FF : BEQ .noSword
|
||||||
.hasSword
|
.hasSword
|
||||||
STA $02
|
STA $02
|
||||||
LDA.w #$F859 : STA $04
|
LDA.w #$F859 : STA $04
|
||||||
@@ -380,14 +380,14 @@ DrawSwordInMenu:
|
|||||||
LDA.w #$F859 : STA $04
|
LDA.w #$F859 : STA $04
|
||||||
RTL
|
RTL
|
||||||
.specialSword
|
.specialSword
|
||||||
LDA !WEAPON_LEVEL : AND.w #$00FF : STA $02
|
LDA SpecialWeaponLevel : AND.w #$00FF : STA $02
|
||||||
LDA.w #$FC51 : STA $04
|
LDA.w #$FC51 : STA $04
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DrawBombInYBox:
|
DrawBombInYBox:
|
||||||
CPX.w #$0004 : BNE .done
|
CPX.w #$0004 : BNE .done
|
||||||
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanilla
|
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanilla
|
||||||
LDA !WEAPON_LEVEL : AND.w #$00FF : CLC : ADC.w #$00BD : BRA .done
|
LDA SpecialWeaponLevel : AND.w #$00FF : CLC : ADC.w #$00BD : BRA .done
|
||||||
.vanilla
|
.vanilla
|
||||||
LDA.w #$0001
|
LDA.w #$0001
|
||||||
.done
|
.done
|
||||||
@@ -404,7 +404,7 @@ DrawBombOnHud:
|
|||||||
PLB
|
PLB
|
||||||
|
|
||||||
LDA.l SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .regularBombs
|
LDA.l SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .regularBombs
|
||||||
LDA.l !WEAPON_LEVEL : AND.w #$00FF : ASL #2 : TAX
|
LDA.l SpecialWeaponLevel : AND.w #$00FF : ASL #2 : TAX
|
||||||
LDA.l BombIcon, X : STA.l $7EC71A
|
LDA.l BombIcon, X : STA.l $7EC71A
|
||||||
LDA.l BombIcon+2, X : STA.l $7EC71C
|
LDA.l BombIcon+2, X : STA.l $7EC71C
|
||||||
.regularBombs
|
.regularBombs
|
||||||
@@ -415,7 +415,7 @@ BombSpriteColor:
|
|||||||
SetBombSpriteColor:
|
SetBombSpriteColor:
|
||||||
LDA.l SpecialWeapons : CMP.b #$01 : BNE .normal
|
LDA.l SpecialWeapons : CMP.b #$01 : BNE .normal
|
||||||
PHX
|
PHX
|
||||||
LDA.l !WEAPON_LEVEL
|
LDA.l SpecialWeaponLevel
|
||||||
TAX
|
TAX
|
||||||
LDA.l BombSpriteColor, X
|
LDA.l BombSpriteColor, X
|
||||||
STA $0B
|
STA $0B
|
||||||
|
|||||||
27
sram.asm
27
sram.asm
@@ -173,11 +173,12 @@ InventoryTracking: skip 2 ; b r m p n s k f - - - - - - o q (bitfield)
|
|||||||
; p = Magic Powder | n = Mushroom Past | s = Shovel
|
; p = Magic Powder | n = Mushroom Past | s = Shovel
|
||||||
; k = Inactive Flute | f = Active Flute | o = Any bomb acquired
|
; k = Inactive Flute | f = Active Flute | o = Any bomb acquired
|
||||||
; q = Quickswap locked
|
; q = Quickswap locked
|
||||||
BowTracking: skip 2 ; b s p - - - - - - - - - - - - - (bitfield)
|
BowTracking: skip 1 ; b s p - - - - - (bitfield)
|
||||||
; b = Bow | s = Silver Arrows Upgrade | p = Second Progressive Bow
|
; b = Bow | s = Silver Arrows Upgrade | p = Second Progressive Bow
|
||||||
; 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
|
||||||
|
SpecialWeaponLevel: skip 1 ; Keeps track of level of weapon in bomb-only and cane-only modes
|
||||||
ItemLimitCounts: skip 16 ; 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
|
||||||
@@ -313,7 +314,8 @@ HeartPieceCounter: skip 1 ; Total Number of heartpieces collected (integer
|
|||||||
CrystalCounter: skip 1 ; Total Number of crystals collected (integer)
|
CrystalCounter: skip 1 ; Total Number of crystals collected (integer)
|
||||||
DungeonsCompleted: skip 2 ; Bitfield indicating whether a dungeon's prize has been collected.
|
DungeonsCompleted: skip 2 ; Bitfield indicating whether a dungeon's prize has been collected.
|
||||||
; This has the same shape as the dungeon item bitfields.
|
; This has the same shape as the dungeon item bitfields.
|
||||||
skip 44 ; Unused
|
BombsPlaced: skip 2 ; Total Number of bombs placed (16-bit integer)
|
||||||
|
skip 42 ; 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
|
||||||
@@ -371,6 +373,26 @@ FileMarker: skip 1 ; $FF = Active save file | $00 = Inactive save f
|
|||||||
skip 13 ; Unused
|
skip 13 ; Unused
|
||||||
InverseChecksum: skip 2 ; Vanilla Inverse Checksum. Don't write unless computing checksum.
|
InverseChecksum: skip 2 ; Vanilla Inverse Checksum. Don't write unless computing checksum.
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
; Temporary Effects ($7F50C0 - $7F50CF)
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
base $7F50C0
|
||||||
|
SwordModifier: skip 1
|
||||||
|
ShieldModifier: skip 1 ; (not implemented)
|
||||||
|
ArmorModifier: skip 1
|
||||||
|
MagicModifier: skip 1
|
||||||
|
LightConeModifier: skip 1
|
||||||
|
CuccoStormModifier: skip 1
|
||||||
|
OldManDashModifier: skip 1
|
||||||
|
IcePhysicsModifier: skip 1
|
||||||
|
InfiniteArrowsModifier: skip 1
|
||||||
|
InfiniteBombsModifier: skip 1
|
||||||
|
InfiniteMagicModifier: skip 1
|
||||||
|
InvertDPadModifier: skip 1
|
||||||
|
TemporaryOHKO: skip 1
|
||||||
|
SpriteSwapper: skip 1
|
||||||
|
BootsModifier: skip 1 ; (0=Off, 1=Always, 2=Never)
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Expanded SRAM ($7F6000 - $7F6FFF)
|
; Expanded SRAM ($7F6000 - $7F6FFF)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -527,6 +549,7 @@ endmacro
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
%assertSRAM(InventoryTracking, $7EF38C)
|
%assertSRAM(InventoryTracking, $7EF38C)
|
||||||
%assertSRAM(BowTracking, $7EF38E)
|
%assertSRAM(BowTracking, $7EF38E)
|
||||||
|
%assertSRAM(SpecialWeaponLevel, $7EF38F)
|
||||||
%assertSRAM(ItemLimitCounts, $7EF390)
|
%assertSRAM(ItemLimitCounts, $7EF390)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
%assertSRAM(GameCounter, $7EF3FF)
|
%assertSRAM(GameCounter, $7EF3FF)
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ IncrementBombsPlacedCounter:
|
|||||||
PHA
|
PHA
|
||||||
LDA StatsLocked : BNE +
|
LDA StatsLocked : BNE +
|
||||||
PHP : REP #$20
|
PHP : REP #$20
|
||||||
LDA !BOMBS_PLACED_COUNTER : INC : STA !BOMBS_PLACED_COUNTER
|
LDA BombsPlaced : INC : STA BombsPlaced
|
||||||
PLP
|
PLP
|
||||||
+
|
+
|
||||||
PLA
|
PLA
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
%AddStat(DamageCounter, 0, 0, 16, 5, !DAMAGETAKEN_X, !DAMAGETAKEN_Y)
|
%AddStat(DamageCounter, 0, 0, 16, 5, !DAMAGETAKEN_X, !DAMAGETAKEN_Y)
|
||||||
%AddStat(MagicCounter, 0, 0, 16, 5, !MAGICUSED_X, !MAGICUSED_Y)
|
%AddStat(MagicCounter, 0, 0, 16, 5, !MAGICUSED_X, !MAGICUSED_Y)
|
||||||
%AddStat(BonkCounter, 0, 0, 08, 3, !BONKS_X, !BONKS_Y)
|
%AddStat(BonkCounter, 0, 0, 08, 3, !BONKS_X, !BONKS_Y)
|
||||||
%AddStat($7EF46E, 0, 0, 16, 4, !BOMBS_X, !BOMBS_Y)
|
%AddStat(BombsPlaced, 0, 0, 16, 4, !BOMBS_X, !BOMBS_Y)
|
||||||
%AddStat(SaveQuitCounter, 0, 0, 08, 2, !SAVE_AND_QUITS_X, !SAVE_AND_QUITS_Y)
|
%AddStat(SaveQuitCounter, 0, 0, 08, 2, !SAVE_AND_QUITS_X, !SAVE_AND_QUITS_Y)
|
||||||
%AddStat(DeathCounter, 0, 0, 08, 2, !DEATHS_X, !DEATHS_Y)
|
%AddStat(DeathCounter, 0, 0, 08, 2, !DEATHS_X, !DEATHS_Y)
|
||||||
%AddStat(FaerieRevivalCounter, 0, 0, 08, 3, !FAERIE_REVIVALS_X, !FAERIE_REVIVALS_Y)
|
%AddStat(FaerieRevivalCounter, 0, 0, 08, 3, !FAERIE_REVIVALS_X, !FAERIE_REVIVALS_Y)
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ CheckTabletSword:
|
|||||||
CMP #$05 : BEQ .check_special
|
CMP #$05 : BEQ .check_special
|
||||||
BRA .normal
|
BRA .normal
|
||||||
.check_special
|
.check_special
|
||||||
LDA !WEAPON_LEVEL : CMP #$02 : !BLT + ; check for master bombs
|
LDA SpecialWeaponLevel : CMP #$02 : !BLT + ; check for master bombs
|
||||||
LDA.b #$02 : RTL
|
LDA.b #$02 : RTL
|
||||||
.normal
|
.normal
|
||||||
LDA SwordEquipment ; get actual sword value
|
LDA SwordEquipment ; get actual sword value
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
; Challenge Timer
|
; Challenge Timer
|
||||||
;================================================================================
|
;================================================================================
|
||||||
!Temp = "$7F5020"
|
!Temp = "$7F5020"
|
||||||
!TemporaryOHKO = "$7F50CC"
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
!CLOCK_HOURS = "$7F5080" ; $7F5080 - $7F5083 - Clock Hours
|
!CLOCK_HOURS = "$7F5080" ; $7F5080 - $7F5083 - Clock Hours
|
||||||
!CLOCK_MINUTES = "$7F5084" ; $7F5084 - $7F5087 - Clock Minutes
|
!CLOCK_MINUTES = "$7F5084" ; $7F5084 - $7F5087 - Clock Minutes
|
||||||
@@ -176,7 +175,7 @@ DrawChallengeTimer:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OHKOTimer:
|
OHKOTimer:
|
||||||
LDA !TemporaryOHKO : BNE .kill
|
LDA TemporaryOHKO : BNE .kill
|
||||||
LDA.l TimeoutBehavior : CMP #$02 : BNE +
|
LDA.l TimeoutBehavior : CMP #$02 : BNE +
|
||||||
LDA !Status : AND.b #$02 : BEQ +
|
LDA !Status : AND.b #$02 : BEQ +
|
||||||
.kill
|
.kill
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ RTL
|
|||||||
+ ; Any Bow
|
+ ; Any Bow
|
||||||
LDA.b #$02 : RTL
|
LDA.b #$02 : RTL
|
||||||
++ : CMP.b #$F7 : BNE ++ ; Progressive Bombs
|
++ : CMP.b #$F7 : BNE ++ ; Progressive Bombs
|
||||||
LDA !WEAPON_LEVEL
|
LDA SpecialWeaponLevel
|
||||||
CMP.b #$00 : BNE + ; No Bombs
|
CMP.b #$00 : BNE + ; No Bombs
|
||||||
LDA.b #$08 : RTL
|
LDA.b #$08 : RTL
|
||||||
+ : CMP.b #$01 : BNE + ; L1 Bombs
|
+ : CMP.b #$01 : BNE + ; L1 Bombs
|
||||||
|
|||||||
Reference in New Issue
Block a user