diff --git a/Items/bottle_net.asm b/Items/bottle_net.asm index e51420f..20a66e5 100644 --- a/Items/bottle_net.asm +++ b/Items/bottle_net.asm @@ -1,5 +1,5 @@ ; ============================================================================= -; Bottle Net Code +; Bottle Net Code ; ============================================================================= !BottleFlag = $0AA6 @@ -12,26 +12,26 @@ PlayerItem_ReleaseBee = $1EDCCF org $07A15B LinkItem_NewBottle: -{ +{ ; Check if we have a bottle or not LDA $7EF34F : DEC A : TAX LDA $7EF35C, X : BEQ .exit - ; Check if the bottle is empty + ; Check if the bottle is empty CMP.b #$03 : BCC .empty_bottle ; Confirm we aren't currently catching LDA $030D : BNE .empty_bottle - ; If no, prepare and call the LinkItem_Bottles routine + ; If no, prepare and call the LinkItem_Bottles routine JSR LinkItem_Bottles BRA .exit .empty_bottle ; Otherwise, prepare and call the LinkItem_BugCatchingNet routine JSR LinkItem_CatchBottle - -.exit + +.exit RTS } @@ -57,30 +57,30 @@ pose_offset: ; *$3AFF8-$3B072 LOCAL LinkItem_CatchBottle: -{ +{ BIT $3A : BVS .y_press - + LDA $6C : BNE .bottle_exit ; (RTS) - + JSR Link_CheckNewY_ButtonPress : BCC .bottle_exit ; (RTS) LDA $2F : LSR A : TAY LDX pose_offset, Y LDA.w pose_id, X : STA $0300 LDA.b #$03 : STA $3D - + STZ $030D, X - + LDA.b #$10 : STA $037A LDA.b #$01 : TSB $50 - + STZ $2E - + LDA.b #$32 : JSR Player_DoSfx2 .y_press: JSR $AE65 ; HaltLinkWhenUsingItems - + LDA $67 : AND.b #$F0 : STA $67 DEC $3D : BPL .bottle_exit LDX $030D : INX : STX $030D @@ -89,13 +89,13 @@ LinkItem_CatchBottle: LDA.w pose_offset, Y : CLC : ADC $030D : TAY LDA.w pose_id, Y : STA $0300 CPX.b #$0A : BNE .bottle_exit - + STZ $030D STZ $0300 - + LDA $3A : AND.b #$80 : STA $3A STZ $037A - + LDA $50 : AND.b #$FE : STA $50 LDA.b #$80 : STA $44 : STA $45 @@ -109,12 +109,12 @@ print " LinkItem_Bottles ", pc LinkItem_Bottles: { JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS) - + LDA.b $3A : AND.b #$BF : STA.b $3A - + ; Check if we have a bottle or not LDA.l $7EF34F : DEC A : TAX - + LDA.l $7EF35C, X : BEQ NetExit ; (RTS) CMP.b #$03 : BCC .LinkItem_UselessBottle CMP.b #$03 : BEQ .LinkItem_RedPotion @@ -142,18 +142,18 @@ LinkItem_Bottles: LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red .LinkItem_UselessBottle - BRL LinkGoBeep ; BRL $07A955 Investigate + BRL LinkGoBeep ; BRL $07A955 Investigate .can_drink_red LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301 - + LDA.b #$04 : STA.b $11 LDA.b $10 : STA.w $010C LDA.b #$0E : STA.b $10 LDA.b #$07 : STA.w $0208 - + JSL RebuildHUD_long - + RTS .LinkItem_GreenPotion @@ -167,7 +167,7 @@ LinkItem_Bottles: ; submodule ???? LDA.b #$08 : STA.b $11 LDA.b $10 : STA.w $010C - + ; Go to text mode LDA.b #$0E : STA.b $10 LDA.b #$07 : STA.w $0208 @@ -182,15 +182,15 @@ LinkItem_Bottles: .useBluePotion LDA.b #$02 : STA $7EF35C, X : STZ $0301 - - ; more submodule code + + ; more submodule code LDA.b #$09 : STA.b $11 LDA.b $10 : STA.w $010C ; Go to text mode (?) LDA.b #$0E : STA.b $10 LDA.b #$07 : STA.w $0208 - + JSL RebuildHUD_long BRA .bottle_exit @@ -230,4 +230,4 @@ Bottle_DrinkMilk: } print "End of Items/bottle_net.asm ", pc -pushpc \ No newline at end of file +pushpc diff --git a/Items/fishing_rod.asm b/Items/fishing_rod.asm index 651a2d2..a958632 100644 --- a/Items/fishing_rod.asm +++ b/Items/fishing_rod.asm @@ -34,10 +34,10 @@ LinkItem_FishingRodAndPortalRod: JSR LinkItem_PortalRod ++ LDA.b $F6 - BIT.b #$20 : BNE .left ; pressed left + BIT.b #$20 : BNE .left ; pressed left BIT.b #$10 : BNE .right ; pressed right RTS - + ; Swap the ram variable FishingOrPortalRod based on left or right ; 00 = fishing rod, 01 = portal rod .left @@ -65,7 +65,7 @@ LinkItem_FishingRod: BIT.b $3A : BVS .holding_y LDA.b $6C : BNE FishingRodExit JSR CheckYButtonPress : BCC FishingRodExit - + LDA.b $67 : AND.b #$F0 : STA.b $67 JSL FishingSwapCaneBlockHammerGfx @@ -218,7 +218,7 @@ CheckYButtonPress: BIT.b $3A : BVS .fail LDA.b $46 : BNE .fail LDA.b $F4 : AND.b #$40 : BEQ .fail - TSB.b $3A + TSB.b $3A SEC RTS @@ -424,7 +424,7 @@ Sprite_Floater: BCS .no_bounce LDA.w $0E90, X : BNE .not_water_tile_last - INC.w $0E90, X + INC.w $0E90, X JSL Sprite_CheckTileCollision LDA.w $0FA5 CMP.b #$08 : BEQ .water_tile_last @@ -518,4 +518,4 @@ DismissRodFromMenu: RTL } -print "End of Items/fishing_rod.asm ", pc \ No newline at end of file +print "End of Items/fishing_rod.asm ", pc diff --git a/Masks/minish_form.asm b/Masks/minish_form.asm index 540d979..d93eed0 100644 --- a/Masks/minish_form.asm +++ b/Masks/minish_form.asm @@ -1,6 +1,6 @@ ; ========================================================= ; Minish Form Link -; +; ; Reacts to Tile ID 64 to transform into Minish Link ; ========================================================= @@ -41,7 +41,7 @@ LinkState_CheckForMinishForm: ; Check if the value in A (from $0202) is GTE to $16. CMP.b #$17 : BCS .continue - + LDA.b #$3C : STA.w $012E ; Error beep JMP .return @@ -54,7 +54,7 @@ LinkState_CheckForMinishForm: .transform %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 BRA .return @@ -63,7 +63,7 @@ LinkState_CheckForMinishForm: %ResetToLinkGraphics() .return - + REP #$30 RTS } @@ -74,7 +74,7 @@ LinkState_CheckMinishTile: { LDA $02B2 : BEQ .blocked ; no form CMP.w #$0007 : BEQ .allowed ; moosh can fly over - CMP.w #$0005 : BNE .blocked ; not minish + CMP.w #$0005 : BNE .blocked ; not minish .allowed LDA $0A : TSB $0343 RTS diff --git a/Sprites/Bosses/lanmola.asm b/Sprites/Bosses/lanmola.asm index 56cc6b9..a96d611 100644 --- a/Sprites/Bosses/lanmola.asm +++ b/Sprites/Bosses/lanmola.asm @@ -47,32 +47,32 @@ Lanmola_FinishInitialization: PHB : PHK : PLB LDA.l .starting_delay, X : STA $0DF0, X - + LDA.b #$FF : STA $0F70, X - + PHX - + LDY.b #$3F - + LDA $7EEA00, X : TAX ;.sprite_regions - + LDA.b #$FF .reset_extended_sprites STA $7FFE00, X - + INX - + DEY : BPL .reset_extended_sprites - + PLX - + LDA.b #$07 : STA $7FF81E, X JSL Sprite_Lanmola_Init_DataLONG PLB - + RTL .starting_delay @@ -84,11 +84,11 @@ Lanmola_FinishInitialization: Sprite_Lanmola: { ;JSR Sprite2_CheckIfActivePermissive - + LDA $0D80, X - + JSL UseImplicitRegIndexedLocalJumpTable - + dw Lanmola_Wait ;0x00 dw Lanmola_Mound ;0x01 dw Lanmola_Fly ;0x02 @@ -105,14 +105,14 @@ Lanmola_Wait: ;0x00 LDA $0DF0, X : BNE .delay ; ORA $0F00, X : LDA.b #$7F : STA $0DF0, X - + INC $0D80, X - + ;Play rumbling sound LDA.b #$35 : JSL Sound_SetSfx2PanLong - + .delay - + RTS } @@ -126,37 +126,37 @@ Lanmola_Mound: ;0x01 LDA $0DF0, X : BNE .return JSL Lanmola_SpawnShrapnel - + LDA.b #$13 : STA $012D TXY JSL GetRandomInt : AND.b #$07 : TAX LDA $7EEAA8, X : STA $0DA0, Y ; Get random X pos to have the lanmola fly to. ;.randXPos - + JSL GetRandomInt : AND.b #$07 : TAX LDA $7EEAB0, X : STA $0DB0, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos TYX - + INC $0D80, X - + LDA.b #$18 : STA $0F80, X - + STZ $0EC0, X STZ $0ED0, X - + ; ALTERNATE ENTRY POINT .Lanmola_SetScatterSandPosition LDA.w SprXH, X : STA $0DC0, X LDA.w SprYH, X : STA $0EB0, X - + LDA.w SprX, X : STA $0DE0, X LDA.w SprY, X : STA $0E70, X - + LDA.b #$4A : STA $0E00, X - + .return - + RTS } @@ -170,31 +170,31 @@ Lanmola_Fly: ;0x02 JSR Sprite2_CheckDamage JSR Sprite2_MoveAltitude - + ; Slowly decrease the Y speed when first coming out of the ground LDA $0EC0, X : BNE .notRising - LDA $0F80, X : SEC : SBC.b #$01 : STA $0F80, X : BNE .beta + LDA $0F80, X : SEC : SBC.b #$01 : STA $0F80, X : BNE .beta INC $0EC0, X - + .beta - + BRA .dontSwitchDirections - + .notRising - + ; Use the Y speed to bob up and down LDA $1A : AND.b #$01 : BNE .dontSwitchDirections ; Every other frame. TXY LDA $0ED0, X : AND.b #$01 : TAX - + LDA $0F80, Y : CLC : ADC $7EEA9C, X : STA $0F80, Y : CMP $7EEA9E, X : BNE .dontSwitchDirections2 ;.y_speed_slope ;.y_speeds TYX : INC $0ED0, X ; Switch direction .dontSwitchDirections2 TYX - + .dontSwitchDirections - + LDA $0DA0, X : STA $04 LDA.w SprXH, X : STA $05 LDA $0DB0, X : STA $06 @@ -203,29 +203,29 @@ Lanmola_Fly: ;0x02 LDA.w SprXH, X : STA $01 LDA.w SprY, X : STA $02 LDA.w SprYH, X : STA $03 - + REP #$20 - + ; If our position is 0x0002 away from the random X and Y pos we chose earlier go to the next stage. LDA $00 : SEC : SBC $04 : CLC : ADC.w #$0002 : CMP.w #$0004 : BCS .notCloseEnough LDA $02 : SEC : SBC $06 : CLC : ADC.w #$0002 : CMP.w #$0004 : SEP #$20 : BCS .notCloseEnough INC $0D80, X - + .notCloseEnough - + SEP #$20 - + LDA.b #$0A - + JSL Sprite_ProjectSpeedTowardsEntityLong - + LDA $00 : STA $0D40, X LDA $01 : STA $0D50, X - + JSR Sprite2_Move .return - + RTS } @@ -240,22 +240,22 @@ Lanmola_Dive: ;0x03 JSR Sprite2_CheckDamage JSR Sprite2_Move JSR Sprite2_MoveAltitude - + LDA $0F80, X : CMP.b #$EC : BMI .alpha SEC : SBC.b #$01 : STA $0F80, X - + .alpha - + ; If we are under the ground go to the reset stage LDA $0F70, X : BPL .notUnderGroundYet INC $0D80, X - + LDA.b #$80 : STA $0DF0, X - + JSR Lanmola_Mound_Lanmola_SetScatterSandPosition - + .notUnderGroundYet - + RTS } @@ -266,20 +266,20 @@ Lanmola_Reset: ;0x04 JSR Lanmola_Draw JSL Lanmola_DrawDirtLONG JSL CheckIfActive : BCS Lanmola_Dive_notUnderGroundYet - + LDA $0DF0, X : BNE .wait STZ $0D80, X ; Go back to wait phase - + TXY JSL GetRandomInt : AND.b #$07 : TAX LDA $7EEAA8, X : STA.w SprX, Y ; Get random X pos to have the lanmola fly to. ;.randXPos - + JSL GetRandomInt : AND.b #$07 : TAX LDA $7EEAB0, X : STA.w SprY, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos TYX - + .wait - + RTS } @@ -315,13 +315,13 @@ Lanmola_Death: ;0x05 PLX .timerNotDone - + LDA $0DF0, X : CMP.b #$20 : BCC Lanmola_Reset_wait CMP.b #$A0 : BCS Lanmola_Reset_wait AND.b #$0F : BNE Lanmola_Reset_wait TXY LDA $7FF81E, X : TAX - + LDA $0E80, Y : SEC : SBC $7EEAA0, X ;.dataDeath PHY : TXY : PLX @@ -337,35 +337,35 @@ Lanmola_Death: ;0x05 LDA $0A : SEC : SBC $E2 : STA $0A LDA $0C : SEC : SBC $E8 : STA $0C SEP #$20 - + PLX - + ; Spawn a sprite that instantly dies as a boss explosion. LDA.b #$00 : JSL Sprite_SpawnDynamically : BMI .spawn_failed LDA.b #$0B : STA $0AAA - + LDA.b #$04 : STA $0DD0, Y - + LDA.b #$1F : STA $0DF0, Y : STA $0D90, Y - + LDA $0A : STA.w SprX, Y LDA $0B : STA.w SprXH, Y LDA $0C : STA.w SprY, Y LDA $0D : STA.w SprYH, Y - + LDA.b #$03 : STA $0E40, Y - + LDA.b #$0C : STA $0F50, Y - + LDA.b #$0C : JSL Sound_SetSfx2PanLong - + LDA $7FF81E, X : BMI .beta DEC A : STA $7FF81E, X .beta .spawn_failed .return - + RTS } @@ -374,31 +374,31 @@ Lanmola_Death: ;0x05 Lanmola_Draw: { JSL Lanmola_MoveSegment - + LDA $0B89, X : STA $03 - + LDA $7FF81E, X : BPL .beta RTS - + .beta - + PHX - + STA $0F - + LDA $0D40, X : ASL A : ROL A : AND.b #$01 : TAX - + LDA $7EEA06, X : STA $0C ;.data2 - + LDA $7EEA04, X : TAY ;.data1 - + LDX $0F - + .loopBody PHX : STX $0D - + LDA $02 : CLC : ADC $04 : TAX - + LDA $02 : SEC : SBC.b #$08 : AND.b #$3F : STA $02 LDA $7FFC00, X : STA $0A @@ -442,7 +442,7 @@ Lanmola_Draw: .on_screen_y1 PHY : TXY : PLX - + LDA $08 : CLC : ADC.w #$000A : SEC : SBC $E8 : STA ($90), Y ;Shadow Y byte CLC : ADC.w #$0010 : CMP.w #$0100 SEP #$20 @@ -468,25 +468,25 @@ Lanmola_Draw: PLX PHY - + LDA $7FFF00, X : TAX - + LDY $0D - + LDA $0F : CMP.b #$07 : BNE .dontDrawTail CPY.b #$00 : BNE .dontDrawTail LDA $7EEA18, X ;.chrTail BRA .notHead - + .dontDrawTail - + LDA.b #$C6 - + CPY $0F : BNE .notHead LDA $7EEA08, X ;.chrHead .notHead - + PLY : INY : STA ($90), Y ;Body chr PHY @@ -501,20 +501,20 @@ Lanmola_Draw: INY LDA $7EEA28, X : ORA $03 : STA ($90), Y ;Body properties ;.propertiesBody - + TYA : PHY : LSR #2 : TAY CLC : ADC.b #$08 : TAX - + LDA.b #$02 : ORA $37 : STA ($92), Y ;Body size and extra X bit PHY : TXY : PLX : STA ($92), Y ;Shadow size and extra X bit - + PLA : CLC : ADC $0C : TAY - + PLX : DEX : BMI .bodyDone JMP .loopBody .bodyDone - + PLX RTS @@ -529,15 +529,15 @@ Lanmola_DrawMound: PHX LDA $0DF0, X : LSR #3 : TAX - + LDA $7EEA54, X : TAX ;.frameMound - + LDY.b #$00 - + REP #$20 LDA $0FDA : SEC : SBC $E8 : STA $02 LDA $0FD8 : SEC : SBC $E2 : STA ($90), Y - + STZ $37 BPL .notNegative INC $37 @@ -553,20 +553,20 @@ Lanmola_DrawMound: CLC : ADC.w #$0010 : CMP.w #$0100 BCC .on_screen_y .out_of_boundsx - LDA.w #$00F0 : STA ($90), Y + LDA.w #$00F0 : STA ($90), Y .on_screen_y SEP #$20 LDA $7EEA48, X : INY : STA ($90), Y ;.chrMound LDA $7EEA4E, X : INY : STA ($90), Y ;.propertiesMound - + TYA : LSR #2 : TAY - + LDA.b #$02 : ORA $37 : STA ($92), Y ;.sizesMound - + PLX - + RTS } @@ -581,40 +581,40 @@ Sprite_Shrapnel: { ; This sprite manifests as a boulder outdoors, and as shrapnel indoors. LDA $1B : BEQ $5B ;Boulder_Main - + ; Check if we can draw. LDA $0FC6 : CMP.b #$03 : BCS .invalid_gfx_loaded JSL $06DBF8 ;Sprite_PrepAndDrawSingleSmallLong - + .invalid_gfx_loaded - + ;JSR $E8A2 ;Sprite4_CheckIfActive JSL CheckIfActive : BCC .active RTS .active - + LDA $1A : ASL #2 : AND.b #$C0 : STA $0F50, X ; : ORA.b #$00 - + JSR $E948 ;Sprite4_MoveXyz - + TXA : EOR $1A : AND.b #$03 : BNE .noTileCollision REP #$20 - + LDA $0FD8 : SEC : SBC $22 : CLC : ADC.w #$0004 - + CMP.w #$0010 : BCS .player_not_close - + LDA $0FDA : SEC : SBC $20 : CLC : ADC.w #$FFFC - + CMP.w #$000C : BCS .player_not_close - + SEP #$20 - + JSL $06F41F ;Sprite_AttemptDamageToPlayerPlusRecoilLong - + .player_not_close - + SEP #$20 ;JSR $8094 : BEQ .noTileCollision ;Sprite4_CheckTileCollision @@ -626,10 +626,10 @@ Sprite_Shrapnel: STZ $0DD0, X .timerNotDone - + RTS } - + ; ============================================================================== -assert pc() <= $1DD02A \ No newline at end of file +assert pc() <= $1DD02A diff --git a/Sprites/Bosses/lanmola_expanded.asm b/Sprites/Bosses/lanmola_expanded.asm index 987971a..c88adbb 100644 --- a/Sprites/Bosses/lanmola_expanded.asm +++ b/Sprites/Bosses/lanmola_expanded.asm @@ -1,4 +1,3 @@ - org $01C742 JSL Ancilla_SpawnFallingPrize @@ -49,18 +48,18 @@ Lanmola_DrawDirt: LDA $0D40, X : ASL A : ROL A : ASL A : EOR $0D80, X : AND.b #$02 : BEQ .nu LDA.b #$08 : JSL OAM_AllocateFromRegionB BRA .xi - + .nu LDA.b #$08 : JSL OAM_AllocateFromRegionC - + .xi - + LDY.b #$00 - + LDA $0E00, X : LSR #2 : AND.b #$03 : EOR.b #$03 : ASL A : STA $06 - + LDA $0DC0, X : XBA - LDA $0DE0, X + LDA $0DE0, X REP #$20 : SEC : SBC $E2 : STA $00 : SEP #$20 STZ $37 @@ -72,14 +71,14 @@ Lanmola_DrawDirt: LDA $0EB0, X : XBA LDA $0E70, X REP #$20 : SEC : SBC $E8 : STA $02 : SEP #$20 - + PHX - + LDX.b #$01 - + .dirtLoop PHX - + TXA : CLC : ADC $06 : ASL : TAX REP #$20 @@ -104,7 +103,7 @@ Lanmola_DrawDirt: BCC .on_screen_y .out_of_bounds3 SEP #$20 - LDA.b #$F0 : STA ($90), Y + LDA.b #$F0 : STA ($90), Y .on_screen_y @@ -112,19 +111,19 @@ Lanmola_DrawDirt: LDA $7EEA84, X : INY : STA ($90), Y ;dirt chr ;.chrDirt LDA $7EEA8C, X : INY : STA ($90), Y ;dirt properties ;.propertiesDirt - + PHY - + TYA : LSR #2 : TAY - + LDA $7EEA94, X : ORA $37 : ORA $36 : STA ($92), Y ;.sizesDirt - + PLY : INY - + PLX : DEX : BPL .dirtLoop - + PLX - + RTS } @@ -153,7 +152,7 @@ Sprite_Lanmola_Init_Data: INX : CPX.b #$B8 : BCC .loop - PLX + PLX RTS @@ -175,7 +174,7 @@ Sprite_Lanmola_Init_Data: ;$7EEA18 .chrTail - db $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4, $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4 + db $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4, $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4 ;$7EEA28 .propertiesBody @@ -207,7 +206,7 @@ Sprite_Lanmola_Init_Data: .chrMound db $EE, $EE, $EC, $EC, $CE, $CE ;db $EE, $EE, $EC, $EC, $CE, $CE - + ;$7EEA4E .propertiesMound ; db $39, $79, $39, $79, $39, $79 @@ -228,14 +227,14 @@ Sprite_Lanmola_Init_Data: .yDirt dw $0000, $0000, $FFFF, $FFFF, $FFFF, $FFFF, $0003, $0003 ;db $00, $00, $FF, $FF, $FF, $FF, $03, $03 - + ;$7EEA84 .chrDirt db $E8, $E8, $E8, $E8, $EA, $EA, $EA, $EA - + ;$7EEA8C .propertiesDirt - db $39, $79, $39, $79, $39, $79, $39, $79 + db $39, $79, $39, $79, $39, $79, $39, $79 ;db $00, $40, $00, $40, $00, $40, $00, $40 ;$7EEA94 @@ -256,7 +255,7 @@ Sprite_Lanmola_Init_Data: ;$7EEAA8 .randXPos - db $58, $50, $60, $70, $80, $90, $A0, $98 + db $58, $50, $60, $70, $80, $90, $A0, $98 ;$7EEAB0 .randYPos @@ -281,16 +280,16 @@ Lanmola_MoveSegment: SEP #$20 PLX - + LDA $0D40, X : SEC : SBC $0F80, X : STA $00 LDA $0D50, X : STA $01 JSL Sprite_ConvertVelocityToAngle : STA $0F - + LDA $7EEA00, X : STA $04 ;.sprite_regions - + PHX - - ; Store the current position, angle, and hieght of the sprite + + ; Store the current position, angle, and hieght of the sprite ; so that we can set the other segments to them later. LDA.w SprXH, X : PHA ;high x LDA.w SprYH, X : PHA ;high y @@ -299,11 +298,11 @@ Lanmola_MoveSegment: LDA $0F70, X : PHA ;height LDA $0F : PHA ;angle - + LDA $0E80, X : STA $02 : STA $05 - + CLC : ADC $04 : TAX - + PLA : STA $7FFF00, X ;angle PLA : STA $7FFE00, X ;height @@ -311,9 +310,9 @@ Lanmola_MoveSegment: PLA : STA $7FFC00, X ;lower x PLA : STA $7EE900, X ;high y PLA : STA $7EE800, X ;high x - + PLX - + LDA $0DD0, X : CMP.b #$09 : BNE .notActive LDA $11 : ORA $0FC1 : BNE .notActive LDA $10 : CMP #$0E : BEQ .notActive @@ -321,7 +320,7 @@ Lanmola_MoveSegment: CMP #$09 : BEQ .notActive ;in medallion cut scene CMP #$0A : BEQ .notActive ;in medallion cut scene LDA $05 : INC A : AND.b #$3F : STA $0E80, X - + .notActive RTL @@ -335,7 +334,7 @@ SetShrapnelTimer: JSL GetRandomInt ; replaced code - RTL + RTL } ; ========================================================= diff --git a/Sprites/NPCs/deku_scrub.asm b/Sprites/NPCs/deku_scrub.asm index b3685d3..6e4cdd3 100644 --- a/Sprites/NPCs/deku_scrub.asm +++ b/Sprites/NPCs/deku_scrub.asm @@ -56,32 +56,28 @@ Sprite_DekuScrub_Prep: LDA.b #$80 : STA.w SprDefl, X + ; Peacetime Deku Scrub NPCs LDA.b $8A : CMP.b #$2E : BNE .check_next + ; Deku Butler LDA.b #$07 : STA.w SprAction, X - JMP .PlayIntro + JMP + .check_next CMP.b #$2F : BNE .continue LDA.b #$08 : STA.w SprAction, X - JMP .PlayIntro + JMP + .continue LDA.w SprSubtype, X : CMP.b #$01 : BEQ .DekuButler CMP.b #$02 : BEQ .DekuPrincess - - LDA.l $7EF301 - BEQ .PlayIntro + LDA.l $7EF301 : BEQ + LDA.b #$04 : STA.w SprAction, X - .PlayIntro - - PLB - RTL - + JMP + .DekuButler - LDA.b #$05 : STA.w SprAction, X - PLB - RTL + LDA.b #$05 : STA.w SprAction, X + JMP + .DekuPrincess - LDA.b #$06 : STA.w SprAction, X + LDA.b #$06 : STA.w SprAction, X + + PLB RTL } diff --git a/Sprites/NPCs/mask_salesman.asm b/Sprites/NPCs/mask_salesman.asm index 742a43c..3190071 100644 --- a/Sprites/NPCs/mask_salesman.asm +++ b/Sprites/NPCs/mask_salesman.asm @@ -9,7 +9,7 @@ !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !ImperviousAll = 01 ; 00 = Can be attack, 01 = attack will clink on it !SmallShadow = 01 ; 01 = small shadow, 00 = no shadow -!Shadow = 01 ; 00 = don't draw shadow, 01 = draw a shadow +!Shadow = 01 ; 00 = don't draw shadow, 01 = draw a shadow !Palette = 00 ; Unused in this MaskSalesman (can be 0 to 7) !Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool !Persist = 00 ; 01 = your sprite continue to live offscreen @@ -31,7 +31,7 @@ %Set_Sprite_Properties(Sprite_MaskSalesman_Prep, Sprite_MaskSalesman_Long); Sprite_MaskSalesman_Long: -{ +{ PHB : PHK : PLB JSR Sprite_MaskSalesman_Draw ; Call the draw code @@ -49,7 +49,6 @@ Sprite_MaskSalesman_Long: Sprite_MaskSalesman_Prep: { PHB : PHK : PLB - PLB RTL } @@ -59,7 +58,7 @@ Sprite_MaskSalesman_Main: JSL Sprite_PlayerCantPassThrough LDA.w SprAction, X - JSL UseImplicitRegIndexedLocalJumpTable + JSL UseImplicitRegIndexedLocalJumpTable dw InquiryHandler dw NoOcarina @@ -75,7 +74,7 @@ Sprite_MaskSalesman_Main: ; 0x00 InquiryHandler: - { + { %PlayAnimation(0, 1, 16) ; Player has a Lv1 Ocarina, skip to the you got it message @@ -133,11 +132,11 @@ Sprite_MaskSalesman_Main: RTS } - ; 0x03 + ; 0x03 TeachLinkSong: { LDA #$02 : STA $7EF34C ; Increment the number of songs Link has - LDA.b #$13 + LDA.b #$13 STA.w $0CF8 JSL $0DBB67 ; Link_CalculateSFXPan ORA.w $0CF8 @@ -148,7 +147,7 @@ Sprite_MaskSalesman_Main: ; 0x04 - Offer Bunny Hood OfferBunnyHood: - { + { %PlayAnimation(0, 1, 16) %ShowUnconditionalMessage($07F) ; Bunny Hood for 100 rupees? @@ -158,7 +157,7 @@ Sprite_MaskSalesman_Main: ; 0x05 - Offer Stone Mask OfferStoneMask: - { + { %PlayAnimation(0, 1, 16) %ShowUnconditionalMessage($082) ; Stone Mask for 650 rupees? %GotoAction(9) @@ -208,14 +207,14 @@ Sprite_MaskSalesman_Main: SEP #$30 %ShowUnconditionalMessage($063) - + %GotoAction(0) RTS .not_enough_rupees %GotoAction($0A) RTS - .player_said_no + .player_said_no %GotoAction(6) RTS } @@ -251,7 +250,7 @@ Sprite_MaskSalesman_Main: .not_enough_rupees %GotoAction($0A) RTS - .player_said_no + .player_said_no %GotoAction(6) RTS } @@ -266,7 +265,7 @@ Sprite_MaskSalesman_Main: } Sprite_MaskSalesman_Draw: -{ +{ JSL Sprite_PrepOamCoord JSL Sprite_OAM_AllocateDeferToPlayer @@ -280,17 +279,17 @@ Sprite_MaskSalesman_Draw: .nextTile PHX ; Save current Tile Index? - + TXA : CLC : ADC $06 ; Add Animation Index Offset PHA ; Keep the value with animation index offset? - ASL A : TAX + ASL A : TAX REP #$20 LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y - AND.w #$0100 : STA $0E + AND.w #$0100 : STA $0E INY LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y CLC : ADC #$0010 : CMP.w #$0100 @@ -307,14 +306,14 @@ Sprite_MaskSalesman_Draw: INY LDA .properties, X : STA ($90), Y - PHY - + PHY + TYA : LSR #2 : TAY - + LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - + PLY : INY - + PLX : DEX : BPL .nextTile PLX diff --git a/Sprites/NPCs/tingle.asm b/Sprites/NPCs/tingle.asm index 3cb5cdf..c8b5c9e 100644 --- a/Sprites/NPCs/tingle.asm +++ b/Sprites/NPCs/tingle.asm @@ -9,7 +9,7 @@ !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it !SmallShadow = 00 ; 01 = small shadow, 00 = no shadow -!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow +!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow !Palette = 00 ; Unused in this template (can be 0 to 7) !Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool !Persist = 00 ; 01 = your sprite continue to live offscreen diff --git a/Sprites/Objects/ice_block.asm b/Sprites/Objects/ice_block.asm index 148216f..f6b451a 100644 --- a/Sprites/Objects/ice_block.asm +++ b/Sprites/Objects/ice_block.asm @@ -9,7 +9,7 @@ !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !ImperviousAll = 01 ; 00 = Can be attack, 01 = attack will clink on it !SmallShadow = 00 ; 01 = small shadow, 00 = no shadow -!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow +!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow !Palette = 00 ; Unused in this template (can be 0 to 7) !Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool !Persist = 00 ; 01 = your sprite continue to live offscreen @@ -40,7 +40,7 @@ Sprite_IceBlock_Long: .not_being_pushed LDA.w $0DF0, X : BEQ .retain_momentum LDA.b #$01 : STA.w SprMiscC, X - LDA.b #$84 : STA $48 + LDA.b #$84 : STA $48 LDA.b #$04 : STA.b $5E .retain_momentum @@ -58,7 +58,7 @@ Sprite_IceBlock_Long: Sprite_IceBlock_Prep: { PHB : PHK : PLB - + ; Cache Sprite position LDA.w SprX, X : STA.w SprMiscD, X LDA.w SprY, X : STA.w SprMiscE, X @@ -116,13 +116,13 @@ Sprite_IceBlock_Main: LDA.b #$01 : STA.w $0642 .no_switch - JSL Sprite_Move ; Sprite MoveXY + JSL Sprite_Move ; Sprite MoveXY JSL Sprite_Get_16_bit_Coords ; Get 16bit coords JSL Sprite_CheckTileCollision ; Check Tile collision JSL Sprite_CheckDamageToPlayerSameLayer BCC NotInContact JSR ApplyPush - ; Set timer + ; Set timer LDA.b #$07 : STA.w $0DF0, X JSL $079291 ; Sprite_RepelDash_long @@ -134,7 +134,7 @@ Sprite_IceBlock_Main: ; LDA.w StatueSpeed_y,Y ; STA.w SprYSpeed,X ; JSR Statue_HandleGrab - + LDA.w SprX, X : AND #$F0 : STA.w SprX, X LDA.w SprY, X : AND #$F0 : STA.w SprY, X RTS @@ -239,7 +239,7 @@ Sprite_IceBlock_Main: } } -; Check if the tile beneath the sprite is the sliding ice +; Check if the tile beneath the sprite is the sliding ice ; Currently unused as it doesnt play well with the hitbox choices IceBlock_CheckForGround: { @@ -252,7 +252,7 @@ IceBlock_CheckForGround: JSL $06E87B ; GetTileType_long PLY - LDA.w $0FA5 + LDA.w $0FA5 CMP.b #$0E : BNE .stop SEC RTS @@ -402,17 +402,17 @@ Sprite_IceBlock_Draw: .nextTile PHX ; Save current Tile Index? - + TXA : CLC : ADC $06 ; Add Animation Index Offset PHA ; Keep the value with animation index offset? - ASL A : TAX + ASL A : TAX REP #$20 LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y - AND.w #$0100 : STA $0E + AND.w #$0100 : STA $0E INY LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y CLC : ADC #$0010 : CMP.w #$0100 @@ -429,14 +429,14 @@ Sprite_IceBlock_Draw: INY LDA .properties, X : STA ($90), Y - PHY - + PHY + TYA : LSR #2 : TAY - + LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - + PLY : INY - + PLX : DEX : BPL .nextTile PLX @@ -457,4 +457,4 @@ Sprite_IceBlock_Draw: db $24, $64, $A4, $E4 .sizes db $00, $00, $00, $00 -} \ No newline at end of file +} diff --git a/Sprites/Objects/mineswitch.asm b/Sprites/Objects/mineswitch.asm index 5c4270b..603acc1 100644 --- a/Sprites/Objects/mineswitch.asm +++ b/Sprites/Objects/mineswitch.asm @@ -11,7 +11,7 @@ !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it !SmallShadow = 00 ; 01 = small shadow, 00 = no shadow -!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow +!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow !Palette = 00 ; Unused in this template (can be 0 to 7) !Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool !Persist = 01 ; 01 = your sprite continue to live offscreen @@ -54,7 +54,7 @@ Sprite_LeverSwitch_Long: Sprite_LeverSwitch_Prep: { PHB : PHK : PLB - + LDA.b #$00 : STA.w SprDefl, X LDA.w SprSubtype, X : STA.w SprAction, X LDA.b #$00 : STA.w SprTileDie, X @@ -84,7 +84,7 @@ Sprite_LeverSwitch_Main: LDA.w SprTimerA, X : BNE .NoDamage JSL Sprite_CheckDamageFromPlayer : BCC .NoDamage LDA #$25 : STA $012F - + STZ.w $37 LDA #$10 : STA.w SprTimerA, X %GotoAction(1) @@ -145,17 +145,17 @@ Sprite_LeverSwitch_Draw: .nextTile PHX ; Save current Tile Index? - + TXA : CLC : ADC $06 ; Add Animation Index Offset PHA ; Keep the value with animation index offset? - ASL A : TAX + ASL A : TAX REP #$20 LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y - AND.w #$0100 : STA $0E + AND.w #$0100 : STA $0E INY LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y CLC : ADC #$0010 : CMP.w #$0100 @@ -172,14 +172,14 @@ Sprite_LeverSwitch_Draw: INY LDA .properties, X : STA ($90), Y - PHY - + PHY + TYA : LSR #2 : TAY - + LDA.b #$02 : ORA $0F : STA ($92), Y ; store size in oam buffer - + PLY : INY - + PLX : DEX : BPL .nextTile PLX @@ -203,4 +203,4 @@ Sprite_LeverSwitch_Draw: .properties db $37 db $37 -} \ No newline at end of file +}