diff --git a/Dungeons/spike_subtype.asm b/Dungeons/spike_subtype.asm index d6130bd..f872e03 100644 --- a/Dungeons/spike_subtype.asm +++ b/Dungeons/spike_subtype.asm @@ -31,18 +31,18 @@ NewSpikePrep: { PHB : PHK : PLB LDA $0E30, X : TAY - LDA.w speedValuesH, Y : STA $0D50, X - LDA.w speedValuesV, Y : STA $0D40, X + LDA.w speedValuesH, Y : STA.w SprXSpeed, X + LDA.w speedValuesV, Y : STA.w SprYSpeed, X PLB RTL } NewSpikeCollision: { - LDA.b #$04 : STA $0DF0, X + LDA.b #$04 : STA.w SprTimerA, X - LDA $0D50, X : EOR.b #$FF : INC A : STA $0D50, X - LDA $0D40, X : EOR.b #$FF : INC A : STA $0D40, X + LDA.w SprXSpeed, X : EOR.b #$FF : INC A : STA.w SprXSpeed, X + LDA.w SprYSpeed, X : EOR.b #$FF : INC A : STA.w SprYSpeed, X LDA.b #$05 : JSL $0DBB7C ; Sound_SetSfx2PanLong RTL diff --git a/Items/fishing_rod.asm b/Items/fishing_rod.asm index a958632..75a192d 100644 --- a/Items/fishing_rod.asm +++ b/Items/fishing_rod.asm @@ -130,15 +130,15 @@ LinkItem_FishingRod: LDA.l $7F5BA3 : TAX LDY.b $66 - LDA.w DirSpeedsY, Y : STA.w $0D40, X ; YSpeed - LDA.w DirSpeedsX, Y : STA.w $0D50, X ; YSpeed + LDA.w DirSpeedsY, Y : STA.w SprYSpeed, X ; YSpeed + LDA.w DirSpeedsX, Y : STA.w SprXSpeed, X ; YSpeed .BringBackFloater LDA.b #$10 : STA.w $0F80, X ; Gravity ; ======================================================= ; We got something spawn it and pull it at us - LDA.w $0DB0, X : BEQ .noPrize + LDA.w SprMiscB, X : BEQ .noPrize JSL GetRandomInt : AND #$0F : TAY : LDA Prizes, Y : BEQ .noPrize JSL Sprite_SpawnDynamically JSL Sprite_SetSpawnedCoordinates @@ -150,11 +150,11 @@ LinkItem_FishingRod: PHX LDX.b $66 - LDA.w DirSpeedsY, X : STA.w $0D40, Y ; YSpeed - LDA.w DirSpeedsX, X : STA.w $0D50, Y ; YSpeed + LDA.w DirSpeedsY, X : STA.w SprYSpeed, Y ; YSpeed + LDA.w DirSpeedsX, X : STA.w SprXSpeed, Y ; YSpeed PLX - LDA.b #$FF : STA.w $0EE0, Y + LDA.b #$FF : STA.w SprTimerD, Y LDA.b #$20 : STA.w $0F80, Y ; Gravity ;LDA.b #$06 : STA.w $0F70, Y @@ -324,19 +324,19 @@ Sprite_CheckIfActive: SpritePrep_Floater: { LDA.b $66 : CMP.b #$03 : BNE .notRight - LDA.b #$12 : STA.w $0D50, X ; XSpeed + LDA.b #$12 : STA.w SprXSpeed, X ; XSpeed BRA .DoInitFloater .notRight CMP.b #$02 : BNE .notLeft - LDA.b #$ED : STA.w $0D50, X ; XSpeed + LDA.b #$ED : STA.w SprXSpeed, X ; XSpeed BRA .DoInitFloater .notLeft CMP.b #$01 : BNE .notDown - LDA.b #$12 : STA.w $0D40, X ; YSpeed + LDA.b #$12 : STA.w SprYSpeed, X ; YSpeed BRA .DoInitFloater .notDown CMP.b #$00 : BNE .notUp - LDA.b #$ED : STA.w $0D40, X ; YSpeed + LDA.b #$ED : STA.w SprYSpeed, X ; YSpeed BRA .DoInitFloater .notUp @@ -345,11 +345,11 @@ SpritePrep_Floater: LDA.b #$08 : STA.w $0F70, X ; Height LDA.b #$10 : STA.w $0F80, X ; Gravity LDA.b #$00 : STA.w SprMiscG, X ; is it in water? - LDA.b #$00 : STA.w $0EB0, X ; Wiggling Velocity index - LDA.b #$00 : STA.w $0E90, X ; just for a check - LDA.b #$00 : STA.w $0DB0, X ; if we have a fish on line + LDA.b #$00 : STA.w SprMiscE, X ; Wiggling Velocity index + LDA.b #$00 : STA.w SprMiscD, X ; just for a check + LDA.b #$00 : STA.w SprMiscB, X ; if we have a fish on line - ;$0EE0 Timer for when floater is in water waiting for a fish to catch + ;SprTimerD Timer for when floater is in water waiting for a fish to catch RTL } @@ -372,34 +372,34 @@ Sprite_Floater: LDA.w SprMiscG, X : BEQ .noFishOnLine ; is the floater in water? - LDA.w $0EE0, X : BNE .noWigglingYet ; timerD wait until fish is on line + LDA.w SprTimerD, X : BNE .noWigglingYet ; timerD wait until fish is on line - LDA.w $0DB0, X : BNE .fishOnlineWait + LDA.w SprMiscB, X : BNE .fishOnlineWait ; start another random timer for the time it'll last JSL GetRandomInt : AND #$3F - CLC : ADC.b #$0F : STA.w $0DF0, X ; wiggling timer - INC.w $0DB0, X ; we have a fish on line + CLC : ADC.b #$0F : STA.w SprTimerA, X ; wiggling timer + INC.w SprMiscB, X ; we have a fish on line .noWigglingYet - LDA.w $0DB0, X : BEQ .noFishOnLine ; do we already have a fish on line? + LDA.w SprMiscB, X : BEQ .noFishOnLine ; do we already have a fish on line? .fishOnlineWait - LDA.w $0DF0, X : BNE .still_wiggling - STZ.w $0DB0, X ; no more fish on line took too much time + LDA.w SprTimerA, X : BNE .still_wiggling + STZ.w SprMiscB, X ; no more fish on line took too much time JSL GetRandomInt : AND.b #$7F - CLC : ADC.b #$7F : STA.w $0EE0, X ; reset timer wait until fish is on line - STZ.w $0D50, X - STZ.w $0D40, X + CLC : ADC.b #$7F : STA.w SprTimerD, X ; reset timer wait until fish is on line + STZ.w SprXSpeed, X + STZ.w SprYSpeed, X BRA .noFishOnLine .still_wiggling - LDY.w $0E10, X - LDA.w WigglingTable, Y : STA.w $0D50, X - LDA.w WigglingTable, Y : STA.w $0D40, X - LDY.w $0E10, X : BNE + ; use timer to do wiggling + LDY.w SprTimerC, X + LDA.w WigglingTable, Y : STA.w SprXSpeed, X + LDA.w WigglingTable, Y : STA.w SprYSpeed, X + LDY.w SprTimerC, X : BNE + ; use timer to do wiggling ; if = 0 then put it back to F - LDA.b #$0F : STA.w $0E10, X ; wiggling timer + LDA.b #$0F : STA.w SprTimerC, X ; wiggling timer + .noFishOnLine @@ -413,9 +413,9 @@ Sprite_Floater: STZ.w $0F70, X - LDA.w $0D50, X : ASL A : ROR.w $0D50, X + LDA.w SprXSpeed, X : ASL A : ROR.w SprXSpeed, X - LDA.w $0D40, X : ASL A : ROR.w $0D40, X + LDA.w SprYSpeed, X : ASL A : ROR.w SprYSpeed, X LDA.w $0F80, X : EOR.b #$FF : INC A @@ -423,8 +423,8 @@ Sprite_Floater: CMP.b #$09 BCS .no_bounce - LDA.w $0E90, X : BNE .not_water_tile_last - INC.w $0E90, X + LDA.w SprMiscD, X : BNE .not_water_tile_last + INC.w SprMiscD, X JSL Sprite_CheckTileCollision LDA.w $0FA5 CMP.b #$08 : BEQ .water_tile_last @@ -434,12 +434,12 @@ Sprite_Floater: JSL Sprite_SpawnSmallSplash JSL GetRandomInt : AND #$3F - CLC : ADC #$3F : STA.w $0EE0, X + CLC : ADC #$3F : STA.w SprTimerD, X .not_water_tile_last STZ.w $0F80, X - STZ.w $0D50, X - STZ.w $0D40, X + STZ.w SprXSpeed, X + STZ.w SprYSpeed, X BRA .aloft diff --git a/Items/portal_rod.asm b/Items/portal_rod.asm index d526eb0..62f1250 100644 --- a/Items/portal_rod.asm +++ b/Items/portal_rod.asm @@ -125,7 +125,7 @@ LinkItem_FirePortal: .finish TYX - STZ $0D60, X : STZ $0D70, X + STZ.w SprYRound, X : STZ.w SprXRound, X PLX .return diff --git a/Sprites/Bosses/arrghus.asm b/Sprites/Bosses/arrghus.asm index 92970ab..87b48b9 100644 --- a/Sprites/Bosses/arrghus.asm +++ b/Sprites/Bosses/arrghus.asm @@ -7,7 +7,7 @@ Sprite3_Move: org $1EB593 Arrghus_ApproachTargetSpeed: { - LDA $0DF0, X : BNE .delay + LDA.w SprTimerA, X : BNE .delay INC $0D80, X @@ -23,6 +23,6 @@ AdvancedArrghus: LDA.b #$04 : STA $0CD2, Y JSL Sprite_SpawnFireball - LDA.b #$50 : STA $0DF0, X + LDA.b #$50 : STA.w SprTimerA, X RTL } diff --git a/Sprites/Bosses/dark_link.asm b/Sprites/Bosses/dark_link.asm index e9e7beb..17f6112 100644 --- a/Sprites/Bosses/dark_link.asm +++ b/Sprites/Bosses/dark_link.asm @@ -178,14 +178,14 @@ Sprite_DarkLink_Main: REP #$20 - LDA $0FD8 ; Sprite X + LDA.w SprCachedX ; Sprite X SEC : SBC $22 ; - Player X BPL + EOR #$FFFF + STA $00 ; Distance X (ABS) - LDA $0FDA ; Sprite Y + LDA.w SprCachedY ; Sprite Y SEC : SBC $20 ; - Player Y BPL + EOR #$FFFF @@ -438,7 +438,7 @@ Sprite_DarkLink_Main: ; ... but once spawned, transmute it to an enemy bomb. JSL $06AD50 JSL GetRandomInt : AND #$7F : CLC : ADC #$20 - STA $0E00, Y + STA.w SprTimerB, Y .spawn_failed RTS } @@ -460,10 +460,10 @@ Sprite_DarkLink_Main: PHX TYX LDA.b #$28 : JSL Sprite_ApplySpeedTowardsPlayer - LDA.b #$01 : STA $0DB0, X + LDA.b #$01 : STA.w SprMiscB, X LDA.b #$16 : STA $0F80, X JSL GetRandomInt : AND #$7F : CLC : ADC #$20 - STA $0E00, X + STA.w SprTimerB, X PLX .spawn_failed @@ -677,14 +677,14 @@ Sprite_DarkLink_Main: REP #$20 - LDA $0FD8 ; Sprite X + LDA.w SprCachedX ; Sprite X SEC : SBC $22 ; - Player X BPL + EOR #$FFFF + STA $00 ; Distance X (ABS) - LDA $0FDA ; Sprite Y + LDA.w SprCachedY ; Sprite Y SEC : SBC $20 ; - Player Y BPL + EOR #$FFFF diff --git a/Sprites/Bosses/king_dodongo.asm b/Sprites/Bosses/king_dodongo.asm index f0c43ff..289b044 100644 --- a/Sprites/Bosses/king_dodongo.asm +++ b/Sprites/Bosses/king_dodongo.asm @@ -11,7 +11,7 @@ KingDodongo_NewHealthSystem: TAY LDA.w .phase_table,Y - STA.w $0DB0,X + STA.w SprMiscB,X PLB RTL diff --git a/Sprites/Bosses/kydreeok.asm b/Sprites/Bosses/kydreeok.asm index e902743..1f7504e 100644 --- a/Sprites/Bosses/kydreeok.asm +++ b/Sprites/Bosses/kydreeok.asm @@ -282,11 +282,11 @@ Sprite_Kydreeok_Main: LDA.b #$04 : STA.w $0DD0,Y LDA.b #$03 : STA.w $0E40,Y LDA.b #$0C : STA.w $0F50,Y - LDA.w $0FD8 : STA.w SprX,Y + LDA.w SprCachedX : STA.w SprX,Y LDA.w $0FD9 : STA.w SprXH,Y - LDA.w $0FDA : STA.w SprY,Y + LDA.w SprCachedY : STA.w SprY,Y LDA.w $0FDB : STA.w SprYH,Y - LDA.b #$1F : STA.w $0DF0,Y : STA.w $0D90,Y + LDA.b #$1F : STA.w SprTimerA,Y : STA.w $0D90,Y LDA.b #$02 : STA.w $0F20,Y .no_space LDA.w SprTimerA, X : BNE .continue @@ -491,7 +491,7 @@ MoveBody: LDA.b #$01 : STA.w $0428 - LDA.w SprY, X : SEC : SBC.b #$0C : STA.w $0DB0, X + LDA.w SprY, X : SEC : SBC.b #$0C : STA.w SprMiscB, X LDA.w $0B08 : SEC : SBC.w SprX, X CLC : ADC.b #$02 @@ -502,7 +502,7 @@ MoveBody: CMP.b #$04 : BCS .not_at_target .adjust_phase ; Unused? - LDA.b #$30 : STA.w $0DF0, X + LDA.b #$30 : STA.w SprTimerA, X .not_at_target ; LayerEffect_Trinexx $0AFEF0 diff --git a/Sprites/Bosses/kydreeok_head.asm b/Sprites/Bosses/kydreeok_head.asm index 24c538c..27fb779 100644 --- a/Sprites/Bosses/kydreeok_head.asm +++ b/Sprites/Bosses/kydreeok_head.asm @@ -244,16 +244,16 @@ KydreeokHead_RotationMove: Sprite_KydreeokHead_Damage_Flash: { - LDA.w $0EB0, X : BEQ .dontFlash + LDA.w SprMiscE, X : BEQ .dontFlash ; Change the palette to the next in the cycle - LDA.w $0EB0, X : INC : CMP.b #$08 : BNE .dontReset + LDA.w SprMiscE, X : INC : CMP.b #$08 : BNE .dontReset LDA.b #$00 .dontReset - STA.w $0EB0, X + STA.w SprMiscE, X BRA .flash .dontFlash - STZ.w $0EB0, X + STZ.w SprMiscE, X .flash RTS @@ -685,7 +685,7 @@ Sprite_KydreeokHead_Draw: LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame LDA .start_index, Y : STA $06 - LDA.w $0EB0, X : STA $08 + LDA.w SprMiscE, X : STA $08 PHX ; amount of tiles - 1 diff --git a/Sprites/Bosses/lanmola.asm b/Sprites/Bosses/lanmola.asm index a96d611..ea7255d 100644 --- a/Sprites/Bosses/lanmola.asm +++ b/Sprites/Bosses/lanmola.asm @@ -46,7 +46,7 @@ Lanmola_FinishInitialization: { PHB : PHK : PLB - LDA.l .starting_delay, X : STA $0DF0, X + LDA.l .starting_delay, X : STA.w SprTimerA, X LDA.b #$FF : STA $0F70, X @@ -103,8 +103,8 @@ Lanmola_Wait: ;0x00 { JSR Lanmola_Draw - LDA $0DF0, X : BNE .delay ; ORA $0F00, X : - LDA.b #$7F : STA $0DF0, X + LDA.w SprTimerA, X : BNE .delay ; ORA $0F00, X : + LDA.b #$7F : STA.w SprTimerA, X INC $0D80, X @@ -124,36 +124,36 @@ Lanmola_Mound: ;0x01 JSR Lanmola_DrawMound JSL CheckIfActive : BCS Lanmola_Wait_delay - LDA $0DF0, X : BNE .return + LDA.w SprTimerA, X : BNE .return JSL Lanmola_SpawnShrapnel LDA.b #$13 : STA $012D TXY JSL GetRandomInt : AND.b #$07 : TAX - LDA $7EEAA8, X : STA $0DA0, Y ; Get random X pos to have the lanmola fly to. ;.randXPos + LDA $7EEAA8, X : STA.w SprMiscA, Y ; Get random X pos to have the lanmola fly to. ;.randXPos JSL GetRandomInt : AND.b #$07 : TAX - LDA $7EEAB0, X : STA $0DB0, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos + LDA $7EEAB0, X : STA.w SprMiscB, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos TYX INC $0D80, X LDA.b #$18 : STA $0F80, X - STZ $0EC0, X - STZ $0ED0, X + STZ.w SprMiscF, X + STZ.w SprMiscG, X ; ALTERNATE ENTRY POINT .Lanmola_SetScatterSandPosition LDA.w SprXH, X : STA $0DC0, X - LDA.w SprYH, X : STA $0EB0, X + LDA.w SprYH, X : STA.w SprMiscE, X - LDA.w SprX, X : STA $0DE0, X + LDA.w SprX, X : STA.w SprMiscC, X LDA.w SprY, X : STA $0E70, X - LDA.b #$4A : STA $0E00, X + LDA.b #$4A : STA.w SprTimerB, X .return @@ -172,9 +172,9 @@ Lanmola_Fly: ;0x02 JSR Sprite2_MoveAltitude ; Slowly decrease the Y speed when first coming out of the ground - LDA $0EC0, X : BNE .notRising + LDA.w SprMiscF, X : BNE .notRising LDA $0F80, X : SEC : SBC.b #$01 : STA $0F80, X : BNE .beta - INC $0EC0, X + INC.w SprMiscF, X .beta @@ -185,19 +185,19 @@ Lanmola_Fly: ;0x02 ; Use the Y speed to bob up and down LDA $1A : AND.b #$01 : BNE .dontSwitchDirections ; Every other frame. TXY - LDA $0ED0, X : AND.b #$01 : TAX + LDA.w SprMiscG, X : AND.b #$01 : TAX LDA $0F80, Y : CLC : ADC $7EEA9C, X : STA $0F80, Y : CMP $7EEA9E, X : BNE .dontSwitchDirections2 ;.y_speed_slope ;.y_speeds - TYX : INC $0ED0, X ; Switch direction + TYX : INC.w SprMiscG, X ; Switch direction .dontSwitchDirections2 TYX .dontSwitchDirections - LDA $0DA0, X : STA $04 + LDA.w SprMiscA, X : STA $04 LDA.w SprXH, X : STA $05 - LDA $0DB0, X : STA $06 + LDA.w SprMiscB, X : STA $06 LDA.w SprYH, X : STA $07 LDA.w SprX, X : STA $00 LDA.w SprXH, X : STA $01 @@ -219,8 +219,8 @@ Lanmola_Fly: ;0x02 JSL Sprite_ProjectSpeedTowardsEntityLong - LDA $00 : STA $0D40, X - LDA $01 : STA $0D50, X + LDA $00 : STA.w SprYSpeed, X + LDA $01 : STA.w SprXSpeed, X JSR Sprite2_Move @@ -250,7 +250,7 @@ Lanmola_Dive: ;0x03 LDA $0F70, X : BPL .notUnderGroundYet INC $0D80, X - LDA.b #$80 : STA $0DF0, X + LDA.b #$80 : STA.w SprTimerA, X JSR Lanmola_Mound_Lanmola_SetScatterSandPosition @@ -267,7 +267,7 @@ Lanmola_Reset: ;0x04 JSL Lanmola_DrawDirtLONG JSL CheckIfActive : BCS Lanmola_Dive_notUnderGroundYet - LDA $0DF0, X : BNE .wait + LDA.w SprTimerA, X : BNE .wait STZ $0D80, X ; Go back to wait phase TXY @@ -289,7 +289,7 @@ Lanmola_Death: ;0x05 { JSR Lanmola_Draw - LDA $0DF0, X : BNE .timerNotDone + LDA.w SprTimerA, X : BNE .timerNotDone STZ $0DD0, X ; Y is the index where we write in RAM @@ -316,7 +316,7 @@ Lanmola_Death: ;0x05 .timerNotDone - LDA $0DF0, X : CMP.b #$20 : BCC Lanmola_Reset_wait + LDA.w SprTimerA, X : CMP.b #$20 : BCC Lanmola_Reset_wait CMP.b #$A0 : BCS Lanmola_Reset_wait AND.b #$0F : BNE Lanmola_Reset_wait TXY @@ -346,7 +346,7 @@ Lanmola_Death: ;0x05 LDA.b #$04 : STA $0DD0, Y - LDA.b #$1F : STA $0DF0, Y : STA $0D90, Y + LDA.b #$1F : STA.w SprTimerA, Y : STA $0D90, Y LDA $0A : STA.w SprX, Y LDA $0B : STA.w SprXH, Y @@ -386,7 +386,7 @@ Lanmola_Draw: STA $0F - LDA $0D40, X : ASL A : ROL A : AND.b #$01 : TAX + LDA.w SprYSpeed, X : ASL A : ROL A : AND.b #$01 : TAX LDA $7EEA06, X : STA $0C ;.data2 @@ -528,15 +528,15 @@ Lanmola_DrawMound: PHX - LDA $0DF0, X : LSR #3 : TAX + LDA.w SprTimerA, X : LSR #3 : TAX LDA $7EEA54, X : TAX ;.frameMound LDY.b #$00 REP #$20 - LDA $0FDA : SEC : SBC $E8 : STA $02 - LDA $0FD8 : SEC : SBC $E2 : STA ($90), Y + LDA.w SprCachedY : SEC : SBC $E8 : STA $02 + LDA.w SprCachedX : SEC : SBC $E2 : STA ($90), Y STZ $37 BPL .notNegative @@ -601,11 +601,11 @@ Sprite_Shrapnel: TXA : EOR $1A : AND.b #$03 : BNE .noTileCollision REP #$20 - LDA $0FD8 : SEC : SBC $22 : CLC : ADC.w #$0004 + LDA.w SprCachedX : SEC : SBC $22 : CLC : ADC.w #$0004 CMP.w #$0010 : BCS .player_not_close - LDA $0FDA : SEC : SBC $20 : CLC : ADC.w #$FFFC + LDA.w SprCachedY : SEC : SBC $20 : CLC : ADC.w #$FFFC CMP.w #$000C : BCS .player_not_close @@ -622,7 +622,7 @@ Sprite_Shrapnel: .noTileCollision - LDA $0DF0, X : BNE .timerNotDone + LDA.w SprTimerA, X : BNE .timerNotDone STZ $0DD0, X .timerNotDone diff --git a/Sprites/Bosses/lanmola_expanded.asm b/Sprites/Bosses/lanmola_expanded.asm index c88adbb..91c8b5f 100644 --- a/Sprites/Bosses/lanmola_expanded.asm +++ b/Sprites/Bosses/lanmola_expanded.asm @@ -38,14 +38,14 @@ Lanmola_DrawDirtLONG: Lanmola_DrawDirt: { - LDA $0E00, X : BNE .timerNotDone + LDA.w SprTimerB, X : BNE .timerNotDone RTS .timerNotDone ; Determine weather the dirt should draw in front of or behind the body ; based on its y velocity. - LDA $0D40, X : ASL A : ROL A : ASL A : EOR $0D80, X : AND.b #$02 : BEQ .nu + LDA.w SprYSpeed, X : ASL A : ROL A : ASL A : EOR $0D80, X : AND.b #$02 : BEQ .nu LDA.b #$08 : JSL OAM_AllocateFromRegionB BRA .xi @@ -56,10 +56,10 @@ Lanmola_DrawDirt: LDY.b #$00 - LDA $0E00, X : LSR #2 : AND.b #$03 : EOR.b #$03 : ASL A : STA $06 + LDA.w SprTimerB, X : LSR #2 : AND.b #$03 : EOR.b #$03 : ASL A : STA $06 LDA $0DC0, X : XBA - LDA $0DE0, X + LDA.w SprMiscC, X REP #$20 : SEC : SBC $E2 : STA $00 : SEP #$20 STZ $37 @@ -68,7 +68,7 @@ Lanmola_DrawDirt: .notNegative3 - LDA $0EB0, X : XBA + LDA.w SprMiscE, X : XBA LDA $0E70, X REP #$20 : SEC : SBC $E8 : STA $02 : SEP #$20 @@ -281,8 +281,8 @@ Lanmola_MoveSegment: PLX - LDA $0D40, X : SEC : SBC $0F80, X : STA $00 - LDA $0D50, X : STA $01 + LDA.w SprYSpeed, X : SEC : SBC $0F80, X : STA $00 + LDA.w SprXSpeed, X : STA $01 JSL Sprite_ConvertVelocityToAngle : STA $0F LDA $7EEA00, X : STA $04 ;.sprite_regions @@ -330,7 +330,7 @@ Lanmola_MoveSegment: SetShrapnelTimer: { - LDA.b #$40 : STA $0DF0, Y + LDA.b #$40 : STA.w SprTimerA, Y JSL GetRandomInt ; replaced code diff --git a/Sprites/Bosses/manhandla.asm b/Sprites/Bosses/manhandla.asm index 5ec5aac..bf200cf 100644 --- a/Sprites/Bosses/manhandla.asm +++ b/Sprites/Bosses/manhandla.asm @@ -819,7 +819,7 @@ Mothula_SpawnBeams: CLC : ADC.b #$03 : STA.w SprY,Y - LDA.b #$10 : STA.w $0DF0,Y : STA.w $0BA0,Y + LDA.b #$10 : STA.w SprTimerA,Y : STA.w $0BA0,Y PHX @@ -828,10 +828,10 @@ Mothula_SpawnBeams: LDA.b $00 : CLC : ADC.w .speed_and_offset_x,X STA.w SprX,Y - LDA.w .speed_and_offset_x,X : STA.w $0D50,Y + LDA.w .speed_and_offset_x,X : STA.w SprXSpeed,Y LDA.w .speed_y,X - STA.w $0D40,Y + STA.w SprYSpeed,Y LDA.b #$00 STA.w $0F70,Y diff --git a/Sprites/Bosses/octoboss.asm b/Sprites/Bosses/octoboss.asm index 674d720..c675f02 100644 --- a/Sprites/Bosses/octoboss.asm +++ b/Sprites/Bosses/octoboss.asm @@ -887,7 +887,7 @@ SpawnSplash: STA.w $0DD0,Y LDA.b #$0F - STA.w $0DF0,Y + STA.w SprTimerA,Y LDA.b #$00 STA.w $0D80,Y @@ -936,7 +936,7 @@ SpawnBossPoof: STA.w $0D90,Y LDA.b #$2F - STA.w $0DF0,Y + STA.w SprTimerA,Y LDA.b #$09 STA.w $0E40,Y @@ -960,7 +960,7 @@ HandleMovingSplash: TXY LDX.b #$1D - LDA.w $0D40,Y + LDA.w SprYSpeed,Y BMI .next_slot LDX.b #$0E @@ -1017,7 +1017,7 @@ SpawnMedallion: TYX LDA.b #$10 - STA.w $0D50, X + STA.w SprXSpeed, X LDA.b #$30 STA.w $0F80, X diff --git a/Sprites/Bosses/twinrova.asm b/Sprites/Bosses/twinrova.asm index e66e7d0..87e8e69 100644 --- a/Sprites/Bosses/twinrova.asm +++ b/Sprites/Bosses/twinrova.asm @@ -205,7 +205,7 @@ Sprite_Twinrova_Main: RTS ; --------------------------------------------- .phase_1 - LDA $0DA0 : BEQ .not_flashing + LDA.w SprMiscA : BEQ .not_flashing LDA.b #$30 : STA.w SprTimerD, X %GotoAction(7) ; Goto Twinrova_Hurt RTS @@ -585,20 +585,20 @@ TrinexxBreath_AltEntry: JSL GetRandomInt AND.b #$03 TAY - LDA SpeedAdjustments, Y : CLC : ADC $0D50, X : STA $0D50, X - LDA SpeedAdjustments+4, Y : CLC : ADC $0D40, X : STA $0D40, X + LDA SpeedAdjustments, Y : CLC : ADC.w SprXSpeed, X : STA.w SprXSpeed, X + LDA SpeedAdjustments+4, Y : CLC : ADC.w SprYSpeed, X : STA.w SprYSpeed, X .no_adjustment JSL Sprite_BounceFromTileCollision LDA $1A : AND.b #$03 : BNE .no_shake JSL Sprite_IsToRightOfPlayer - LDA $0D50, X : CMP .x_speed_targets, Y : BEQ .no_shake - CLC : ADC.w .shake_x, Y : STA $0D50, X + LDA.w SprXSpeed, X : CMP .x_speed_targets, Y : BEQ .no_shake + CLC : ADC.w .shake_x, Y : STA.w SprXSpeed, X .no_shake JSL Sprite_IsBelowPlayer - LDA $0D40, X : CMP .x_speed_targets, Y : BEQ .exit - CLC : ADC.w .shake_y, Y : STA $0D40, X + LDA.w SprYSpeed, X : CMP .x_speed_targets, Y : BEQ .exit + CLC : ADC.w .shake_y, Y : STA.w SprYSpeed, X JSL Sprite_CheckTileCollision : BEQ .exit LDY #$10 @@ -803,11 +803,11 @@ Ganon_SpawnFallingTilesOverlord: ;---------------------------------------------------------- .free_slot - #_1D90DB: LDA.w $0EC0,X + #_1D90DB: LDA.w SprMiscF,X #_1D90DE: CMP.b #$04 #_1D90E0: BCS .dont_spawn - #_1D90E2: INC.w $0EC0,X + #_1D90E2: INC.w SprMiscF,X #_1D90E5: PHX @@ -1044,10 +1044,10 @@ ReleaseFireballs: JSL Sprite_DirectionToFacePlayer LDA.w .speed_x,Y - STA.w $0D50,X + STA.w SprXSpeed,X LDA.w .speed_y,Y - STA.w $0D40,X + STA.w SprYSpeed,X LDA.w SprX,X CLC @@ -1217,13 +1217,13 @@ Blind_SpawnFromMaiden: ; JSL SpritePrep_LoadProperties ; Set SprTimerC - LDA.b #$C0 : STA.w $0E10,X + LDA.b #$C0 : STA.w SprTimerC,X ; Set SprGfx LDA.b #$00 : STA.w $0DC0,X ; Set SprMiscC and bulletproof properties - LDA.b #$02 : STA.w $0DE0,X : STA.w $0BA0,X + LDA.b #$02 : STA.w SprMiscC,X : STA.w $0BA0,X ; Set the 2nd key / heart piece items taken room flag LDA.w $0403 : ORA.b #$20 : STA.w $0403 @@ -1253,16 +1253,16 @@ SpritePrep_Blind_PrepareBattle: BEQ .despawn LDA.b #$60 - STA.w $0E10,X + STA.w SprTimerC,X LDA.b #$01 - STA.w $0DB0,X + STA.w SprMiscB,X LDA.b #$02 - STA.w $0DE0,X + STA.w SprMiscC,X LDA.b #$04 - STA.w $0EB0,X + STA.w SprMiscE,X LDA.b #$07 STA.w $0DC0,X diff --git a/Sprites/Enemies/anti_kirby.asm b/Sprites/Enemies/anti_kirby.asm index 800b37b..1d3ce93 100644 --- a/Sprites/Enemies/anti_kirby.asm +++ b/Sprites/Enemies/anti_kirby.asm @@ -264,12 +264,12 @@ AntiKirby_StealItem: { REP #$20 - LDA.w $0FD8 + LDA.w SprCachedX CLC : ADC.b $04 SEC : SBC.b $22 CLC : ADC.w #$000C : CMP.w #$0018 : BCS .exit - LDA.w $0FDA + LDA.w SprCachedY CLC : ADC.b $06 SEC : SBC.b $20 CLC : ADC.w #$000C : CMP.w #$0020 : BCS .exit diff --git a/Sprites/Enemies/business_scrub.asm b/Sprites/Enemies/business_scrub.asm index d404cd2..45f139c 100644 --- a/Sprites/Enemies/business_scrub.asm +++ b/Sprites/Enemies/business_scrub.asm @@ -330,17 +330,17 @@ SpawnPeaShot: PHX ; Spawn Location REP #$20 - LDA $0FD8 + LDA.w SprCachedX SEP #$20 STA.w SprX, Y : XBA : STA.w SprXH, Y REP #$20 - LDA $0FDA : CLC : ADC.w #$000C + LDA.w SprCachedY : CLC : ADC.w #$000C SEP #$20 STA.w SprY, Y : XBA : STA.w SprYH, Y TYX - STZ $0D70, X + STZ.w SprXRound, X LDA #$10 : STA.w SprYSpeed, X STA.w SprYRound, X diff --git a/Sprites/Enemies/helmet_chuchu.asm b/Sprites/Enemies/helmet_chuchu.asm index 94c28ea..885a781 100644 --- a/Sprites/Enemies/helmet_chuchu.asm +++ b/Sprites/Enemies/helmet_chuchu.asm @@ -191,8 +191,8 @@ HelmetChuchu_SpawnHookshotDrag: LDA.b #$00 : STA.w SprMiscB, Y LDA.b #$80 : STA.w SprTimerA, Y LDA.b #$01 : STA.w SprNbrOAM, Y - LDA.w .speed_x, X : STA.w $0D50, Y - LDA.w .speed_y, X : STA.w $0D40, Y + LDA.w .speed_x, X : STA.w SprXSpeed, Y + LDA.w .speed_y, X : STA.w SprYSpeed, Y .no_space2 PLX RTS diff --git a/Sprites/Enemies/octorok.asm b/Sprites/Enemies/octorok.asm index a33219c..562e342 100644 --- a/Sprites/Enemies/octorok.asm +++ b/Sprites/Enemies/octorok.asm @@ -148,9 +148,9 @@ Sprite_Octorok_Move: .wait LDY.w SprMiscC, X - LDA.w .speed_x, Y : STA.w $0D50,X + LDA.w .speed_x, Y : STA.w SprXSpeed,X - LDA.w .speed_y, Y : STA.w $0D40,X + LDA.w .speed_y, Y : STA.w SprYSpeed,X JSL Sprite_CheckTileCollision LDA.w $0E70, X : BEQ .no_collision @@ -162,7 +162,7 @@ Sprite_Octorok_Move: ; --------------------------------------------------------- .octorok_used_barrage - STZ.w $0D50, X : STZ.w $0D40,X + STZ.w SprXSpeed, X : STZ.w SprYSpeed,X LDA.w SprTimerA, X : BNE Octorock_ShootEmUp INC.w SprMiscF, X @@ -405,16 +405,16 @@ Octorok_SpawnRock: LDA.w SprMiscC,X TAX - LDA.b $00 : CLC : ADC.w .offset_x_low,X : STA.w $0D10,Y - LDA.b $01 : ADC.w .offset_x_high,X : STA.w $0D30,Y - LDA.b $02 : CLC : ADC.w .offset_y_low,X : STA.w $0D00,Y - LDA.b $03 : ADC.w .offset_y_high,X : STA.w $0D20,Y + LDA.b $00 : CLC : ADC.w .offset_x_low,X : STA.w SprX,Y + LDA.b $01 : ADC.w .offset_x_high,X : STA.w SprXH,Y + LDA.b $02 : CLC : ADC.w .offset_y_low,X : STA.w SprY,Y + LDA.b $03 : ADC.w .offset_y_high,X : STA.w SprYH,Y LDA.w SprMiscC,Y TAX - LDA.w .rock_speed_x,X : STA.w $0D50,Y - LDA.w .rock_speed_y,X : STA.w $0D40,Y + LDA.w .rock_speed_x,X : STA.w SprXSpeed,Y + LDA.w .rock_speed_y,X : STA.w SprYSpeed,Y PLX .fired_a_blank diff --git a/Sprites/Enemies/poltergeist.asm b/Sprites/Enemies/poltergeist.asm index 9163c95..9f37f73 100644 --- a/Sprites/Enemies/poltergeist.asm +++ b/Sprites/Enemies/poltergeist.asm @@ -1,6 +1,6 @@ -; ========================================================= +; ========================================================= ; Sprite Properties -; ========================================================= +; ========================================================= !SPRID = Sprite_Poltergeist !NbrTiles = 4 ; Number of tiles used in a frame @@ -11,7 +11,7 @@ !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it !SmallShadow = 00 ; 01 = small shadow, 00 = no shadow -!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow +!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow !Palette = 0 ; Unused in this template (can be 0 to 7) !Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool !Persist = 00 ; 01 = your sprite continue to live offscreen @@ -60,7 +60,7 @@ Sprite_Poltergeist_Prep: { PHB : PHK : PLB - LDA #$00 : STA $0F60, X ; Persist + LDA #$00 : STA $0F60, X ; Persist LDA #$00 : STA $0CAA, X ; Sprite persist in dungeon LDA #$02 : STA $0E40, X ;1 tile by default LDA #$01 : STA.w SprAction, X ; by default it's a chair @@ -106,8 +106,8 @@ Sprite_Poltergeist_Prep: LDA #36 : STA.w SprFrame, X LDA #$01 : STA.w SprAction, X LDA #$04 : STA $0E40, 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 SprY, X : SEC : SBC #$0C : STA.w SprY, X + LDA.w SprX, X : CLC : ADC #$08 : STA.w SprX, X BRA .done .notDoor @@ -119,7 +119,7 @@ Sprite_Poltergeist_Prep: .secondset LDA.w SprSubtype, X : AND #$07 : CLC : ADC #30 : STA.w SprFrame, X - LDA.w SprSubtype, X + LDA.w SprSubtype, X .done @@ -152,7 +152,7 @@ Sprite_Poltergeist_Prep: ; 21:Shutter door Sprite_Poltergeist_Main: -{ +{ LDA.w SprAction, X : JSL UseImplicitRegIndexedLocalJumpTable dw PictureFrame @@ -189,7 +189,7 @@ PictureFrame: JSL Sprite_CheckDamageFromPlayer : BCC .noShatter JMP Shatter - + .noShatter RTS @@ -197,7 +197,7 @@ PictureFrame: GetLinkDistance16bit: { - LDA $0FD8 ; Sprite X + LDA.w SprCachedX ; Sprite X SEC : SBC $22 ; - Player X BPL + @@ -206,7 +206,7 @@ GetLinkDistance16bit: STA $00 ; Distance X (ABS) - LDA $0FDA ; Sprite Y + LDA.w SprCachedY ; Sprite Y SEC : SBC $20 ; - Player Y BPL + @@ -287,11 +287,11 @@ Shatter: LDA.b #$1F : JSL Sound_SetSfx2PanLong STZ $0DC0, X - LDA.b #$04 : STA $0DB0, X + LDA.b #$04 : STA.w SprMiscB, X LDA.b #$06 : STA $0DD0, X - LDA.b #$1F : STA $0DF0, X + LDA.b #$1F : STA.w SprTimerA, X LDA.b #$EC : STA $0E20, X @@ -299,7 +299,7 @@ Shatter: STZ $0EF0, X - LDA.b #$80 : STA $0DB0, X + LDA.b #$80 : STA.w SprMiscB, X RTS } @@ -309,7 +309,7 @@ Axe: REP #$20 JSR GetLinkDistance16bit : CMP #$0050 : BCS .notcloseenough SEP #$20 - + LDA.w SprMiscA, X : BNE + LDA #$01 : STA.w SprMiscA, X + @@ -476,7 +476,7 @@ SpawnerTester: .secondset LDA.w SprSubtype, Y : AND #$07 : CLC : ADC #30 : STA.w SprFrame, Y - LDA.w SprSubtype, Y + LDA.w SprSubtype, Y .done @@ -504,17 +504,17 @@ Sprite_Poltergeist_Draw: .nextTile PHX ; Save current Tile Index? - + TXA : CLC : ADC $06 ; Add Animation Index Offset PHA ; Keep the value with animation index offset? - ASL A : TAX + ASL A : TAX REP #$20 LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y - AND.w #$0100 : STA $0E + AND.w #$0100 : STA $0E INY LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y CLC : ADC #$0010 : CMP.w #$0100 @@ -532,12 +532,12 @@ Sprite_Poltergeist_Draw: INY LDA .properties, X : STA ($90), Y - PHY - + PHY + TYA : LSR #2 : TAY - + LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - + PLY : INY PLX : DEX : BPL .nextTile @@ -548,8 +548,8 @@ Sprite_Poltergeist_Draw: RTS } -; ========================================================= - +; ========================================================= + .start_index db $00, $02, $04, $06, $08, $09, $0F, $15, $16, $17, $18, $19, $1A, $1B, $1C, $1D, $1F, $20, $22, $23, $25, $26, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $30, $31, $33, $35, $37, $39, $3B, $3F, $41, $42, $44, $45, $47, $48, $4A @@ -696,7 +696,7 @@ Sprite_Poltergeist_Draw: db $28 db $3E, $3F db $28 - + .properties db $3D, $7D db $3D, $7D diff --git a/Sprites/Enemies/puffstool.asm b/Sprites/Enemies/puffstool.asm index 0d4b118..df60f55 100644 --- a/Sprites/Enemies/puffstool.asm +++ b/Sprites/Enemies/puffstool.asm @@ -155,10 +155,10 @@ Puffstool_SpawnSpores: LDX.b $0D LDA.w .speed_x,X - STA.w $0D50,Y + STA.w SprXSpeed,Y LDA.w .speed_y,X - STA.w $0D40, Y + STA.w SprYSpeed, Y LDA.b #$20 STA.w $0F80, Y diff --git a/Sprites/NPCs/farore.asm b/Sprites/NPCs/farore.asm index 541aff6..e473d88 100644 --- a/Sprites/NPCs/farore.asm +++ b/Sprites/NPCs/farore.asm @@ -202,8 +202,8 @@ Sprite_Farore_Main: } ; 07 - ; Look at the RAM SprY to $0D60, the first few are the actual positions of the sprite - ; that you can just set manually or $0D40 and $0D50 are the "speeds" of the sprites irrc + ; Look at the RAM SprY to SprYRound, the first few are the actual positions of the sprite + ; that you can just set manually or SprYSpeed and SprXSpeed are the "speeds" of the sprites irrc ; You can set one of the speeds and then call the function called Sprite_Move ; And then that will handle it applying the speed for you MakuArea_FaroreWaitForKydrog: diff --git a/Sprites/NPCs/ranch_girl.asm b/Sprites/NPCs/ranch_girl.asm index ca4e521..8201c28 100644 --- a/Sprites/NPCs/ranch_girl.asm +++ b/Sprites/NPCs/ranch_girl.asm @@ -75,12 +75,12 @@ ChickenLady: .main #_1AFED3: LDA.b #$01 - #_1AFED5: STA.w $0DE0,X + #_1AFED5: STA.w SprMiscC,X #_1AFED8: JSL SpriteDraw_RaceGameLady #_1AFEDC: JSR Sprite_CheckIfActive_Bank1A - #_1AFEDF: LDA.w $0DF0,X + #_1AFEDF: LDA.w SprTimerA,X #_1AFEE2: CMP.b #$01 #_1AFEE4: BNE .no_message diff --git a/Sprites/NPCs/village_dog.asm b/Sprites/NPCs/village_dog.asm index 1ce54ff..806818d 100644 --- a/Sprites/NPCs/village_dog.asm +++ b/Sprites/NPCs/village_dog.asm @@ -259,10 +259,10 @@ Sprite_VillageDog_Main: CheckIfPlayerIsNearby: { REP #$20 - LDA $22 : CLC : ADC #$0012 : CMP $0FD8 : BCC .out - LDA $22 : SEC : SBC #$0012 : CMP $0FD8 : BCS .out - LDA $20 : CLC : ADC #$001A : CMP $0FDA : BCC .out - LDA $20 : SEC : SBC #$001A : CMP $0FDA : BCS .out + LDA $22 : CLC : ADC #$0012 : CMP.w SprCachedX : BCC .out + LDA $22 : SEC : SBC #$0012 : CMP.w SprCachedX : BCS .out + LDA $20 : CLC : ADC #$001A : CMP.w SprCachedY : BCC .out + LDA $20 : SEC : SBC #$001A : CMP.w SprCachedY : BCS .out SEP #$21 RTS ; Return with carry set diff --git a/Sprites/Objects/collectible.asm b/Sprites/Objects/collectible.asm index 978102d..8e0ec93 100644 --- a/Sprites/Objects/collectible.asm +++ b/Sprites/Objects/collectible.asm @@ -11,7 +11,7 @@ !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it !SmallShadow = 00 ; 01 = small shadow, 00 = no shadow -!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow +!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow !Palette = 00 ; Unused in this template (can be 0 to 7) !Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool !Persist = 00 ; 01 = your sprite continue to live offscreen @@ -76,7 +76,6 @@ Sprite_Collectible_Prep: LDA.b #$03 : STA.w SprAction, X .not_lupo_mountain - PLB RTL } @@ -86,7 +85,7 @@ Sprite_Collectible_Prep: Sprite_Collectible_Main: { LDA.w SprAction, X - JSL UseImplicitRegIndexedLocalJumpTable + JSL UseImplicitRegIndexedLocalJumpTable dw Pineapple dw Seashell @@ -156,7 +155,7 @@ Sprite_Pineapple_Draw: .nextTile PHX ; Save current Tile Index? - + TXA : CLC : ADC $06 ; Add Animation Index Offset PHA ; Keep the value with animation index offset? @@ -183,14 +182,14 @@ Sprite_Pineapple_Draw: INY LDA .properties, X : STA ($90), Y - PHY - + PHY + TYA : LSR #2 : TAY - + LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - + PLY : INY - + PLX : DEX : BPL .nextTile PLX @@ -231,17 +230,17 @@ Sprite_SwordShield_Draw: .nextTile PHX ; Save current Tile Index? - + TXA : CLC : ADC $06 ; Add Animation Index Offset PHA ; Keep the value with animation index offset? - ASL A : TAX + ASL A : TAX REP #$20 LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y - AND.w #$0100 : STA $0E + AND.w #$0100 : STA $0E INY LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y CLC : ADC #$0010 : CMP.w #$0100 @@ -258,14 +257,14 @@ Sprite_SwordShield_Draw: INY LDA .properties, X : STA ($90), Y - PHY - + PHY + TYA : LSR #2 : TAY - + LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - + PLY : INY - + PLX : DEX : BPL .nextTile PLX @@ -304,17 +303,17 @@ Sprite_RockSirloin_Draw: .nextTile PHX ; Save current Tile Index? - + TXA : CLC : ADC $06 ; Add Animation Index Offset PHA ; Keep the value with animation index offset? - ASL A : TAX + ASL A : TAX REP #$20 LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y - AND.w #$0100 : STA $0E + AND.w #$0100 : STA $0E INY LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y CLC : ADC #$0010 : CMP.w #$0100 @@ -331,14 +330,14 @@ Sprite_RockSirloin_Draw: INY LDA .properties, X : STA ($90), Y - PHY - + PHY + TYA : LSR #2 : TAY - + LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - + PLY : INY - + PLX : DEX : BPL .nextTile PLX diff --git a/Sprites/Objects/ice_block.asm b/Sprites/Objects/ice_block.asm index f6b451a..43f5c1e 100644 --- a/Sprites/Objects/ice_block.asm +++ b/Sprites/Objects/ice_block.asm @@ -38,7 +38,7 @@ Sprite_IceBlock_Long: STZ.w SprMiscC, X STZ.b $5E : STZ.b $48 .not_being_pushed - LDA.w $0DF0, X : BEQ .retain_momentum + LDA.w SprTimerA, X : BEQ .retain_momentum LDA.b #$01 : STA.w SprMiscC, X LDA.b #$84 : STA $48 LDA.b #$04 : STA.b $5E @@ -123,11 +123,11 @@ Sprite_IceBlock_Main: BCC NotInContact JSR ApplyPush ; Set timer - LDA.b #$07 : STA.w $0DF0, X + LDA.b #$07 : STA.w SprTimerA, X JSL $079291 ; Sprite_RepelDash_long - LDA.w $0E00,X : BNE Statue_CancelHookshot + LDA.w SprTimerB,X : BNE Statue_CancelHookshot ; JSL Sprite_DirectionToFacePlayer ; LDA.w StatueSpeed_x,Y ; STA.w SprXSpeed,X @@ -154,8 +154,8 @@ Sprite_IceBlock_Main: NotInContact: { %PlayAnimation(0, 0, 1) - LDA.w $0DF0,X : BNE .delay_timer - LDA.b #$0D : STA.w $0E00,X + LDA.w SprTimerA,X : BNE .delay_timer + LDA.b #$0D : STA.w SprTimerB,X .delay_timer diff --git a/Sprites/ZSpriteLib/sprite_functions.asm b/Sprites/ZSpriteLib/sprite_functions.asm index afb74a5..8a9147c 100644 --- a/Sprites/ZSpriteLib/sprite_functions.asm +++ b/Sprites/ZSpriteLib/sprite_functions.asm @@ -57,7 +57,7 @@ Sprite_MoveVert: { LDA.w SprYSpeed, X : BEQ .no_velocity ASL : ASL : ASL : ASL - CLC : ADC.w $0D60,X : STA.w $0D60,X + CLC : ADC.w SprYRound,X : STA.w SprYRound,X LDY.b #$00 LDA.w SprYSpeed, X @@ -882,10 +882,10 @@ Sprite_CheckIfRecoiling: LDA.w $0EA0, X : BEQ .exit AND.b #$7F : BEQ .recoil_over - LDA.w $0D40, X + LDA.w SprYSpeed, X PHA - LDA.w $0D50, X + LDA.w SprXSpeed, X PHA DEC.w $0EA0, X : BNE .still_recoiling @@ -902,9 +902,9 @@ Sprite_CheckIfRecoiling: LDA.b $1A : AND.w .masks,Y : BNE .no_movement - LDA.w $0F30, X : STA.w $0D40,X + LDA.w $0F30, X : STA.w SprYSpeed,X - LDA.w $0F40, X : STA.w $0D50,X + LDA.w $0F40, X : STA.w SprXSpeed,X LDA.w $0CD2, X : BMI .handle_movement @@ -916,13 +916,13 @@ Sprite_CheckIfRecoiling: CMP.b #$04 : BCS .stop_vertical_movement STZ.w $0F40,X - STZ.w $0D50,X + STZ.w SprXSpeed,X BRA .movement_stopped .stop_vertical_movement STZ.w $0F30,X - STZ.w $0D40,X + STZ.w SprYSpeed,X .movement_stopped BRA .no_movement @@ -932,10 +932,10 @@ Sprite_CheckIfRecoiling: .no_movement PLA - STA.w $0D50,X + STA.w SprXSpeed,X PLA - STA.w $0D40,X + STA.w SprYSpeed,X PLA PLA