Intro Cutscene warp, organize bank07 free space
This commit is contained in:
@@ -42,7 +42,9 @@ LinkItem_NewBottle:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $07FA9F
|
; Bank 07 Free Space
|
||||||
|
; Previous Zora Mask
|
||||||
|
org $07FAAD
|
||||||
LinkItem_BugCatchingNet_Long:
|
LinkItem_BugCatchingNet_Long:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
@@ -88,7 +90,7 @@ LinkItem_NewBugCatchingNet:
|
|||||||
|
|
||||||
.y_press:
|
.y_press:
|
||||||
|
|
||||||
JSR Unknown ; $3AE65 IN ROM
|
JSR $AE65
|
||||||
|
|
||||||
LDA $67 : AND.b #$F0 : STA $67
|
LDA $67 : AND.b #$F0 : STA $67
|
||||||
DEC $3D : BPL .bottle_exit
|
DEC $3D : BPL .bottle_exit
|
||||||
@@ -109,41 +111,12 @@ LinkItem_NewBugCatchingNet:
|
|||||||
LDA.b #$80 : STA $44 : STA $45
|
LDA.b #$80 : STA $44 : STA $45
|
||||||
|
|
||||||
.bottle_exit:
|
.bottle_exit:
|
||||||
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
; *$3AE65-$3AE87 LOCAL
|
|
||||||
Unknown:
|
|
||||||
{
|
|
||||||
LDA $AD : CMP.b #$02 : BNE .BRANCH_ALPHA
|
|
||||||
|
|
||||||
LDA $0322 : AND.b #$03 : CMP.b #$03 : BNE .BRANCH_ALPHA
|
|
||||||
|
|
||||||
STZ $30
|
|
||||||
STZ $31
|
|
||||||
STZ $67
|
|
||||||
STZ $2A
|
|
||||||
STZ $2B
|
|
||||||
STZ $6B
|
|
||||||
|
|
||||||
.BRANCH_ALPHA:
|
|
||||||
|
|
||||||
; Cane of Somaria transit lines?
|
|
||||||
LDA $02F5 : BEQ .BRANCH_BETA
|
|
||||||
|
|
||||||
STZ $67
|
|
||||||
|
|
||||||
.BRANCH_BETA:
|
|
||||||
NetExit:
|
NetExit:
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
print "Next address for jump in bank07: ", pc
|
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $07FB71
|
|
||||||
LinkItem_Bottles_Long:
|
LinkItem_Bottles_Long:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|||||||
@@ -19,36 +19,6 @@
|
|||||||
;
|
;
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $07A494
|
|
||||||
LinkItem_Ether:
|
|
||||||
{
|
|
||||||
JSR Link_CheckNewY_ButtonPress : BCC .return
|
|
||||||
LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state
|
|
||||||
|
|
||||||
LDA $6C : BNE .return ; in a doorway
|
|
||||||
LDA $0FFC : BNE .return ; can't open menu
|
|
||||||
|
|
||||||
LDY.b #$04 : LDA.b #$23
|
|
||||||
JSL AddTransformationCloud
|
|
||||||
LDA.b #$14 : JSR Player_DoSfx2
|
|
||||||
|
|
||||||
LDA $02B2 : CMP #$04 : BEQ .unequip ; is the hood already on?
|
|
||||||
JSL UpdateBunnyPalette
|
|
||||||
LDA #$37 : STA $BC ; change link's sprite
|
|
||||||
LDA #$04 : STA $02B2
|
|
||||||
BRA .return
|
|
||||||
.unequip
|
|
||||||
STZ $02B2
|
|
||||||
JSL Palette_ArmorAndGloves
|
|
||||||
LDA #$10 : STA $BC ; take the hood off
|
|
||||||
|
|
||||||
.return
|
|
||||||
CLC
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $378000
|
org $378000
|
||||||
incbin gfx/bunny_link.4bpp
|
incbin gfx/bunny_link.4bpp
|
||||||
|
|
||||||
@@ -68,6 +38,7 @@ UpdateBunnyPalette:
|
|||||||
RTL ; or RTS depending on where you need it
|
RTL ; or RTS depending on where you need it
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
bunny_palette:
|
bunny_palette:
|
||||||
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$19FD, #$14B6
|
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$19FD, #$14B6
|
||||||
@@ -103,4 +74,34 @@ end: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
org $20AF70 ; this selects the new speed values
|
org $20AF70 ; this selects the new speed values
|
||||||
db $20, $12, $0a, $18, $10, $08, $08, $04, $0c, $10, $09, $19, $14, $0d, $10, $08, $40
|
db $20, $12, $0a, $18, $10, $08, $08, $04, $0c, $10, $09, $19, $14, $0d, $10, $08, $40
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
org $07A494
|
||||||
|
LinkItem_Ether:
|
||||||
|
{
|
||||||
|
JSR Link_CheckNewY_ButtonPress : BCC .return
|
||||||
|
LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state
|
||||||
|
|
||||||
|
LDA $6C : BNE .return ; in a doorway
|
||||||
|
LDA $0FFC : BNE .return ; can't open menu
|
||||||
|
|
||||||
|
LDY.b #$04 : LDA.b #$23
|
||||||
|
JSL AddTransformationCloud
|
||||||
|
LDA.b #$14 : JSR Player_DoSfx2
|
||||||
|
|
||||||
|
LDA $02B2 : CMP #$04 : BEQ .unequip ; is the hood already on?
|
||||||
|
JSL UpdateBunnyPalette
|
||||||
|
LDA #$37 : STA $BC ; change link's sprite
|
||||||
|
LDA #$04 : STA $02B2
|
||||||
|
BRA .return
|
||||||
|
.unequip
|
||||||
|
STZ $02B2
|
||||||
|
JSL Palette_ArmorAndGloves
|
||||||
|
LDA #$10 : STA $BC ; take the hood off
|
||||||
|
|
||||||
|
.return
|
||||||
|
CLC
|
||||||
|
RTS
|
||||||
|
}
|
||||||
@@ -14,80 +14,10 @@ incbin gfx/deku_link.bin
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $07F8D1
|
|
||||||
Link_HandleDekuTransformation:
|
|
||||||
{
|
|
||||||
LDA $5D : CMP.b #$0A : BEQ .continue
|
|
||||||
JSR $82DA
|
|
||||||
|
|
||||||
.continue
|
|
||||||
STZ $03F5
|
|
||||||
STZ $03F6
|
|
||||||
|
|
||||||
; Link can move.
|
|
||||||
CLC
|
|
||||||
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
org $07811A
|
|
||||||
JSR Link_HandleDekuTransformation
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $07A64B ; formerly Quake
|
|
||||||
LinkItem_DekuMask:
|
|
||||||
{
|
|
||||||
; Check for R button held
|
|
||||||
LDA $F2 : CMP #$10 : BNE .return
|
|
||||||
|
|
||||||
JSR Link_CheckNewY_ButtonPress : BCC .return
|
|
||||||
LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state
|
|
||||||
|
|
||||||
LDA $6C : BNE .return ; in a doorway
|
|
||||||
LDA $0FFC : BNE .return ; can't open menu
|
|
||||||
|
|
||||||
LDY.b #$04 : LDA.b #$23
|
|
||||||
JSL AddTransformationCloud
|
|
||||||
LDA.b #$14 : JSR Player_DoSfx2
|
|
||||||
|
|
||||||
LDA $02B2 : CMP #$01 : BEQ .unequip ; is the deku mask on?
|
|
||||||
JSL Palette_ArmorAndGloves ; set the palette
|
|
||||||
|
|
||||||
LDA.l $7EF359 : STA $0AA5 ; Store the current sword
|
|
||||||
LDA.l $7EF35A : STA $0AAF ; Store the current shield
|
|
||||||
LDA.b #$00 : STA $7EF359 : STA $7EF35A ; Clear the sword and shield
|
|
||||||
LDA #$02 : STA $7E03FC ; Set the override to Bow (pea shooter)
|
|
||||||
|
|
||||||
LDA #$35 : STA $BC ; put the mask on
|
|
||||||
LDA #$01 : STA $02B2
|
|
||||||
|
|
||||||
BRA .return
|
|
||||||
|
|
||||||
.unequip
|
|
||||||
JSL Palette_ArmorAndGloves
|
|
||||||
STZ $5D
|
|
||||||
|
|
||||||
; Restore the sword and shield
|
|
||||||
LDA $0AA5 : STA.l $7EF359
|
|
||||||
LDA $0AAF : STA.l $7EF35A
|
|
||||||
LDA #$00 : STA $7E03FC ; clear the override
|
|
||||||
LDA #$10 : STA $BC : STZ $02B2 ; take the mask off
|
|
||||||
|
|
||||||
|
|
||||||
.return
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $079CD9
|
org $079CD9
|
||||||
JSL LinkItem_CheckForSwordSwing_Masks
|
JSL LinkItem_CheckForSwordSwing_Masks
|
||||||
|
|
||||||
org $07A013
|
; =============================================================================
|
||||||
JSL LinkItem_SlingshotPrepare
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $318000
|
org $318000
|
||||||
LinkItem_CheckForSwordSwing_Masks:
|
LinkItem_CheckForSwordSwing_Masks:
|
||||||
@@ -105,6 +35,8 @@ LinkItem_CheckForSwordSwing_Masks:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
; org $07A013
|
||||||
|
; JSL LinkItem_SlingshotPrepare
|
||||||
|
|
||||||
; Hooked @ [$07A013]
|
; Hooked @ [$07A013]
|
||||||
; $A200
|
; $A200
|
||||||
@@ -121,8 +53,6 @@ LinkItem_SlingshotPrepare:
|
|||||||
|
|
||||||
; $A214
|
; $A214
|
||||||
.void
|
.void
|
||||||
|
|
||||||
|
|
||||||
; $A270
|
; $A270
|
||||||
.beta
|
.beta
|
||||||
LDA $7F1060
|
LDA $7F1060
|
||||||
@@ -181,4 +111,75 @@ LinkItem_SlingshotPrepare:
|
|||||||
STA $420B ; Start DMA on channel 0
|
STA $420B ; Start DMA on channel 0
|
||||||
RTL ; Return from subroutine long
|
RTL ; Return from subroutine long
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
org $07A64B ; formerly Quake
|
||||||
|
LinkItem_DekuMask:
|
||||||
|
{
|
||||||
|
; Check for R button held
|
||||||
|
LDA $F2 : CMP #$10 : BNE .return
|
||||||
|
|
||||||
|
JSR Link_CheckNewY_ButtonPress : BCC .return
|
||||||
|
LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state
|
||||||
|
|
||||||
|
LDA $6C : BNE .return ; in a doorway
|
||||||
|
LDA $0FFC : BNE .return ; can't open menu
|
||||||
|
|
||||||
|
LDY.b #$04 : LDA.b #$23
|
||||||
|
JSL AddTransformationCloud
|
||||||
|
LDA.b #$14 : JSR Player_DoSfx2
|
||||||
|
|
||||||
|
LDA $02B2 : CMP #$01 : BEQ .unequip ; is the deku mask on?
|
||||||
|
JSL Palette_ArmorAndGloves ; set the palette
|
||||||
|
|
||||||
|
LDA.l $7EF359 : STA $0AA5 ; Store the current sword
|
||||||
|
LDA.l $7EF35A : STA $0AAF ; Store the current shield
|
||||||
|
LDA.b #$00 : STA $7EF359 : STA $7EF35A ; Clear the sword and shield
|
||||||
|
LDA #$02 : STA $7E03FC ; Set the override to Bow (pea shooter)
|
||||||
|
|
||||||
|
LDA #$35 : STA $BC ; put the mask on
|
||||||
|
LDA #$01 : STA $02B2
|
||||||
|
|
||||||
|
BRA .return
|
||||||
|
|
||||||
|
.unequip
|
||||||
|
JSL Palette_ArmorAndGloves
|
||||||
|
STZ $5D
|
||||||
|
|
||||||
|
; Restore the sword and shield
|
||||||
|
LDA $0AA5 : STA.l $7EF359
|
||||||
|
LDA $0AAF : STA.l $7EF35A
|
||||||
|
LDA #$00 : STA $7E03FC ; clear the override
|
||||||
|
LDA #$10 : STA $BC : STZ $02B2 ; take the mask off
|
||||||
|
|
||||||
|
|
||||||
|
.return
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
org $07811A
|
||||||
|
JSR Link_HandleDekuTransformation
|
||||||
|
|
||||||
|
; Bank 07 Free Space
|
||||||
|
; Previous function LinkState_CheckMinishTile
|
||||||
|
org $07F903
|
||||||
|
Link_HandleDekuTransformation:
|
||||||
|
{
|
||||||
|
LDA $5D : CMP.b #$0A : BEQ .continue
|
||||||
|
JSR $82DA
|
||||||
|
|
||||||
|
.continue
|
||||||
|
STZ $03F5
|
||||||
|
STZ $03F6
|
||||||
|
|
||||||
|
; Link can move.
|
||||||
|
CLC
|
||||||
|
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
print "==> Link_HandleDekuTransformation ", pc
|
||||||
@@ -16,6 +16,15 @@ org $078028
|
|||||||
org $008827
|
org $008827
|
||||||
JSL StartupMasks
|
JSL StartupMasks
|
||||||
|
|
||||||
|
org $1BEDF9
|
||||||
|
JSL Palette_ArmorAndGloves ; 4bytes
|
||||||
|
RTL ; 1byte
|
||||||
|
NOP #$01
|
||||||
|
|
||||||
|
org $1BEE1B
|
||||||
|
JSL Palette_ArmorAndGloves_part_two
|
||||||
|
RTL
|
||||||
|
|
||||||
org $278000
|
org $278000
|
||||||
StartupMasks:
|
StartupMasks:
|
||||||
{
|
{
|
||||||
@@ -31,14 +40,7 @@ StartupMasks:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $1BEDF9
|
|
||||||
JSL Palette_ArmorAndGloves ; 4bytes
|
|
||||||
RTL ; 1byte
|
|
||||||
NOP #$01
|
|
||||||
|
|
||||||
org $1BEE1B
|
|
||||||
JSL Palette_ArmorAndGloves_part_two
|
|
||||||
RTL
|
|
||||||
|
|
||||||
org $398000
|
org $398000
|
||||||
Palette_ArmorAndGloves:
|
Palette_ArmorAndGloves:
|
||||||
@@ -170,50 +172,4 @@ Overworld_CgramAuxToMain:
|
|||||||
org $0DEE24
|
org $0DEE24
|
||||||
db $80
|
db $80
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
; extra free space in bank07 for longs (no longer used)
|
|
||||||
org $07F89D
|
|
||||||
incsrc "minish_form.asm"
|
|
||||||
print "==> End of Minish Form insert", pc
|
|
||||||
; 07FB8F
|
|
||||||
org $07F8A6
|
|
||||||
|
|
||||||
org $07F8AE
|
|
||||||
|
|
||||||
org $07F8B7
|
|
||||||
|
|
||||||
org $07F8C0
|
|
||||||
|
|
||||||
org $07F8C9
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
; TODO: Make this so it does not cancel if $0202 is still the same mask
|
|
||||||
; corresponding to the form the player is in.
|
|
||||||
; Also, prevent this from canceling minish form.
|
|
||||||
org $07FA55
|
|
||||||
LinkState_ResetMaskAnimated:
|
|
||||||
{
|
|
||||||
LDA $02B2 : BEQ .no_mask
|
|
||||||
CMP #$01 : BNE .transform
|
|
||||||
|
|
||||||
; Restore the sword, shield, and bow override
|
|
||||||
LDA $0AA5 : STA.l $7EF359
|
|
||||||
LDA $0AAF : STA.l $7EF35A
|
|
||||||
LDA #$00 : STA $7E03FC
|
|
||||||
|
|
||||||
.transform
|
|
||||||
LDY.b #$04 : LDA.b #$23
|
|
||||||
JSL AddTransformationCloud
|
|
||||||
LDA.b #$14 : JSR Player_DoSfx2
|
|
||||||
|
|
||||||
STZ $02B2
|
|
||||||
JSL Palette_ArmorAndGloves
|
|
||||||
LDA #$10 : STA $BC
|
|
||||||
.no_mask
|
|
||||||
RTL
|
|
||||||
}
|
|
||||||
print "End of LinkState_ResetMaskAnimated", pc
|
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
@@ -1,10 +1,26 @@
|
|||||||
|
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
; Minish Form Link
|
; Minish Form Link
|
||||||
;
|
;
|
||||||
|
; Reacts to Tile ID 64 to transform into Minish Link
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
org $3A8000
|
||||||
|
incbin gfx/minish_link.4bpp
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
org $07DA2A
|
||||||
|
TileDetection_OverworldAttributeJumpTable:
|
||||||
|
|
||||||
|
; Tile ID 64
|
||||||
|
org $07DAF2
|
||||||
|
dw LinkState_CheckForMinishForm
|
||||||
|
dw LinkState_CheckMinishTile
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
; Start of free space in bank 07
|
||||||
|
org $07F89D
|
||||||
LinkState_CheckForMinishForm:
|
LinkState_CheckForMinishForm:
|
||||||
{
|
{
|
||||||
SEP #$30
|
SEP #$30
|
||||||
@@ -15,24 +31,38 @@ LinkState_CheckForMinishForm:
|
|||||||
|
|
||||||
LDA $02B2 : CMP.b #$05 : BEQ .already_minish
|
LDA $02B2 : CMP.b #$05 : BEQ .already_minish
|
||||||
|
|
||||||
|
LDA.l $7EF359 : STA $0AA5 ; Store the current sword
|
||||||
|
LDA.l $7EF35A : STA $0AAF ; Store the current shield
|
||||||
|
LDA.b #$00 : STA $7EF359 : STA $7EF35A ; Clear the sword and shield
|
||||||
|
|
||||||
LDA #$3A : STA $BC ; change link's sprite
|
LDA #$3A : STA $BC ; change link's sprite
|
||||||
LDA #$05 : STA $02B2 ; Set the current mask form
|
LDA #$05 : STA $02B2 ; Set the current mask form
|
||||||
REP #$30
|
REP #$30
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.already_minish
|
.already_minish
|
||||||
LDA #$10 : STA $BC : STZ $02B2
|
STZ $02B2
|
||||||
|
LDA $0AA5 : STA.l $7EF359
|
||||||
|
LDA $0AAF : STA.l $7EF35A
|
||||||
|
LDA #$10 : STA $BC
|
||||||
REP #$30
|
REP #$30
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
org $07DA2A
|
print "==> LinkState_CheckForMinishForm ", pc
|
||||||
TileDetection_OverworldAttributeJumpTable:
|
|
||||||
|
|
||||||
; Tile ID 64
|
LinkState_CheckMinishTile:
|
||||||
org $07DAF2
|
{
|
||||||
dw $F89D
|
LDA $02B2 : BEQ .blocked ; no form
|
||||||
|
CMP.b #$05 : BNE .blocked ; not minish
|
||||||
|
|
||||||
|
LDA $0A : TSB $0343
|
||||||
|
RTS
|
||||||
|
|
||||||
org $3A8000
|
.blocked
|
||||||
incbin gfx/minish_link.4bpp
|
LDA $0A : TSB $0E ; Blocked
|
||||||
|
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
print "==> LinkState_CheckMinishTile ", pc
|
||||||
@@ -6,6 +6,35 @@
|
|||||||
;
|
;
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
org $388000
|
||||||
|
incbin gfx/wolf_link.4bpp
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
UpdateWolfPalette:
|
||||||
|
{
|
||||||
|
REP #$30 ; change 16bit mode
|
||||||
|
LDX #$001E
|
||||||
|
|
||||||
|
.loop
|
||||||
|
LDA.l WolfPalette, X : STA $7EC6E0, X
|
||||||
|
DEX : DEX : BPL .loop
|
||||||
|
|
||||||
|
SEP #$30 ; go back to 8 bit mode
|
||||||
|
INC $15 ; update the palette
|
||||||
|
RTL ; or RTS depending on where you need it
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
WolfPalette:
|
||||||
|
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$1A3D, #$14B6
|
||||||
|
dw #$4650, #$362A, #$3F4E, #$162B, #$318A, #$39CC, #$1CE7, #$76D1
|
||||||
|
dw #$6565, #$7271, #$14B5, #$459B, #$3D95, #$22D0, #$567C, #$1890
|
||||||
|
dw #$7616, #$0000
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
org $07A3DB
|
org $07A3DB
|
||||||
LinkItem_Flute:
|
LinkItem_Flute:
|
||||||
|
|
||||||
@@ -27,7 +56,9 @@ LinkItem_ShovelAndFlute:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $07F8E9
|
; Bank 07 Free Space
|
||||||
|
; Previous routine `Link_HandleDekuTransformation`
|
||||||
|
org $07F914
|
||||||
LinkItem_WolfMask:
|
LinkItem_WolfMask:
|
||||||
{
|
{
|
||||||
LDA $02B2 : CMP #$03 : BNE .equip
|
LDA $02B2 : CMP #$03 : BNE .equip
|
||||||
@@ -59,35 +90,4 @@ LinkItem_WolfMask:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
print "End of LinkItem_WolfMask ", pc
|
print "==> LinkItem_WolfMask ", pc
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $388000
|
|
||||||
incbin gfx/wolf_link.4bpp
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
UpdateWolfPalette:
|
|
||||||
{
|
|
||||||
REP #$30 ; change 16bit mode
|
|
||||||
LDX #$001E
|
|
||||||
|
|
||||||
.loop
|
|
||||||
LDA.l WolfPalette, X : STA $7EC6E0, X
|
|
||||||
DEX : DEX : BPL .loop
|
|
||||||
|
|
||||||
SEP #$30 ; go back to 8 bit mode
|
|
||||||
INC $15 ; update the palette
|
|
||||||
RTL ; or RTS depending on where you need it
|
|
||||||
}
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
WolfPalette:
|
|
||||||
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$1A3D, #$14B6
|
|
||||||
dw #$4650, #$362A, #$3F4E, #$162B, #$318A, #$39CC, #$1CE7, #$76D1
|
|
||||||
dw #$6565, #$7271, #$14B5, #$459B, #$3D95, #$22D0, #$567C, #$1890
|
|
||||||
dw #$7616, #$0000
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
@@ -6,8 +6,42 @@
|
|||||||
; Underwater Flag RAM Position $7F500E
|
; Underwater Flag RAM Position $7F500E
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
org $368000
|
||||||
|
incbin gfx/zora_link.4bpp
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
UpdateZoraPalette:
|
||||||
|
{
|
||||||
|
REP #$30 ; change 16 bit mode
|
||||||
|
LDX #$001E
|
||||||
|
|
||||||
|
.loop
|
||||||
|
LDA.l zora_palette, X : STA $7EC6E0, X
|
||||||
|
DEX : DEX : BPL .loop
|
||||||
|
|
||||||
|
SEP #$30 ; go back to 8 bit mode
|
||||||
|
INC $15 ; update the palette
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
; TODO: Change from "bunny palette" to blue zora palette colors
|
||||||
|
zora_palette:
|
||||||
|
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$19FD, #$14B6
|
||||||
|
dw #$55BB, #$362A, #$3F4E, #$162B, #$22D0, #$2E5A, #$1970, #$7616
|
||||||
|
dw #$6565, #$7271, #$2AB7, #$477E, #$1997, #$14B5, #$459B, #$69F2
|
||||||
|
dw #$7AB8, #$2609, #$19D8, #$3D95, #$567C, #$1890, #$52F6, #$2357, #$0000
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
org $0998FC
|
org $0998FC
|
||||||
AddTransitionSplash:
|
AddTransitionSplash:
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
org $07A569
|
org $07A569
|
||||||
LinkItem_ZoraMask:
|
LinkItem_ZoraMask:
|
||||||
@@ -41,35 +75,29 @@ LinkItem_ZoraMask:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $368000
|
; End of LinkState_Swimming
|
||||||
incbin gfx/zora_link.4bpp
|
org $079781
|
||||||
|
JSR LinkState_UsingZoraMask
|
||||||
|
RTS
|
||||||
|
|
||||||
|
; End of LinkState_Default
|
||||||
|
org $0782D2
|
||||||
|
JSR LinkState_UsingZoraMask_dungeon_resurface
|
||||||
|
JSR $E8F0
|
||||||
|
CLC
|
||||||
|
RTS
|
||||||
|
|
||||||
|
; C2C3
|
||||||
|
org $07C307
|
||||||
|
JSR LinkState_UsingZoraMask_dungeon_stairs
|
||||||
|
RTS
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
UpdateZoraPalette:
|
|
||||||
{
|
|
||||||
REP #$30 ; change 16 bit mode
|
|
||||||
LDX #$001E
|
|
||||||
|
|
||||||
.loop
|
; Bank07 Free Space
|
||||||
LDA.l zora_palette, X : STA $7EC6E0, X
|
; Predecessor: Wolf Mask I think
|
||||||
DEX : DEX : BPL .loop
|
org $07F95D
|
||||||
|
|
||||||
SEP #$30 ; go back to 8 bit mode
|
|
||||||
INC $15 ; update the palette
|
|
||||||
RTL
|
|
||||||
}
|
|
||||||
|
|
||||||
; TODO: Change from "bunny palette" to blue zora palette colors
|
|
||||||
zora_palette:
|
|
||||||
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$19FD, #$14B6
|
|
||||||
dw #$55BB, #$362A, #$3F4E, #$162B, #$22D0, #$2E5A, #$1970, #$7616
|
|
||||||
dw #$6565, #$7271, #$2AB7, #$477E, #$1997, #$14B5, #$459B, #$69F2
|
|
||||||
dw #$7AB8, #$2609, #$19D8, #$3D95, #$567C, #$1890, #$52F6, #$2357, #$0000
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $07F93F
|
|
||||||
LinkState_UsingZoraMask:
|
LinkState_UsingZoraMask:
|
||||||
{
|
{
|
||||||
; Check if the mask is equipped
|
; Check if the mask is equipped
|
||||||
@@ -226,25 +254,37 @@ LinkState_UsingZoraMask:
|
|||||||
LDA #$06 : STA $5D ; Set Link to Recoil State
|
LDA #$06 : STA $5D ; Set Link to Recoil State
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
print "End of Zora Mask Dive Code ", pc
|
print "==> LinkState_UsingZoraMask ", pc
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
; End of LinkState_Swimming
|
; TODO: Make this so it does not cancel if $0202 is still the same mask
|
||||||
org $079781
|
; corresponding to the form the player is in.
|
||||||
JSR LinkState_UsingZoraMask
|
; Also, prevent this from canceling minish form.
|
||||||
RTS
|
; org $07FA55
|
||||||
|
LinkState_ResetMaskAnimated:
|
||||||
|
{
|
||||||
|
LDA $02B2 : BEQ .no_mask
|
||||||
|
CMP #$05 : BEQ .no_mask
|
||||||
|
CMP #$01 : BNE .transform
|
||||||
|
|
||||||
; End of LinkState_Default
|
; Restore the sword, shield, and bow override
|
||||||
org $0782D2
|
LDA $0AA5 : STA.l $7EF359
|
||||||
JSR LinkState_UsingZoraMask_dungeon_resurface
|
LDA $0AAF : STA.l $7EF35A
|
||||||
JSR $E8F0
|
LDA #$00 : STA $7E03FC
|
||||||
CLC
|
|
||||||
RTS
|
|
||||||
|
|
||||||
; C2C3
|
.transform
|
||||||
org $07C307
|
LDY.b #$04 : LDA.b #$23
|
||||||
JSR LinkState_UsingZoraMask_dungeon_stairs
|
JSL AddTransformationCloud
|
||||||
RTS
|
LDA.b #$14 : JSR Player_DoSfx2
|
||||||
|
|
||||||
|
STZ $02B2
|
||||||
|
JSL Palette_ArmorAndGloves
|
||||||
|
LDA #$10 : STA $BC
|
||||||
|
.no_mask
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
|
print "==> LinkState_ResetMaskAnimated ", pc
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -110,12 +110,6 @@ Sprite_Kydrog_Main:
|
|||||||
|
|
||||||
Kydrog_TurnPlayerToDeku:
|
Kydrog_TurnPlayerToDeku:
|
||||||
{
|
{
|
||||||
; LDA.b #$03 : STA.b $B6
|
|
||||||
|
|
||||||
; JSL AddTransformationCloud
|
|
||||||
; LDA.b #$14 : JSR Player_DoSfx2
|
|
||||||
|
|
||||||
; JSL Palette_ArmorAndGloves
|
|
||||||
LDA #$35 : STA $BC
|
LDA #$35 : STA $BC
|
||||||
|
|
||||||
%GotoAction(4)
|
%GotoAction(4)
|
||||||
@@ -124,8 +118,54 @@ Sprite_Kydrog_Main:
|
|||||||
|
|
||||||
Kydrog_WarpPlayerAway:
|
Kydrog_WarpPlayerAway:
|
||||||
{
|
{
|
||||||
LDA #$29
|
; Set game state to part 03
|
||||||
JSL $02B40F
|
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
|
||||||
|
|
||||||
|
STZ $037B : STZ $3C : STZ $3A : STZ $03EF
|
||||||
|
|
||||||
|
; Link can't move
|
||||||
|
LDA.b #$01 : STA $02E4
|
||||||
|
|
||||||
|
; The module to return to is #$08 (preoverworld)
|
||||||
|
LDA.b #$08 : STA $010C
|
||||||
|
|
||||||
|
; Set the map I want
|
||||||
|
LDA.b #$20 : STA $A0 : STZ $A1
|
||||||
|
|
||||||
|
; Set us to the warp state
|
||||||
|
LDA.b #$15 : STA $10
|
||||||
|
|
||||||
|
; Clear submodules
|
||||||
|
STZ $11 : STZ $B0
|
||||||
|
|
||||||
|
; Remove Impa
|
||||||
|
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
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -207,5 +247,30 @@ Sprite_Kydrog_Draw:
|
|||||||
db $02, $02, $02, $02, $02, $02
|
db $02, $02, $02, $02, $02, $02
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; I forget what this is lol
|
||||||
org $02ECF8
|
org $02ECF8
|
||||||
dw $0029
|
dw $0029
|
||||||
|
|
||||||
|
; ==============================================================================
|
||||||
|
|
||||||
|
; 169BC
|
||||||
|
; org $02E9BC
|
||||||
|
; LoadOverworldFromSpecialOverworld:
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|||||||
Reference in New Issue
Block a user