From 202b042b6bb8f6e0e1006b86441e46329baee9d5 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 19 Jan 2025 11:33:56 -0500 Subject: [PATCH] Add PlayerTransform, CheckNewRButtonPress fns --- Items/goldstar.asm | 2 +- Masks/gbc_form.asm | 4 +-- Masks/mask_routines.asm | 77 +++++++++++++++-------------------------- Masks/minish_form.asm | 4 +-- Menu/menu.asm | 6 ++-- 5 files changed, 36 insertions(+), 57 deletions(-) diff --git a/Items/goldstar.asm b/Items/goldstar.asm index aa7ed11..126d3c0 100644 --- a/Items/goldstar.asm +++ b/Items/goldstar.asm @@ -1000,7 +1000,7 @@ ApplyGoldstarDamageClass: CheckForSwitchToGoldstar: { - %CheckNewR_ButtonPress() : BEQ .continue + JSL CheckNewRButtonPress : BEQ .continue LDA.l $7EF342 : CMP.b #$02 : BNE .continue LDA.w GoldstarOrHookshot : CMP.b #$01 : BEQ .set_hookshot LDA.b #$01 : STA.w GoldstarOrHookshot diff --git a/Masks/gbc_form.asm b/Masks/gbc_form.asm index be7d85f..21f3987 100644 --- a/Masks/gbc_form.asm +++ b/Masks/gbc_form.asm @@ -108,14 +108,14 @@ LinkState_GameboyForm: LDA $02B2 : CMP.b #$06 : BEQ .already_gbc LDA $0FFF : BEQ .return ; not in dark world .transform - %PlayerTransform() + JSL PlayerTransform LDA #$3B : STA $BC ; change link's sprite LDA #$06 : STA $02B2 JSL UpdateGbcPalette BRA .return .already_gbc - %PlayerTransform() + JSL PlayerTransform LDA #$10 : STA $BC STZ $02B2 JSL Palette_ArmorAndGloves diff --git a/Masks/mask_routines.asm b/Masks/mask_routines.asm index 3d1db2c..b5187f8 100644 --- a/Masks/mask_routines.asm +++ b/Masks/mask_routines.asm @@ -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 @@ -51,8 +35,7 @@ org $09F7B5 : JSL ForceResetMask_SaveAndQuit org $3A8000 StartupMasks: { - ; from vanilla: - ; bring the screen into force blank after NMI + ; vanilla: bring the screen into force blank after NMI LDA.b #$80 : STA $13 ; set links sprite bank @@ -60,6 +43,17 @@ StartupMasks: 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: { LDA $0FFF : BNE + @@ -197,13 +191,11 @@ Palette_ArmorAndGloves: ; ========================================================= ; Overworld Palette Persist -Overworld_CgramAuxToMain_Override: +Overworld_CgramAuxToMain: { ; Copies the auxiliary CGRAM buffer to the main one ; Causes NMI to reupload the palette. - REP #$20 - LDX.b #$00 .loop @@ -217,16 +209,21 @@ Overworld_CgramAuxToMain_Override: LDA !CurrentMask : BNE .has_mask_palette LDA $7EC4C0, X : STA $7EC6C0, X .has_mask_palette - INX #2 : CPX.b #$40 : BNE .loop + INX #2 : CPX.b #$40 : BNE .loop SEP #$20 ; tell NMI to upload new CGRAM data INC $15 - RTL } +pushpc +org $02C769 ; Overworld_CgramAuxToMain + JSL Overworld_CgramAuxToMain + RTS +pullpc + ; ========================================================= LinkState_ResetMaskAnimated: @@ -245,7 +242,7 @@ LinkState_ResetMaskAnimated: LDA.w $0202 : SEC : SBC.b #$13 : BEQ .no_transform .transform - %PlayerTransform() + JSL PlayerTransform JSL ResetToLinkGraphics .gbc_form @@ -254,24 +251,14 @@ LinkState_ResetMaskAnimated: RTL } -pushpc - -; ========================================================= - -org $02C769 -Overworld_CgramAuxToMain: - JSL Overworld_CgramAuxToMain_Override - RTS - ; ========================================================= ; Change which mask forms have access to the sword. -; ========================================================= +pushpc ; Link_CheckForSwordSwing -org $079CD9 - JSL LinkItem_CheckForSwordSwing_Masks - +org $079CD9 : JSL LinkItem_CheckForSwordSwing_Masks pullpc + LinkItem_CheckForSwordSwing_Masks: { LDA !CurrentMask : BEQ .return @@ -293,11 +280,11 @@ Link_TransformMask: { PHB : PHK : PLB PHA ; save mask ID - %CheckNewR_ButtonPress() : BEQ .return + JSL CheckNewRButtonPress : BEQ .return LDA $6C : BNE .return ; in a doorway LDA $0FFC : BNE .return ; can't open menu - %PlayerTransform() + JSL PlayerTransform PLA ; restore mask ID TAY CPY !CurrentMask : BEQ .unequip ; check if mask is on @@ -321,8 +308,6 @@ Link_TransformMask: db $00, $35, $36, $38, $37, $39, $3A, $3B } -; ========================================================= - Link_TransformMoosh: { PHB : PHK : PLB @@ -331,13 +316,13 @@ Link_TransformMoosh: JMP .done ++ LDA.w !CurrentMask : CMP.b #$07 : BNE + - %PlayerTransform() + JSL PlayerTransform JSL ResetToLinkGraphics PLB : RTL + LDA.b #$07 : STA.w !CurrentMask LDA.b #$33 : STA $BC - %PlayerTransform() + JSL PlayerTransform JSL Palette_ArmorAndGloves .done PLB @@ -391,8 +376,6 @@ PrepareQuakeSpell: RTL } -; ========================================================= - HandleMovement: { LDA $F0 : AND #$08 : BEQ .not_up @@ -752,8 +735,6 @@ Ancilla_Move_X: BRL Ancilla_RestoreIndex } -; --------------------------------------------------------- - Ancilla_Move_Y: { LDA.w $0C22, X @@ -790,8 +771,6 @@ Ancilla_Move_Y: RTS } -; ========================================================= - Ancilla_Move_Z: { LDA.w AnciZSpeed, X diff --git a/Masks/minish_form.asm b/Masks/minish_form.asm index 4ca4958..ceb1976 100644 --- a/Masks/minish_form.asm +++ b/Masks/minish_form.asm @@ -44,14 +44,14 @@ LinkState_CheckForMinishForm: CMP.b #$00 : BEQ .transform CMP.b #$06 : BCC .return ; don't transform if not human .transform - %PlayerTransform() + JSL PlayerTransform LDA #$39 : STA $BC ; Change link's sprite LDA #$05 : STA $02B2 ; Set the current mask form BRA .return .already_minish - %PlayerTransform() + JSL PlayerTransform JSL ResetToLinkGraphics .return diff --git a/Menu/menu.asm b/Menu/menu.asm index 130604f..553d04e 100644 --- a/Menu/menu.asm +++ b/Menu/menu.asm @@ -471,7 +471,7 @@ Menu_MagicBag: JSR Menu_DeleteCursor_AltEntry INC.w $020B LDA.w $020B : CMP.b #$06 : BCS .zero - BRA .continue + BRA .continue .move_down .move_left @@ -479,8 +479,8 @@ Menu_MagicBag: LDX.w Menu_MagicBagCursorPositions-2, Y JSR Menu_DeleteCursor_AltEntry LDA.w $020B : CMP.b #$00 : BEQ .continue - DEC.w $020B - BRA .continue + DEC.w $020B + BRA .continue .zero STZ.w $020B .continue