diff --git a/Items/goldstar.asm b/Items/goldstar.asm index 277197c..d612156 100644 --- a/Items/goldstar.asm +++ b/Items/goldstar.asm @@ -28,8 +28,8 @@ TransferGFXinRAM: .morningstargfx incbin morningstar.bin } -pushpc +pushpc ; OAM Draw Pattern for spikeball gfx org $0085C4 dw $0040 @@ -55,16 +55,16 @@ pullpc HookMaskCheck: { - LDA GoldstarOrHookshot : AND.w #$00FF : CMP.w #$0002 : BNE .not_mask - LDA $0202 : AND.w #$00FF : CMP.w #$0003 : BNE .not_mask - ; morning star graphics oam tile pattern id - LDA.w $0109 : AND #$FF00 : ORA.w #$004A - RTL + LDA GoldstarOrHookshot : AND.w #$00FF : CMP.w #$0002 : BNE .not_mask + LDA $0202 : AND.w #$00FF : CMP.w #$0003 : BNE .not_mask + ; morning star graphics oam tile pattern id + LDA.w $0109 : AND #$FF00 : ORA.w #$004A + RTL .not_mask - ; return hookshot graphics oam tile pattern id - TYA : AND.w #$00FF : STA.b $0A - LDA.w $0109 : AND.w #$FF00 : ORA.b $0A - RTL + ; return hookshot graphics oam tile pattern id + TYA : AND.w #$00FF : STA.b $0A + LDA.w $0109 : AND.w #$FF00 : ORA.b $0A + RTL } ; ========================================================= @@ -74,10 +74,10 @@ HookMaskCheck: CheckForBallChain: { - LDA #$13 : STA $5D ; Set hookshot state - LDA #$FF : STA $7A ; Start the rotation Timer - JMP LinkItem_BallChain_GfxTransfer ; $D520 - RTL + LDA #$13 : STA $5D ; Set hookshot state + LDA #$FF : STA $7A ; Start the rotation Timer + JMP LinkItem_BallChain_GfxTransfer ; $D520 + RTL } ; ========================================================= @@ -91,12 +91,12 @@ pullpc ; $22D4C0 - Hooked into AncillaDraw_Hookshot @ _08BF2D BallChain_DrawOrReturn: { - LDA GoldstarOrHookshot : CMP #$02 : BEQ + - LDA #$00 : STA ($92),Y - RTL - + ; $22D4CD - LDA #$02 : STA ($92),Y + LDA GoldstarOrHookshot : CMP #$02 : BEQ + + LDA #$00 : STA ($92),Y RTL + + ; $22D4CD + LDA #$02 : STA ($92),Y + RTL } ; ========================================================= @@ -109,19 +109,19 @@ pullpc ; $22D4E0 - Hooked into Hookshot_ExtraCollisionLogic @ 08BF0C BallChain_ExtraCollisionLogic: { - TAX - LDA GoldstarOrHookshot : CMP #$02 : BNE + ; Check if using goldstar - TXA : CMP #$0A : BNE ++ - LDA #$FF : BRA ++ + TAX + LDA GoldstarOrHookshot : CMP #$02 : BNE + ; Check if using goldstar + TXA : CMP #$0A : BNE ++ + LDA #$FF : BRA ++ + ; $22D4F2 - TXA + TXA ++ ; $22D4F3 - CMP #$FF : BEQ +++ - ; AncillaDraw_Hookshot - JSR Ancilla_SetOAM_XY, skips hookshot char - JML $08BF10 + CMP #$FF : BEQ +++ + ; AncillaDraw_Hookshot - JSR Ancilla_SetOAM_XY, skips hookshot char + JML $08BF10 +++ ; $22D4FB - JML $08BF32 ; AncillaDraw_Hookshot_skip + JML $08BF32 ; AncillaDraw_Hookshot_skip } ; ========================================================= @@ -239,11 +239,11 @@ pullpc ; Sets Link state to 0x00 and resets the hookshot timer BallChain_ResetTimer: { - LDA GoldstarOrHookshot : CMP #$02 : BNE .dont_clear_timer - STZ $7A ; Clear the timer + LDA GoldstarOrHookshot : CMP #$02 : BNE .dont_clear_timer + STZ $7A ; Clear the timer .dont_clear_timer - STZ $5D ; Return to LinkState_Default - RTL + STZ $5D ; Return to LinkState_Default + RTL } ; ========================================================= @@ -260,16 +260,16 @@ pullpc ; Natively NOPs out the bytes 08BFDA - 08BFEA BallChain_DrawChainOrHookshot: { - LDA GoldstarOrHookshot : CMP #$02 : BEQ + - LDA #$19 : STA ($90),Y - JSR BallChainOrHookshot_Modifier ; $D820 - ORA.b #$02 - RTL - + ; 22D812 - LDA #$0E : STA ($90),Y + LDA GoldstarOrHookshot : CMP #$02 : BEQ + + LDA #$19 : STA ($90),Y JSR BallChainOrHookshot_Modifier ; $D820 - ORA.b #$04 ; 02 is gray color + ORA.b #$02 RTL + + ; 22D812 + LDA #$0E : STA ($90),Y + JSR BallChainOrHookshot_Modifier ; $D820 + ORA.b #$04 ; 02 is gray color + RTL } ; 22D820 @@ -299,10 +299,10 @@ pullpc Goldstar_SetChainProperties: { LDA GoldstarOrHookshot : CMP #$02 : BEQ .ball_chain - LDA HookshotSpriteData.prop, X - ORA.b #$02 : ORA.b $65 - RTL -.ball_chain ; 22D860 + LDA HookshotSpriteData.prop, X + ORA.b #$02 : ORA.b $65 + RTL + .ball_chain ; 22D860 LDA HookshotSpriteData.prop, X ORA.b #$02 ORA.b $65 @@ -320,20 +320,20 @@ pullpc ; 22D880 Link_OAM_Actually: { - REP #$20 - LDA.w $0202 : AND.w #$00FF : CMP.w #$0003 : BEQ + + REP #$20 + LDA.w $0202 : AND.w #$00FF : CMP.w #$0003 : BEQ + LDA $839B,Y ; LinkOAM_WeaponTiles RTL + ; $22D892 - LDA $839B,Y : CMP.w #$221A : BEQ ++ + LDA $839B,Y : CMP.w #$221A : BEQ ++ RTL ++ ; $22D89B - LDA GoldstarOrHookshot : AND.w #$00FF : CMP.w #$0002 : BEQ +++ + LDA GoldstarOrHookshot : AND.w #$00FF : CMP.w #$0002 : BEQ +++ LDA $839B,Y ; LinkOAM_WeaponTiles RTL +++ ; $22D8AA - LDA.w #$241E - RTL + LDA.w #$241E + RTL } ; ========================================================= @@ -349,48 +349,48 @@ pullpc ; 22D900 - AncillaDraw_HookshotChain_next_object @ 08BFB0 HookshotChain_AncillaDraw: { - REP #$20 - ; Ball Chain Timer - LDA $7A : AND #$00FF : CMP #$0001 : BNE + ; $22D914 - LDA Hookshot_box_size_y, X - JML $08BFB5 ; AncillaDraw_HookshotChain + REP #$20 + ; Ball Chain Timer + LDA $7A : AND #$00FF : CMP #$0001 : BNE + ; $22D914 + LDA Hookshot_box_size_y, X + JML $08BFB5 ; AncillaDraw_HookshotChain + ; $22D914 - CMP #$0000 : BNE ++ ; $22D921 - LDA Hookshot_box_size_y, X - JML $08BFB5 ; AncillaDraw_HookshotChain + CMP #$0000 : BNE ++ ; $22D921 + LDA Hookshot_box_size_y, X + JML $08BFB5 ; AncillaDraw_HookshotChain ++ - JSR CheckForSomariaBlock ; CheckAndClearAncillaId has set the timer in A + JSR CheckForSomariaBlock ; CheckAndClearAncillaId has set the timer in A - SEP #$30 - ; Compare rotation progress - CLC : CMP #$FB : BNE +++ - LDA #$06 : STA $2143 + SEP #$30 + ; Compare rotation progress + CLC : CMP #$FB : BNE +++ + LDA #$06 : STA $2143 +++ ; 22D930 - BCC ++++ - JMP StartChainRotation ; $D960 + BCC ++++ + JMP StartChainRotation ; $D960 ++++ ; 22D935 - ; Compare rotation progress - CLC : CMP #$AB : BNE +++++ - LDA #$06 : STA $2143 + ; Compare rotation progress + CLC : CMP #$AB : BNE +++++ + LDA #$06 : STA $2143 +++++ ;22D93F - ; Compare rotation progress - CLC : CMP #$5B : BNE ++++++ - LDA #$06 : STA $2143 + ; Compare rotation progress + CLC : CMP #$5B : BNE ++++++ + LDA #$06 : STA $2143 ++++++ ;22D949 - CLC : CMP #$E6 : BCC +++++++ - JMP Routine_22D9A0 ; $D9A0 + CLC : CMP #$E6 : BCC +++++++ + JMP Routine_22D9A0 ; $D9A0 +++++++ ; 22D951 - CLC : CMP #$05 : BCC ++++++++ - LDA $F8 : CMP.b #$40 : BEQ + - JMP Routine_22D9A0 ; $D9A0 + CLC : CMP #$05 : BCC ++++++++ + LDA $F8 : CMP.b #$40 : BEQ + + JMP Routine_22D9A0 ; $D9A0 ++++++++ ; 22D959 - JMP Routine_22DBD0 ; $DBD0 + JMP Routine_22DBD0 ; $DBD0 } ; ========================================================= @@ -400,15 +400,15 @@ HookshotChain_AncillaDraw: ; 22D960 StartChainRotation: { - REP #$20 - LDA #$0000 : EOR #$FFFF : INC : CLC - JSR Goldstar_GetPlayerPosY : STA $7F5810 ; en center y-pos - JSR Goldstar_GetPlayerPosX : STA $7F580E ; en center x-pos - SEP #$30 - JSR Routine_22DAD0 : STA $7F5803 ; Set rotation state - DEC $7A ; Ball Chain Timer - SEP #$20 - JML $08BFD0 ; AncillaDraw_HookshotChain before Hookshot_CheckProximityToLink + REP #$20 + LDA #$0000 : EOR #$FFFF : INC : CLC + JSR Goldstar_GetPlayerPosY : STA $7F5810 ; en center y-pos + JSR Goldstar_GetPlayerPosX : STA $7F580E ; en center x-pos + SEP #$30 + JSR Routine_22DAD0 : STA $7F5803 ; Set rotation state + DEC $7A ; Ball Chain Timer + SEP #$20 + JML $08BFD0 ; AncillaDraw_HookshotChain before Hookshot_CheckProximityToLink } ; ========================================================= @@ -423,49 +423,49 @@ endstruct ; $22D9A0 Routine_22D9A0: { - LDA $7F5803 : CLC : ADC #$02 : AND #$3F : CPY #$04 : BNE + - STA $7F5803 : CLC : ADC #$02 + LDA $7F5803 : CLC : ADC #$02 : AND #$3F : CPY #$04 : BNE + + STA $7F5803 : CLC : ADC #$02 + ; 22D9B6 - AND #$3F : PHX : TAX + AND #$3F : PHX : TAX - LDA Ancilla_GetRadialProjection.multiplier_y, X - STA $4202 : JSR Routine_22DAA0 : STA $4203 + LDA Ancilla_GetRadialProjection.multiplier_y, X + STA $4202 : JSR Routine_22DAA0 : STA $4203 - ; Sign of the projected distance. - LDA Ancilla_GetRadialProjection.meta_sign_y, X - STA $02 : STZ $03 + ; Sign of the projected distance. + LDA Ancilla_GetRadialProjection.meta_sign_y, X + STA $02 : STZ $03 - ; Get Y of projected distance - LDA $4216 : ASL - LDA $4217 : ADC #$00 : STA $00 : STZ $01 + ; Get Y of projected distance + LDA $4216 : ASL + LDA $4217 : ADC #$00 : STA $00 : STZ $01 - LDA Ancilla_GetRadialProjection.multiplier_x, X - STA $4202 : JSR Routine_22DAA0 : STA $4203 + LDA Ancilla_GetRadialProjection.multiplier_x, X + STA $4202 : JSR Routine_22DAA0 : STA $4203 - ; Sign of the projected distance. - LDA Ancilla_GetRadialProjection.meta_sign_x, X - STA $06 : STZ $07 + ; Sign of the projected distance. + LDA Ancilla_GetRadialProjection.meta_sign_x, X + STA $06 : STZ $07 - ; Get X of projected distance - LDA $4216 : ASL - LDA $4217 : ADC #$00 : STA $04 : STZ $05 + ; Get X of projected distance + LDA $4216 : ASL + LDA $4217 : ADC #$00 : STA $04 : STZ $05 - PHY - JSL $08DA17 ; Sparkle_PrepOAMFromRadial - PLY : PLX - CPY #$04 : BNE ++ ; $22DA14 - JSR Routine_22DA70 ; $DA70 - NOP #7 - JSR BallChain_SpinAncilla ; $22DB90 + PHY + JSL $08DA17 ; Sparkle_PrepOAMFromRadial + PLY : PLX + CPY #$04 : BNE ++ ; $22DA14 + JSR Routine_22DA70 ; $DA70 + NOP #7 + JSR BallChain_SpinAncilla ; $22DB90 ++ ;22DA14 - NOP #3 - LDA #$F0 : CPY #$1C : BNE +++ ; $22DA1F - STA $00 + NOP #3 + LDA #$F0 : CPY #$1C : BNE +++ ; $22DA1F + STA $00 +++ ; 22DA1F - DEC $7A ; Ball Chain Timer - SEP #$20 - JML $08BFD0 ; AncillaDraw_HookshotChain before Hookshot_CheckProximityToLink + DEC $7A ; Ball Chain Timer + SEP #$20 + JML $08BFD0 ; AncillaDraw_HookshotChain before Hookshot_CheckProximityToLink } ; ========================================================= @@ -473,15 +473,15 @@ Routine_22D9A0: Goldstar_GetPlayerPosY: { - ADC $20 : CLC : ADC #$000C - CPX #$00 : BNE + - SEC : SBC #$000C - RTS - + ; $22DA3F - CPX #$02 : BNE ++ - CLC : ADC #$000C - ++ ; $22DA47 + ADC $20 : CLC : ADC #$000C + CPX #$00 : BNE + + SEC : SBC #$000C RTS + + ; $22DA3F + CPX #$02 : BNE ++ + CLC : ADC #$000C + ++ ; $22DA47 + RTS } ; ========================================================= @@ -489,15 +489,15 @@ Goldstar_GetPlayerPosY: Goldstar_GetPlayerPosX: { - LDA $22 : CLC : ADC #$0008 - CPX #$04 : BNE + ; $22DA5F - SEC : SBC #$000C - RTS - + ; $22DA5F - CPX #$06 : BNE ++ ; $22DA67 - CLC : ADC #$000C - ++ ;$22DA67 + LDA $22 : CLC : ADC #$0008 + CPX #$04 : BNE + ; $22DA5F + SEC : SBC #$000C RTS + + ; $22DA5F + CPX #$06 : BNE ++ ; $22DA67 + CLC : ADC #$000C + ++ ;$22DA67 + RTS } ; ========================================================= @@ -505,14 +505,14 @@ Goldstar_GetPlayerPosX: Routine_22DA70: { - LDY #$00 : LDA $02 ; set sign of projected distance X - STA ($90),Y + LDY #$00 : LDA $02 ; set sign of projected distance X + STA ($90),Y - LDY #$01 : LDA $00 ; set sign of projected distance y - STA ($90),Y + LDY #$01 : LDA $00 ; set sign of projected distance y + STA ($90),Y - LDY #$04 - RTS + LDY #$04 + RTS } ; ========================================================= @@ -520,16 +520,15 @@ Routine_22DA70: Routine_22DA80: { - LDA $7EF34A : CMP #$02 - BNE + ; $22DA89 + LDA $7EF34A : CMP #$02 : BNE + ; $22DA89 RTL + - CMP #$01 : BEQ ++ ; $22DA93 + CMP #$01 : BEQ ++ ; $22DA93 LDA $8580,Y : STA [$00] RTL ++ - LDA #$8F01 : TSC : SBC ($7E,S),Y - RTL + LDA #$8F01 : TSC : SBC ($7E,S),Y + RTL } ; ========================================================= @@ -538,28 +537,28 @@ Routine_22DA80: Routine_22DAA0: { CPY #$04 : BNE .alpha - JMP Routine_22DB50 ; $DB50 -.alpha ; 22DAA7 + JMP Routine_22DB50 ; $DB50 + .alpha ; 22DAA7 CPY #$08 : BNE + - LDA #$00 - RTS -+ ; 22DAAE + LDA #$00 + RTS + + ; 22DAAE CPY #$0C : BNE ++ - LDA #$04 - RTS -++ ; 22DAB5 + LDA #$04 + RTS + ++ ; 22DAB5 CPY #$10 : BNE +++ - LDA #$08 - RTS -+++ ; 22DABC + LDA #$08 + RTS + +++ ; 22DABC CPY #$14 : BNE ++++ - LDA #$0C - RTS -++++ ; 22DAC3 + LDA #$0C + RTS + ++++ ; 22DAC3 CPY #$18 : BNE +++++ ; $22DACA - LDA #$10 - RTS -+++++ ; 22DACA + LDA #$10 + RTS + +++++ ; 22DACA LDA #$02 RTS } @@ -569,20 +568,20 @@ Routine_22DAA0: Routine_22DAD0: { - CPX #$00 : BNE + ; $22DAD7 - LDA #$2E - RTS - + ; 22DAD7 - CPX #$02 : BNE ++ ; $22DADE - LDA #$13 - RTS - ++ ; 22DADE - CPX #$04 : BNE +++ ; $22DAE5 - LDA #$2B - RTS - +++ ; 22DAE5 - LDA #$09 + CPX #$00 : BNE + ; $22DAD7 + LDA #$2E RTS + + ; 22DAD7 + CPX #$02 : BNE ++ ; $22DADE + LDA #$13 + RTS + ++ ; 22DADE + CPX #$04 : BNE +++ ; $22DAE5 + LDA #$2B + RTS + +++ ; 22DAE5 + LDA #$09 + RTS } ; ========================================================= @@ -598,18 +597,18 @@ pullpc ; Hookshot box size BallChain_TryAncillaDraw: { - ; Ball Chain timer should be $FF here on first run - LDA $7A : AND #$00FF : CMP #$0000 : BEQ + - CMP #$0001 : BEQ + - SEP #$20 - JML HookshotChain_AncillaDraw ; $22D900 +; Ball Chain timer should be $FF here on first run + LDA $7A : AND #$00FF : CMP #$0000 : BEQ + + CMP #$0001 : BEQ + + SEP #$20 + JML HookshotChain_AncillaDraw ; $22D900 + ; $22DB15 - LDA Hookshot_box_size_y,X : BNE ++ - JML $08BF99 ; AncillaDraw_HookshotChain + LDA Hookshot_box_size_y,X : BNE ++ + JML $08BF99 ; AncillaDraw_HookshotChain ++ ; $22DB1F - JML $08BFA1 ; Resume AncillaDraw_HookshotChain + JML $08BFA1 ; Resume AncillaDraw_HookshotChain } ; ========================================================= @@ -623,13 +622,13 @@ pullpc ; Hooks into Hookshot_CheckProximityToLink @ 08F7DC BallChain_CheckProximityToLink: { - REP #$20 - ; Ball Chain Timer - LDA $7A : AND #$00FF : CMP #$0000 : BNE + ; $22DB44 - LDA.b $00 - JML $08F7E0 ; Hookshot_CheckProximityToLink continue + REP #$20 + ; Ball Chain Timer + LDA $7A : AND #$00FF : CMP #$0000 : BNE + ; $22DB44 + LDA.b $00 + JML $08F7E0 ; Hookshot_CheckProximityToLink continue + ; 22DB44 - JML $08F820 ; Hookshot_CheckProximityToLink too_far + JML $08F820 ; Hookshot_CheckProximityToLink too_far } ; ========================================================= @@ -637,18 +636,18 @@ BallChain_CheckProximityToLink: Routine_22DB50: { - ; Ball Chain Timer - LDA $7A : CLC : CMP #$EA : BCC + + ; Ball Chain Timer + LDA $7A : CLC : CMP #$EA : BCC + LDA #$08 RTS + ; 22DB5A - CLC : CMP #$16 : BCC ++ + CLC : CMP #$16 : BCC ++ LDA #$14 RTS ++ ; 22DB62 - CLC - LDA #$08 - RTS + CLC + LDA #$08 + RTS } ; ========================================================= @@ -656,18 +655,18 @@ Routine_22DB50: BallChain_SpinAncilla: { - REP #$20 - LDA $00 : CLC : ADC $E8 : CPX #$02 : BNE .alpha - CLC : ADC #$0010 + REP #$20 + LDA $00 : CLC : ADC $E8 : CPX #$02 : BNE .alpha + CLC : ADC #$0010 .alpha - STA $04 - LDA $02 : CLC : ADC $E2 : STA $06 - SEP #$20 - LDA $04 : STA $0BFE : LDA $05 : STA $0C12 ; Ancilla4 Y - LDA $06 : STA $0C08 : LDA $07 : STA $0C1C ; Ancilla4 X - STZ $0C76 ; Ancilla4 direction - SEP #$30 - RTS + STA $04 + LDA $02 : CLC : ADC $E2 : STA $06 + SEP #$20 + LDA $04 : STA $0BFE : LDA $05 : STA $0C12 ; Ancilla4 Y + LDA $06 : STA $0C08 : LDA $07 : STA $0C1C ; Ancilla4 X + STZ $0C76 ; Ancilla4 direction + SEP #$30 + RTS } ; ========================================================= @@ -682,42 +681,42 @@ endstruct ; 22DBD0 Routine_22DBD0: { - STZ $7A ; Ball Chain Timer - JSR ClearAncillaVariables ; $DC70 - ; Check Link direction - LDA $2F : CMP #$00 : BNE .not_up - LDA #$C0 : STA $0C26 ; Ancilla4 Y Axis Velocity + STZ $7A ; Ball Chain Timer + JSR ClearAncillaVariables ; $DC70 + ; Check Link direction + LDA $2F : CMP #$00 : BNE .not_up + LDA #$C0 : STA $0C26 ; Ancilla4 Y Axis Velocity .not_up - CMP #$02 : BNE .not_down - LDA #$40 : STA $0C26 ; Ancilla4 Y Axis Velocity + CMP #$02 : BNE .not_down + LDA #$40 : STA $0C26 ; Ancilla4 Y Axis Velocity .not_down - CMP #$04 : BNE .not_left - LDA #$C0 : STA $0C30 ; Ancilla4 X Axis Velocity + CMP #$04 : BNE .not_left + LDA #$C0 : STA $0C30 ; Ancilla4 X Axis Velocity .not_left - CMP #$06 : BNE .not_right - LDA #$40 : STA $0C30 ; Ancilla4 X Axis Velocity + CMP #$06 : BNE .not_right + LDA #$40 : STA $0C30 ; Ancilla4 X Axis Velocity .not_right - SEP #$20 - STZ $0C58 ; Ancilla4 Misc - STZ $0C62 ; Ancilla4 hookshoot extension - STZ $0C54 ; Ancilla0 Misc - REP #$20 + SEP #$20 + STZ $0C58 ; Ancilla4 Misc + STZ $0C62 ; Ancilla4 hookshoot extension + STZ $0C54 ; Ancilla0 Misc + REP #$20 - LDA $2F : LSR : STA $0C76 - ASL : TAX + LDA $2F : LSR : STA $0C76 + ASL : TAX - LDA $20 : CLC : ADC AncillaAdd_HookshotData.offset_y, X - STA $00 : STA $04 + LDA $20 : CLC : ADC AncillaAdd_HookshotData.offset_y, X + STA $00 : STA $04 - LDA $22 : CLC : ADC AncillaAdd_HookshotData.offset_x, X - STA $02 : STA $06 + LDA $22 : CLC : ADC AncillaAdd_HookshotData.offset_x, X + STA $02 : STA $06 - SEP #$30 - LDA $00 : STA $0BFE : LDA $01 : STA $0C12 ; Ancilla4 Y - LDA $02 : STA $0C08 : LDA $03 : STA $0C1C ; Ancilla4 X - LDX #$06 : LDA Hookshot_box_size_y,X ; hookshot box size y table - SEP #$20 - JML $08BFD0 ; AncillaDraw_HookshotChain before Hookshot_CheckProximityToLink + SEP #$30 + LDA $00 : STA $0BFE : LDA $01 : STA $0C12 ; Ancilla4 Y + LDA $02 : STA $0C08 : LDA $03 : STA $0C1C ; Ancilla4 X + LDX #$06 : LDA Hookshot_box_size_y,X ; hookshot box size y table + SEP #$20 + JML $08BFD0 ; AncillaDraw_HookshotChain before Hookshot_CheckProximityToLink } ; ========================================================= @@ -732,9 +731,9 @@ HookshotOrBallChain_Extending_ignore_collision: { ; Ball Chain Timer LDA $7A : CMP #$00 : BNE + - JSL Hookshot_CheckTileCollision ; $07D576 - JML $08BE01 ; Hookshot_Extending_ignore_collision continue -+ ; 22DC5E + JSL Hookshot_CheckTileCollision ; $07D576 + JML $08BE01 ; Hookshot_Extending_ignore_collision continue + + ; 22DC5E JML $08BEDC ; AncillaDraw_Hookshot } @@ -743,13 +742,13 @@ HookshotOrBallChain_Extending_ignore_collision: ClearAncillaVariables: { - REP #$30 - LDA #$0000 - STA $7F580E ; en center x-pos - STA $7F5810 ; en center y-pos - STA $7F5803 ; rotation state - SEP #$30 - RTS + REP #$30 + LDA #$0000 + STA $7F580E ; en center x-pos + STA $7F5810 ; en center y-pos + STA $7F5803 ; rotation state + SEP #$30 + RTS } ; ========================================================= @@ -764,14 +763,14 @@ pullpc ; Hooked into Ancilla1F_Hookshot @ 08BD7F before Ancilla_SFX2_Pan BallChain_SFX_Control: { - STA $0C68,X - ; Ball Chain Timer - LDA $7A : CMP #$00 : BNE + ; $22DC9C - LDA.b #$0A ; SFX2.0A - RTL - + ;; 22DC9C - LDA.b #$07 ; Clear SFX2 + STA $0C68,X + ; Ball Chain Timer + LDA $7A : CMP #$00 : BNE + ; $22DC9C + LDA.b #$0A ; SFX2.0A RTL + + ;; 22DC9C + LDA.b #$07 ; Clear SFX2 + RTL } ; ========================================================= @@ -780,12 +779,12 @@ BallChain_SFX_Control: Routine_22DCA0: { - LDA $7A : CMP #$00 : BNE + ;$A2DCAB - LDA $0DBB5B,X - RTL + LDA $7A : CMP #$00 : BNE + ;$A2DCAB + LDA $0DBB5B,X + RTL + - LDA #$00 - RTL + LDA #$00 + RTL } ; ========================================================= @@ -860,13 +859,13 @@ CheckForSomariaBlock: ; 22E5F0 doesnt execute? Routine_22E5F0: { - LDA $7EF33C : BNE + ;$22E5F7 - RTL + LDA $7EF33C : BNE + ;$22E5F7 + RTL + ; 22E5F7 - LDA $4D : BEQ ++ ; $22E5FC - RTL + LDA $4D : BEQ ++ ; $22E5FC + RTL ++ ; 22E5FC - JMP $E108 + JMP $E108 } ; ========================================================= @@ -908,14 +907,14 @@ CheckForSomariaBlast: BallChain_StartAnimationFlag: { - ; Restore vanilla code - LDA #$01 : STA $037B - ; Check if we are rotating the goldstar - LDA $037A : CMP #$04 : BNE + - ; Animation flag, prevent menu from opening - LDA #$01 : STA $0112 + ; Restore vanilla code + LDA #$01 : STA $037B + ; Check if we are rotating the goldstar + LDA $037A : CMP #$04 : BNE + + ; Animation flag, prevent menu from opening + LDA #$01 : STA $0112 + - RTL + RTL } ; ========================================================= @@ -930,11 +929,11 @@ pullpc ; Hooked inside LinkState_Hookshotting @ 07AB95 BallChain_Finish: { - STZ.w $0300 : STZ.w $037B ; Restore vanilla - LDA $037A : CMP #$04 : BNE .not_done ; We are hookshotting + STZ.w $0300 : STZ.w $037B ; Restore vanilla + LDA $037A : CMP #$04 : BNE .not_done ; We are hookshotting STZ $0112 ; Clear animation flag .not_done - RTL + RTL } ; ========================================================= @@ -969,60 +968,60 @@ Hookshot_Init: Goldstar_Begin: { - JSL CheckForBallChain - JSL Hookshot_Init - JSL BallChain_StartAnimationFlag - LDY.b #$03 : LDA.b #$1F ; ANCILLA 1F - JSL $099B10 ; AncillaAdd_Hookshot - JSL TransferGFXinRAM - RTL + JSL CheckForBallChain + JSL Hookshot_Init + JSL BallChain_StartAnimationFlag + LDY.b #$03 : LDA.b #$1F ; ANCILLA 1F + JSL $099B10 ; AncillaAdd_Hookshot + JSL TransferGFXinRAM + RTL } ; ========================================================= CheckForSwitchToGoldstar: { - %CheckNewR_ButtonPress() : BEQ .continue - LDA GoldstarOrHookshot : CMP #$01 : BEQ .set_hookshot - LDA #$01 : STA GoldstarOrHookshot - JMP .continue - .set_hookshot: - LDA #$02 : STA GoldstarOrHookshot + %CheckNewR_ButtonPress() : BEQ .continue + LDA GoldstarOrHookshot : CMP #$01 : BEQ .set_hookshot + LDA #$01 : STA GoldstarOrHookshot + JMP .continue + .set_hookshot: + LDA #$02 : STA GoldstarOrHookshot .continue: - LDA.b $3A : AND.b #$40 ; Restore vanilla code - RTL + LDA.b $3A : AND.b #$40 ; Restore vanilla code + RTL } ; ========================================================= BeginGoldstarOrHookshot: { - LDA GoldstarOrHookshot : CMP #$02 : BEQ .begin_goldstar - JMP .return + LDA GoldstarOrHookshot : CMP #$02 : BEQ .begin_goldstar + JMP .return .begin_goldstar: - JSL Goldstar_Begin - RTL - + JSL Goldstar_Begin + RTL + .return - JSL Hookshot_Init - LDA #$13 : STA $5D ; Set hookshot state - LDA #$01 : STA.w $037B - LDY.b #$03 - LDA.b #$1F ; ANCILLA 1F - JSL $099B10 ; AncillaAdd_Hookshot - RTL + JSL Hookshot_Init + LDA #$13 : STA $5D ; Set hookshot state + LDA #$01 : STA.w $037B + LDY.b #$03 + LDA.b #$1F ; ANCILLA 1F + JSL $099B10 ; AncillaAdd_Hookshot + RTL } ; ========================================================= MaybeUploadBirdGraphicsToOam: { - LDY $037A : CPY #$0104 : BEQ .here - LDY #$40E0 : STY $2116 - JML $008B30 + LDY $037A : CPY #$0104 : BEQ .here + LDY #$40E0 : STY $2116 + JML $008B30 ; NMI_DoUpdates .here - JML $008B50 + JML $008B50 ; NMI_DoUpdates.no_update_swagduck } ApplyGoldstarDamageClass: @@ -1035,10 +1034,10 @@ ApplyGoldstarDamageClass: PLA LDA #$02 JMP .apply -.return + .return PLA .apply - JSL $06ED25 ; .apply + JSL $06ED25 ; Ancilla_CheckDamageToSprite_preset.apply RTL }