Update Farore Sprite and Intro Cutscene
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
;; kan flute song of healing
|
||||
|
||||
org $1A8C60
|
||||
db $00
|
||||
|
||||
org $1A9750
|
||||
db $E0, $0D
|
||||
db $2A ; change this to change length of quarter note
|
||||
db $46
|
||||
db $A3, $A1, $9D
|
||||
db $A3, $A1, $9D
|
||||
db $A3, $A1
|
||||
db $15 ; make this half of whatever you made quarter note
|
||||
db $9C, $9A
|
||||
db $7F ; make this triple whatever you made quarter note (max value 7F)
|
||||
db $9C
|
||||
db $00
|
||||
@@ -332,7 +332,6 @@ Menu_ScrollUp:
|
||||
; =============================================================================
|
||||
; 09 CHECK BOTTLE
|
||||
|
||||
print pc
|
||||
Menu_CheckBottle:
|
||||
{
|
||||
LDA.w $0202 : CMP.b #$06 : BNE .not_first
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;===========================================================
|
||||
; =============================================================================
|
||||
; The Legend of Zelda: Oracle of Secrets
|
||||
; Composed by: Scawful
|
||||
;
|
||||
@@ -10,8 +10,6 @@
|
||||
; Intro skip after leaving house
|
||||
; Key block link's awakening
|
||||
; Lost Sea Area Combo
|
||||
|
||||
;
|
||||
;
|
||||
; Expanded Banks Key:
|
||||
; 21 - N/A
|
||||
@@ -45,7 +43,13 @@
|
||||
; 3D - None
|
||||
; 3F - Boat GFX
|
||||
;
|
||||
;===========================================================
|
||||
; Used Free RAM:
|
||||
; $B6 - Cutscene State
|
||||
; $02B2 - Mask Form
|
||||
; (0 = Human, 1 = Deku, 2 = Zora, 3 = Wolf, 4 = Bunny, 5 = Minish)
|
||||
; $0AAB - Diving Flag
|
||||
;
|
||||
; =============================================================================
|
||||
|
||||
namespace Oracle
|
||||
{
|
||||
@@ -55,21 +59,58 @@ namespace Oracle
|
||||
|
||||
incsrc "Util/ram.asm"
|
||||
incsrc "Util/functions.asm"
|
||||
incsrc "Util/music_macros.asm"
|
||||
|
||||
; ---------------------------------------------------------
|
||||
; Music
|
||||
|
||||
; incsrc "Music/stone_tower_temple.asm"
|
||||
; print "End of stone_tower_temple.asm ", pc
|
||||
|
||||
; incsrc "Music/frozen_hyrule.asm"
|
||||
; print "End of Music/frozen_hyrule.asm ", pc
|
||||
|
||||
incsrc "Music/lost_woods.asm"
|
||||
print "End of Music/lost_woods.asm ", pc
|
||||
|
||||
incsrc "Music/dungeon_theme.asm"
|
||||
print "End of Music/dungeon_theme.asm ", pc
|
||||
|
||||
|
||||
; ---------------------------------------------------------
|
||||
; Sprites
|
||||
|
||||
incsrc "Sprites/farore_and_maku.asm"
|
||||
print "End of farore_and_maku.asm ", pc
|
||||
; org $02ECF8
|
||||
; dw $0029
|
||||
|
||||
incsrc "Sprites/farore.asm"
|
||||
print "End of farore.asm ", pc
|
||||
|
||||
incsrc "Sprites/Kydrog/kydrog.asm"
|
||||
print "End of kydrog.asm ", pc
|
||||
|
||||
incsrc "Sprites/maku_tree.asm"
|
||||
print "End of maku_tree.asm ", pc
|
||||
|
||||
incsrc "Sprites/mask_salesman.asm"
|
||||
print "End of mask_salesman.asm ", pc
|
||||
|
||||
print ""
|
||||
|
||||
; ---------------------------------------------------------
|
||||
; Transformation Masks
|
||||
|
||||
print " -- Masks -- "
|
||||
print ""
|
||||
|
||||
incsrc "Masks/mask_routines.asm"
|
||||
|
||||
incsrc "Masks/bunny_hood.asm"
|
||||
print "End of Masks/bunny_hood.asm ", pc
|
||||
|
||||
incsrc "Masks/minish_form.asm"
|
||||
print "End of Masks/minish_form.asm ", pc
|
||||
|
||||
incsrc "Masks/deku_mask.asm"
|
||||
print "End of Masks/deku_mask.asm ", pc
|
||||
|
||||
@@ -79,13 +120,17 @@ namespace Oracle
|
||||
incsrc "Masks/wolf_mask.asm"
|
||||
print "End of Masks/wolf_mask.asm ", pc
|
||||
|
||||
incsrc "Masks/bunny_hood.asm"
|
||||
print "End of Masks/bunny_hood.asm ", pc
|
||||
|
||||
print ""
|
||||
|
||||
; ---------------------------------------------------------
|
||||
; Items
|
||||
|
||||
print " -- Items -- "
|
||||
print ""
|
||||
|
||||
incsrc "Items/bottle_net.asm"
|
||||
print "End of Items/bottle_net.asm ", pc
|
||||
|
||||
incsrc "Items/jump_feather.asm"
|
||||
print "End of Items/jump_feather.asm ", pc
|
||||
|
||||
@@ -95,9 +140,10 @@ namespace Oracle
|
||||
incsrc "Items/book_of_secrets.asm"
|
||||
print "End of Items/book_of_secrets.asm ", pc
|
||||
|
||||
; incsrc "Items/bottle_net.asm"
|
||||
; print "End of Items/bottle_net.asm ", pc
|
||||
incsrc "Items/ocarina.asm"
|
||||
print "End of Items/ocarina.asm ", pc
|
||||
|
||||
print ""
|
||||
|
||||
; ---------------------------------------------------------
|
||||
; Events
|
||||
@@ -106,7 +152,10 @@ namespace Oracle
|
||||
print "End of Events/house_tag.asm ", pc
|
||||
|
||||
incsrc "Events/lost_sea.asm"
|
||||
print "End of Events/lost_sea.asm ", pc
|
||||
print "End of Events/lost_sea.asm ", pc
|
||||
|
||||
incsrc "Events/snow_overlay.asm"
|
||||
print "End of Events/snow_overlay.asm ", pc
|
||||
|
||||
|
||||
; ---------------------------------------------------------
|
||||
@@ -125,6 +174,9 @@ namespace Oracle
|
||||
incsrc "Dungeons/keyblock.asm"
|
||||
print "End of Dungeons/keyblock.asm ", pc
|
||||
|
||||
incsrc "Dungeons/entrances.asm"
|
||||
print "End of Dungeons/entrances.asm ", pc
|
||||
|
||||
|
||||
; ---------------------------------------------------------
|
||||
; Custom Menu and HUD
|
||||
@@ -137,6 +189,10 @@ namespace Oracle
|
||||
incsrc "Debug/debug.asm"
|
||||
print "End of Debug/debug.asm ", pc
|
||||
|
||||
; Overworld area which has holes that hurt
|
||||
; You can change the area to which holes will hurt the player!
|
||||
; currently it only allows you to choose one area
|
||||
; 396DB, should be a 05 - Change to another area hex number
|
||||
|
||||
print ""
|
||||
print "Finished applying patches"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
;===========================================================
|
||||
; Happy Mask Salesman
|
||||
;===========================================================
|
||||
|
||||
namespace Sprites
|
||||
{
|
||||
namespace HappyMaskSalesman
|
||||
{
|
||||
|
||||
|
||||
} ; namespace HappyMaskSalesman
|
||||
} ; namespace Sprites
|
||||
@@ -1,217 +0,0 @@
|
||||
; ==============================================================================
|
||||
; 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
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
@@ -3,7 +3,7 @@
|
||||
;==============================================================================
|
||||
!SPRID = $7B; The sprite ID you are overwriting (HEX)
|
||||
!NbrTiles = 6 ; Number of tiles used in a frame
|
||||
!Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
|
||||
!Harmless = 01 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
|
||||
!HVelocity = 00 ; Is your sprite going super fast? put 01 if it is
|
||||
!Health = 0 ; Number of Health the sprite have
|
||||
!Damage = 0 ; (08 is a whole heart), 04 is half heart
|
||||
@@ -54,6 +54,10 @@ Sprite_Kydrog_Prep:
|
||||
PHB : PHK : PLB
|
||||
|
||||
; Add more code here to initialize data
|
||||
LDA.l $7EF300
|
||||
BEQ .PlayIntro
|
||||
STZ.w $0DD0, X ; Kill the sprite
|
||||
.PlayIntro
|
||||
|
||||
PLB
|
||||
RTL
|
||||
@@ -69,7 +73,6 @@ Sprite_Kydrog_Main:
|
||||
dw Kydrog_StartCutscene
|
||||
dw Kydrog_AttractPlayer
|
||||
dw Kydrog_SpawnOffspring
|
||||
dw Kydrog_TurnPlayerToDeku
|
||||
dw Kydrog_WarpPlayerAway
|
||||
|
||||
|
||||
@@ -95,7 +98,6 @@ Sprite_Kydrog_Main:
|
||||
{
|
||||
LDA.w SprTimerA, X : BNE +
|
||||
%ShowUnconditionalMessage($21)
|
||||
LDA.b #$02 : STA.b $B6 ; Update story flag for Farore
|
||||
%GotoAction(2)
|
||||
+
|
||||
RTS
|
||||
@@ -103,29 +105,22 @@ Sprite_Kydrog_Main:
|
||||
|
||||
Kydrog_SpawnOffspring:
|
||||
{
|
||||
LDA.b #$02 : STA.b $B6 ; Update story flag for Farore
|
||||
STZ.b $49 ; Stop Link from moving
|
||||
%GotoAction(3)
|
||||
RTS
|
||||
}
|
||||
|
||||
Kydrog_TurnPlayerToDeku:
|
||||
{
|
||||
LDA #$35 : STA $BC
|
||||
|
||||
%GotoAction(4)
|
||||
RTS
|
||||
}
|
||||
|
||||
Kydrog_WarpPlayerAway:
|
||||
{
|
||||
; Set game state to part 03
|
||||
LDA.b #$03 : STA $7EF3C5
|
||||
; LDA.b #$03 : STA $7EF3C5
|
||||
|
||||
; Put us in the Dark World.
|
||||
LDA $7EF3CA : EOR.b #$40 : STA $7EF3CA
|
||||
|
||||
JSL $00FC41 ; Sprite_LoadGfxProperties
|
||||
; JSL $00FC62 ; Sprite_LoadGfxProperties.justLightWorld
|
||||
; JSL $00FC62 ; Sprite_LoadGfxProperties.justLightWorld
|
||||
|
||||
STZ $037B : STZ $3C : STZ $3A : STZ $03EF
|
||||
|
||||
@@ -144,28 +139,11 @@ Sprite_Kydrog_Main:
|
||||
; Clear submodules
|
||||
STZ $11 : STZ $B0
|
||||
|
||||
; Remove Impa
|
||||
; Remove Impa follower
|
||||
LDA.b #$00 : STA $7EF3CC
|
||||
|
||||
; Mirror Warp Timer
|
||||
; #_00D8D2: INC.w $06BA
|
||||
|
||||
; LDA.w $06BA
|
||||
; CMP.b #$20
|
||||
; BEQ .continue
|
||||
; STZ.w $0200
|
||||
; RTL
|
||||
; .continue
|
||||
|
||||
; Set the module to magic mirror
|
||||
; $10 - 0x15 - Module for Magic Mirror
|
||||
|
||||
; LoadOverworldFromSpecialOverworld
|
||||
|
||||
; #_029D5F: LDY.b #$5A
|
||||
; #_029D61: JSL DecompressAnimatedOverworldTiles
|
||||
|
||||
; JSL $00D8D2
|
||||
; Set the flag to remove Farore and Kydrog from Maku area
|
||||
LDA #$01 : STA.l $7EF300
|
||||
|
||||
RTS
|
||||
}
|
||||
@@ -248,8 +226,8 @@ Sprite_Kydrog_Draw:
|
||||
}
|
||||
|
||||
; I forget what this is lol
|
||||
org $02ECF8
|
||||
dw $0029
|
||||
; org $02ECF8
|
||||
; dw $0029
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
@@ -259,18 +237,3 @@ org $02ECF8
|
||||
|
||||
; org $029E65
|
||||
; JSR LoadOverworldFromSpecialOverworld
|
||||
|
||||
; 11E5F
|
||||
|
||||
; 029E66
|
||||
|
||||
; 00D8A0
|
||||
; SetTargetOverworldWarpToPyramid:
|
||||
; #_029D56: LDA.b $10
|
||||
; #_029D58: CMP.b #$15
|
||||
; #_029D5A: BNE .exit
|
||||
|
||||
; #_029D5C: JSR LoadOverworldFromUnderworld
|
||||
|
||||
; #_029D5F: LDY.b #$5A
|
||||
; #_029D61: JSL DecompressAnimatedOverworldTiles
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
;==============================================================================
|
||||
; Farore/Maku Tree - Sprite Uncle/Priest
|
||||
;
|
||||
; STZ.w $0DD0, X ; Kill the sprite since it's not needed anymore
|
||||
; Farore Sprite
|
||||
;
|
||||
;==============================================================================
|
||||
|
||||
@@ -18,7 +16,6 @@ incsrc sprite_new_table.asm
|
||||
org $308000
|
||||
incsrc sprite_new_functions.asm
|
||||
|
||||
|
||||
;==============================================================================
|
||||
; Sprite Properties
|
||||
;==============================================================================
|
||||
@@ -77,13 +74,13 @@ Sprite_Farore_Prep:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
|
||||
; LDA.l $7EF300
|
||||
; BEQ .PlayIntro
|
||||
; STZ.w $0DD0, X ; Kill the sprite
|
||||
; .PlayIntro
|
||||
|
||||
LDA.b #$80 : STA $0CAA, X ; Don't kill Farore when she goes off screen
|
||||
|
||||
LDA.l $7EF300
|
||||
BEQ .PlayIntro
|
||||
STZ.w $0DD0, X ; Kill the sprite
|
||||
.PlayIntro
|
||||
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
@@ -95,6 +92,7 @@ Sprite_Farore_Prep:
|
||||
WALKSPEED = 14
|
||||
STORY_STATE = $B6
|
||||
|
||||
|
||||
Sprite_Farore_Main:
|
||||
{
|
||||
LDA.w SprAction, X; Load the SprAction
|
||||
@@ -104,28 +102,36 @@ Sprite_Farore_Main:
|
||||
dw MoveUpTowardsFarore
|
||||
dw MoveLeftTowardsFarore
|
||||
dw WaitAndMessage
|
||||
dw FaroreGiveSwordAndShield
|
||||
dw FaroreFollowPlayer
|
||||
dw MakuArea_FaroreFollowPlayer
|
||||
dw MakuArea_FaroreWaitForKydrog
|
||||
; dw MakuArea_FaroreWalkToPosition
|
||||
|
||||
|
||||
; 00
|
||||
IntroStart:
|
||||
{
|
||||
; JSR SetupMovieEffect
|
||||
; JSR MovieEffect
|
||||
LDA $B6 : CMP #$01 : BEQ .maku_area
|
||||
CMP #$02 : BEQ .waiting
|
||||
LDA $B6 : CMP.b #$01 : BEQ .maku_area
|
||||
CMP.b #$02 : BEQ .waiting
|
||||
|
||||
%GotoAction(1)
|
||||
|
||||
RTS
|
||||
.maku_area
|
||||
JSR MakuArea_FaroreFollowPlayer
|
||||
.waiting
|
||||
JSR MakuArea_FaroreWaitForKydrog
|
||||
%GotoAction(6)
|
||||
|
||||
; JSR MakuArea_FaroreFollowPlayer
|
||||
RTS
|
||||
|
||||
.waiting
|
||||
%GotoAction(7)
|
||||
;JSR MakuArea_FaroreWaitForKydrog
|
||||
RTS
|
||||
}
|
||||
|
||||
; 01
|
||||
MoveUpTowardsFarore:
|
||||
{
|
||||
LDA WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
|
||||
@@ -141,6 +147,7 @@ Sprite_Farore_Main:
|
||||
RTS
|
||||
}
|
||||
|
||||
; 02
|
||||
MoveLeftTowardsFarore:
|
||||
{
|
||||
; Move Link Left
|
||||
@@ -161,14 +168,17 @@ Sprite_Farore_Main:
|
||||
RTS
|
||||
}
|
||||
|
||||
|
||||
; 03
|
||||
WaitAndMessage:
|
||||
{
|
||||
%PlayAnimation(1, 2, 8)
|
||||
%MoveTowardPlayer(15)
|
||||
LDA.b #$15
|
||||
JSL Sprite_ApplySpeedTowardsPlayer
|
||||
JSL Sprite_MoveVert
|
||||
LDA.w SprTimerA, X : BNE +
|
||||
|
||||
STZ $2F
|
||||
%ShowUnconditionalMessage($24)
|
||||
%ShowUnconditionalMessage($0E) ; "I am Farore, the Oracle of Secrets."
|
||||
|
||||
%GotoAction(4)
|
||||
+
|
||||
@@ -176,34 +186,57 @@ Sprite_Farore_Main:
|
||||
}
|
||||
|
||||
; 04
|
||||
FaroreGiveSwordAndShield:
|
||||
{
|
||||
; Give Link the Sword and shield
|
||||
LDA.w SprTimerA, X : BNE ++
|
||||
|
||||
LDY.b #$00 : STZ $02E9
|
||||
JSL Link_ReceiveItem
|
||||
|
||||
%GotoAction(5)
|
||||
++
|
||||
RTS
|
||||
}
|
||||
|
||||
; 05
|
||||
FaroreFollowPlayer:
|
||||
{
|
||||
LDA WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
|
||||
LDA.b #$08 : STA.b $49 ; Auto-movement north
|
||||
%PlayAnimation(3, 4, 8)
|
||||
%MoveTowardPlayer(16)
|
||||
|
||||
|
||||
LDA.b #$15
|
||||
JSL Sprite_ApplySpeedTowardsPlayer
|
||||
JSL Sprite_MoveVert
|
||||
|
||||
LDA #$02 : STA $7EF3C5 ; (0 - intro, 1 - pendants, 2 - crystals)
|
||||
LDA #$05 : STA $012D ; turn off rain sound
|
||||
JSL $00FC41 ; fix monsters
|
||||
LDA #$01 : STA $B6 ; Set Story State
|
||||
%GotoAction(0)
|
||||
RTS
|
||||
}
|
||||
|
||||
; 05
|
||||
MakuArea_FaroreFollowPlayer:
|
||||
{
|
||||
.keep_walking
|
||||
%PlayAnimation(3, 4, 8)
|
||||
%MoveTowardPlayer(18)
|
||||
LDA $B6 : CMP.b #$02 : BEQ .keep_walking
|
||||
JSR MakuArea_FaroreWaitForKydrog
|
||||
JSL $00FC41 ; fix monsters
|
||||
|
||||
%GotoAction(6)
|
||||
RTS
|
||||
}
|
||||
|
||||
; 06
|
||||
MakuArea_FaroreFollowPlayer:
|
||||
{
|
||||
;.keep_walking
|
||||
%PlayAnimation(3, 4, 8)
|
||||
|
||||
LDA.b #$15
|
||||
JSL Sprite_ApplySpeedTowardsPlayer
|
||||
JSL Sprite_MoveVert
|
||||
|
||||
; LDA $B6 : CMP.b #$02 : BEQ .keep_walking
|
||||
%GotoAction(6)
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
; 07
|
||||
; Look at the RAM $0D00 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
|
||||
; 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
|
||||
@@ -211,16 +244,17 @@ Sprite_Farore_Main:
|
||||
{
|
||||
%PlayAnimation(5, 5, 8)
|
||||
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
|
||||
; 07
|
||||
MakuArea_FaroreWalkToPosition:
|
||||
{
|
||||
%PlayAnimation(3, 4, 8)
|
||||
RTS
|
||||
}
|
||||
; ; 09
|
||||
; MakuArea_FaroreWalkToPosition:
|
||||
; {
|
||||
; %PlayAnimation(3, 4, 8)
|
||||
; RTS
|
||||
; }
|
||||
|
||||
}
|
||||
;==============================================================================
|
||||
@@ -284,49 +318,49 @@ Sprite_Farore_Draw:
|
||||
;==============================================================================
|
||||
|
||||
.start_index
|
||||
db $00, $02, $04, $06, $08, $0A, $0C
|
||||
db $00, $02, $04, $06, $08, $0A, $0C
|
||||
.nbr_of_tiles
|
||||
db 1, 1, 1, 1, 1, 1, 1
|
||||
db 1, 1, 1, 1, 1, 1, 1
|
||||
.x_offsets
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, -1
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, 0
|
||||
dw 0, -1
|
||||
.y_offsets
|
||||
dw -8, 4
|
||||
dw -8, 4
|
||||
dw 4, -8
|
||||
dw -8, 4
|
||||
dw 4, -7
|
||||
dw -8, 4
|
||||
dw 4, -7
|
||||
dw -8, 4
|
||||
dw -8, 4
|
||||
dw 4, -8
|
||||
dw -8, 4
|
||||
dw 4, -7
|
||||
dw -8, 4
|
||||
dw 4, -7
|
||||
.chr
|
||||
db $A8, $AA
|
||||
db $A8, $88
|
||||
db $AA, $A8
|
||||
db $8A, $8C
|
||||
db $8C, $8A
|
||||
db $8A, $AC
|
||||
db $AA, $86
|
||||
db $A8, $AA
|
||||
db $A8, $88
|
||||
db $AA, $A8
|
||||
db $8A, $8C
|
||||
db $8C, $8A
|
||||
db $8A, $AC
|
||||
db $AA, $86
|
||||
.properties
|
||||
db $3B, $3B
|
||||
db $3B, $7B
|
||||
db $3B, $3B
|
||||
db $3B, $3B
|
||||
db $7B, $3B
|
||||
db $3B, $3B
|
||||
db $3B, $7B
|
||||
db $3B, $3B
|
||||
db $3B, $7B
|
||||
db $3B, $3B
|
||||
db $3B, $3B
|
||||
db $7B, $3B
|
||||
db $3B, $3B
|
||||
db $3B, $7B
|
||||
.sizes
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
db $02, $02
|
||||
}
|
||||
|
||||
;==============================================================================
|
||||
Reference in New Issue
Block a user