Merged in DR v1.4.1.6
This commit is contained in:
137
elder.asm
137
elder.asm
@@ -1,11 +1,11 @@
|
||||
NewElderCode:
|
||||
{
|
||||
LDA $8A : AND.b #$3F : CMP #$1B : BEQ .newCodeContinue
|
||||
LDA.b OverworldIndex : AND.b #$3F : CMP.b #$1B : BEQ .newCodeContinue
|
||||
;Restore Jump we can keep the RTL so JML
|
||||
JML $05F0CD
|
||||
JML Sprite_16_Elder
|
||||
.newCodeContinue
|
||||
PHB : PHK : PLB
|
||||
LDA.b #$07 : STA $0F50, X ;Palette
|
||||
LDA.b #$07 : STA.w SpriteOAMProp, X ; Palette
|
||||
JSR Elder_Draw
|
||||
JSL Sprite_PlayerCantPassThrough
|
||||
JSR Elder_Code
|
||||
@@ -16,13 +16,12 @@ RTL
|
||||
|
||||
Elder_Draw:
|
||||
{
|
||||
|
||||
LDA.b #$02 : STA $06 : STZ $07 ;Number of Tiles
|
||||
LDA.b #$02 : STA.b Scrap06 : STZ.b Scrap07 ;Number of Tiles
|
||||
|
||||
LDA $0DC0, X : ASL #04
|
||||
LDA.w SpriteGFXControl, X : ASL #04
|
||||
|
||||
ADC.b #.animation_states : STA $08
|
||||
LDA.b #.animation_states>>8 : ADC.b #$00 : STA $09
|
||||
ADC.b #.animation_states : STA.b Scrap08
|
||||
LDA.b #.animation_states>>8 : ADC.b #$00 : STA.b Scrap09
|
||||
|
||||
JSL Sprite_DrawMultiple_player_deferred
|
||||
JSL Sprite_DrawShadowLong
|
||||
@@ -42,15 +41,15 @@ RTL
|
||||
{
|
||||
REP #$20
|
||||
LDA.l GoalItemRequirement : BEQ .despawn
|
||||
LDA.l InvincibleGanon : AND.w #$00FF : CMP.w #$0005 : BEQ .despawn
|
||||
LDA.l GanonVulnerableMode : AND.w #$00FF : CMP.w #$0005 : BEQ .despawn
|
||||
LDA.l TurnInGoalItems : AND.w #$00FF : BNE +
|
||||
.despawn
|
||||
SEP #$20
|
||||
STZ $0DD0, X ; despawn self
|
||||
STZ.w SpriteAITable, X ; despawn self
|
||||
RTS
|
||||
+
|
||||
SEP #$20
|
||||
LDA.b $11
|
||||
LDA.b GameSubMode
|
||||
BNE .done
|
||||
LDA.b #$96
|
||||
LDY.b #$01
|
||||
@@ -66,7 +65,7 @@ RTL
|
||||
|
||||
.done
|
||||
SEP #$20
|
||||
LDA.b $1A : LSR #5 : AND.b #$01 : STA.w $0DC0, X
|
||||
LDA.b FrameCounter : LSR #5 : AND.b #$01 : STA.w SpriteGFXControl, X
|
||||
RTS
|
||||
}
|
||||
|
||||
@@ -76,21 +75,21 @@ RTL
|
||||
ActivateTriforceCutscene:
|
||||
; despawn other sprites
|
||||
LDY.b #$0F
|
||||
- LDA.w $0E20,Y : CMP.b #$16 : BNE +
|
||||
- LDA.w SpriteTypeTable,Y : CMP.b #$16 : BNE +
|
||||
CPY.b #$00 : BEQ .next
|
||||
; move Murahdahla to slot 0 for draw priority reasons
|
||||
LDA.w $0E20,Y : STA.w $0E20
|
||||
LDA.w $0D00,Y : STA.w $0D00
|
||||
LDA.w $0D10,Y : STA.w $0D10
|
||||
LDA.w $0D20,Y : STA.w $0D20
|
||||
LDA.w $0D30,Y : STA.w $0D30
|
||||
LDA.w $0D40,Y : STA.w $0D40
|
||||
LDA.w $0F50,Y : STA.w $0F50
|
||||
LDA.w $0E40,Y : STA.w $0E40
|
||||
LDA.w $0E60,Y : STA.w $0E60
|
||||
LDA.w $0DD0,Y : STA.w $0DD0
|
||||
LDA.b #$02 : STA.w $0F20
|
||||
+ LDA.b #$00 : STA.w $0DD0,Y
|
||||
LDA.w SpriteTypeTable,Y : STA.w SpriteTypeTable
|
||||
LDA.w SpritePosYLow,Y : STA.w SpritePosYLow
|
||||
LDA.w SpritePosXLow,Y : STA.w SpritePosXLow
|
||||
LDA.w SpritePosYHigh,Y : STA.w SpritePosYHigh
|
||||
LDA.w SpritePosXHigh,Y : STA.w SpritePosXHigh
|
||||
LDA.w SpriteVelocityY,Y : STA.w SpriteVelocityY
|
||||
LDA.w SpriteOAMProp,Y : STA.w SpriteOAMProp
|
||||
LDA.w SpriteOAMProperties,Y : STA.w SpriteOAMProperties
|
||||
LDA.w SpriteControl,Y : STA.w SpriteControl
|
||||
LDA.w SpriteAITable,Y : STA.w SpriteAITable
|
||||
LDA.b #$02 : STA.w SpriteLayer
|
||||
+ LDA.b #$00 : STA.w SpriteAITable,Y
|
||||
.next
|
||||
DEY : BPL -
|
||||
|
||||
@@ -98,63 +97,71 @@ ActivateTriforceCutscene:
|
||||
JSL Sprite_SpawnDynamically
|
||||
|
||||
; set up coords
|
||||
LDA.b $22 : STA.w $0D10,Y
|
||||
LDA.b $23 : STA.w $0D30,Y
|
||||
LDA.b $20 : CLC : ADC.b #$08 : STA.w $0D00,Y
|
||||
LDA.b $21 : ADC.b #$00 : STA.w $0D20,Y
|
||||
LDA.b LinkPosX : STA.w SpritePosXLow,Y
|
||||
LDA.b LinkPosX+1 : STA.w SpritePosXHigh,Y
|
||||
LDA.b LinkPosY : CLC : ADC.b #$08 : STA.w SpritePosYLow,Y
|
||||
LDA.b LinkPosY+1 : ADC.b #$00 : STA.w SpritePosYHigh,Y
|
||||
|
||||
LDA.b #$01 : STA.w $0D90,Y ; our indicator this is a special cutscene sprite
|
||||
INC : STA.b $2F ; makes Link face downward
|
||||
LDA.b #$01 : STA.w SpriteMovement,Y ; our indicator this is a special cutscene sprite
|
||||
INC : STA.b LinkDirection ; makes Link face downward
|
||||
|
||||
; reset modules
|
||||
LDA.b $1B : BEQ +
|
||||
LDA.b IndoorsFlag : BEQ +
|
||||
LDA.b #$07
|
||||
BRA ++
|
||||
+ LDA.b #$09
|
||||
++ STA.b $10
|
||||
STZ.b $11 : STZ.b $B0
|
||||
++ STA.b GameMode
|
||||
STZ.b GameSubMode : STZ.b SubSubModule
|
||||
RTL
|
||||
|
||||
pushpc
|
||||
org $058928
|
||||
org $858928
|
||||
MasterSword_InPedestal_DoCutscene:
|
||||
org $0589B1
|
||||
org $8589B1
|
||||
MasterSword_ConditionalHandleReceipt_DoReceipt:
|
||||
|
||||
org $0588DF
|
||||
org $8588DF
|
||||
JSL MasterSword_CheckIfPulled : PLX : NOP #2
|
||||
db $90 ; BCC instead of BEQ
|
||||
org $05890E
|
||||
org $85890E
|
||||
JSL MasterSword_ConditionalActivateCutscene
|
||||
org $05895F
|
||||
org $85895F
|
||||
JSL MasterSword_ConditionalGrabPose : NOP
|
||||
org $058994
|
||||
org $858994
|
||||
JSL MasterSword_ConditionalGrabPose : NOP
|
||||
org $058D1C
|
||||
org $858D1C
|
||||
JML MasterSword_SpawnPendantProp_ChangePalette
|
||||
MasterSword_SpawnPendantProp_ChangePalette_return:
|
||||
org $0589A3
|
||||
org $8589A3
|
||||
JSL MasterSword_ConditionalHandleReceipt : NOP #2
|
||||
pullpc
|
||||
|
||||
MasterSword_CheckIfPulled:
|
||||
CPX.b #$80 : BEQ +
|
||||
- CLC : RTL ; not on pedestal screen, continue with cutscene
|
||||
+ LDA.l $7EF280,X : AND.b #$40 ; what we wrote over
|
||||
+ LDA.l OverworldEventDataWRAM,X : AND.b #$40 ; what we wrote over
|
||||
BEQ - : SEC : RTL
|
||||
|
||||
MasterSword_ConditionalActivateCutscene:
|
||||
LDA.w $0D90,X : BNE .specialCutscene
|
||||
LDA.w SpriteMovement,X : BNE .specialCutscene
|
||||
JML Sprite_CheckDamageToPlayerSameLayerLong ; what we wrote over
|
||||
.specialCutscene
|
||||
LDA.b #$02 : STA.w $02DA ; Link's 2-hands-up pose
|
||||
STA.b $EE ; draw Link on top
|
||||
LDA.b #$6A : JSL RequestSlottedTile ; draw Triforce piece in VRAM
|
||||
LDA.b #$02 : STA.w ItemReceiptPose ; Link's 2-hands-up pose
|
||||
STA.b LinkLayer ; draw Link on top
|
||||
; draw Triforce piece in VRAM
|
||||
PHX
|
||||
REP #$30
|
||||
LDX.w #$006A<<1
|
||||
LDA.l StandingItemGraphicsOffsets,X : LDX.w ItemStackPtr : STA.l ItemGFXStack,X
|
||||
LDA.w #$9CE0>>1 : STA.l ItemTargetStack,X
|
||||
TXA : INC #2 : STA.w ItemStackPtr
|
||||
SEP #$30
|
||||
PLX
|
||||
PLA : PLA : PLA : JML MasterSword_InPedestal_DoCutscene ; do cutscene
|
||||
|
||||
MasterSword_ConditionalGrabPose:
|
||||
PHA
|
||||
LDA.w $0D90,X : BNE .specialCutscene
|
||||
LDA.w SpriteMovement,X : BNE .specialCutscene
|
||||
PLA
|
||||
STA.w $0377 : LDA.b #$01 ; what we wrote over
|
||||
RTL
|
||||
@@ -164,18 +171,18 @@ MasterSword_ConditionalGrabPose:
|
||||
RTL
|
||||
|
||||
MasterSword_SpawnPendantProp_ChangePalette:
|
||||
STA.w $0D40,Y : PLX ; what we wrote over
|
||||
LDA.w $0D90,X : BNE .specialCutscene
|
||||
STA.w SpriteVelocityY,Y : PLX ; what we wrote over
|
||||
LDA.w SpriteMovement,X : BNE .specialCutscene
|
||||
BRA .done
|
||||
.specialCutscene
|
||||
LDA.b #$08 : STA.w $0F50,Y ; change palette
|
||||
LDA.b #$02 : STA.w $0F20,Y ; change layer
|
||||
LDA.b #$08 : STA.w SpriteOAMProp,Y ; change palette
|
||||
LDA.b #$02 : STA.w SpriteLayer,Y ; change layer
|
||||
.done
|
||||
JML MasterSword_SpawnPendantProp_ChangePalette_return
|
||||
|
||||
MasterSword_ConditionalHandleReceipt:
|
||||
LDA.w $0D90,X : BNE .specialCutscene
|
||||
LDX.b $8A : LDA.l $7EF280,X ; what we wrote over
|
||||
LDA.w SpriteMovement,X : BNE .specialCutscene
|
||||
LDX.b OverworldIndex : LDA.l OverworldEventDataWRAM,X ; what we wrote over
|
||||
RTL
|
||||
.specialCutscene
|
||||
PLA : PLA : PEA.w MasterSword_ConditionalHandleReceipt_DoReceipt-1
|
||||
@@ -184,41 +191,41 @@ MasterSword_ConditionalHandleReceipt:
|
||||
RTL
|
||||
|
||||
pushpc
|
||||
org $058AB6
|
||||
org $858AB6
|
||||
MasterSword_SpawnLightWell:
|
||||
org $058AD0
|
||||
org $858AD0
|
||||
MasterSword_SpawnLightFountain:
|
||||
org $058B62
|
||||
org $858B62
|
||||
MasterSword_SpawnLightBeam:
|
||||
|
||||
org $058941
|
||||
org $858941
|
||||
JSL MasterSword_ConditionalSpawnLightWell : NOP #2
|
||||
MasterSword_SpawnLightWell_return:
|
||||
org $058952
|
||||
org $858952
|
||||
JSL MasterSword_ConditionalSpawnLightFountain : NOP #2
|
||||
MasterSword_SpawnLightFountain_return:
|
||||
org $058B64
|
||||
org $858B64
|
||||
JSL MasterSword_ConditionalSpawnLightBeam : NOP #2
|
||||
pullpc
|
||||
|
||||
MasterSword_ConditionalSpawnLightWell:
|
||||
INC.w $0D80,X ; part of what we wrote over
|
||||
LDA.w $0D90,X : BNE .specialCutscene
|
||||
INC.w SpriteActivity,X ; part of what we wrote over
|
||||
LDA.w SpriteMovement,X : BNE .specialCutscene
|
||||
PLA : PLA : PLA : PEA.w MasterSword_SpawnLightWell_return-1
|
||||
JML MasterSword_SpawnLightWell ; part of what we wrote over
|
||||
.specialCutscene
|
||||
RTL
|
||||
|
||||
MasterSword_ConditionalSpawnLightFountain:
|
||||
INC.w $0D80,X ; part of what we wrote over
|
||||
LDA.w $0D90,X : BNE .specialCutscene
|
||||
INC.w SpriteActivity,X ; part of what we wrote over
|
||||
LDA.w SpriteMovement,X : BNE .specialCutscene
|
||||
PLA : PLA : PLA : PEA.w MasterSword_SpawnLightFountain_return-1
|
||||
JML MasterSword_SpawnLightFountain ; part of what we wrote over
|
||||
.specialCutscene
|
||||
RTL
|
||||
|
||||
MasterSword_ConditionalSpawnLightBeam:
|
||||
LDA.w $0D90,X : BNE .specialCutscene
|
||||
LDA.w SpriteMovement,X : BNE .specialCutscene
|
||||
LDA.b #$62 : JSL Sprite_SpawnDynamically ; what we wrote over
|
||||
RTL
|
||||
.specialCutscene
|
||||
|
||||
Reference in New Issue
Block a user