Start Farore custom sprite, rearrange banks
This commit is contained in:
217
Sprites/Impa/impa.asm
Normal file
217
Sprites/Impa/impa.asm
Normal file
@@ -0,0 +1,217 @@
|
||||
; ==============================================================================
|
||||
; Impa - Sprite #76 Zelda
|
||||
;
|
||||
; Goals: Make the Impa sprite interact with the "Uncle/Priest/Mantle" object
|
||||
; in the forest. This will trigger the intro cutscene with Farore and the
|
||||
; antagonist of the story.
|
||||
;
|
||||
; Ideas: Maybe make the "Mantle" the Maku Tree?
|
||||
; ==============================================================================
|
||||
|
||||
; from `sprites/npcs/sprite_uncle_and_priest.asm`
|
||||
; $2DD72-$2DD9E JUMP LOCATION
|
||||
{
|
||||
LDA.b #$00 : STA $0EB0, X : STA $0DE0, X
|
||||
|
||||
LDA $0DF0, X : BNE .alpha
|
||||
|
||||
; "Princess Zelda, you are safe! Is this your doing, [Name]?" message
|
||||
LDA.b #$17
|
||||
LDY.b #$00
|
||||
|
||||
JSL Sprite_ShowMessageUnconditional
|
||||
|
||||
INC $0D80, X
|
||||
|
||||
LDA.b #$01 : STA $7FFE01
|
||||
|
||||
JSR Zelda_TransitionFromTagalong
|
||||
|
||||
LDA.b #$01 : STA $02E4
|
||||
|
||||
LDA.b #$01 : STA $7EF3C7
|
||||
|
||||
.alpha
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
; from `sprites/npcs/sprite_zelda.asm`
|
||||
|
||||
; *$2EC4C-$2EC8D LOCAL
|
||||
Zelda_TransitionFromTagalong:
|
||||
{
|
||||
; Transition princess Zelda back into a sprite from the tagalong
|
||||
; state (the sage's sprite is doing this).
|
||||
|
||||
LDA.b #$76 : JSL Sprite_SpawnDynamically
|
||||
|
||||
PHX
|
||||
|
||||
LDX $02CF
|
||||
|
||||
LDA $1A64, X : AND.b #$03 : STA $0EB0, Y : STA $0DE0, Y
|
||||
|
||||
LDA $20 : STA $0D00, Y
|
||||
LDA $21 : STA $0D20, Y
|
||||
|
||||
LDA $22 : STA $0D10, Y
|
||||
LDA $23 : STA $0D30, Y
|
||||
|
||||
LDA.b #$01 : STA $0E80, Y
|
||||
|
||||
LDA.b #$00 : STA $7EF3CC
|
||||
|
||||
LDA $0BA0, Y : INC A : STA $0BA0, Y
|
||||
|
||||
LDA.b #$03 : STA $0F60, Y
|
||||
|
||||
PLX
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
; *$2EC9E-$2ECBE LOCAL
|
||||
Sprite_Zelda:
|
||||
{
|
||||
JSL CrystalMaiden_Draw
|
||||
JSR Sprite2_CheckIfActive
|
||||
JSL Sprite_PlayerCantPassThrough
|
||||
|
||||
JSL Sprite_MakeBodyTrackHeadDirection : BCC .cant_move
|
||||
|
||||
JSR Sprite2_Move
|
||||
|
||||
.cant_move
|
||||
|
||||
LDA $0E80, X
|
||||
|
||||
JSL UseImplicitRegIndexedLocalJumpTable
|
||||
|
||||
dw Zelda_InPrison ; On the beach
|
||||
dw Zelda_EnteringSanctuary ; Approaching Maku Tree
|
||||
dw Zelda_AtSanctuary ; In the Maku Tree forest area
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
; *$2ED69-$2ED75 JUMP LOCATION
|
||||
Zelda_EnteringSanctuary:
|
||||
{
|
||||
LDA $0D80, X
|
||||
|
||||
JSL UseImplicitRegIndexedLocalJumpTable
|
||||
|
||||
dw Zelda_WalkTowardsPriest
|
||||
dw Zelda_RespondToPriest
|
||||
dw Zelda_BeCarefulOutThere
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
; $2ED76-$2ED7D DATA
|
||||
pool Zelda_WalkTowardsPriest:
|
||||
{
|
||||
|
||||
.timers
|
||||
db $26, $1A, $2C, $01
|
||||
|
||||
.directions
|
||||
db $01, $03, $01, $02
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
; *$2ED7E-$2EDC3 JUMP LOCATION
|
||||
Zelda_WalkTowardsPriest:
|
||||
{
|
||||
LDA $0DF0, X : BNE .walking
|
||||
|
||||
LDY $0D90, X : CPY.b #$04 : BCC .beta
|
||||
|
||||
INC $0D80, X
|
||||
|
||||
STZ $0DE0, X
|
||||
STZ $0EB0, X
|
||||
|
||||
STZ $0D50, X
|
||||
STZ $0D40, X
|
||||
|
||||
RTS
|
||||
|
||||
.beta
|
||||
|
||||
LDA .timers, Y : STA $0DF0, X
|
||||
|
||||
LDA .directions, Y : STA $0EB0, X : STA $0DE0, X
|
||||
|
||||
INC $0D90, X
|
||||
|
||||
TAY
|
||||
|
||||
LDA Sprite_Zelda.x_speeds, Y : STA $0D50, X
|
||||
|
||||
LDA Sprite_Zelda.y_speeds, Y : STA $0D40, X
|
||||
|
||||
.walking
|
||||
|
||||
LDA $1A : LSR #3 : AND.b #$01 : STA $0DC0, X
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
; *$2EDC4-$2EDEB JUMP LOCATION
|
||||
Zelda_RespondToPriest:
|
||||
{
|
||||
; "Yes, it was [Name] who helped me escape from the dungeon! ..."
|
||||
LDA.b #$1D
|
||||
LDY.b #$00
|
||||
|
||||
JSL Sprite_ShowMessageUnconditional
|
||||
|
||||
INC $0D80, X
|
||||
|
||||
LDA.b #$02 : STA $7FFE01
|
||||
|
||||
LDA.b #$01 : STA $7EF3C8
|
||||
|
||||
JSL SavePalaceDeaths
|
||||
|
||||
LDA.b #$02 : STA $7EF3C5
|
||||
|
||||
PHX
|
||||
|
||||
JSL Sprite_LoadGfxProperties.justLightWorld
|
||||
|
||||
PLX
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
; *$2EDEC-$2EE05 JUMP LOCATION
|
||||
Zelda_BeCarefulOutThere:
|
||||
{
|
||||
JSR Sprite2_DirectionToFacePlayer : TYA : EOR.b #$03 : STA $0EB0, X
|
||||
|
||||
; "[Name], be careful out there! I know you can save Hyrule!"
|
||||
LDA.b #$1E
|
||||
LDY.b #$00
|
||||
|
||||
JSL Sprite_ShowSolicitedMessageIfPlayerFacing : BCC .didnt_speak
|
||||
|
||||
STA $0DE0, X
|
||||
STA $0EB0, X
|
||||
|
||||
.didnt_speak
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
Reference in New Issue
Block a user