From 2e0a82f5492309b499871147466c4fa897cadf8c Mon Sep 17 00:00:00 2001 From: scawful Date: Wed, 3 May 2023 21:00:20 -0500 Subject: [PATCH] Update Deku Link routines --- Masks/deku_mask.asm | 149 +++++++++++----------------------------- Masks/mask_routines.asm | 88 ++++++++++++++++++++++++ 2 files changed, 128 insertions(+), 109 deletions(-) diff --git a/Masks/deku_mask.asm b/Masks/deku_mask.asm index bfdb541..a828e31 100644 --- a/Masks/deku_mask.asm +++ b/Masks/deku_mask.asm @@ -3,100 +3,35 @@ ; ============================================================================= +; Link Sprite hook org $008A01 LDA $BC + +; ============================================================================= + +org $358000 +incbin gfx/deku_link.bin + +; ============================================================================= + +org $07F8D1 +Link_HandleDekuTransformation: +{ + LDA $5D : CMP.b #$0A : BEQ .continue + JSR $82DA + +.continue + STZ $03F5 + STZ $03F6 -; ============================================================================= - -org $07B64F - Link_HandleDiagonalCollision: - -; start of free space in bank07 -org $07F89D -Link_HandleDiagonalCollision_Long: -{ - PHB : PHK : PLB - JSR Link_HandleDiagonalCollision - PLB - RTL + ; Link can move. + CLC + + RTS } -; ============================================================================= - -org $07B7C7 - Link_HandleCardinalCollision: - -org $07F8A6 -Link_HandleCardinalCollision_Long: -{ - PHB : PHK : PLB - JSR Link_HandleCardinalCollision - PLB - RTL -} - -; ============================================================================= - -org $07E8F0 - HandleIndoorCameraAndDoors: - -org $07F8AE -HandleIndoorCameraAndDoors_Long: -{ - PHB : PHK : PLB - JSR HandleIndoorCameraAndDoors - PLB - RTL -} - -; ============================================================================= - -org $07F514 - CheckIndoorStatus: - -org $07F8B7 -CheckIndoorStatus_Long: -{ - PHB : PHK : PLB - JSR CheckIndoorStatus - PLB - RTL -} - -; ============================================================================= - -org $079873 - Player_ResetSwimCollision: - -org $07F8C0 -Player_ResetSwimCollision_Long: -{ - PHB : PHK : PLB - JSR Player_ResetSwimCollision - PLB - RTL -} - -; ============================================================================= - -org $079B0E - Link_HandleYItems: - -org $07F8C9 -Link_HandleYItems_Long: -{ - PHB : PHK : PLB - JSR Link_HandleYItems - PLB - RTL -} -print pc - -org $07F1A3 -Player_ResetState_A: - -org $07F1FA -Player_ResetState_C: +org $07811A + JSR Link_HandleDekuTransformation ; ============================================================================= @@ -119,7 +54,7 @@ LinkItem_DekuMask: LDA #$35 : STA $BC ; put the mask on LDA #$01 : STA $02B2 - LDA #$02 : STA $03FC + LDA #$00 : STA $03FC BRA .return .unequip @@ -140,9 +75,11 @@ LinkItem_UsingQuake: { JSR $82DA JSL LinkItem_UsingDekuMask + RTS - NOP #152 - print pc + NOP #149 + + print pc } ; end of UsingQuake is at 07A773 @@ -151,19 +88,18 @@ LinkItem_UsingQuake: org $318000 LinkItem_UsingDekuMask: { - ; SEP #$20 - ; JSL CheckIndoorStatus_Long + JSL CheckIndoorStatus_Long -; LDA.b $F5 -; AND.b #$80 -; BEQ .dont_toggle_oob + LDA.b $F5 + AND.b #$80 + BEQ .dont_toggle_oob -; LDA.w $037F -; EOR.b #$01 -; STA.w $037F + LDA.w $037F + EOR.b #$01 + STA.w $037F -; .dont_toggle_oob -; STZ.w $02CA +.dont_toggle_oob + STZ.w $02CA LDA $0345 : BNE .recache LDA $4D : BEQ .recoiling @@ -216,7 +152,7 @@ LinkItem_UsingDekuMask: LDA.b #$01 : STA $0335 : STA $0337 LDA.b #$80 : STA $0334 : STA $0336 - BRL $9715 + ; BRL $9715 .not_moving @@ -268,9 +204,4 @@ LinkItem_UsingDekuMask: .exit: RTL -} - -; ============================================================================= - -org $358000 -incbin gfx/deku_link.bin \ No newline at end of file +} \ No newline at end of file diff --git a/Masks/mask_routines.asm b/Masks/mask_routines.asm index 92ba502..48f4948 100644 --- a/Masks/mask_routines.asm +++ b/Masks/mask_routines.asm @@ -19,6 +19,9 @@ org $07915E org $07E6A6 Link_HandleMovingAnimation_FullLongEntry: +org $07E69D + Link_HandleMovingAnimation_SetFacingDown: + org $01FF28 Player_CacheStatePriorToHandler: @@ -125,4 +128,89 @@ Palette_ArmorAndGloves: INC $15 PLA : PLY : PLX RTL +} + +; ============================================================================= + +org $07B64F + Link_HandleDiagonalCollision: + +; start of free space in bank07 +org $07F89D +Link_HandleDiagonalCollision_Long: +{ + PHB : PHK : PLB + JSR Link_HandleDiagonalCollision + PLB + RTL +} + +; ============================================================================= + +org $07B7C7 + Link_HandleCardinalCollision: + +org $07F8A6 +Link_HandleCardinalCollision_Long: +{ + PHB : PHK : PLB + JSR Link_HandleCardinalCollision + PLB + RTL +} + +; ============================================================================= + +org $07E8F0 + HandleIndoorCameraAndDoors: + +org $07F8AE +HandleIndoorCameraAndDoors_Long: +{ + PHB : PHK : PLB + JSR HandleIndoorCameraAndDoors + PLB + RTL +} + +; ============================================================================= + +org $07F514 + CheckIndoorStatus: + +org $07F8B7 +CheckIndoorStatus_Long: +{ + PHB : PHK : PLB + JSR CheckIndoorStatus + PLB + RTL +} + +; ============================================================================= + +org $079873 + Player_ResetSwimCollision: + +org $07F8C0 +Player_ResetSwimCollision_Long: +{ + PHB : PHK : PLB + JSR Player_ResetSwimCollision + PLB + RTL +} + +; ============================================================================= + +org $079B0E + Link_HandleYItems: + +org $07F8C9 +Link_HandleYItems_Long: +{ + PHB : PHK : PLB + JSR Link_HandleYItems + PLB + RTL } \ No newline at end of file