Implemented ability to change GT cutscene gfx

This commit is contained in:
codemann8
2025-08-22 12:47:54 -05:00
parent e236543180
commit 060554a5fb
3 changed files with 39 additions and 2 deletions

View File

@@ -109,6 +109,36 @@ CheckGanonVulnerability:
BCC .fail
BRA .all_dungeons
;--------------------------------------------------------------------------------
GTCutscene_TransferGfx:
PHA
REP #$20
LDA.l GanonsTowerOpenGfx : BEQ .original_crystal
PHX
LDX.w ItemStackPtr : STA.l ItemGFXStack,X
LDA.w #$81C0>>1 : STA.l ItemTargetStack,X
INX #2 : STX.w ItemStackPtr
PLX
SEP #$20
PLA
RTL
.original_crystal
SEP #$20
PLA
JML TransferItemReceiptToBuffer_using_GraphicsID
;--------------------------------------------------------------------------------
AncillaDraw_GTCutsceneCrystal_OAMPrep:
LDA.l GanonsTowerOpenGfx : ORA.l GanonsTowerOpenGfx+1 : BEQ .vanilla
LDA.b #$0E : STA.b (OAMPtr),Y
INY
LDA.l GanonsTowerOpenPalette : AND.b #$67 : ASL : ORA.b #$30
STA.b (OAMPtr),Y
RTL
.vanilla
LDA.b #$24 : STA.b (OAMPtr),Y
INY
LDA.b #$3C : STA.b (OAMPtr),Y
RTL
;--------------------------------------------------------------------------------
GTCutscene_CrystalMasks:
db %00000000 ; 0 crystals

View File

@@ -538,6 +538,8 @@ JML GTCutscene_ConditionalAnimateCrystals
org $88CE93
GTCutscene_DrawSingleCrystal:
JML GTCutscene_ConditionalDrawSingleCrystal
org $88CED1
JSL AncillaDraw_GTCutsceneCrystal_OAMPrep : BRA + : NOP #3 : +
;--------------------------------------------------------------------------------
org $88CF19 ; <- 44F19 - ancilla_break_tower_seal.asm : 336 (TXA : AND.b #$07 : TAX)
JSL GTCutscene_ActivateSparkle_SelectCrystal
@@ -2660,7 +2662,7 @@ org $898AEE : JSL TransferItemReceiptToBuffer_using_GraphicsID
org $898C85 : JSL TransferItemReceiptToBuffer_using_GraphicsID
; gt cutscene
org $899BBE : JSL TransferItemReceiptToBuffer_using_GraphicsID
org $899BBE : JSL GTCutscene_TransferGfx
;===================================================================================================
; gratuitous NOPs removed for speed

View File

@@ -922,8 +922,13 @@ dw $0000 ; #$00 = Off (default)
; #$09 = Require All Dungeons No Agahnim
; #$0A = Require 100% Item Collection
; #$0B = Require 100% Item Collection and All Dungeons
GanonsTowerOpenGfx: ; 0x1801AA-0x1801AB
dw $0000 ; Gfx used for GT open animation, similar to StandingItemGraphicsOffsets
GanonsTowerOpenPalette: ; 0x1801AC
db $00 ; Palette for GanonsTowerOpenGfx
;VHPP CCC O
;--------------------------------------------------------------------------------
; 0x18019A - 0x1801FF (unused)
; 0x1801AD - 0x1801FF (unused)
;================================================================================
org $B08200 ; PC 0x180200 - 0x18020B
RedClockAmount: