Replace more common sprite ram with symbols
This commit is contained in:
@@ -138,7 +138,7 @@ Overlord_SpawnSoldierPath:
|
|||||||
LDA.w .soldier_position_y, X : STA.w SprY,Y
|
LDA.w .soldier_position_y, X : STA.w SprY,Y
|
||||||
LDA.w $0B40,X : STA.w SprFloor,Y
|
LDA.w $0B40,X : STA.w SprFloor,Y
|
||||||
LDA.b #$20 : STA.w SprTimerA,Y
|
LDA.b #$20 : STA.w SprTimerA,Y
|
||||||
LDA.w $0FB5 : STA.w $0DE0,Y
|
LDA.w $0FB5 : STA.w SprMiscC,Y
|
||||||
.exit
|
.exit
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ LinkItem_FishingRod:
|
|||||||
JSL Sprite_SetSpawnedCoordinates
|
JSL Sprite_SetSpawnedCoordinates
|
||||||
|
|
||||||
LDA.w $0E20, Y : CMP.b #$D2 : BNE .notafish
|
LDA.w $0E20, Y : CMP.b #$D2 : BNE .notafish
|
||||||
LDA #$04 : STA.w $0F70, Y
|
LDA #$04 : STA.w SprHeight, Y
|
||||||
LDA #$01 : STA.w $0D80, Y
|
LDA #$01 : STA.w $0D80, Y
|
||||||
.notafish
|
.notafish
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ LinkItem_FishingRod:
|
|||||||
PLX
|
PLX
|
||||||
LDA.b #$FF : STA.w SprTimerD, Y
|
LDA.b #$FF : STA.w SprTimerD, Y
|
||||||
LDA.b #$20 : STA.w $0F80, Y ; Gravity
|
LDA.b #$20 : STA.w $0F80, Y ; Gravity
|
||||||
;LDA.b #$06 : STA.w $0F70, Y
|
;LDA.b #$06 : STA.w SprHeight, Y
|
||||||
|
|
||||||
.noPrize
|
.noPrize
|
||||||
LDA.b #$02 : STA.l $7F5BA2 ; set fishing rod state to pulling back
|
LDA.b #$02 : STA.l $7F5BA2 ; set fishing rod state to pulling back
|
||||||
@@ -172,7 +172,7 @@ EndFishing:
|
|||||||
LDA #$00
|
LDA #$00
|
||||||
STA.l $7F5BA2
|
STA.l $7F5BA2
|
||||||
LDA.l $7F5BA3 : TAX
|
LDA.l $7F5BA3 : TAX
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
STZ.b $5E
|
STZ.b $5E
|
||||||
STZ.w $0300
|
STZ.w $0300
|
||||||
STZ.b $3D
|
STZ.b $3D
|
||||||
@@ -298,13 +298,13 @@ FloaterBoySpriteCheck:
|
|||||||
|
|
||||||
Sprite_CheckIfActive:
|
Sprite_CheckIfActive:
|
||||||
{
|
{
|
||||||
LDA.w $0FC1 ; Remove that if want to be able to pause all other sprites
|
LDA.w SprFreeze ; Remove that if want to be able to pause all other sprites
|
||||||
BNE .inactive
|
BNE .inactive
|
||||||
|
|
||||||
LDA.b $11
|
LDA.b $11
|
||||||
BNE .inactive
|
BNE .inactive
|
||||||
|
|
||||||
LDA.w $0CAA, X
|
LDA.w SprDefl, X
|
||||||
BMI .active
|
BMI .active
|
||||||
|
|
||||||
LDA.w $0F00, X
|
LDA.w $0F00, X
|
||||||
@@ -342,7 +342,7 @@ SpritePrep_Floater:
|
|||||||
|
|
||||||
.DoInitFloater
|
.DoInitFloater
|
||||||
|
|
||||||
LDA.b #$08 : STA.w $0F70, X ; Height
|
LDA.b #$08 : STA.w SprHeight, X ; Height
|
||||||
LDA.b #$10 : STA.w $0F80, X ; Gravity
|
LDA.b #$10 : STA.w $0F80, X ; Gravity
|
||||||
LDA.b #$00 : STA.w SprMiscG, X ; is it in water?
|
LDA.b #$00 : STA.w SprMiscG, X ; is it in water?
|
||||||
LDA.b #$00 : STA.w SprMiscE, X ; Wiggling Velocity index
|
LDA.b #$00 : STA.w SprMiscE, X ; Wiggling Velocity index
|
||||||
@@ -409,9 +409,9 @@ Sprite_Floater:
|
|||||||
|
|
||||||
LDA.w $0F80, X : SEC : SBC.b #$01 : STA.w $0F80, X
|
LDA.w $0F80, X : SEC : SBC.b #$01 : STA.w $0F80, X
|
||||||
|
|
||||||
LDA.w $0F70, X : BPL .aloft
|
LDA.w SprHeight, X : BPL .aloft
|
||||||
|
|
||||||
STZ.w $0F70, X
|
STZ.w SprHeight, X
|
||||||
|
|
||||||
LDA.w SprXSpeed, X : ASL A : ROR.w SprXSpeed, X
|
LDA.w SprXSpeed, X : ASL A : ROR.w SprXSpeed, X
|
||||||
|
|
||||||
@@ -506,7 +506,7 @@ DismissRodFromMenu:
|
|||||||
LDA #$00
|
LDA #$00
|
||||||
STA.l $7F5BA2
|
STA.l $7F5BA2
|
||||||
LDA.l $7F5BA3 : TAX
|
LDA.l $7F5BA3 : TAX
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
STZ.b $5E
|
STZ.b $5E
|
||||||
STZ.w $0300
|
STZ.w $0300
|
||||||
STZ.b $3D
|
STZ.b $3D
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ Ancilla_HandlePortalCollision:
|
|||||||
RTL
|
RTL
|
||||||
.not_portal_arrow
|
.not_portal_arrow
|
||||||
; Restore arrow deflection sprite code from $088DC3
|
; Restore arrow deflection sprite code from $088DC3
|
||||||
LDA.w $0B6B,Y : AND.b #$08
|
LDA.w SprTileDie,Y : AND.b #$08
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ DekuLink_HoverBasedOnInput:
|
|||||||
LDA.b #$01 : STA.w $0AAA
|
LDA.b #$01 : STA.w $0AAA
|
||||||
STZ.w $0324 : STZ.w $031C : STZ.w $031D
|
STZ.w $0324 : STZ.w $031C : STZ.w $031D
|
||||||
STZ.b $50 : STZ.b $3D
|
STZ.b $50 : STZ.b $3D
|
||||||
STZ.w $0FC1
|
STZ.w SprFreeze
|
||||||
STZ.w $011A : STZ.w $011B : STZ.w $011C : STZ.w $011D
|
STZ.w $011A : STZ.w $011B : STZ.w $011C : STZ.w $011D
|
||||||
|
|
||||||
LDY.b #$00
|
LDY.b #$00
|
||||||
@@ -600,9 +600,9 @@ Ancilla_CheckBasicSpriteCollision:
|
|||||||
ORA.w $0EF0, Y
|
ORA.w $0EF0, Y
|
||||||
BNE .skip
|
BNE .skip
|
||||||
|
|
||||||
LDA.w $0DD0, Y : CMP.b #$09 : BCC .skip
|
LDA.w SprState, Y : CMP.b #$09 : BCC .skip
|
||||||
|
|
||||||
LDA.w $0CAA, Y : AND.b #$02 : BNE .sprite_ignores_priority
|
LDA.w SprDefl, Y : AND.b #$02 : BNE .sprite_ignores_priority
|
||||||
|
|
||||||
LDA.w $0280, X : BNE .skip
|
LDA.w $0280, X : BNE .skip
|
||||||
|
|
||||||
@@ -651,20 +651,20 @@ Ancilla_CheckBasicSpriteCollision_Single:
|
|||||||
; SPRITE 92
|
; SPRITE 92
|
||||||
LDA.w $0E20, Y : CMP.b #$92 : BNE .not_king_helma
|
LDA.w $0E20, Y : CMP.b #$92 : BNE .not_king_helma
|
||||||
|
|
||||||
LDA.w $0DB0, Y : CMP.b #$03 : BCC .success
|
LDA.w SprMiscB, Y : CMP.b #$03 : BCC .success
|
||||||
|
|
||||||
.not_king_helma
|
.not_king_helma
|
||||||
; SPRITE 80
|
; SPRITE 80
|
||||||
LDA.w $0E20, Y : CMP.b #$80 : BNE .dont_reverse_fire_snake
|
LDA.w $0E20, Y : CMP.b #$80 : BNE .dont_reverse_fire_snake
|
||||||
|
|
||||||
LDA.w $0F10, Y : BNE .dont_reverse_fire_snake
|
LDA.w SprTimerE, Y : BNE .dont_reverse_fire_snake
|
||||||
|
|
||||||
LDA.b #$18 : STA.w $0F10, Y
|
LDA.b #$18 : STA.w SprTimerE, Y
|
||||||
|
|
||||||
LDA.w $0DE0, Y : EOR.b #$01 : STA.w $0DE0, Y
|
LDA.w SprMiscC, Y : EOR.b #$01 : STA.w SprMiscC, Y
|
||||||
|
|
||||||
.dont_reverse_fire_snake
|
.dont_reverse_fire_snake
|
||||||
LDA.w $0BA0, Y : BNE .fail
|
LDA.w SprBulletproof, Y : BNE .fail
|
||||||
|
|
||||||
LDA.w AnciX, X : SEC : SBC.b #$08 : STA.b $04
|
LDA.w AnciX, X : SEC : SBC.b #$08 : STA.b $04
|
||||||
|
|
||||||
@@ -692,8 +692,8 @@ Ancilla_CheckBasicSpriteCollision_Single:
|
|||||||
PLX
|
PLX
|
||||||
PLY
|
PLY
|
||||||
|
|
||||||
LDA.b $00 : EOR.b #$FF : STA.w $0F30, Y
|
LDA.b $00 : EOR.b #$FF : STA.w SprYRecoil, Y
|
||||||
LDA.b $01 : EOR.b #$FF : STA.w $0F40, Y
|
LDA.b $01 : EOR.b #$FF : STA.w SprXRecoil, Y
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
|
|||||||
@@ -620,7 +620,7 @@ ZoraTemple_EntranceAnimation:
|
|||||||
STZ.b $B0
|
STZ.b $B0
|
||||||
STZ.w $0710
|
STZ.w $0710
|
||||||
STZ.w $02E4
|
STZ.w $02E4
|
||||||
STZ.w $0FC1
|
STZ.w SprFreeze
|
||||||
STZ.w $011A
|
STZ.w $011A
|
||||||
STZ.w $011B
|
STZ.w $011B
|
||||||
STZ.w $011C
|
STZ.w $011C
|
||||||
@@ -671,7 +671,7 @@ Castle_EndAnimation:
|
|||||||
STZ.b $B0
|
STZ.b $B0
|
||||||
STZ.w $0710
|
STZ.w $0710
|
||||||
STZ.w $02E4
|
STZ.w $02E4
|
||||||
STZ.w $0FC1
|
STZ.w SprFreeze
|
||||||
STZ.w $011A
|
STZ.w $011A
|
||||||
STZ.w $011B
|
STZ.w $011B
|
||||||
STZ.w $011C
|
STZ.w $011C
|
||||||
@@ -995,7 +995,7 @@ TailPalace_EntranceAnimation:
|
|||||||
STZ.b $B0
|
STZ.b $B0
|
||||||
STZ.w $0710
|
STZ.w $0710
|
||||||
STZ.w $02E4
|
STZ.w $02E4
|
||||||
STZ.w $0FC1
|
STZ.w SprFreeze
|
||||||
STZ.w $011A
|
STZ.w $011A
|
||||||
STZ.w $011B
|
STZ.w $011B
|
||||||
STZ.w $011C
|
STZ.w $011C
|
||||||
@@ -1128,7 +1128,7 @@ Goron_EntranceAnimation:
|
|||||||
STZ.b $B0
|
STZ.b $B0
|
||||||
STZ.w $0710
|
STZ.w $0710
|
||||||
STZ.w $02E4
|
STZ.w $02E4
|
||||||
STZ.w $0FC1
|
STZ.w SprFreeze
|
||||||
STZ.w $011A
|
STZ.w $011A
|
||||||
STZ.w $011B
|
STZ.w $011B
|
||||||
STZ.w $011C
|
STZ.w $011C
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ org $0EF581
|
|||||||
EXIT_0EF581:
|
EXIT_0EF581:
|
||||||
|
|
||||||
org $01C769
|
org $01C769
|
||||||
#_01C769: LDA.w $0DD0,X
|
#_01C769: LDA.w SprState,X
|
||||||
#_01C76C: CMP.b #$02
|
#_01C76C: CMP.b #$02
|
||||||
|
|
||||||
; Credits_LoadNextScene_Overworld
|
; Credits_LoadNextScene_Overworld
|
||||||
@@ -233,7 +233,7 @@ SpawnPointData:
|
|||||||
#_02DBF0: dw $0083 ; 0x02 - Prison
|
#_02DBF0: dw $0083 ; 0x02 - Prison
|
||||||
#_02DBF2: dw $007B ; 0x03 - Uncle
|
#_02DBF2: dw $007B ; 0x03 - Uncle
|
||||||
#_02DBF4: dw $009A ; 0x04 - Throne
|
#_02DBF4: dw $009A ; 0x04 - Throne
|
||||||
#_02DBF6: dw $0103 ; 0x05 - Old man cave
|
#_02DBF6: DW $0103 ; 0x05 - Old man cave
|
||||||
#_02DBF8: dw $0187 ; 0x06 - Old man home
|
#_02DBF8: dw $0187 ; 0x06 - Old man home
|
||||||
|
|
||||||
; ---------------------------------------------------------
|
; ---------------------------------------------------------
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ Arrghus_ApproachTargetSpeed:
|
|||||||
pullpc
|
pullpc
|
||||||
AdvancedArrghus:
|
AdvancedArrghus:
|
||||||
{
|
{
|
||||||
LDA $0CAA, Y : ORA.b #$08 : STA $0CAA, Y
|
LDA.w SprDefl, Y : ORA.b #$08 : STA.w SprDefl, Y
|
||||||
LDA.b #$04 : STA $0CD2, Y
|
LDA.b #$04 : STA.w SprBump, Y
|
||||||
|
|
||||||
JSL Sprite_SpawnFireball
|
JSL Sprite_SpawnFireball
|
||||||
LDA.b #$50 : STA.w SprTimerA, X
|
LDA.b #$50 : STA.w SprTimerA, X
|
||||||
|
|||||||
@@ -557,7 +557,7 @@ Sprite_DarkLink_Main:
|
|||||||
LDA #$20
|
LDA #$20
|
||||||
JSL Sprite_ApplySpeedTowardsPlayer
|
JSL Sprite_ApplySpeedTowardsPlayer
|
||||||
;restore life removed by the checkdamage
|
;restore life removed by the checkdamage
|
||||||
STZ.w $0CE2, X
|
STZ.w SprBump, X
|
||||||
|
|
||||||
|
|
||||||
LDA #$20 : STA $29 : STA $C7
|
LDA #$20 : STA $29 : STA $C7
|
||||||
@@ -638,9 +638,9 @@ Sprite_DarkLink_Main:
|
|||||||
|
|
||||||
DEC.w $0F80,X : DEC.w $0F80,X
|
DEC.w $0F80,X : DEC.w $0F80,X
|
||||||
|
|
||||||
LDA.w $0F70,X : BPL .aloft
|
LDA.w SprHeight,X : BPL .aloft
|
||||||
|
|
||||||
STZ.w $0F70,X
|
STZ.w SprHeight,X
|
||||||
%GotoAction(0)
|
%GotoAction(0)
|
||||||
|
|
||||||
.aloft
|
.aloft
|
||||||
@@ -714,10 +714,10 @@ Sprite_DarkLink_Main:
|
|||||||
|
|
||||||
DEC.w $0F80,X : DEC.w $0F80,X : DEC.w $0F80,X : DEC.w $0F80,X
|
DEC.w $0F80,X : DEC.w $0F80,X : DEC.w $0F80,X : DEC.w $0F80,X
|
||||||
|
|
||||||
LDA.w $0F70,X : BPL .aloft
|
LDA.w SprHeight,X : BPL .aloft
|
||||||
|
|
||||||
|
|
||||||
STZ.w $0F70,X
|
STZ.w SprHeight,X
|
||||||
|
|
||||||
LDA.b #$90 : STA.w SprTimerC, X
|
LDA.b #$90 : STA.w SprTimerC, X
|
||||||
LDA.b #$10 : STA.w SprTimerA, X
|
LDA.b #$10 : STA.w SprTimerA, X
|
||||||
@@ -878,12 +878,12 @@ Sprite_DarkLink_Main:
|
|||||||
|
|
||||||
DEC.w $0F80,X : DEC.w $0F80,X
|
DEC.w $0F80,X : DEC.w $0F80,X
|
||||||
|
|
||||||
LDA.w $0F70,X : BPL .aloft
|
LDA.w SprHeight,X : BPL .aloft
|
||||||
|
|
||||||
STZ.w SprYSpeed, X
|
STZ.w SprYSpeed, X
|
||||||
STZ.w SprXSpeed, X
|
STZ.w SprXSpeed, X
|
||||||
|
|
||||||
STZ.w $0F70,X
|
STZ.w SprHeight,X
|
||||||
|
|
||||||
.aloft
|
.aloft
|
||||||
|
|
||||||
@@ -977,7 +977,7 @@ Sprite_DarkLink_Main:
|
|||||||
INC.w SprMiscF, X
|
INC.w SprMiscF, X
|
||||||
;LDA #$1A : STA.b $11 ; ganon open door routine
|
;LDA #$1A : STA.b $11 ; ganon open door routine
|
||||||
; handled by the room tag?
|
; handled by the room tag?
|
||||||
LDA #$04 : STZ.w $0DD0, X
|
LDA #$04 : STZ.w SprState, X
|
||||||
LDA.b #$80 : STA $0403
|
LDA.b #$80 : STA $0403
|
||||||
%GotoAction(14)
|
%GotoAction(14)
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
KingDodongo_NewHealthSystem:
|
KingDodongo_NewHealthSystem:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
LDA.w $0E50,X
|
LDA.w SprHealth,X
|
||||||
LSR A
|
LSR A
|
||||||
LSR A
|
LSR A
|
||||||
TAY
|
TAY
|
||||||
|
|||||||
@@ -279,9 +279,9 @@ Sprite_Kydreeok_Main:
|
|||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
JSL Sprite_SpawnDynamically : BMI .no_space
|
JSL Sprite_SpawnDynamically : BMI .no_space
|
||||||
LDA.b #$0B : STA.w $0AAA
|
LDA.b #$0B : STA.w $0AAA
|
||||||
LDA.b #$04 : STA.w $0DD0,Y
|
LDA.b #$04 : STA.w SprState,Y
|
||||||
LDA.b #$03 : STA.w $0E40,Y
|
LDA.b #$03 : STA.w SprNbrOAM,Y
|
||||||
LDA.b #$0C : STA.w $0F50,Y
|
LDA.b #$0C : STA.w SprProps,Y
|
||||||
LDA.w SprCachedX : STA.w SprX,Y
|
LDA.w SprCachedX : STA.w SprX,Y
|
||||||
LDA.w $0FD9 : STA.w SprXH,Y
|
LDA.w $0FD9 : STA.w SprXH,Y
|
||||||
LDA.w SprCachedY : STA.w SprY,Y
|
LDA.w SprCachedY : STA.w SprY,Y
|
||||||
@@ -293,7 +293,7 @@ Sprite_Kydreeok_Main:
|
|||||||
STZ.w $0422
|
STZ.w $0422
|
||||||
STZ.w $0424
|
STZ.w $0424
|
||||||
LDA $1C : ORA.b #$01 : STA $1C ;turn on BG2 (Body)
|
LDA $1C : ORA.b #$01 : STA $1C ;turn on BG2 (Body)
|
||||||
STZ.w $0DD0, X ; GG
|
STZ.w SprState, X ; GG
|
||||||
.continue
|
.continue
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ Sprite_KydreeokHead_Main:
|
|||||||
JSL Sprite_Move
|
JSL Sprite_Move
|
||||||
|
|
||||||
LDA.w SprTimerA, X : BNE .not_done
|
LDA.w SprTimerA, X : BNE .not_done
|
||||||
LDA #$00 : STA $0DD0, X
|
LDA #$00 : STA.w SprState, X
|
||||||
.not_done
|
.not_done
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Sprite_Kydrog_Prep:
|
|||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
LDA.l $7EF300 : BEQ .PlayIntro
|
LDA.l $7EF300 : BEQ .PlayIntro
|
||||||
STZ.w $0DD0, X ; Kill the sprite
|
STZ.w SprState, X ; Kill the sprite
|
||||||
.PlayIntro
|
.PlayIntro
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ Sprite_KydrogBoss_CheckIfDead:
|
|||||||
|
|
||||||
LDA.w SprHealth, X : BNE .not_dead
|
LDA.w SprHealth, X : BNE .not_dead
|
||||||
PHX
|
PHX
|
||||||
LDA.b #$04 : STA $0DD0, X ;kill sprite boss style
|
LDA.b #$04 : STA.w SprState, X ;kill sprite boss style
|
||||||
LDA.b #$09 : STA.w SprAction, X ;go to KydrogBoss_Death stage
|
LDA.b #$09 : STA.w SprAction, X ;go to KydrogBoss_Death stage
|
||||||
STZ.w $0D90,X
|
STZ.w $0D90,X
|
||||||
|
|
||||||
@@ -79,11 +79,11 @@ Sprite_KydrogBoss_Prep:
|
|||||||
LDA #$00 : STA !KydrogPhase
|
LDA #$00 : STA !KydrogPhase
|
||||||
|
|
||||||
LDA.b #$A0 : STA.w SprHealth, X ; health
|
LDA.b #$A0 : STA.w SprHealth, X ; health
|
||||||
LDA.b #$80 : STA $0CAA, X
|
LDA.b #$80 : STA.w SprDefl, X
|
||||||
|
|
||||||
LDA.b #$03 : STA $0F60, X ; hitbox settings
|
LDA.b #$03 : STA.w SprHitbox, X ; hitbox settings
|
||||||
LDA.b #$07 : STA.w SprBump, X ; bump damage type
|
LDA.b #$07 : STA.w SprBump, X ; bump damage type
|
||||||
LDA $0E60, X : AND.b #$BF : STA $0E60, X ; Not invincible
|
LDA.w SprGfxProps, X : AND.b #$BF : STA.w SprGfxProps, X ; Not invincible
|
||||||
|
|
||||||
JSR KydrogBoss_Set_Damage ; Set the damage table
|
JSR KydrogBoss_Set_Damage ; Set the damage table
|
||||||
|
|
||||||
@@ -466,10 +466,10 @@ CheckForNextPhase:
|
|||||||
; TODO: Use a timer to unfreeze the sprite
|
; TODO: Use a timer to unfreeze the sprite
|
||||||
Sprite_CheckIfFrozen:
|
Sprite_CheckIfFrozen:
|
||||||
{
|
{
|
||||||
LDA $0DD0, X : CMP.b #$0B : BNE .not_frozen
|
LDA.w SprState, X : CMP.b #$0B : BNE .not_frozen
|
||||||
LDA.w SprTimerC, X : BNE .not_frozen
|
LDA.w SprTimerC, X : BNE .not_frozen
|
||||||
LDA.b #$00 : STA.l $7FFA3C,X
|
LDA.b #$00 : STA.l $7FFA3C,X
|
||||||
LDA.b #$09 : STA.w $0DD0, X
|
LDA.b #$09 : STA.w SprState, X
|
||||||
.not_frozen
|
.not_frozen
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -564,12 +564,12 @@ Kydrog_ThrowBoneAtPlayer:
|
|||||||
LDA.w SprX, X : CLC : ADC.b #$10 : STA.w SprX, X
|
LDA.w SprX, X : CLC : ADC.b #$10 : STA.w SprX, X
|
||||||
LDA.w SprY, X : SEC : SBC.b #$04 : STA.w SprY, X
|
LDA.w SprY, X : SEC : SBC.b #$04 : STA.w SprY, X
|
||||||
LDA.b #$20 : JSL Sprite_ApplySpeedTowardsPlayer
|
LDA.b #$20 : JSL Sprite_ApplySpeedTowardsPlayer
|
||||||
LDA.b #$21 : STA $0E40, X : STA $0BA0, X
|
LDA.b #$21 : STA.w SprNbrOAM, X : STA.w SprBulletproof, X
|
||||||
LDA $0E60, X : ORA.b #$40 : STA $0E60, X
|
LDA.w SprGfxProps, X : ORA.b #$40 : STA.w SprGfxProps, X
|
||||||
LDA.b #$48 : STA $0CAA, X
|
LDA.b #$48 : STA.w SprDefl, X
|
||||||
LDA.b #$10 : STA.w SprTimerC, X
|
LDA.b #$10 : STA.w SprTimerC, X
|
||||||
LDA.b #$14 : STA $0F60, X
|
LDA.b #$14 : STA.w SprHitbox, X
|
||||||
LDA.b #$07 : STA $0F50, X
|
LDA.b #$07 : STA.w SprProps, X
|
||||||
LDA.b #$20 : STA.w SprBump, X
|
LDA.b #$20 : STA.w SprBump, X
|
||||||
PLX
|
PLX
|
||||||
LDA.b #$02 : JSL Sound_SetSfx2PanLong
|
LDA.b #$02 : JSL Sound_SetSfx2PanLong
|
||||||
@@ -595,7 +595,7 @@ GetNumberSpawnStalfos:
|
|||||||
BRA .not_a_skull
|
BRA .not_a_skull
|
||||||
|
|
||||||
.increment_count
|
.increment_count
|
||||||
LDA $0DD0, X : CMP.b #$00 : BEQ .not_a_skull
|
LDA.w SprState, X : CMP.b #$00 : BEQ .not_a_skull
|
||||||
INC $00
|
INC $00
|
||||||
|
|
||||||
.not_a_skull
|
.not_a_skull
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Lanmola_FinishInitialization:
|
|||||||
|
|
||||||
LDA.l .starting_delay, X : STA.w SprTimerA, X
|
LDA.l .starting_delay, X : STA.w SprTimerA, X
|
||||||
|
|
||||||
LDA.b #$FF : STA $0F70, X
|
LDA.b #$FF : STA.w SprHeight, X
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ Lanmola_Dive: ;0x03
|
|||||||
.alpha
|
.alpha
|
||||||
|
|
||||||
; If we are under the ground go to the reset stage
|
; If we are under the ground go to the reset stage
|
||||||
LDA $0F70, X : BPL .notUnderGroundYet
|
LDA.w SprHeight, X : BPL .notUnderGroundYet
|
||||||
INC $0D80, X
|
INC $0D80, X
|
||||||
|
|
||||||
LDA.b #$80 : STA.w SprTimerA, X
|
LDA.b #$80 : STA.w SprTimerA, X
|
||||||
@@ -290,7 +290,7 @@ Lanmola_Death: ;0x05
|
|||||||
JSR Lanmola_Draw
|
JSR Lanmola_Draw
|
||||||
|
|
||||||
LDA.w SprTimerA, X : BNE .timerNotDone
|
LDA.w SprTimerA, X : BNE .timerNotDone
|
||||||
STZ $0DD0, X
|
STZ.w SprState, X
|
||||||
|
|
||||||
; Y is the index where we write in RAM
|
; Y is the index where we write in RAM
|
||||||
PHX ; keep X
|
PHX ; keep X
|
||||||
@@ -303,7 +303,7 @@ Lanmola_Death: ;0x05
|
|||||||
|
|
||||||
.next_sprite
|
.next_sprite
|
||||||
LDA $0E20, X : CMP.b #$54 : BNE .notLanmola
|
LDA $0E20, X : CMP.b #$54 : BNE .notLanmola
|
||||||
LDA $0DD0, X : BNE .oneIsntDead
|
LDA.w SprState, X : BNE .oneIsntDead
|
||||||
|
|
||||||
.notLanmola
|
.notLanmola
|
||||||
|
|
||||||
@@ -344,7 +344,7 @@ Lanmola_Death: ;0x05
|
|||||||
LDA.b #$00 : JSL Sprite_SpawnDynamically : BMI .spawn_failed
|
LDA.b #$00 : JSL Sprite_SpawnDynamically : BMI .spawn_failed
|
||||||
LDA.b #$0B : STA $0AAA
|
LDA.b #$0B : STA $0AAA
|
||||||
|
|
||||||
LDA.b #$04 : STA $0DD0, Y
|
LDA.b #$04 : STA.w SprState, Y
|
||||||
|
|
||||||
LDA.b #$1F : STA.w SprTimerA, Y : STA $0D90, Y
|
LDA.b #$1F : STA.w SprTimerA, Y : STA $0D90, Y
|
||||||
|
|
||||||
@@ -353,9 +353,9 @@ Lanmola_Death: ;0x05
|
|||||||
LDA $0C : STA.w SprY, Y
|
LDA $0C : STA.w SprY, Y
|
||||||
LDA $0D : STA.w SprYH, Y
|
LDA $0D : STA.w SprYH, Y
|
||||||
|
|
||||||
LDA.b #$03 : STA $0E40, Y
|
LDA.b #$03 : STA.w SprNbrOAM, Y
|
||||||
|
|
||||||
LDA.b #$0C : STA $0F50, Y
|
LDA.b #$0C : STA.w SprProps, Y
|
||||||
|
|
||||||
LDA.b #$0C : JSL Sound_SetSfx2PanLong
|
LDA.b #$0C : JSL Sound_SetSfx2PanLong
|
||||||
|
|
||||||
@@ -594,7 +594,7 @@ Sprite_Shrapnel:
|
|||||||
|
|
||||||
.active
|
.active
|
||||||
|
|
||||||
LDA $1A : ASL #2 : AND.b #$C0 : STA $0F50, X ; : ORA.b #$00
|
LDA $1A : ASL #2 : AND.b #$C0 : STA.w SprProps, X ; : ORA.b #$00
|
||||||
|
|
||||||
JSR $E948 ;Sprite4_MoveXyz
|
JSR $E948 ;Sprite4_MoveXyz
|
||||||
|
|
||||||
@@ -618,12 +618,12 @@ Sprite_Shrapnel:
|
|||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
;JSR $8094 : BEQ .noTileCollision ;Sprite4_CheckTileCollision
|
;JSR $8094 : BEQ .noTileCollision ;Sprite4_CheckTileCollision
|
||||||
;STZ $0DD0, X
|
;STZ.w SprState, X
|
||||||
|
|
||||||
.noTileCollision
|
.noTileCollision
|
||||||
|
|
||||||
LDA.w SprTimerA, X : BNE .timerNotDone
|
LDA.w SprTimerA, X : BNE .timerNotDone
|
||||||
STZ $0DD0, X
|
STZ.w SprState, X
|
||||||
|
|
||||||
.timerNotDone
|
.timerNotDone
|
||||||
|
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ Lanmola_MoveSegment:
|
|||||||
LDA.w SprX, X : PHA ;lower x
|
LDA.w SprX, X : PHA ;lower x
|
||||||
LDA.w SprY, X : PHA ;lower y
|
LDA.w SprY, X : PHA ;lower y
|
||||||
|
|
||||||
LDA $0F70, X : PHA ;height
|
LDA.w SprHeight, X : PHA ;height
|
||||||
LDA $0F : PHA ;angle
|
LDA $0F : PHA ;angle
|
||||||
|
|
||||||
LDA $0E80, X : STA $02 : STA $05
|
LDA $0E80, X : STA $02 : STA $05
|
||||||
@@ -313,8 +313,8 @@ Lanmola_MoveSegment:
|
|||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
LDA $0DD0, X : CMP.b #$09 : BNE .notActive
|
LDA.w SprState, X : CMP.b #$09 : BNE .notActive
|
||||||
LDA $11 : ORA $0FC1 : BNE .notActive
|
LDA $11 : ORA.w SprFreeze : BNE .notActive
|
||||||
LDA $10 : CMP #$0E : BEQ .notActive
|
LDA $10 : CMP #$0E : BEQ .notActive
|
||||||
LDA $5D : CMP #$08 : BEQ .notActive ;in medallion cut scene
|
LDA $5D : CMP #$08 : BEQ .notActive ;in medallion cut scene
|
||||||
CMP #$09 : BEQ .notActive ;in medallion cut scene
|
CMP #$09 : BEQ .notActive ;in medallion cut scene
|
||||||
|
|||||||
@@ -819,7 +819,7 @@ Mothula_SpawnBeams:
|
|||||||
|
|
||||||
CLC : ADC.b #$03 : STA.w SprY,Y
|
CLC : ADC.b #$03 : STA.w SprY,Y
|
||||||
|
|
||||||
LDA.b #$10 : STA.w SprTimerA,Y : STA.w $0BA0,Y
|
LDA.b #$10 : STA.w SprTimerA,Y : STA.w SprBulletproof,Y
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
@@ -834,7 +834,7 @@ Mothula_SpawnBeams:
|
|||||||
STA.w SprYSpeed,Y
|
STA.w SprYSpeed,Y
|
||||||
|
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
STA.w $0F70,Y
|
STA.w SprHeight,Y
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ Sprite_Octoboss_Long:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
LDA.w SprMiscD, X : BNE + ; is the sprite already init
|
LDA.w SprMiscD, X : BNE + ; is the sprite already init
|
||||||
LDA #$04 : STA.w $0E40, X
|
LDA #$04 : STA.w SprNbrOAM, X
|
||||||
;LDA.w SprHitbox, X : AND.b #$E0 : ORA.b #$23 : STA.w SprHitbox, X
|
;LDA.w SprHitbox, X : AND.b #$E0 : ORA.b #$23 : STA.w SprHitbox, X
|
||||||
;LDA.w $0CAA, X : AND #$7F : ORA.b #$81 : STA.w $0CAA, X
|
;LDA.w SprDefl, X : AND #$7F : ORA.b #$81 : STA.w SprDefl, X
|
||||||
;LDA.b #$20 : STA.w SprHealth, X
|
;LDA.b #$20 : STA.w SprHealth, X
|
||||||
STZ.w $0BA0, X
|
STZ.w SprBulletproof, X
|
||||||
|
|
||||||
; TODO: Add a safety check to prevent player from leaving without the item
|
; TODO: Add a safety check to prevent player from leaving without the item
|
||||||
; example if player left without the item, item will be on the ground still
|
; example if player left without the item, item will be on the ground still
|
||||||
@@ -34,14 +34,14 @@ Sprite_Octoboss_Long:
|
|||||||
; Is is killed? do we have the quake medallion tho ?
|
; Is is killed? do we have the quake medallion tho ?
|
||||||
LDA.l $7EF349 : BNE .weHaveMedallion
|
LDA.l $7EF349 : BNE .weHaveMedallion
|
||||||
; Spawn the medallion
|
; Spawn the medallion
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
JSR SpawnMedallionAlt ; spawn standing medallion
|
JSR SpawnMedallionAlt ; spawn standing medallion
|
||||||
BRA .SpriteIsNotActive
|
BRA .SpriteIsNotActive
|
||||||
|
|
||||||
.weHaveMedallion
|
.weHaveMedallion
|
||||||
; Do nothing just kill this sprite
|
; Do nothing just kill this sprite
|
||||||
|
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
BRA .SpriteIsNotActive
|
BRA .SpriteIsNotActive
|
||||||
|
|
||||||
.notKiledYet
|
.notKiledYet
|
||||||
@@ -49,8 +49,8 @@ Sprite_Octoboss_Long:
|
|||||||
PLX
|
PLX
|
||||||
|
|
||||||
|
|
||||||
;LDA.w $0E60, X : AND.b #$BF : STA.w $0E60, X
|
;LDA.w SprGfxProps, X : AND.b #$BF : STA.w SprGfxProps, X
|
||||||
;LDA.w $0F50, X : AND.b #$BF : STA.w $0F50, X
|
;LDA.w SprProps, X : AND.b #$BF : STA.w SprProps, X
|
||||||
|
|
||||||
LDA.b #15 : STA.w SprFrame, X
|
LDA.b #15 : STA.w SprFrame, X
|
||||||
LDA.b #$87 : STA.l $7EC664 : STA.l $7EC684
|
LDA.b #$87 : STA.l $7EC664 : STA.l $7EC684
|
||||||
@@ -547,7 +547,7 @@ Sprite_Octoboss_Secondary:
|
|||||||
LDA.w SprTimerB, X : BNE +
|
LDA.w SprTimerB, X : BNE +
|
||||||
LDA.w SprFrame, X : DEC : STA.w SprFrame, X : CMP.b #01 : BCS .noframereset
|
LDA.w SprFrame, X : DEC : STA.w SprFrame, X : CMP.b #01 : BCS .noframereset
|
||||||
JSR SpawnSplash
|
JSR SpawnSplash
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
.noframereset
|
.noframereset
|
||||||
LDA.b #2 : STA.w SprTimerB, X
|
LDA.b #2 : STA.w SprTimerB, X
|
||||||
+
|
+
|
||||||
@@ -884,7 +884,7 @@ SpawnSplash:
|
|||||||
JSL Sprite_SetSpawnedCoords
|
JSL Sprite_SetSpawnedCoords
|
||||||
|
|
||||||
LDA.b #$03
|
LDA.b #$03
|
||||||
STA.w $0DD0,Y
|
STA.w SprState,Y
|
||||||
|
|
||||||
LDA.b #$0F
|
LDA.b #$0F
|
||||||
STA.w SprTimerA,Y
|
STA.w SprTimerA,Y
|
||||||
@@ -893,7 +893,7 @@ SpawnSplash:
|
|||||||
STA.w $0D80,Y
|
STA.w $0D80,Y
|
||||||
|
|
||||||
LDA.b #$03
|
LDA.b #$03
|
||||||
STA.w $0E40,Y
|
STA.w SprNbrOAM,Y
|
||||||
|
|
||||||
LDA.b #$28 ; SFX2.28
|
LDA.b #$28 ; SFX2.28
|
||||||
JSL Sound_SetSfx2PanLong
|
JSL Sound_SetSfx2PanLong
|
||||||
@@ -939,8 +939,8 @@ SpawnBossPoof:
|
|||||||
STA.w SprTimerA,Y
|
STA.w SprTimerA,Y
|
||||||
|
|
||||||
LDA.b #$09
|
LDA.b #$09
|
||||||
STA.w $0E40,Y
|
STA.w SprNbrOAM,Y
|
||||||
STA.w $0BA0,Y
|
STA.w SprBulletproof,Y
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
@@ -1029,13 +1029,13 @@ SpawnMedallion:
|
|||||||
JSL $0DBB7C ; SpriteSFX_QueueSFX2WithPan
|
JSL $0DBB7C ; SpriteSFX_QueueSFX2WithPan
|
||||||
|
|
||||||
LDA.b #$83
|
LDA.b #$83
|
||||||
STA.w $0E40,X
|
STA.w SprNbrOAM,X
|
||||||
|
|
||||||
LDA.b #$58
|
LDA.b #$58
|
||||||
STA.w $0E60,X
|
STA.w SprGfxProps,X
|
||||||
|
|
||||||
AND.b #$0F
|
AND.b #$0F
|
||||||
STA.w $0F50,X
|
STA.w SprProps,X
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
@@ -1064,13 +1064,13 @@ SpawnMedallionAlt:
|
|||||||
STA.w $0D90, X
|
STA.w $0D90, X
|
||||||
|
|
||||||
LDA.b #$83
|
LDA.b #$83
|
||||||
STA.w $0E40,X
|
STA.w SprNbrOAM,X
|
||||||
|
|
||||||
LDA.b #$58
|
LDA.b #$58
|
||||||
STA.w $0E60,X
|
STA.w SprGfxProps,X
|
||||||
|
|
||||||
AND.b #$0F
|
AND.b #$0F
|
||||||
STA.w $0F50,X
|
STA.w SprProps,X
|
||||||
|
|
||||||
LDA.b #$DC : STA.w SprY, X
|
LDA.b #$DC : STA.w SprY, X
|
||||||
LDA.b #$F7 : STA.w SprX, X
|
LDA.b #$F7 : STA.w SprX, X
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ Sprite_Twinrova_CheckIfDead:
|
|||||||
.health_not_negative
|
.health_not_negative
|
||||||
LDA.w SprHealth, X : BNE .not_dead
|
LDA.w SprHealth, X : BNE .not_dead
|
||||||
PHX
|
PHX
|
||||||
LDA.b #$04 : STA $0DD0, X ; Kill sprite boss style
|
LDA.b #$04 : STA.w SprState, X ; Kill sprite boss style
|
||||||
LDA.b #$0A : STA.w SprAction, X ; Go to Twinrova_Dead stage
|
LDA.b #$0A : STA.w SprAction, X ; Go to Twinrova_Dead stage
|
||||||
LDA.b #$10 : STA.w $0D90, X
|
LDA.b #$10 : STA.w $0D90, X
|
||||||
PLX
|
PLX
|
||||||
@@ -79,13 +79,13 @@ Sprite_Twinrova_Prep:
|
|||||||
|
|
||||||
; Kill the sprite if the Maiden is present
|
; Kill the sprite if the Maiden is present
|
||||||
LDA.l $7EF3CC : CMP.b #$06 : BNE .prep_twinrova
|
LDA.l $7EF3CC : CMP.b #$06 : BNE .prep_twinrova
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
.prep_twinrova
|
.prep_twinrova
|
||||||
|
|
||||||
LDA.b #$5A : STA.w SprHealth, X ; Health
|
LDA.b #$5A : STA.w SprHealth, X ; Health
|
||||||
LDA.b #$80 : STA $0CAA, X
|
LDA.b #$80 : STA.w SprDefl, X
|
||||||
LDA.b #$04 : STA $0CD2, X ; Bump damage type (4 hearts, green tunic)
|
LDA.b #$04 : STA.w SprBump, X ; Bump damage type (4 hearts, green tunic)
|
||||||
LDA.w $0E60, X : AND.b #$BF : STA.w $0E60, X ; Not invincible
|
LDA.w SprGfxProps, X : AND.b #$BF : STA.w SprGfxProps, X ; Not invincible
|
||||||
|
|
||||||
%SetSpriteSpeedX(15)
|
%SetSpriteSpeedX(15)
|
||||||
%SetSpriteSpeedX(15)
|
%SetSpriteSpeedX(15)
|
||||||
@@ -277,9 +277,9 @@ Sprite_Twinrova_Main:
|
|||||||
%Twinrova_Attack()
|
%Twinrova_Attack()
|
||||||
|
|
||||||
LDA #$01 : STA $0360
|
LDA #$01 : STA $0360
|
||||||
LDA $0CAA : AND.b #$03 : STA $0CAA
|
LDA.w SprDefl : AND.b #$03 : STA.w SprDefl
|
||||||
LDA.w SprTimerD, X : BNE +
|
LDA.w SprTimerD, X : BNE +
|
||||||
LDA $0CAA : ORA.b #$03 : STA $0CAA
|
LDA.w SprDefl : ORA.b #$03 : STA.w SprDefl
|
||||||
LDA.b #$40 : STA.w SprTimerD, X
|
LDA.b #$40 : STA.w SprTimerD, X
|
||||||
LDA $AC : BEQ .fire
|
LDA $AC : BEQ .fire
|
||||||
%GotoAction(6) ; Ice Attack
|
%GotoAction(6) ; Ice Attack
|
||||||
@@ -539,7 +539,7 @@ RageModeMove:
|
|||||||
; Handle floaty movement with controlled altitude
|
; Handle floaty movement with controlled altitude
|
||||||
LDA.w SprHeight, X : CMP #$10 : BNE .CheckGrounded
|
LDA.w SprHeight, X : CMP #$10 : BNE .CheckGrounded
|
||||||
DEC.w SprHeight, X
|
DEC.w SprHeight, X
|
||||||
DEC.w $0F90, X
|
DEC.w SprHeightS, X
|
||||||
|
|
||||||
.CheckGrounded
|
.CheckGrounded
|
||||||
; Move sprite
|
; Move sprite
|
||||||
@@ -1018,12 +1018,12 @@ ApplyTwinrovaGraphics:
|
|||||||
; $1DC845
|
; $1DC845
|
||||||
#Fireball_Configure:
|
#Fireball_Configure:
|
||||||
{
|
{
|
||||||
LDA.w $0CAA,Y
|
LDA.w SprDefl,Y
|
||||||
ORA.b #$08
|
ORA.b #$08
|
||||||
STA.w $0CAA,Y
|
STA.w SprDefl,Y
|
||||||
|
|
||||||
LDA.b #$04
|
LDA.b #$04
|
||||||
STA.w $0CD2,Y
|
STA.w SprBump,Y
|
||||||
|
|
||||||
.exit
|
.exit
|
||||||
RTS
|
RTS
|
||||||
@@ -1202,7 +1202,7 @@ Blind_SpawnFromMaiden:
|
|||||||
LDX.b #$00 ; Load the boss into sprite index 0
|
LDX.b #$00 ; Load the boss into sprite index 0
|
||||||
|
|
||||||
; Set the sprite to alive and active
|
; Set the sprite to alive and active
|
||||||
LDA.b #$09 : STA.w $0DD0,X
|
LDA.b #$09 : STA.w SprState,X
|
||||||
|
|
||||||
; SPRITE CE
|
; SPRITE CE
|
||||||
LDA.b #$CE : STA.w $0E20,X
|
LDA.b #$CE : STA.w $0E20,X
|
||||||
@@ -1223,7 +1223,7 @@ Blind_SpawnFromMaiden:
|
|||||||
LDA.b #$00 : STA.w $0DC0,X
|
LDA.b #$00 : STA.w $0DC0,X
|
||||||
|
|
||||||
; Set SprMiscC and bulletproof properties
|
; Set SprMiscC and bulletproof properties
|
||||||
LDA.b #$02 : STA.w SprMiscC,X : STA.w $0BA0,X
|
LDA.b #$02 : STA.w SprMiscC,X : STA.w SprBulletproof,X
|
||||||
|
|
||||||
; Set the 2nd key / heart piece items taken room flag
|
; Set the 2nd key / heart piece items taken room flag
|
||||||
LDA.w $0403 : ORA.b #$20 : STA.w $0403
|
LDA.w $0403 : ORA.b #$20 : STA.w $0403
|
||||||
@@ -1272,7 +1272,7 @@ SpritePrep_Blind_PrepareBattle:
|
|||||||
RTL
|
RTL
|
||||||
|
|
||||||
.despawn
|
.despawn
|
||||||
STZ.w $0DD0,X
|
STZ.w SprState,X
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ Sprite_Wolfos_Prep:
|
|||||||
RTL
|
RTL
|
||||||
.spawn_wolfos
|
.spawn_wolfos
|
||||||
LDA.b #$40 : STA.w SprTimerA, X
|
LDA.b #$40 : STA.w SprTimerA, X
|
||||||
LDA.b #$80 : STA.w $0CAA, X ; Sprite persist
|
LDA.b #$80 : STA.w SprDefl, X ; Sprite persist
|
||||||
LDA.b #$08 : STA.w $0E40, X ; Nbr Oam Entries
|
LDA.b #$08 : STA.w SprNbrOAM, X ; Nbr Oam Entries
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
@@ -286,7 +286,7 @@ Sprite_Wolfos_Main:
|
|||||||
STZ.w SprYSpeed, X
|
STZ.w SprYSpeed, X
|
||||||
|
|
||||||
LDA.w SprTimerD, X : BNE .dismiss
|
LDA.w SprTimerD, X : BNE .dismiss
|
||||||
LDA.b #$00 : STA $0DD0, X ; kill sprite normal style
|
LDA.b #$00 : STA.w SprState, X ; kill sprite normal style
|
||||||
STZ.w SprAction, X
|
STZ.w SprAction, X
|
||||||
STZ.w SprHealth, X
|
STZ.w SprHealth, X
|
||||||
STZ.w BRANDISH ; Stop Link from holding his hands up.
|
STZ.w BRANDISH ; Stop Link from holding his hands up.
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ KillPeaShot:
|
|||||||
; Kill the pea shot
|
; Kill the pea shot
|
||||||
PHX
|
PHX
|
||||||
LDA.w Offspring1_Id : TAX
|
LDA.w Offspring1_Id : TAX
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
PLX
|
PLX
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -248,13 +248,13 @@ Sprite_Chuchu_Move:
|
|||||||
|
|
||||||
JSL Sprite_MoveAltitude
|
JSL Sprite_MoveAltitude
|
||||||
DEC.w $0F80,X : DEC.w $0F80,X
|
DEC.w $0F80,X : DEC.w $0F80,X
|
||||||
LDA.w $0F70, X : BPL .aloft
|
LDA.w SprHeight, X : BPL .aloft
|
||||||
STZ.w $0F70, X
|
STZ.w SprHeight, X
|
||||||
LDA.b $08 : STA.w $0F80, X ; set height from 08
|
LDA.b $08 : STA.w $0F80, X ; set height from 08
|
||||||
LDA.b $09
|
LDA.b $09
|
||||||
JSL Sprite_ApplySpeedTowardsPlayer
|
JSL Sprite_ApplySpeedTowardsPlayer
|
||||||
.aloft
|
.aloft
|
||||||
LDA.w $0F70, X : BEQ .dontmove
|
LDA.w SprHeight, X : BEQ .dontmove
|
||||||
JSL Sprite_Move
|
JSL Sprite_Move
|
||||||
.dontmove
|
.dontmove
|
||||||
|
|
||||||
|
|||||||
@@ -60,9 +60,9 @@ Sprite_Poltergeist_Prep:
|
|||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
LDA #$00 : STA $0F60, X ; Persist
|
LDA #$00 : STA.w SprHitbox, X ; Persist
|
||||||
LDA #$00 : STA $0CAA, X ; Sprite persist in dungeon
|
LDA #$00 : STA.w SprDefl, X ; Sprite persist in dungeon
|
||||||
LDA #$02 : STA $0E40, X ;1 tile by default
|
LDA #$02 : STA.w SprNbrOAM, X ;1 tile by default
|
||||||
LDA #$01 : STA.w SprAction, X ; by default it's a chair
|
LDA #$01 : STA.w SprAction, X ; by default it's a chair
|
||||||
|
|
||||||
LDA.w SprSubtype, X : CMP #$10 : BNE .notPictureFrame
|
LDA.w SprSubtype, X : CMP #$10 : BNE .notPictureFrame
|
||||||
@@ -75,7 +75,7 @@ Sprite_Poltergeist_Prep:
|
|||||||
CMP #$11 : BNE .notAxe
|
CMP #$11 : BNE .notAxe
|
||||||
LDA #$07 : STA.w SprFrame, X
|
LDA #$07 : STA.w SprFrame, X
|
||||||
LDA #$02 : STA.w SprAction, X
|
LDA #$02 : STA.w SprAction, X
|
||||||
LDA #$04 : STA $0E40, X
|
LDA #$04 : STA.w SprNbrOAM, X
|
||||||
BRA .done
|
BRA .done
|
||||||
|
|
||||||
.notAxe
|
.notAxe
|
||||||
@@ -97,7 +97,7 @@ Sprite_Poltergeist_Prep:
|
|||||||
CMP #$14 : BNE .notBed
|
CMP #$14 : BNE .notBed
|
||||||
LDA #5 : STA.w SprFrame, X
|
LDA #5 : STA.w SprFrame, X
|
||||||
LDA #$01 : STA.w SprAction, X
|
LDA #$01 : STA.w SprAction, X
|
||||||
LDA #$06 : STA $0E40, X
|
LDA #$06 : STA.w SprNbrOAM, X
|
||||||
BRA .done
|
BRA .done
|
||||||
|
|
||||||
.notBed
|
.notBed
|
||||||
@@ -105,7 +105,7 @@ Sprite_Poltergeist_Prep:
|
|||||||
CMP #$15 : BNE .notDoor
|
CMP #$15 : BNE .notDoor
|
||||||
LDA #36 : STA.w SprFrame, X
|
LDA #36 : STA.w SprFrame, X
|
||||||
LDA #$01 : STA.w SprAction, X
|
LDA #$01 : STA.w SprAction, X
|
||||||
LDA #$04 : STA $0E40, X
|
LDA #$04 : STA.w SprNbrOAM, X
|
||||||
LDA.w SprY, X : SEC : SBC #$0C : STA.w SprY, X
|
LDA.w SprY, X : SEC : SBC #$0C : STA.w SprY, X
|
||||||
LDA.w SprX, X : CLC : ADC #$08 : STA.w SprX, X
|
LDA.w SprX, X : CLC : ADC #$08 : STA.w SprX, X
|
||||||
BRA .done
|
BRA .done
|
||||||
@@ -283,19 +283,19 @@ Chair:
|
|||||||
|
|
||||||
Shatter:
|
Shatter:
|
||||||
{
|
{
|
||||||
LDA.b #$A6 : STA $0E40, X
|
LDA.b #$A6 : STA.w SprNbrOAM, X
|
||||||
LDA.b #$1F : JSL Sound_SetSfx2PanLong
|
LDA.b #$1F : JSL Sound_SetSfx2PanLong
|
||||||
STZ $0DC0, X
|
STZ $0DC0, X
|
||||||
|
|
||||||
LDA.b #$04 : STA.w SprMiscB, X
|
LDA.b #$04 : STA.w SprMiscB, X
|
||||||
|
|
||||||
LDA.b #$06 : STA $0DD0, X
|
LDA.b #$06 : STA.w SprState, X
|
||||||
|
|
||||||
LDA.b #$1F : STA.w SprTimerA, X
|
LDA.b #$1F : STA.w SprTimerA, X
|
||||||
|
|
||||||
LDA.b #$EC : STA $0E20, X
|
LDA.b #$EC : STA $0E20, X
|
||||||
|
|
||||||
LDA $0E40, X : CLC : ADC #$04 : STA $0E40, X
|
LDA.w SprNbrOAM, X : CLC : ADC #$04 : STA.w SprNbrOAM, X
|
||||||
|
|
||||||
STZ $0EF0, X
|
STZ $0EF0, X
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ Sprite_SeaUrchin_Main:
|
|||||||
LDA.b #$06 : STA.w SprState, X
|
LDA.b #$06 : STA.w SprState, X
|
||||||
LDA.b #$0A : STA.w SprTimerA, X
|
LDA.b #$0A : STA.w SprTimerA, X
|
||||||
|
|
||||||
STZ.w $0BE0,X
|
STZ.w SprPrize,X
|
||||||
|
|
||||||
LDA.b #$09 ; SFX2.1E
|
LDA.b #$09 ; SFX2.1E
|
||||||
JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan
|
JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ Sprite_BeanVendor_Prep:
|
|||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
LDA.b #$80 : STA $0CAA, X ; Persist in dungeons
|
LDA.b #$80 : STA.w SprDefl, X ; Persist in dungeons
|
||||||
LDA.b #$40 : STA.w SprTimerA, X
|
LDA.b #$40 : STA.w SprTimerA, X
|
||||||
LDA.w SprSubtype, X : STA.w SprAction, X
|
LDA.w SprSubtype, X : STA.w SprAction, X
|
||||||
CMP.b #$02 : BEQ .OldMan
|
CMP.b #$02 : BEQ .OldMan
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ SpritePrep_SickKid:
|
|||||||
LDA.l $7EF355 : BEQ .no_boots
|
LDA.l $7EF355 : BEQ .no_boots
|
||||||
LDA.b #$03 : STA $0D80, X
|
LDA.b #$03 : STA $0D80, X
|
||||||
.no_boots
|
.no_boots
|
||||||
INC.w $0BA0, X
|
INC.w SprBulletproof, X
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,9 +57,9 @@ Sprite_Farore_Prep:
|
|||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
LDA.b #$80 : STA $0CAA, X ; Don't kill Farore when she goes off screen
|
LDA.b #$80 : STA.w SprDefl, X ; Don't kill Farore when she goes off screen
|
||||||
LDA.l $7EF300 : BEQ .PlayIntro
|
LDA.l $7EF300 : BEQ .PlayIntro
|
||||||
STZ.w $0DD0, X ; Kill the sprite
|
STZ.w SprState, X ; Kill the sprite
|
||||||
.PlayIntro
|
.PlayIntro
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
|
|||||||
@@ -98,13 +98,13 @@ ZoraBaby_RevertToSprite:
|
|||||||
|
|
||||||
PHX
|
PHX
|
||||||
TAX
|
TAX
|
||||||
LDA.w $1A64, X : AND.b #$03 : STA.w $0EB0,Y : STA.w $0DE0,Y
|
LDA.w $1A64, X : AND.b #$03 : STA.w SprMiscE,Y : STA.w SprMiscC,Y
|
||||||
LDA.w $1A00, X : CLC : ADC.b #$02 : STA.w $0D00,Y
|
LDA.w $1A00, X : CLC : ADC.b #$02 : STA.w SprY,Y
|
||||||
LDA.w $1A14, X : ADC.b #$00 : STA.w $0D20,Y
|
LDA.w $1A14, X : ADC.b #$00 : STA.w SprYH,Y
|
||||||
LDA.w $1A28, X : CLC : ADC.b #$10 : STA.w $0D10,Y
|
LDA.w $1A28, X : CLC : ADC.b #$10 : STA.w SprX,Y
|
||||||
LDA.w $1A3C, X : ADC.b #$00 : STA.w $0D30,Y
|
LDA.w $1A3C, X : ADC.b #$00 : STA.w SprXH,Y
|
||||||
LDA.b $EE : STA.w $0F20,Y
|
LDA.b $EE : STA.w $0F20,Y
|
||||||
LDA.b #$01 : STA.w $0BA0,Y : STA.w $0E80,Y
|
LDA.b #$01 : STA.w SprBulletproof,Y : STA.w $0E80,Y
|
||||||
LDA.b #$04 : STA.w SprAction, Y
|
LDA.b #$04 : STA.w SprAction, Y
|
||||||
LDA.b #$FF : STA.w SprTimerB, Y
|
LDA.b #$FF : STA.w SprTimerB, Y
|
||||||
PLX
|
PLX
|
||||||
@@ -276,7 +276,7 @@ org $06BD9C
|
|||||||
org $068D59
|
org $068D59
|
||||||
SpritePrep_Locksmith:
|
SpritePrep_Locksmith:
|
||||||
{
|
{
|
||||||
INC.w $0BA0, X
|
INC.w SprBulletproof, X
|
||||||
|
|
||||||
; Clear sprite if we already have Zora baby
|
; Clear sprite if we already have Zora baby
|
||||||
LDA.l $7EF3CC : CMP.b #$09 : BNE .not_already_following
|
LDA.l $7EF3CC : CMP.b #$09 : BNE .not_already_following
|
||||||
@@ -325,14 +325,14 @@ Sprite_39_ZoraBaby:
|
|||||||
LDY.b #$01
|
LDY.b #$01
|
||||||
JSL Sprite_ShowSolicitedMessage
|
JSL Sprite_ShowSolicitedMessage
|
||||||
|
|
||||||
LDA.w $0D10, X
|
LDA.w SprX, X
|
||||||
PHA
|
PHA
|
||||||
|
|
||||||
SEC : SBC.b #$10 : STA.w $0D10, X
|
SEC : SBC.b #$10 : STA.w SprX, X
|
||||||
|
|
||||||
JSR Sprite_Get16BitCoords_Local
|
JSR Sprite_Get16BitCoords_Local
|
||||||
|
|
||||||
LDA.b #$01 : STA.w $0D50, X : STA.w $0D40, X
|
LDA.b #$01 : STA.w SprXSpeed, X : STA.w SprYSpeed, X
|
||||||
|
|
||||||
JSL Sprite_CheckTileCollision_long : BNE .dont_stalk_link
|
JSL Sprite_CheckTileCollision_long : BNE .dont_stalk_link
|
||||||
INC.w SprAction, X
|
INC.w SprAction, X
|
||||||
@@ -340,7 +340,7 @@ Sprite_39_ZoraBaby:
|
|||||||
LDA.b #$05 : STA.w SprAction, X
|
LDA.b #$05 : STA.w SprAction, X
|
||||||
.dont_stalk_link
|
.dont_stalk_link
|
||||||
PLA
|
PLA
|
||||||
STA.w $0D10, X
|
STA.w SprX, X
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -480,7 +480,7 @@ SpritePrep_OldMan:
|
|||||||
RTL
|
RTL
|
||||||
|
|
||||||
.main
|
.main
|
||||||
INC.w $0BA0, X
|
INC.w SprBulletproof, X
|
||||||
|
|
||||||
|
|
||||||
; LDA.b $A0 : CMP.b #$E4 ; ROOM 00E4
|
; LDA.b $A0 : CMP.b #$E4 ; ROOM 00E4
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ Sprite_ZoraPrincess_Prep:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
LDA.l $7EF302
|
LDA.l $7EF302
|
||||||
BEQ .doesnt_have_mask
|
BEQ .doesnt_have_mask
|
||||||
STZ.w $0DD0, X ; Kill the sprite
|
STZ.w SprState, X ; Kill the sprite
|
||||||
.doesnt_have_mask
|
.doesnt_have_mask
|
||||||
|
|
||||||
LDA #$00 : STA $0CAA, X
|
LDA #$00 : STA.w SprDefl, X
|
||||||
LDA #$00 : STA $0B6B, X
|
LDA #$00 : STA.w SprTileDie, X
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
@@ -110,7 +110,7 @@ Sprite_ZoraPrincess_Main:
|
|||||||
LDY #$0F : STZ $02E9 ; Give the Zora Mask
|
LDY #$0F : STZ $02E9 ; Give the Zora Mask
|
||||||
JSL Link_ReceiveItem
|
JSL Link_ReceiveItem
|
||||||
LDA #$01 : STA.l $7EF302
|
LDA #$01 : STA.l $7EF302
|
||||||
LDA.b #$00 : STA $0DD0, X
|
LDA.b #$00 : STA.w SprState, X
|
||||||
+
|
+
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ Sprite_IceBlock_Prep:
|
|||||||
LDA.w SprXH, X : STA.w SprMiscF, X
|
LDA.w SprXH, X : STA.w SprMiscF, X
|
||||||
LDA.w SprYH, X : STA.w SprMiscG, X
|
LDA.w SprYH, X : STA.w SprMiscG, X
|
||||||
|
|
||||||
STZ.w $0CAA, X
|
STZ.w SprDefl, X
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
@@ -323,7 +323,7 @@ Statue_BlockSprites:
|
|||||||
AND.b #$01
|
AND.b #$01
|
||||||
BNE .skip
|
BNE .skip
|
||||||
|
|
||||||
LDA.w $0DD0,Y
|
LDA.w SprState,Y
|
||||||
CMP.b #$09
|
CMP.b #$09
|
||||||
BCC .skip
|
BCC .skip
|
||||||
|
|
||||||
@@ -372,10 +372,10 @@ Statue_BlockSprites:
|
|||||||
PLY
|
PLY
|
||||||
|
|
||||||
LDA.b $00
|
LDA.b $00
|
||||||
STA.w $0F30,Y
|
STA.w SprYRecoil,Y
|
||||||
|
|
||||||
LDA.b $01
|
LDA.b $01
|
||||||
STA.w $0F40,Y
|
STA.w SprXRecoil,Y
|
||||||
|
|
||||||
.skip
|
.skip
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ Sprite_Minecart_Main:
|
|||||||
.active_cart
|
.active_cart
|
||||||
JSL Link_CancelDash ; Stop the player from dashing
|
JSL Link_CancelDash ; Stop the player from dashing
|
||||||
LDA #$02 : STA $02F5 ; Somaria platform and moving
|
LDA #$02 : STA $02F5 ; Somaria platform and moving
|
||||||
LDA $0FDA : SEC : SBC #$0B : STA $20 ; Adjust player pos
|
LDA.w SprCachedY : SEC : SBC #$0B : STA $20 ; Adjust player pos
|
||||||
LDA #$01 : STA !LinkInCart ; Set Link in cart flag
|
LDA #$01 : STA !LinkInCart ; Set Link in cart flag
|
||||||
|
|
||||||
; Check if the cart is facing east or west
|
; Check if the cart is facing east or west
|
||||||
@@ -315,7 +315,7 @@ Sprite_Minecart_Main:
|
|||||||
.active_cart
|
.active_cart
|
||||||
JSL Link_CancelDash ; Stop the player from dashing
|
JSL Link_CancelDash ; Stop the player from dashing
|
||||||
LDA #$02 : STA $02F5 ; Somaria platform and moving
|
LDA #$02 : STA $02F5 ; Somaria platform and moving
|
||||||
LDA $0FDA : SEC : SBC #$0B : STA $20 ; Adjust player pos
|
LDA.w SprCachedY : SEC : SBC #$0B : STA $20 ; Adjust player pos
|
||||||
LDA #$01 : STA !LinkInCart ; Set Link in cart flag
|
LDA #$01 : STA !LinkInCart ; Set Link in cart flag
|
||||||
|
|
||||||
; Check if the cart is facing north or south
|
; Check if the cart is facing north or south
|
||||||
@@ -365,7 +365,7 @@ Sprite_Minecart_Main:
|
|||||||
%PlayAnimation(0,1,8)
|
%PlayAnimation(0,1,8)
|
||||||
%InitMovement()
|
%InitMovement()
|
||||||
LDA $36 : BNE .fast_speed
|
LDA $36 : BNE .fast_speed
|
||||||
LDA.b #!MinecartSpeed : STA $0D50, X
|
LDA.b #!MinecartSpeed : STA.w SprXSpeed, X
|
||||||
JMP +
|
JMP +
|
||||||
.fast_speed
|
.fast_speed
|
||||||
LDA.b #!DoubleSpeed : STA.w SprXSpeed, X
|
LDA.b #!DoubleSpeed : STA.w SprXSpeed, X
|
||||||
@@ -751,10 +751,10 @@ CheckForPlayerInput:
|
|||||||
CheckIfPlayerIsOn:
|
CheckIfPlayerIsOn:
|
||||||
{
|
{
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA $22 : CLC : ADC #$0009 : CMP $0FD8 : BCC .left
|
LDA $22 : CLC : ADC #$0009 : CMP.w SprCachedX : BCC .left
|
||||||
LDA $22 : SEC : SBC #$0009 : CMP $0FD8 : BCS .right
|
LDA $22 : SEC : SBC #$0009 : CMP.w SprCachedX : BCS .right
|
||||||
LDA $20 : CLC : ADC #$0012 : CMP $0FDA : BCC .up
|
LDA $20 : CLC : ADC #$0012 : CMP.w SprCachedY : BCC .up
|
||||||
LDA $20 : SEC : SBC #$0012 : CMP $0FDA : BCS .down
|
LDA $20 : SEC : SBC #$0012 : CMP.w SprCachedY : BCS .down
|
||||||
SEP #$21
|
SEP #$21
|
||||||
RTS ; Return with carry set
|
RTS ; Return with carry set
|
||||||
.left
|
.left
|
||||||
|
|||||||
@@ -60,10 +60,10 @@ Sprite_Portal_Prep:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
; Persist outside of camera
|
; Persist outside of camera
|
||||||
LDA #$00 : STA $0CAA, X
|
LDA #$00 : STA.w SprDefl, X
|
||||||
LDA.w SprHitbox, X : AND.b #$C0 : STA.w SprHitbox, X
|
LDA.w SprHitbox, X : AND.b #$C0 : STA.w SprHitbox, X
|
||||||
STZ.w $0B6B, X
|
STZ.w SprTileDie, X
|
||||||
LDA.b #$FF : STA.w $0BA0, X
|
LDA.b #$FF : STA.w SprBulletproof, X
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
@@ -297,13 +297,13 @@ CheckForDismissPortal:
|
|||||||
LDA $7E0FA6 : BEQ .DespawnOrange ; Check what portal is spawning next
|
LDA $7E0FA6 : BEQ .DespawnOrange ; Check what portal is spawning next
|
||||||
PHX
|
PHX
|
||||||
LDA.w BlueSpriteIndex : TAX
|
LDA.w BlueSpriteIndex : TAX
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
DEC.w $06FE
|
DEC.w $06FE
|
||||||
PLX
|
PLX
|
||||||
.DespawnOrange
|
.DespawnOrange
|
||||||
PHX
|
PHX
|
||||||
LDA.w OrangeSpriteIndex : TAX
|
LDA.w OrangeSpriteIndex : TAX
|
||||||
STZ.w $0DD0, X
|
STZ.w SprState, X
|
||||||
DEC.w $06FE
|
DEC.w $06FE
|
||||||
PLX
|
PLX
|
||||||
RTS
|
RTS
|
||||||
@@ -329,7 +329,7 @@ RejectOnTileCollision:
|
|||||||
LDA #$3C ; SFX2.3C Error beep
|
LDA #$3C ; SFX2.3C Error beep
|
||||||
STA $012E ; Queue sound effect
|
STA $012E ; Queue sound effect
|
||||||
|
|
||||||
LDA #$00 : STA $0DD0, X
|
LDA #$00 : STA.w SprState, X
|
||||||
DEC $06FE
|
DEC $06FE
|
||||||
|
|
||||||
.not_out_of_bounds
|
.not_out_of_bounds
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Sprite_RotatingTrack_Long:
|
|||||||
Sprite_RotatingTrack_Prep:
|
Sprite_RotatingTrack_Prep:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
LDA.b #$80 : STA $0CAA, X
|
LDA.b #$80 : STA.w SprDefl, X
|
||||||
LDA.w SprSubtype, X : STA.w SprAction,X
|
LDA.w SprSubtype, X : STA.w SprAction,X
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ Sprite_MoveZ:
|
|||||||
Sprite_MoveAltitude:
|
Sprite_MoveAltitude:
|
||||||
{
|
{
|
||||||
LDA.w SprTimerF, X : ASL : ASL : ASL : ASL
|
LDA.w SprTimerF, X : ASL : ASL : ASL : ASL
|
||||||
CLC : ADC.w $0F90, X : STA.w $0F90, X
|
CLC : ADC.w SprHeightS, X : STA.w SprHeightS, X
|
||||||
|
|
||||||
LDA.w SprTimerF, X : PHP
|
LDA.w SprTimerF, X : PHP
|
||||||
LSR : LSR : LSR : LSR
|
LSR : LSR : LSR : LSR
|
||||||
@@ -342,7 +342,7 @@ Sprite_SetupHitBox:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
LDA.w SprHeight, X : BMI .too_high
|
LDA.w SprHeight, X : BMI .too_high
|
||||||
PHY
|
PHY
|
||||||
LDA.w $0F60, X : AND.b #$1F : TAY
|
LDA.w SprHitbox, X : AND.b #$1F : TAY
|
||||||
LDA.w SprX, X : CLC : ADC.w .offset_x_low, Y : STA.b $04
|
LDA.w SprX, X : CLC : ADC.w .offset_x_low, Y : STA.b $04
|
||||||
|
|
||||||
LDA.w SprXH, X : ADC.w .offset_x_high, Y : STA.b $0A
|
LDA.w SprXH, X : ADC.w .offset_x_high, Y : STA.b $0A
|
||||||
@@ -889,8 +889,8 @@ Sprite_CheckIfRecoiling:
|
|||||||
PHA
|
PHA
|
||||||
|
|
||||||
DEC.w $0EA0, X : BNE .still_recoiling
|
DEC.w $0EA0, X : BNE .still_recoiling
|
||||||
LDA.w $0F40, X : CLC : ADC.b #$20 : CMP.b #$40 : BCS .no_adjust
|
LDA.w SprXRecoil, X : CLC : ADC.b #$20 : CMP.b #$40 : BCS .no_adjust
|
||||||
LDA.w $0F30, X : CLC : ADC.b #$20 : CMP.b #$40 : BCC .still_recoiling
|
LDA.w SprYRecoil, X : CLC : ADC.b #$20 : CMP.b #$40 : BCC .still_recoiling
|
||||||
.no_adjust
|
.no_adjust
|
||||||
LDA.b #$90 : STA.w $0EA0,X
|
LDA.b #$90 : STA.w $0EA0,X
|
||||||
.still_recoiling
|
.still_recoiling
|
||||||
@@ -902,11 +902,11 @@ Sprite_CheckIfRecoiling:
|
|||||||
|
|
||||||
LDA.b $1A : AND.w .masks,Y : BNE .no_movement
|
LDA.b $1A : AND.w .masks,Y : BNE .no_movement
|
||||||
|
|
||||||
LDA.w $0F30, X : STA.w SprYSpeed,X
|
LDA.w SprYRecoil, X : STA.w SprYSpeed,X
|
||||||
|
|
||||||
LDA.w $0F40, X : STA.w SprXSpeed,X
|
LDA.w SprXRecoil, X : STA.w SprXSpeed,X
|
||||||
|
|
||||||
LDA.w $0CD2, X : BMI .handle_movement
|
LDA.w SprBump, X : BMI .handle_movement
|
||||||
|
|
||||||
JSL Sprite_CheckTileCollision_long
|
JSL Sprite_CheckTileCollision_long
|
||||||
|
|
||||||
@@ -915,13 +915,13 @@ Sprite_CheckIfRecoiling:
|
|||||||
.stop_horizontal_movement
|
.stop_horizontal_movement
|
||||||
CMP.b #$04 : BCS .stop_vertical_movement
|
CMP.b #$04 : BCS .stop_vertical_movement
|
||||||
|
|
||||||
STZ.w $0F40,X
|
STZ.w SprXRecoil,X
|
||||||
STZ.w SprXSpeed,X
|
STZ.w SprXSpeed,X
|
||||||
|
|
||||||
BRA .movement_stopped
|
BRA .movement_stopped
|
||||||
|
|
||||||
.stop_vertical_movement
|
.stop_vertical_movement
|
||||||
STZ.w $0F30,X
|
STZ.w SprYRecoil,X
|
||||||
STZ.w SprYSpeed,X
|
STZ.w SprYSpeed,X
|
||||||
|
|
||||||
.movement_stopped
|
.movement_stopped
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ ShopItem_Banana:
|
|||||||
JSR $F39E ; ShopItem_HandleCost
|
JSR $F39E ; ShopItem_HandleCost
|
||||||
BCC $F1A1 ; ShopItem_GiveFailureMessage
|
BCC $F1A1 ; ShopItem_GiveFailureMessage
|
||||||
|
|
||||||
STZ.w $0DD0,X
|
STZ.w SprState,X
|
||||||
|
|
||||||
INC.b Bananas
|
INC.b Bananas
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user