Add PlayerTransform, CheckNewRButtonPress fns
This commit is contained in:
@@ -1000,7 +1000,7 @@ ApplyGoldstarDamageClass:
|
|||||||
|
|
||||||
CheckForSwitchToGoldstar:
|
CheckForSwitchToGoldstar:
|
||||||
{
|
{
|
||||||
%CheckNewR_ButtonPress() : BEQ .continue
|
JSL CheckNewRButtonPress : BEQ .continue
|
||||||
LDA.l $7EF342 : CMP.b #$02 : BNE .continue
|
LDA.l $7EF342 : CMP.b #$02 : BNE .continue
|
||||||
LDA.w GoldstarOrHookshot : CMP.b #$01 : BEQ .set_hookshot
|
LDA.w GoldstarOrHookshot : CMP.b #$01 : BEQ .set_hookshot
|
||||||
LDA.b #$01 : STA.w GoldstarOrHookshot
|
LDA.b #$01 : STA.w GoldstarOrHookshot
|
||||||
|
|||||||
@@ -108,14 +108,14 @@ LinkState_GameboyForm:
|
|||||||
LDA $02B2 : CMP.b #$06 : BEQ .already_gbc
|
LDA $02B2 : CMP.b #$06 : BEQ .already_gbc
|
||||||
LDA $0FFF : BEQ .return ; not in dark world
|
LDA $0FFF : BEQ .return ; not in dark world
|
||||||
.transform
|
.transform
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
LDA #$3B : STA $BC ; change link's sprite
|
LDA #$3B : STA $BC ; change link's sprite
|
||||||
LDA #$06 : STA $02B2
|
LDA #$06 : STA $02B2
|
||||||
JSL UpdateGbcPalette
|
JSL UpdateGbcPalette
|
||||||
BRA .return
|
BRA .return
|
||||||
|
|
||||||
.already_gbc
|
.already_gbc
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
LDA #$10 : STA $BC
|
LDA #$10 : STA $BC
|
||||||
STZ $02B2
|
STZ $02B2
|
||||||
JSL Palette_ArmorAndGloves
|
JSL Palette_ArmorAndGloves
|
||||||
|
|||||||
@@ -1,19 +1,3 @@
|
|||||||
; =========================================================
|
|
||||||
; Macros
|
|
||||||
|
|
||||||
macro PlayerTransform()
|
|
||||||
LDY.b #$04 : LDA.b #$23
|
|
||||||
JSL AddTransformationCloud
|
|
||||||
LDA.b #$14 : STA.w $0CF8
|
|
||||||
JSL $0DBB67 ; Link_CalculateSFXPan
|
|
||||||
ORA.w $0CF8
|
|
||||||
STA $012E
|
|
||||||
endmacro
|
|
||||||
|
|
||||||
macro CheckNewR_ButtonPress()
|
|
||||||
LDA.b $F6 : BIT.b #$10
|
|
||||||
endmacro
|
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; Change Link's sprite by setting $BC to the gfx bank
|
; Change Link's sprite by setting $BC to the gfx bank
|
||||||
|
|
||||||
@@ -51,8 +35,7 @@ org $09F7B5 : JSL ForceResetMask_SaveAndQuit
|
|||||||
org $3A8000
|
org $3A8000
|
||||||
StartupMasks:
|
StartupMasks:
|
||||||
{
|
{
|
||||||
; from vanilla:
|
; vanilla: bring the screen into force blank after NMI
|
||||||
; bring the screen into force blank after NMI
|
|
||||||
LDA.b #$80 : STA $13
|
LDA.b #$80 : STA $13
|
||||||
|
|
||||||
; set links sprite bank
|
; set links sprite bank
|
||||||
@@ -60,6 +43,17 @@ StartupMasks:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerTransform:
|
||||||
|
{
|
||||||
|
LDY.b #$04 : LDA.b #$23
|
||||||
|
JSL AddTransformationCloud
|
||||||
|
LDA.b #$14 : STA.w $0CF8
|
||||||
|
JSL $0DBB67 ; Link_CalculateSFXPan
|
||||||
|
ORA.w $0CF8
|
||||||
|
STA $012E
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
ResetToLinkGraphics:
|
ResetToLinkGraphics:
|
||||||
{
|
{
|
||||||
LDA $0FFF : BNE +
|
LDA $0FFF : BNE +
|
||||||
@@ -197,13 +191,11 @@ Palette_ArmorAndGloves:
|
|||||||
; =========================================================
|
; =========================================================
|
||||||
; Overworld Palette Persist
|
; Overworld Palette Persist
|
||||||
|
|
||||||
Overworld_CgramAuxToMain_Override:
|
Overworld_CgramAuxToMain:
|
||||||
{
|
{
|
||||||
; Copies the auxiliary CGRAM buffer to the main one
|
; Copies the auxiliary CGRAM buffer to the main one
|
||||||
; Causes NMI to reupload the palette.
|
; Causes NMI to reupload the palette.
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
LDX.b #$00
|
LDX.b #$00
|
||||||
|
|
||||||
.loop
|
.loop
|
||||||
@@ -223,10 +215,15 @@ Overworld_CgramAuxToMain_Override:
|
|||||||
|
|
||||||
; tell NMI to upload new CGRAM data
|
; tell NMI to upload new CGRAM data
|
||||||
INC $15
|
INC $15
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pushpc
|
||||||
|
org $02C769 ; Overworld_CgramAuxToMain
|
||||||
|
JSL Overworld_CgramAuxToMain
|
||||||
|
RTS
|
||||||
|
pullpc
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
LinkState_ResetMaskAnimated:
|
LinkState_ResetMaskAnimated:
|
||||||
@@ -245,7 +242,7 @@ LinkState_ResetMaskAnimated:
|
|||||||
LDA.w $0202 : SEC : SBC.b #$13 : BEQ .no_transform
|
LDA.w $0202 : SEC : SBC.b #$13 : BEQ .no_transform
|
||||||
|
|
||||||
.transform
|
.transform
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
JSL ResetToLinkGraphics
|
JSL ResetToLinkGraphics
|
||||||
|
|
||||||
.gbc_form
|
.gbc_form
|
||||||
@@ -254,24 +251,14 @@ LinkState_ResetMaskAnimated:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
pushpc
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
org $02C769
|
|
||||||
Overworld_CgramAuxToMain:
|
|
||||||
JSL Overworld_CgramAuxToMain_Override
|
|
||||||
RTS
|
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; Change which mask forms have access to the sword.
|
; Change which mask forms have access to the sword.
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
|
pushpc
|
||||||
; Link_CheckForSwordSwing
|
; Link_CheckForSwordSwing
|
||||||
org $079CD9
|
org $079CD9 : JSL LinkItem_CheckForSwordSwing_Masks
|
||||||
JSL LinkItem_CheckForSwordSwing_Masks
|
|
||||||
|
|
||||||
pullpc
|
pullpc
|
||||||
|
|
||||||
LinkItem_CheckForSwordSwing_Masks:
|
LinkItem_CheckForSwordSwing_Masks:
|
||||||
{
|
{
|
||||||
LDA !CurrentMask : BEQ .return
|
LDA !CurrentMask : BEQ .return
|
||||||
@@ -293,11 +280,11 @@ Link_TransformMask:
|
|||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
PHA ; save mask ID
|
PHA ; save mask ID
|
||||||
%CheckNewR_ButtonPress() : BEQ .return
|
JSL CheckNewRButtonPress : BEQ .return
|
||||||
LDA $6C : BNE .return ; in a doorway
|
LDA $6C : BNE .return ; in a doorway
|
||||||
LDA $0FFC : BNE .return ; can't open menu
|
LDA $0FFC : BNE .return ; can't open menu
|
||||||
|
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
PLA ; restore mask ID
|
PLA ; restore mask ID
|
||||||
TAY
|
TAY
|
||||||
CPY !CurrentMask : BEQ .unequip ; check if mask is on
|
CPY !CurrentMask : BEQ .unequip ; check if mask is on
|
||||||
@@ -321,8 +308,6 @@ Link_TransformMask:
|
|||||||
db $00, $35, $36, $38, $37, $39, $3A, $3B
|
db $00, $35, $36, $38, $37, $39, $3A, $3B
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
Link_TransformMoosh:
|
Link_TransformMoosh:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
@@ -331,13 +316,13 @@ Link_TransformMoosh:
|
|||||||
JMP .done
|
JMP .done
|
||||||
++
|
++
|
||||||
LDA.w !CurrentMask : CMP.b #$07 : BNE +
|
LDA.w !CurrentMask : CMP.b #$07 : BNE +
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
JSL ResetToLinkGraphics
|
JSL ResetToLinkGraphics
|
||||||
PLB : RTL
|
PLB : RTL
|
||||||
+
|
+
|
||||||
LDA.b #$07 : STA.w !CurrentMask
|
LDA.b #$07 : STA.w !CurrentMask
|
||||||
LDA.b #$33 : STA $BC
|
LDA.b #$33 : STA $BC
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
JSL Palette_ArmorAndGloves
|
JSL Palette_ArmorAndGloves
|
||||||
.done
|
.done
|
||||||
PLB
|
PLB
|
||||||
@@ -391,8 +376,6 @@ PrepareQuakeSpell:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
HandleMovement:
|
HandleMovement:
|
||||||
{
|
{
|
||||||
LDA $F0 : AND #$08 : BEQ .not_up
|
LDA $F0 : AND #$08 : BEQ .not_up
|
||||||
@@ -752,8 +735,6 @@ Ancilla_Move_X:
|
|||||||
BRL Ancilla_RestoreIndex
|
BRL Ancilla_RestoreIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
; ---------------------------------------------------------
|
|
||||||
|
|
||||||
Ancilla_Move_Y:
|
Ancilla_Move_Y:
|
||||||
{
|
{
|
||||||
LDA.w $0C22, X
|
LDA.w $0C22, X
|
||||||
@@ -790,8 +771,6 @@ Ancilla_Move_Y:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
Ancilla_Move_Z:
|
Ancilla_Move_Z:
|
||||||
{
|
{
|
||||||
LDA.w AnciZSpeed, X
|
LDA.w AnciZSpeed, X
|
||||||
|
|||||||
@@ -44,14 +44,14 @@ LinkState_CheckForMinishForm:
|
|||||||
CMP.b #$00 : BEQ .transform
|
CMP.b #$00 : BEQ .transform
|
||||||
CMP.b #$06 : BCC .return ; don't transform if not human
|
CMP.b #$06 : BCC .return ; don't transform if not human
|
||||||
.transform
|
.transform
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
|
|
||||||
LDA #$39 : STA $BC ; Change link's sprite
|
LDA #$39 : STA $BC ; Change link's sprite
|
||||||
LDA #$05 : STA $02B2 ; Set the current mask form
|
LDA #$05 : STA $02B2 ; Set the current mask form
|
||||||
BRA .return
|
BRA .return
|
||||||
|
|
||||||
.already_minish
|
.already_minish
|
||||||
%PlayerTransform()
|
JSL PlayerTransform
|
||||||
JSL ResetToLinkGraphics
|
JSL ResetToLinkGraphics
|
||||||
|
|
||||||
.return
|
.return
|
||||||
|
|||||||
Reference in New Issue
Block a user