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
|
; 09 CHECK BOTTLE
|
||||||
|
|
||||||
print pc
|
|
||||||
Menu_CheckBottle:
|
Menu_CheckBottle:
|
||||||
{
|
{
|
||||||
LDA.w $0202 : CMP.b #$06 : BNE .not_first
|
LDA.w $0202 : CMP.b #$06 : BNE .not_first
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
;===========================================================
|
; =============================================================================
|
||||||
; The Legend of Zelda: Oracle of Secrets
|
; The Legend of Zelda: Oracle of Secrets
|
||||||
; Composed by: Scawful
|
; Composed by: Scawful
|
||||||
;
|
;
|
||||||
@@ -10,8 +10,6 @@
|
|||||||
; Intro skip after leaving house
|
; Intro skip after leaving house
|
||||||
; Key block link's awakening
|
; Key block link's awakening
|
||||||
; Lost Sea Area Combo
|
; Lost Sea Area Combo
|
||||||
|
|
||||||
;
|
|
||||||
;
|
;
|
||||||
; Expanded Banks Key:
|
; Expanded Banks Key:
|
||||||
; 21 - N/A
|
; 21 - N/A
|
||||||
@@ -45,7 +43,13 @@
|
|||||||
; 3D - None
|
; 3D - None
|
||||||
; 3F - Boat GFX
|
; 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
|
namespace Oracle
|
||||||
{
|
{
|
||||||
@@ -55,21 +59,58 @@ namespace Oracle
|
|||||||
|
|
||||||
incsrc "Util/ram.asm"
|
incsrc "Util/ram.asm"
|
||||||
incsrc "Util/functions.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
|
; Sprites
|
||||||
|
|
||||||
incsrc "Sprites/farore_and_maku.asm"
|
; org $02ECF8
|
||||||
print "End of farore_and_maku.asm ", pc
|
; dw $0029
|
||||||
|
|
||||||
|
incsrc "Sprites/farore.asm"
|
||||||
|
print "End of farore.asm ", pc
|
||||||
|
|
||||||
incsrc "Sprites/Kydrog/kydrog.asm"
|
incsrc "Sprites/Kydrog/kydrog.asm"
|
||||||
print "End of kydrog.asm ", pc
|
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
|
; Transformation Masks
|
||||||
|
|
||||||
|
print " -- Masks -- "
|
||||||
|
print ""
|
||||||
|
|
||||||
incsrc "Masks/mask_routines.asm"
|
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"
|
incsrc "Masks/deku_mask.asm"
|
||||||
print "End of Masks/deku_mask.asm ", pc
|
print "End of Masks/deku_mask.asm ", pc
|
||||||
|
|
||||||
@@ -79,13 +120,17 @@ namespace Oracle
|
|||||||
incsrc "Masks/wolf_mask.asm"
|
incsrc "Masks/wolf_mask.asm"
|
||||||
print "End of Masks/wolf_mask.asm ", pc
|
print "End of Masks/wolf_mask.asm ", pc
|
||||||
|
|
||||||
incsrc "Masks/bunny_hood.asm"
|
print ""
|
||||||
print "End of Masks/bunny_hood.asm ", pc
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------
|
; ---------------------------------------------------------
|
||||||
; Items
|
; Items
|
||||||
|
|
||||||
|
print " -- Items -- "
|
||||||
|
print ""
|
||||||
|
|
||||||
|
incsrc "Items/bottle_net.asm"
|
||||||
|
print "End of Items/bottle_net.asm ", pc
|
||||||
|
|
||||||
incsrc "Items/jump_feather.asm"
|
incsrc "Items/jump_feather.asm"
|
||||||
print "End of Items/jump_feather.asm ", pc
|
print "End of Items/jump_feather.asm ", pc
|
||||||
|
|
||||||
@@ -95,9 +140,10 @@ namespace Oracle
|
|||||||
incsrc "Items/book_of_secrets.asm"
|
incsrc "Items/book_of_secrets.asm"
|
||||||
print "End of Items/book_of_secrets.asm ", pc
|
print "End of Items/book_of_secrets.asm ", pc
|
||||||
|
|
||||||
; incsrc "Items/bottle_net.asm"
|
incsrc "Items/ocarina.asm"
|
||||||
; print "End of Items/bottle_net.asm ", pc
|
print "End of Items/ocarina.asm ", pc
|
||||||
|
|
||||||
|
print ""
|
||||||
|
|
||||||
; ---------------------------------------------------------
|
; ---------------------------------------------------------
|
||||||
; Events
|
; Events
|
||||||
@@ -106,7 +152,10 @@ namespace Oracle
|
|||||||
print "End of Events/house_tag.asm ", pc
|
print "End of Events/house_tag.asm ", pc
|
||||||
|
|
||||||
incsrc "Events/lost_sea.asm"
|
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"
|
incsrc "Dungeons/keyblock.asm"
|
||||||
print "End of Dungeons/keyblock.asm ", pc
|
print "End of Dungeons/keyblock.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Dungeons/entrances.asm"
|
||||||
|
print "End of Dungeons/entrances.asm ", pc
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------
|
; ---------------------------------------------------------
|
||||||
; Custom Menu and HUD
|
; Custom Menu and HUD
|
||||||
@@ -137,6 +189,10 @@ namespace Oracle
|
|||||||
incsrc "Debug/debug.asm"
|
incsrc "Debug/debug.asm"
|
||||||
print "End of Debug/debug.asm ", pc
|
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 ""
|
||||||
print "Finished applying patches"
|
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)
|
!SPRID = $7B; The sprite ID you are overwriting (HEX)
|
||||||
!NbrTiles = 6 ; Number of tiles used in a frame
|
!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
|
!HVelocity = 00 ; Is your sprite going super fast? put 01 if it is
|
||||||
!Health = 0 ; Number of Health the sprite have
|
!Health = 0 ; Number of Health the sprite have
|
||||||
!Damage = 0 ; (08 is a whole heart), 04 is half heart
|
!Damage = 0 ; (08 is a whole heart), 04 is half heart
|
||||||
@@ -54,6 +54,10 @@ Sprite_Kydrog_Prep:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
; Add more code here to initialize data
|
; Add more code here to initialize data
|
||||||
|
LDA.l $7EF300
|
||||||
|
BEQ .PlayIntro
|
||||||
|
STZ.w $0DD0, X ; Kill the sprite
|
||||||
|
.PlayIntro
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
@@ -69,7 +73,6 @@ Sprite_Kydrog_Main:
|
|||||||
dw Kydrog_StartCutscene
|
dw Kydrog_StartCutscene
|
||||||
dw Kydrog_AttractPlayer
|
dw Kydrog_AttractPlayer
|
||||||
dw Kydrog_SpawnOffspring
|
dw Kydrog_SpawnOffspring
|
||||||
dw Kydrog_TurnPlayerToDeku
|
|
||||||
dw Kydrog_WarpPlayerAway
|
dw Kydrog_WarpPlayerAway
|
||||||
|
|
||||||
|
|
||||||
@@ -95,7 +98,6 @@ Sprite_Kydrog_Main:
|
|||||||
{
|
{
|
||||||
LDA.w SprTimerA, X : BNE +
|
LDA.w SprTimerA, X : BNE +
|
||||||
%ShowUnconditionalMessage($21)
|
%ShowUnconditionalMessage($21)
|
||||||
LDA.b #$02 : STA.b $B6 ; Update story flag for Farore
|
|
||||||
%GotoAction(2)
|
%GotoAction(2)
|
||||||
+
|
+
|
||||||
RTS
|
RTS
|
||||||
@@ -103,29 +105,22 @@ Sprite_Kydrog_Main:
|
|||||||
|
|
||||||
Kydrog_SpawnOffspring:
|
Kydrog_SpawnOffspring:
|
||||||
{
|
{
|
||||||
|
LDA.b #$02 : STA.b $B6 ; Update story flag for Farore
|
||||||
STZ.b $49 ; Stop Link from moving
|
STZ.b $49 ; Stop Link from moving
|
||||||
%GotoAction(3)
|
%GotoAction(3)
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
Kydrog_TurnPlayerToDeku:
|
|
||||||
{
|
|
||||||
LDA #$35 : STA $BC
|
|
||||||
|
|
||||||
%GotoAction(4)
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
Kydrog_WarpPlayerAway:
|
Kydrog_WarpPlayerAway:
|
||||||
{
|
{
|
||||||
; Set game state to part 03
|
; Set game state to part 03
|
||||||
LDA.b #$03 : STA $7EF3C5
|
; LDA.b #$03 : STA $7EF3C5
|
||||||
|
|
||||||
; Put us in the Dark World.
|
; Put us in the Dark World.
|
||||||
LDA $7EF3CA : EOR.b #$40 : STA $7EF3CA
|
LDA $7EF3CA : EOR.b #$40 : STA $7EF3CA
|
||||||
|
|
||||||
JSL $00FC41 ; Sprite_LoadGfxProperties
|
JSL $00FC41 ; Sprite_LoadGfxProperties
|
||||||
; JSL $00FC62 ; Sprite_LoadGfxProperties.justLightWorld
|
; JSL $00FC62 ; Sprite_LoadGfxProperties.justLightWorld
|
||||||
|
|
||||||
STZ $037B : STZ $3C : STZ $3A : STZ $03EF
|
STZ $037B : STZ $3C : STZ $3A : STZ $03EF
|
||||||
|
|
||||||
@@ -144,28 +139,11 @@ Sprite_Kydrog_Main:
|
|||||||
; Clear submodules
|
; Clear submodules
|
||||||
STZ $11 : STZ $B0
|
STZ $11 : STZ $B0
|
||||||
|
|
||||||
; Remove Impa
|
; Remove Impa follower
|
||||||
LDA.b #$00 : STA $7EF3CC
|
LDA.b #$00 : STA $7EF3CC
|
||||||
|
|
||||||
; Mirror Warp Timer
|
; Set the flag to remove Farore and Kydrog from Maku area
|
||||||
; #_00D8D2: INC.w $06BA
|
LDA #$01 : STA.l $7EF300
|
||||||
|
|
||||||
; 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
|
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -248,8 +226,8 @@ Sprite_Kydrog_Draw:
|
|||||||
}
|
}
|
||||||
|
|
||||||
; I forget what this is lol
|
; I forget what this is lol
|
||||||
org $02ECF8
|
; org $02ECF8
|
||||||
dw $0029
|
; dw $0029
|
||||||
|
|
||||||
; ==============================================================================
|
; ==============================================================================
|
||||||
|
|
||||||
@@ -259,18 +237,3 @@ org $02ECF8
|
|||||||
|
|
||||||
; org $029E65
|
; org $029E65
|
||||||
; JSR LoadOverworldFromSpecialOverworld
|
; 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
|
; Farore Sprite
|
||||||
;
|
|
||||||
; STZ.w $0DD0, X ; Kill the sprite since it's not needed anymore
|
|
||||||
;
|
;
|
||||||
;==============================================================================
|
;==============================================================================
|
||||||
|
|
||||||
@@ -18,7 +16,6 @@ incsrc sprite_new_table.asm
|
|||||||
org $308000
|
org $308000
|
||||||
incsrc sprite_new_functions.asm
|
incsrc sprite_new_functions.asm
|
||||||
|
|
||||||
|
|
||||||
;==============================================================================
|
;==============================================================================
|
||||||
; Sprite Properties
|
; Sprite Properties
|
||||||
;==============================================================================
|
;==============================================================================
|
||||||
@@ -77,13 +74,13 @@ Sprite_Farore_Prep:
|
|||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
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.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
|
PLB
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
@@ -95,6 +92,7 @@ Sprite_Farore_Prep:
|
|||||||
WALKSPEED = 14
|
WALKSPEED = 14
|
||||||
STORY_STATE = $B6
|
STORY_STATE = $B6
|
||||||
|
|
||||||
|
|
||||||
Sprite_Farore_Main:
|
Sprite_Farore_Main:
|
||||||
{
|
{
|
||||||
LDA.w SprAction, X; Load the SprAction
|
LDA.w SprAction, X; Load the SprAction
|
||||||
@@ -104,28 +102,36 @@ Sprite_Farore_Main:
|
|||||||
dw MoveUpTowardsFarore
|
dw MoveUpTowardsFarore
|
||||||
dw MoveLeftTowardsFarore
|
dw MoveLeftTowardsFarore
|
||||||
dw WaitAndMessage
|
dw WaitAndMessage
|
||||||
|
dw FaroreGiveSwordAndShield
|
||||||
dw FaroreFollowPlayer
|
dw FaroreFollowPlayer
|
||||||
dw MakuArea_FaroreFollowPlayer
|
dw MakuArea_FaroreFollowPlayer
|
||||||
dw MakuArea_FaroreWaitForKydrog
|
dw MakuArea_FaroreWaitForKydrog
|
||||||
|
; dw MakuArea_FaroreWalkToPosition
|
||||||
|
|
||||||
|
|
||||||
|
; 00
|
||||||
IntroStart:
|
IntroStart:
|
||||||
{
|
{
|
||||||
; JSR SetupMovieEffect
|
; JSR SetupMovieEffect
|
||||||
; JSR MovieEffect
|
; JSR MovieEffect
|
||||||
LDA $B6 : CMP #$01 : BEQ .maku_area
|
LDA $B6 : CMP.b #$01 : BEQ .maku_area
|
||||||
CMP #$02 : BEQ .waiting
|
CMP.b #$02 : BEQ .waiting
|
||||||
|
|
||||||
%GotoAction(1)
|
%GotoAction(1)
|
||||||
|
RTS
|
||||||
.maku_area
|
.maku_area
|
||||||
JSR MakuArea_FaroreFollowPlayer
|
%GotoAction(6)
|
||||||
.waiting
|
|
||||||
JSR MakuArea_FaroreWaitForKydrog
|
|
||||||
|
|
||||||
|
; JSR MakuArea_FaroreFollowPlayer
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.waiting
|
||||||
|
%GotoAction(7)
|
||||||
|
;JSR MakuArea_FaroreWaitForKydrog
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; 01
|
||||||
MoveUpTowardsFarore:
|
MoveUpTowardsFarore:
|
||||||
{
|
{
|
||||||
LDA WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
|
LDA WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
|
||||||
@@ -141,6 +147,7 @@ Sprite_Farore_Main:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; 02
|
||||||
MoveLeftTowardsFarore:
|
MoveLeftTowardsFarore:
|
||||||
{
|
{
|
||||||
; Move Link Left
|
; Move Link Left
|
||||||
@@ -161,14 +168,17 @@ Sprite_Farore_Main:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; 03
|
||||||
WaitAndMessage:
|
WaitAndMessage:
|
||||||
{
|
{
|
||||||
%PlayAnimation(1, 2, 8)
|
%PlayAnimation(1, 2, 8)
|
||||||
%MoveTowardPlayer(15)
|
LDA.b #$15
|
||||||
|
JSL Sprite_ApplySpeedTowardsPlayer
|
||||||
|
JSL Sprite_MoveVert
|
||||||
LDA.w SprTimerA, X : BNE +
|
LDA.w SprTimerA, X : BNE +
|
||||||
|
|
||||||
STZ $2F
|
STZ $2F
|
||||||
%ShowUnconditionalMessage($24)
|
%ShowUnconditionalMessage($0E) ; "I am Farore, the Oracle of Secrets."
|
||||||
|
|
||||||
%GotoAction(4)
|
%GotoAction(4)
|
||||||
+
|
+
|
||||||
@@ -176,34 +186,57 @@ Sprite_Farore_Main:
|
|||||||
}
|
}
|
||||||
|
|
||||||
; 04
|
; 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:
|
FaroreFollowPlayer:
|
||||||
{
|
{
|
||||||
LDA WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
|
LDA WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
|
||||||
LDA.b #$08 : STA.b $49 ; Auto-movement north
|
LDA.b #$08 : STA.b $49 ; Auto-movement north
|
||||||
%PlayAnimation(3, 4, 8)
|
%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 #$02 : STA $7EF3C5 ; (0 - intro, 1 - pendants, 2 - crystals)
|
||||||
LDA #$05 : STA $012D ; turn off rain sound
|
LDA #$05 : STA $012D ; turn off rain sound
|
||||||
JSL $00FC41 ; fix monsters
|
|
||||||
LDA #$01 : STA $B6 ; Set Story State
|
LDA #$01 : STA $B6 ; Set Story State
|
||||||
%GotoAction(0)
|
JSL $00FC41 ; fix monsters
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
; 05
|
|
||||||
MakuArea_FaroreFollowPlayer:
|
|
||||||
{
|
|
||||||
.keep_walking
|
|
||||||
%PlayAnimation(3, 4, 8)
|
|
||||||
%MoveTowardPlayer(18)
|
|
||||||
LDA $B6 : CMP.b #$02 : BEQ .keep_walking
|
|
||||||
JSR MakuArea_FaroreWaitForKydrog
|
|
||||||
|
|
||||||
|
%GotoAction(6)
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; 06
|
; 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
|
; 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
|
; 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
|
; And then that will handle it applying the speed for you
|
||||||
@@ -211,16 +244,17 @@ Sprite_Farore_Main:
|
|||||||
{
|
{
|
||||||
%PlayAnimation(5, 5, 8)
|
%PlayAnimation(5, 5, 8)
|
||||||
|
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
; 07
|
; ; 09
|
||||||
MakuArea_FaroreWalkToPosition:
|
; MakuArea_FaroreWalkToPosition:
|
||||||
{
|
; {
|
||||||
%PlayAnimation(3, 4, 8)
|
; %PlayAnimation(3, 4, 8)
|
||||||
RTS
|
; RTS
|
||||||
}
|
; }
|
||||||
|
|
||||||
}
|
}
|
||||||
;==============================================================================
|
;==============================================================================
|
||||||
@@ -284,49 +318,49 @@ Sprite_Farore_Draw:
|
|||||||
;==============================================================================
|
;==============================================================================
|
||||||
|
|
||||||
.start_index
|
.start_index
|
||||||
db $00, $02, $04, $06, $08, $0A, $0C
|
db $00, $02, $04, $06, $08, $0A, $0C
|
||||||
.nbr_of_tiles
|
.nbr_of_tiles
|
||||||
db 1, 1, 1, 1, 1, 1, 1
|
db 1, 1, 1, 1, 1, 1, 1
|
||||||
.x_offsets
|
.x_offsets
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, -1
|
dw 0, -1
|
||||||
.y_offsets
|
.y_offsets
|
||||||
dw -8, 4
|
dw -8, 4
|
||||||
dw -8, 4
|
dw -8, 4
|
||||||
dw 4, -8
|
dw 4, -8
|
||||||
dw -8, 4
|
dw -8, 4
|
||||||
dw 4, -7
|
dw 4, -7
|
||||||
dw -8, 4
|
dw -8, 4
|
||||||
dw 4, -7
|
dw 4, -7
|
||||||
.chr
|
.chr
|
||||||
db $A8, $AA
|
db $A8, $AA
|
||||||
db $A8, $88
|
db $A8, $88
|
||||||
db $AA, $A8
|
db $AA, $A8
|
||||||
db $8A, $8C
|
db $8A, $8C
|
||||||
db $8C, $8A
|
db $8C, $8A
|
||||||
db $8A, $AC
|
db $8A, $AC
|
||||||
db $AA, $86
|
db $AA, $86
|
||||||
.properties
|
.properties
|
||||||
db $3B, $3B
|
db $3B, $3B
|
||||||
db $3B, $7B
|
db $3B, $7B
|
||||||
db $3B, $3B
|
db $3B, $3B
|
||||||
db $3B, $3B
|
db $3B, $3B
|
||||||
db $7B, $3B
|
db $7B, $3B
|
||||||
db $3B, $3B
|
db $3B, $3B
|
||||||
db $3B, $7B
|
db $3B, $7B
|
||||||
.sizes
|
.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