Symmetrical GTCutscene Crystals
This commit is contained in:
@@ -652,14 +652,17 @@ Ancilla_ReceiveItem:
|
|||||||
org $08C505
|
org $08C505
|
||||||
Ancilla_ReceiveItem_objectFinished:
|
Ancilla_ReceiveItem_objectFinished:
|
||||||
|
|
||||||
org $08CE93
|
org $08CE2E
|
||||||
Ancilla_BreakTowerSeal_draw_single_crystal:
|
GTCutscene_AnimateCrystals_NoRotate:
|
||||||
|
|
||||||
|
org $08CEB6
|
||||||
|
GTCutscene_DrawSingleCrystal_SkipCrystal:
|
||||||
|
|
||||||
org $08CEC3
|
org $08CEC3
|
||||||
Ancilla_BreakTowerSeal_stop_spawning_sparkles:
|
GTCutscene_DrawSingleCrystal_SkipSparkle:
|
||||||
|
|
||||||
org $08CF59
|
org $08CF59
|
||||||
BreakTowerSeal_ExecuteSparkles:
|
GTCutscene_SparkleALot:
|
||||||
|
|
||||||
org $08F710
|
org $08F710
|
||||||
Ancilla_SetOam_XY_Long:
|
Ancilla_SetOam_XY_Long:
|
||||||
|
|||||||
72
goalitem.asm
72
goalitem.asm
@@ -110,28 +110,64 @@ BRA .all_dungeons
|
|||||||
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
GetRequiredCrystalsForTower:
|
GTCutscene_CrystalMasks:
|
||||||
BEQ + : JSL.l BreakTowerSeal_ExecuteSparkles : + ; thing we wrote over
|
db %00000000 ; 0 crystals
|
||||||
LDA.l NumberOfCrystalsRequiredForTower : CMP.b #$00 : BNE + : JML.l Ancilla_BreakTowerSeal_stop_spawning_sparkles : +
|
db %10000000 ; BIT INDEX DIAGRAM
|
||||||
LDA.l NumberOfCrystalsRequiredForTower : CMP.b #$01 : BNE + : JML.l Ancilla_BreakTowerSeal_draw_single_crystal : +
|
db %00010010 ; 0
|
||||||
LDA.l NumberOfCrystalsRequiredForTower : DEC #2 : TAX
|
db %00010101 ; 5 1
|
||||||
JML.l GetRequiredCrystalsForTower_continue
|
db %10010101 ; 7
|
||||||
|
db %10110110 ; 4 2
|
||||||
|
db %00111111 ; 3
|
||||||
|
db %10111111 ; 7 crystals
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
GetRequiredCrystalsInX:
|
GTCutscene_ConditionalAnimateCrystals:
|
||||||
LDA.l NumberOfCrystalsRequiredForTower : CMP.b #$00 : BNE +
|
PHX : PHX
|
||||||
TAX
|
LDA.l NumberOfCrystalsRequiredForTower : TAX : LDA.l GTCutscene_CrystalMasks,X
|
||||||
RTL
|
PLX
|
||||||
+
|
- LSR : DEX : BPL -
|
||||||
|
PLX : BCC .skip_crystal
|
||||||
|
|
||||||
TXA
|
.draw_crystal
|
||||||
|
LDA.b $11 : BEQ + : JML.l GTCutscene_AnimateCrystals_NoRotate ; what we wrote over
|
||||||
|
+ JML.l GTCutscene_AnimateCrystals_NextCrystal+4
|
||||||
|
|
||||||
- CMP.l NumberOfCrystalsRequiredForTower : BCC +
|
.skip_crystal
|
||||||
SBC.l NumberOfCrystalsRequiredForTower ; carry guaranteed set
|
JML.l GTCutscene_DrawSingleCrystal-3
|
||||||
BRA -
|
;--------------------------------------------------------------------------------
|
||||||
|
GTCutscene_ConditionalDrawSingleCrystal:
|
||||||
|
LDA.w $06FA : BEQ .draw_crystal : STZ.w $06FA
|
||||||
|
LDA.l NumberOfCrystalsRequiredForTower : TAX
|
||||||
|
LDA.l GTCutscene_CrystalMasks,X : AND.b #$80 : BEQ .skip_crystal
|
||||||
|
.draw_crystal
|
||||||
|
LDX.w $0FA0 : PHY ; what we wrote over
|
||||||
|
JML.l GTCutscene_DrawSingleCrystal+4
|
||||||
|
.skip_crystal
|
||||||
|
JML.l GTCutscene_DrawSingleCrystal_SkipCrystal
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
GTCutscene_AnimateCrystals_Prep:
|
||||||
|
BEQ + : JSL.l GTCutscene_SparkleALot : + ; thing we wrote over
|
||||||
|
LDA.l NumberOfCrystalsRequiredForTower : BNE +
|
||||||
|
JML.l GTCutscene_DrawSingleCrystal_SkipSparkle
|
||||||
|
+ CMP.b #$01 : BNE +
|
||||||
|
JML.l GTCutscene_DrawSingleCrystal
|
||||||
|
+ INC.w $06FA ; some free ram OWR also uses
|
||||||
|
JML.l GTCutscene_AnimateCrystals_NextCrystal-2
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
GTCutscene_ActivateSparkle_SelectCrystal:
|
||||||
|
LDA.l NumberOfCrystalsRequiredForTower : BNE +
|
||||||
|
TAX : RTL
|
||||||
|
+ TXA
|
||||||
|
|
||||||
+ INC : CMP.l NumberOfCrystalsRequiredForTower : BNE +
|
- CMP.l NumberOfCrystalsRequiredForTower : BCC +
|
||||||
LDA.b #$08
|
SBC.l NumberOfCrystalsRequiredForTower : BRA - ; carry guaranteed set
|
||||||
+ : DEC : TAX
|
|
||||||
|
+ PHY : TAY
|
||||||
|
LDA.l NumberOfCrystalsRequiredForTower : TAX : LDA.l GTCutscene_CrystalMasks,X
|
||||||
|
LDX.b #$FF
|
||||||
|
- LSR : INX : BCC +
|
||||||
|
DEY
|
||||||
|
+ BPL -
|
||||||
|
PLY
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CheckEnoughCrystalsForGanon:
|
CheckEnoughCrystalsForGanon:
|
||||||
|
|||||||
17
hooks.asm
17
hooks.asm
@@ -502,16 +502,21 @@ JSL.l CheckEnoughCrystalsForTower
|
|||||||
NOP #4
|
NOP #4
|
||||||
db #$90 ; BCC
|
db #$90 ; BCC
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $08CE0C ; <- 44E0C - ancilla_break_tower_seal.asm : 168 (BEQ #$03 : JSR BreakTowerSeal_ExecuteSparkles : LDX.b #$06)
|
org $08CE0C ; <- 44E0C - ancilla_break_tower_seal.asm : 168 (BEQ #$03 : JSR GTCutscene_SparkleALot : LDX.b #$06)
|
||||||
JML.l GetRequiredCrystalsForTower
|
JML.l GTCutscene_AnimateCrystals_Prep : NOP
|
||||||
NOP #3
|
LDX.b #$05
|
||||||
GetRequiredCrystalsForTower_continue:
|
GTCutscene_AnimateCrystals_NextCrystal:
|
||||||
|
JML.l GTCutscene_ConditionalAnimateCrystals
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
org $08CE93
|
||||||
|
GTCutscene_DrawSingleCrystal:
|
||||||
|
JML.l GTCutscene_ConditionalDrawSingleCrystal
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $08CF19 ; <- 44F19 - ancilla_break_tower_seal.asm : 336 (TXA : AND.b #$07 : TAX)
|
org $08CF19 ; <- 44F19 - ancilla_break_tower_seal.asm : 336 (TXA : AND.b #$07 : TAX)
|
||||||
JSL.l GetRequiredCrystalsInX
|
JSL.l GTCutscene_ActivateSparkle_SelectCrystal
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $08CFC9 ; <- 44FC9 - ancilla_break_tower_seal.asm : 414 (RTS)
|
org $08CFC9 ; <- 44FC9 - ancilla_break_tower_seal.asm : 414 (RTS)
|
||||||
db #$6B
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user