diff --git a/Sprites/Objects/mineswitch.asm b/Sprites/Objects/mineswitch.asm index b09ebca..4b20c89 100644 --- a/Sprites/Objects/mineswitch.asm +++ b/Sprites/Objects/mineswitch.asm @@ -1,3 +1,6 @@ +; ========================================================= +; Sprite Properties +; ========================================================= !SPRID = $AF ; The sprite ID you are overwriting (HEX) !NbrTiles = 02 ; Number of tiles used in a frame @@ -29,6 +32,7 @@ %Set_Sprite_Properties(Sprite_LeverSwitch_Prep, Sprite_LeverSwitch_Long); +; ========================================================= Sprite_LeverSwitch_Long: { @@ -45,6 +49,7 @@ Sprite_LeverSwitch_Long: RTL ; Go back to original code } +; ========================================================= Sprite_LeverSwitch_Prep: { @@ -57,6 +62,7 @@ Sprite_LeverSwitch_Prep: RTL } +; ========================================================= Sprite_LeverSwitch_Main: { @@ -140,82 +146,82 @@ Sprite_LeverSwitch_Main: } } +; ========================================================= Sprite_LeverSwitch_Draw: { - JSL Sprite_PrepOamCoord - JSL Sprite_OAM_AllocateDeferToPlayer + JSL Sprite_PrepOamCoord + JSL Sprite_OAM_AllocateDeferToPlayer - LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame - LDA .start_index, Y : STA $06 + LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame + LDA .start_index, Y : STA $06 - PHX - LDX .nbr_of_tiles, Y ;amount of tiles -1 - LDY.b #$00 + PHX + LDX .nbr_of_tiles, Y ;amount of tiles -1 + LDY.b #$00 .nextTile - PHX ; Save current Tile Index? - - TXA : CLC : ADC $06 ; Add Animation Index Offset + PHX ; Save current Tile Index? + + TXA : CLC : ADC $06 ; Add Animation Index Offset - PHA ; Keep the value with animation index offset? + PHA ; Keep the value with animation index offset? - ASL A : TAX + ASL A : TAX - REP #$20 + REP #$20 - LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y - AND.w #$0100 : STA $0E - INY - LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y - CLC : ADC #$0010 : CMP.w #$0100 - SEP #$20 - BCC .on_screen_y + LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y + AND.w #$0100 : STA $0E + INY + LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y + CLC : ADC #$0010 : CMP.w #$0100 + SEP #$20 + BCC .on_screen_y - LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way - STA $0E + LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way + STA $0E .on_screen_y - PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore) - INY - LDA .chr, X : STA ($90), Y - INY - LDA .properties, X : STA ($90), Y + PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore) + INY + LDA .chr, X : STA ($90), Y + INY + LDA .properties, X : STA ($90), Y - PHY - - TYA : LSR #2 : TAY - - LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - - PLY : INY - - PLX : DEX : BPL .nextTile + 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 + PLX - RTS + RTS .start_index - db $00, $01 + db $00, $01 .nbr_of_tiles - db 0, 0 + db 0, 0 .x_offsets - dw 0 - dw 0 + dw 0 + dw 0 .y_offsets - dw 0 - dw 0 + dw 0 + dw 0 .chr - db $64 - db $66 + db $64 + db $66 .properties - db $37 - db $37 + db $37 + db $37 .sizes - db $02 - db $02 - + db $02 + db $02 } \ No newline at end of file diff --git a/Sprites/Objects/switch_track.asm b/Sprites/Objects/switch_track.asm index 18ba6a6..652694f 100644 --- a/Sprites/Objects/switch_track.asm +++ b/Sprites/Objects/switch_track.asm @@ -1,3 +1,7 @@ +; ========================================================= +; Sprite Properties +; ========================================================= + !SPRID = $B0 ; The sprite ID you are overwriting (HEX) !NbrTiles = 04 ; Number of tiles used in a frame !Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless @@ -28,6 +32,8 @@ %Set_Sprite_Properties(Sprite_RotatingTrack_Prep, Sprite_RotatingTrack_Long); +; ========================================================= + Sprite_RotatingTrack_Long: { PHB : PHK : PLB @@ -43,6 +49,8 @@ Sprite_RotatingTrack_Long: RTL ; Go back to original code } +; ========================================================= + ; Modes ; 0 = TopLeft -> TopRight ; 1 = TopRight -> BottomRight @@ -61,6 +69,8 @@ Sprite_RotatingTrack_Prep: RTL } +; ========================================================= + SwitchRam = $37 Sprite_RotatingTrack_Main: @@ -148,87 +158,89 @@ Sprite_RotatingTrack_Main: } Sprite_RotatingTrack_Draw: -JSL Sprite_PrepOamCoord -JSL Sprite_OAM_AllocateDeferToPlayer +{ + JSL Sprite_PrepOamCoord + JSL Sprite_OAM_AllocateDeferToPlayer -LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame -LDA .start_index, Y : STA $06 + LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame + LDA .start_index, Y : STA $06 -PHX -LDX .nbr_of_tiles, Y ;amount of tiles -1 -LDY.b #$00 -.nextTile + PHX + LDX .nbr_of_tiles, Y ;amount of tiles -1 + LDY.b #$00 + .nextTile -PHX ; Save current Tile Index? - -TXA : CLC : ADC $06 ; Add Animation Index Offset + PHX ; Save current Tile Index? + + TXA : CLC : ADC $06 ; Add Animation Index Offset -PHA ; Keep the value with animation index offset? + PHA ; Keep the value with animation index offset? -ASL A : TAX + ASL A : TAX -REP #$20 + REP #$20 -LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y -AND.w #$0100 : STA $0E -INY -LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y -CLC : ADC #$0010 : CMP.w #$0100 -SEP #$20 -BCC .on_screen_y + LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y + AND.w #$0100 : STA $0E + INY + LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y + CLC : ADC #$0010 : CMP.w #$0100 + SEP #$20 + BCC .on_screen_y -LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way -STA $0E -.on_screen_y + LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way + STA $0E + .on_screen_y -PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore) -INY -LDA .chr, X : STA ($90), Y -INY -LDA .properties, X : STA ($90), Y + PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore) + INY + LDA .chr, X : STA ($90), Y + INY + LDA .properties, X : STA ($90), Y -PHY - -TYA : LSR #2 : TAY - -LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer - -PLY : INY - -PLX : DEX : BPL .nextTile + 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 + PLX -RTS + RTS -.start_index -db $00, $01, $02, $03 -.nbr_of_tiles -db 0, 0, 0, 0 -.x_offsets -dw 0 -dw 0 -dw 0 -dw 0 -.y_offsets -dw 0 -dw 0 -dw 0 -dw 0 -.chr -db $44 -db $44 -db $44 -db $44 -.properties -db $7D -db $3D -db $FD -db $BD -.sizes -db $02 -db $02 -db $02 -db $02 \ No newline at end of file + .start_index + db $00, $01, $02, $03 + .nbr_of_tiles + db 0, 0, 0, 0 + .x_offsets + dw 0 + dw 0 + dw 0 + dw 0 + .y_offsets + dw 0 + dw 0 + dw 0 + dw 0 + .chr + db $44 + db $44 + db $44 + db $44 + .properties + db $7D + db $3D + db $FD + db $BD + .sizes + db $02 + db $02 + db $02 + db $02 +} \ No newline at end of file