From 0c774e42b3370b6f42a9a64a5b5ff487448c3c09 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 12 Mar 2023 22:01:29 -0500 Subject: [PATCH] Wolf Mask Dig Ability, move Palette_ArmorAndGloves --- Masks/mask_routines.asm | 74 +++++++++++++ Masks/wolf_mask.asm | 230 +++++----------------------------------- 2 files changed, 101 insertions(+), 203 deletions(-) diff --git a/Masks/mask_routines.asm b/Masks/mask_routines.asm index 8222810..00f1bd6 100644 --- a/Masks/mask_routines.asm +++ b/Masks/mask_routines.asm @@ -1,3 +1,5 @@ +; ============================================================================= + ; no glove color org $0DEE24 db $80 @@ -11,6 +13,8 @@ Link_CheckNewY_ButtonPress: org $078028 Player_DoSfx2: +; ============================================================================= + org $278000 StartupMasks: { @@ -24,5 +28,75 @@ StartupMasks: RTL } +; ============================================================================= + org $008827 JSL StartupMasks + +; ============================================================================= + +org $1BEDF9 +JSL Palette_ArmorAndGloves ; 4bytes +RTL ; 1byte +NOP #$01 + +org $1BEE1B +JSL Palette_ArmorAndGloves_part_two +RTL + +; ============================================================================= + +; Code : +org $398000 +Palette_ArmorAndGloves: +{ + LDA.b #$10 + STA $BC ; Load Original Sprite Location + REP #$21 + LDA $7EF35B + JSL $1BEDFF ; Read Original Palette Code + RTL +.part_two + SEP #$30 + REP #$30 + LDA $7EF354 + JSL $1BEE21 ; Read Original Palette Code + RTL + + PHX : PHY : PHA + ; Load armor palette + PHB : PHK : PLB + + REP #$20 + + ; Check what Link's armor value is. + LDA $7EF35B : AND.w #$00FF : TAX + + LDA $1BEC06, X : AND.w #$00FF : ASL A : ADC.w #$F000 : STA $00 + REP #$10 + + LDA.w #$01E2 ; Target SP-7 (sprite palette 6) + LDX.w #$000E ; Palette has 15 colors + + TXY : TAX + + LDA.b $BC : AND #$00FF : STA $02 + +.loop + + LDA [$00] : STA $7EC300, X : STA $7EC500, X + + INC $00 : INC $00 + + INX #2 + + DEY : BPL .loop + + SEP #$30 + + + PLB + INC $15 + PLA : PLY : PLX + RTL +} \ No newline at end of file diff --git a/Masks/wolf_mask.asm b/Masks/wolf_mask.asm index d01a570..339cdd8 100644 --- a/Masks/wolf_mask.asm +++ b/Masks/wolf_mask.asm @@ -3,51 +3,11 @@ ; ============================================================================= -org $098F5B - AddShovelDirt: - -org $098C73 - AddRecoveredFlute: - -org $098024 - AddHitStars: - -org $1DFD5C - DiggingGameGuy_AttemptPrizeSpawn: - - -; ============================================================================= - -org $07D077 - Link_ShovelTileDetect: - -org $07F8D1 -Link_ShovelTileDetect_Long: -{ - PHB : PHK : PLB - JSR Link_ShovelTileDetect - PLB - RTL -} - -org $07802F - Player_DoSfx3: - -org $07A772 -Player_DoSfx3_Long: -{ - PHB : PHK : PLB - JSR Player_DoSfx3 - PLB - RTL -} - -print "Next address for jump in bank07: ", pc - -; ============================================================================= - org $07A3DB -LinkItem_Flute: + LinkItem_Flute: + +org $07A32C + LinkItem_Shovel: ; ============================================================================= @@ -55,19 +15,32 @@ org $07A313 LinkItem_ShovelAndFlute: { ; Play flute or use the Wolf Mask - LDA $0202 : CMP.b #$0D : BNE LinkItem_WolfMask + LDA $0202 : CMP.b #$0D : BNE .use_wolf_mask BRL LinkItem_Flute +.use_wolf_mask + JSR LinkItem_WolfMask } ; ============================================================================= -; TODO: Make sure there's no inaccessible code issues past here -; LinkItem_Shovel -org $07A32C +org $07F8E9 LinkItem_WolfMask: { - JSL LinkItem_UsingWolfMask - JSR Link_CheckNewY_ButtonPress : BCC .return + LDA $02B2 : CMP #$03 : BNE .equip + + JSR LinkItem_Shovel + +.equip + ; JSR Link_CheckNewY_ButtonPress : BCC .return + + ; joypad 1 register (AXLR|????) + ; check for R button press + LDA $F2 : CMP #$10 : BNE .return + LDA $46 : BNE .return + TSB $3A + SEC + ; LDA $F4 : AND.b #$10 : BEQ .return + LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state LDA $6C : BNE .return ; in a doorway @@ -92,6 +65,9 @@ LinkItem_WolfMask: RTS } +print "Next address for jump in bank07: ", pc + + ; ============================================================================= org $388000 @@ -121,156 +97,4 @@ WolfPalette: dw #$6565, #$7271, #$14B5, #$459B, #$3D95, #$22D0, #$567C, #$1890 dw #$7616, #$0000 -; ============================================================================= - -LinkItem_Return: -{ - RTL -} - -print pc -LinkItem_UsingWolfMask: -{ - ; Shovel item code - - BIT $3A : BVS .in_use - LDA $6C : BNE LinkItem_Return ; .BRANCH_$3A312 ; (RTS, BASICALLY) - - LDA $F2 ; load unfiltered joypad 1 register (AXLR|????) - CMP #$10 ; R button pressed? - BEQ $03 ; if yes, branch behind the jump that leads to the end and load items instead - JMP LinkItem_Return - ; JSR Link_CheckNewY_ButtonPress : BCC LinkItem_Return ;.BRANCH_$3A312 - - LDA $A320 : STA $3D - - STZ $030D - STZ $0300 - - LDA.b #$01 : STA $037A - LDA.b #$01 : TSB $50 - STZ $2E - -.in_use - - JSR HaltLinkWhenUsingItems ; $AE65 ; $3AE65 IN ROM - - LDA $67 : AND.b #$F0 : STA $67 - - DEC $3D : BMI .continue - - RTL - -.continue - - LDX $030D : INX : STX $030D - - LDA $A320, X : STA $3D - - LDA $A326, X : STA $0300 : CMP.b #$01 : BNE .BRANCH_GAMMA - - LDY.b #$02 - - PHX - - ; JSR $D077 ; $3D077 IN ROM - JSL Link_ShovelTileDetect_Long - - PLX - - LDA $04B2 : BEQ .not_flute_spot - - LDA.b #$1B : JSL Player_DoSfx3_Long - - PHX - - ; Add recovered flute (from digging). Interesting... - LDY.b #$00 - LDA.b #$36 - - JSL AddRecoveredFlute - - PLX - -.not_flute_spot - - LDA $0357 : ORA $035B : AND.b #$01 : BNE .dont_clink - - PHX - - LDY.b #$00 - LDA.b #$16 - - JSL AddHitStars - - PLX - - LDA.b #$05 : JSL Player_DoSfx2 - - BRA .finish_up - -.dont_clink - - PHX - - ; Add shovel dirt? what? I thought these were aftermath tiles - LDY.b #$00 - LDA.b #$17 - - JSL AddShovelDirt - - LDA $03FC : BEQ .digging_game_inactive - - JSL DiggingGameGuy_AttemptPrizeSpawn - -.digging_game_inactive - - PLX - - LDA.b #$12 : JSL Player_DoSfx2 - -.finish_up - - CPX.b #$03 : BNE .return - - STZ $030D - STZ $0300 - - LDA $3A : AND.b #$80 : STA $3A - - STZ $037A - - LDA $50 : AND.b #$FE : STA $50 - -.return - - RTL -} - -; ============================================================================== - -; *$3AE65-$3AE87 LOCAL -HaltLinkWhenUsingItems: -{ - 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: - - RTS -} \ No newline at end of file +; ============================================================================= \ No newline at end of file