Skip to content

Instantly share code, notes, and snippets.

@nurpax
Created April 21, 2018 22:04
Show Gist options
  • Save nurpax/4e7f4a9fb4acdc93bdc475cdf1d0b9a1 to your computer and use it in GitHub Desktop.
Save nurpax/4e7f4a9fb4acdc93bdc475cdf1d0b9a1 to your computer and use it in GitHub Desktop.
sprite0_widthmask:
// bitwidth 0
.byte 0, 0, 0, 0
// bitwidth 1
.byte %11111111, 0, 0, 0
// bitwidth 2
.byte %11111111, %11111111, 0, 0
// bitwidth 3
.byte %11111111, %11111111, %11111111, 0
// bitwidth 4
.byte %11111111, %11111111, %11111111, 0
// bitwidth 5
.byte %11111111, %11111111, %11111111, 0
// bitwidth 6
.byte %11111111, %11111111, %11111111, 0
// bitwidth 7
.byte %11111111, %11111111, %11111111, 0
// bitwidth 8
.byte %11111111, %11111111, %11111111, 0
sprite1_widthmask:
// bitwidth 0
.byte 0, 0, 0, 0
// bitwidth 1
.byte 0, 0, 0, 0
// bitwidth 2
.byte 0, 0, 0, 0
// bitwidth 3
.byte 0, 0, 0, 0
// bitwidth 4
.byte %11111111, 0, 0, 0
// bitwidth 5
.byte %11111111, %11111111, 0, 0
// bitwidth 6
.byte %11111111, %11111111, %11111111, 0
// bitwidth 7
.byte %11111111, %11111111, %11111111, 0
// bitwidth 8
.byte %11111111, %11111111, %11111111, 0
sprite2_widthmask:
// bitwidth 0
.byte 0, 0, 0, 0
// bitwidth 1
.byte 0, 0, 0, 0
// bitwidth 2
.byte 0, 0, 0, 0
// bitwidth 3
.byte 0, 0, 0, 0
// bitwidth 4
.byte 0, 0, 0, 0
// bitwidth 5
.byte 0, 0, 0, 0
// bitwidth 6
.byte 0, 0, 0, 0
// bitwidth 7
.byte %11111111, 0, 0, 0
// bitwidth 8
.byte %11111111, %11111111, 0, 0
reset_new_bitwidth: {
drawboardBorder($0400 + BOARD_XY_OFFS,$d800 + BOARD_XY_OFFS)
.const NUM_ANIMS = 8
lda #0
sta zptmp0
sta zptmp0+1
loop_sprites:
lda #0
sta zptmp2
sta zptmp2+1
loopy:
add16(zptmp4, zptmp0, zptmp2)
mov16(zptmp6, zptmp4)
add16_imm16(zptmp6, <noise_sprite, >noise_sprite)
.var lst = List().add(bitwidth_noise_sprite_0, bitwidth_noise_sprite_1, bitwidth_noise_sprite_2)
.var wmask = List().add(sprite0_widthmask, sprite1_widthmask, sprite2_widthmask)
.for (var ss = 0; ss < 3; ss++) {
mov16(zptmp8, zptmp4)
add16_imm16(zptmp8, <lst.get(ss), >lst.get(ss))
lda bitwidth
asl
asl
tax
ldy #0
lda (zptmp6),y
.var sprite_widthmask = wmask.get(ss)
and sprite_widthmask, x
sta (zptmp8),y
inx
iny
lda (zptmp6),y
and sprite_widthmask, x
sta (zptmp8),y
inx
iny
lda (zptmp6),y
and sprite_widthmask, x
sta (zptmp8),y
}
lda zptmp2
clc
adc #3
sta zptmp2
cmp #8*3
beq doney
jmp loopy
doney:
add16_imm16(zptmp0, 64, 0)
lda zptmp0+1
cmp #(64*NUM_ANIMS)/256
beq donesprites
jmp loop_sprites
donesprites:
rts
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment