Replace more common sprite ram with symbols

This commit is contained in:
scawful
2024-11-19 16:25:24 -05:00
parent b17b2125be
commit 9aa9d39c78
34 changed files with 168 additions and 168 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
} }

View File

@@ -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

View File

@@ -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

View File

@@ -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
; --------------------------------------------------------- ; ---------------------------------------------------------

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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
} }

View File

@@ -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
} }

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
} }

View File

@@ -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.

View File

@@ -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
} }

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
} }

View File

@@ -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

View File

@@ -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

View File

@@ -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
} }

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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