diff --git a/follower.asm b/follower.asm index 56d6b25..c7a42b8 100644 --- a/follower.asm +++ b/follower.asm @@ -79,6 +79,8 @@ org $9EE495 JSL Kiki_FollowCheck : BRA + : NOP #12 : + org $9EE4AF JSL Kiki_BecomeFollower : NOP #2 +org $9EE4F7 +JSL Kiki_FixTeleportOnExit org $89A1B2 JSL Kiki_DontScareTheMonke : NOP #3 @@ -834,6 +836,14 @@ Kiki_BecomeFollower: LDA.b #$0A : STA.l FollowerIndicator RTL +Kiki_FixTeleportOnExit: + REP #$30 + LDA.b LinkPosX : STA.w LinkPosXCache + LDA.b LinkPosY : STA.w LinkPosYCache + SEP #$30 + LDA.b #$19 : LDY.b #$01 ; what we wrote over +RTL + ; on return it checks BEQ and if non-zero, kiki get spook Kiki_DontScareTheMonke: LDA.b LinkJumping : BEQ .return diff --git a/ram.asm b/ram.asm index b1ea3b5..5150610 100644 --- a/ram.asm +++ b/ram.asm @@ -441,7 +441,8 @@ SpriteSubPixelZ = $7E0F90 ; CurrentSpriteSlot = $7E0FA0 ; Holds the current sprite/ancilla's index ; FreezeSprites = $7E0FC1 ; "Seems to freeze sprites" - ; +LinkPosXCache = $7E0FC2 ; Cache of Link's coordinates +LinkPosYCache = $7E0FC4 ; - Done at the beginning of Link_Main every frame GfxChrHalfSlotVerify = $7E0FC6 ; Mirrors $0AAA, set to >= $03 when VRAM has temp graphics loaded PrizePackIndexes = $7E0FC7 ; $07 bytes. One for each prize pack. ;