BuGS/BuGS/sprites/explosions.s

1635 lines
19 KiB
ArmAsm

;
; explosions.s
; BuGS
;
; Created by Jeremy Rand on 2020-07-02.
;Copyright © 2020 Jeremy Rand. All rights reserved.
;
case on
mcopy explosions.macros
keep explosions
explosions start spriteSeg
using globalData
explosion1 entry
_spriteHeader
; $1 - Green (c)
; $2 - Red (4)
; $3 - Off-white (8)
;
; ..RR|.R..
; .OGR|G...
; .GGG|GGR.
; RGGG|GGO.
; RGG.|GGG.
; OGGG|GGOG
; .OGG|RGO.
; .ROR|.R.G
;
lda $0,s
and #$00ff
ora #$2200
sta $0,s
lda $2,s
and #$fff0
ora #$0002
sta $2,s
lda $a0,s
and #$00f0
ora #$1203
sta $a0,s
lda $a2,s
and #$ff0f
ora #$0010
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$ff0f
ora #$1101
sta $0,s
lda $2,s
and #$0f00
ora #$2011
sta $2,s
lda #$1121
sta $a0,s
lda $a2,s
and #$0f00
ora #$3011
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$0f00
ora #$1021
sta $0,s
lda $2,s
and #$fff0
ora #$1011
sta $2,s
lda #$1131
sta $a0,s
lda #$3111
sta $a0,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$1103
sta $0,s
lda $2,s
and #$0f00
ora #$3021
sta $2,s
lda $a0,s
and #$00f0
ora #$3202
sta $a0,s
lda $a2,s
and #$f0f0
ora #$0102
sta $a2,s
_spriteFooter
rtl
explosion2 entry
_spriteHeader
; $1 - Green
; $2 - Red
; $3 - Off-white
;
; ..GR|G.R.
; .GGG|GGRG
; OGGG|GGGO
; OGGO|OGGG
; OGGO|OGGO
; OGGG|GGGG
; OGGR|GGGO
; .G.R|.G..
;
lda $0,s
and #$00ff
ora #$1200
sta $0,s
lda $2,s
and #$0f0f
ora #$2010
sta $2,s
lda $a0,s
and #$00f0
ora #$1101
sta $a0,s
lda #$2111
sta $a2,s
tsc
adc #$143
tcs
pea $1311
pea $1131
adc #$a0
tcs
pea $1131
pea $1331
adc #$a0
tcs
pea $1331
pea $1331
adc #$a0
tcs
pea $1111
pea $1131
adc #$a0
tcs
pea $1311
pea $1231
lda $a1,s
and #$f0f0
ora #$0201
sta $a1,s
lda $a3,s
and #$f0f0
ora #$0001
sta $a3,s
_spriteFooter
rtl
explosion3 entry
_spriteHeader
; $1 - Green
; $2 - Red
; $3 - Off-white
;
; .GOG|RG..
; G.GG|GGGR
; GGGO|GOG.
; RGO.|.GGG
; GG..|.G..
; GRRG|RGGG
; RGGG|GGG.
; .OG.|.G.O
lda $0,s
and #$00f0
ora #$3101
sta $0,s
lda $2,s
and #$ff00
ora #$0021
sta $2,s
lda $a0,s
and #$000f
ora #$1110
sta $a0,s
lda #$1211
sta $a2,s
tsc
adc #$140
tcs
lda #$1311
sta $0,s
lda $2,s
and #$0f00
ora #$1013
sta $2,s
lda $a0,s
and #$0f00
ora #$3021
sta $a0,s
lda $a2,s
and #$00f0
ora #$1101
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$ff00
ora #$0011
sta $0,s
lda $2,s
and #$fff0
ora #$0001
sta $2,s
lda #$2112
sta $a0,s
lda #$1121
sta $a2,s
tsc
adc #$140
tcs
lda #$1121
sta $0,s
lda $2,s
and #$0f00
ora #$1011
sta $2,s
lda $a0,s
and #$0ff0
ora #$1003
sta $a0,s
lda $a2,s
and #$f0f0
ora #$0301
sta $a2,s
_spriteFooter
rtl
explosion4 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; G.GO|.R.G
; .O.G|G.G.
; RG.R|.O.R
; G.R.|..G.
; GG..|...O
; .R.R|.RGO
; O.R.|R.GR
; RG.G|GGO.
;
lda $0,s
and #$000f
ora #$1310
sta $0,s
lda $2,s
and #$f0f0
ora #$0102
sta $2,s
lda $a0,s
and #$f0f0
ora #$0103
sta $a0,s
lda $a2,s
and #$0f0f
ora #$1010
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$f000
ora #$0221
sta $0,s
lda $2,s
and #$f0f0
ora #$0203
sta $2,s
lda $a0,s
and #$0f0f
ora #$2010
sta $a0,s
lda $a2,s
and #$0fff
ora #$1000
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$ff00
ora #$0011
sta $0,s
lda $2,s
and #$f0ff
ora #$0300
sta $2,s
lda $a0,s
and #$f0f0
ora #$0202
sta $a0,s
lda $a2,s
and #$00f0
ora #$1302
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$0f0f
ora #$2030
sta $0,s
lda $2,s
and #$000f
ora #$1220
sta $2,s
lda $a0,s
and #$f000
ora #$0121
sta $a0,s
lda $a2,s
and #$0f00
ora #$3011
sta $a2,s
_spriteFooter
rtl
explosion5 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; .G..|G.G.
; .ROG|.RG.
; GO..|G..O
; .R..|..R.
; G.R.|.R.R
; .O.G|.GO.
; RGR.|..G.
; .G.G|OR..
;
lda $0,s
and #$000f
ora #$0001
sta $0,s
lda $2,s
and #$f0f0
ora #$1010
sta $2,s
lda $a0,s
and #$00f0
ora #$3102
sta $a0,s
lda $a2,s
and #$0ff0
ora #$1002
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$ff00
ora #$0013
sta $0,s
lda $2,s
and #$f00f
ora #$0310
sta $2,s
lda $a0,s
and #$fff0
ora #$0002
sta $a0,s
lda $a2,s
and #$0fff
ora #$2000
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$0f0f
ora #$2010
sta $0,s
lda $2,s
and #$f0f0
ora #$0202
sta $2,s
lda $a0,s
and #$f0f0
ora #$0103
sta $a0,s
lda $a2,s
and #$0ff0
ora #$3001
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$0f00
ora #$2021
sta $0,s
lda $2,s
and #$0fff
ora #$1000
sta $2,s
lda $a0,s
and #$f0f0
ora #$0101
sta $a0,s
lda $a2,s
and #$ff00
ora #$0032
sta $a2,s
_spriteFooter
rtl
explosion6 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; .O.G|..G.
; R.G.|OR.R
; ....|....
; G...|..G.
; .O..|...G
; .O..|..O.
; R.G.|...G
; .O.O|R.R.
;
lda $0,s
and #$f0f0
ora #$0103
sta $0,s
lda $2,s
and #$0fff
ora #$1000
sta $2,s
lda $a0,s
and #$0f0f
ora #$1020
sta $a0,s
lda $a2,s
and #$f000
ora #$0232
sta $a2,s
tsc
adc #$140
tcs
lda $a0,s
and #$ff0f
ora #$0010
sta $a0,s
lda $a2,s
and #$0fff
ora #$1000
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$fff0
ora #$0003
sta $0,s
lda $2,s
and #$f0ff
ora #$0100
sta $2,s
lda $a0,s
and #$fff0
ora #$0003
sta $a0,s
lda $a2,s
and #$0fff
ora #$3000
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
and #$0f0f
ora #$1020
sta $0,s
lda $2,s
and #$f0ff
ora #$0100
sta $2,s
lda $a0,s
and #$f0f0
ora #$0303
sta $a0,s
lda $a2,s
and #$0f0f
ora #$2020
sta $a2,s
_spriteFooter
rtl
shipExplosion1 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; .G..|.G..|.G..|.G..
; GRG.|GRG.|GGR.|GRG.
; .GWG|RRRG|GRRR|GGWG
; ..GR|RRRR|RRRR|RGG.
; .GWG|RRRG|GRRR|GG..
; GRGG|RGRG|GRGR|WGG.
; .GRG|.GWG|.GWG|.GRG
; ..G.|..G.|..G.|..G.
;
lda $0,s
ora #$000c
sta $0,s
lda $2,s
ora #$000c
sta $2,s
lda $4,s
ora #$000c
sta $4,s
lda $6,s
ora #$000c
sta $6,s
lda $a0,s
and #$0f00
ora #$c0c4
sta $a0,s
lda $a2,s
and #$0f00
ora #$c0c4
sta $a2,s
lda $a4,s
and #$0f00
ora #$40cc
sta $a4,s
lda $a6,s
and #$0f00
ora #$c0c4
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$8c0c
sta $0,s
lda #$4c44
sta $2,s
lda #$44c4
sta $4,s
lda #$8ccc
sta $6,s
lda $a0,s
and #$00ff
ora #$c400
sta $a0,s
lda #$4444
sta $a2,s
sta $a4,s
lda $a6,s
and #$0f00
ora #$c04c
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$8c0c
sta $0,s
lda #$4c44
sta $2,s
lda #$44c4
sta $4,s
lda $6,s
ora #$00cc
sta $6,s
lda #$ccc4
sta $a0,s
lda #$4c4c
sta $a2,s
lda #$c4c4
sta $a4,s
lda $a6,s
and #$0f00
ora #$c08c
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$4c0c
sta $0,s
lda $2,s
and #$00f0
ora #$8c0c
sta $2,s
lda $4,s
and #$00f0
ora #$8c0c
sta $4,s
lda $6,s
and #$00f0
ora #$4c0c
sta $6,s
lda $a0,s
ora #$c000
sta $a0,s
lda $a2,s
ora #$c000
sta $a2,s
lda $a4,s
ora #$c000
sta $a4,s
lda $a6,s
ora #$c000
sta $a6,s
_spriteFooter
rtl
shipExplosion2 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ..G.|...G|G...|.G..
; .GRG|..GG|RG..|GRG.
; GRRR|GGGR|RRGG|RRRG
; RRWR|RGRR|WRRR|RWRR
; GRRR|GGGR|RRGG|RRRG
; GRGR|G.GR|GRGG|RGRG
; .GGG|...G|GG..|GGG.
; ..G.|....|G...|.G..
;
lda $0,s
ora #$c000
sta $0,s
lda $2,s
ora #$0c00
sta $2,s
lda $4,s
ora #$00c0
sta $4,s
lda $6,s
ora #$000c
sta $6,s
lda $a0,s
and #$00f0
ora #$4c0c
sta $a0,s
lda $a2,s
ora #$cc00
sta $a2,s
lda $a4,s
and #$ff00
ora #$004c
sta $a4,s
lda $a6,s
and #$0f00
ora #$c0c4
sta $a6,s
tsc
adc #$140
tcs
lda #$44c4
sta $0,s
lda #$c4cc
sta $2,s
lda #$cc44
sta $4,s
lda #$4c44
sta $6,s
lda #$8444
sta $a0,s
lda #$444c
sta $a2,s
lda #$4484
sta $a4,s
lda #$4448
sta $a6,s
tsc
adc #$140
tcs
lda #$44c4
sta $0,s
lda #$c4cc
sta $2,s
lda #$cc44
sta $4,s
lda #$4c44
sta $6,s
lda #$c4c4
sta $a0,s
lda $a2,s
and #$000f
ora #$c4c0
sta $a2,s
lda #$ccc4
sta $a4,s
lda #$4c4c
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
ora #$cc0c
sta $0,s
lda $2,s
ora #$0c00
sta $2,s
lda $4,s
ora #$00cc
sta $4,s
lda $6,s
ora #$c0cc
sta $6,s
lda $a0,s
ora #$c000
sta $a0,s
lda $a4,s
ora #$00c0
sta $a4,s
lda $a6,s
ora #$000c
sta $a6,s
_spriteFooter
rtl
shipExplosion3 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ...G|...R|R...|G...
; ..GR|G.RR|RR.G|RG..
; GGRR|RGGW|WGGR|RRGG
; RRRR|RRRG|GRRR|RRRR
; GWRG|RWGG|GGWR|GRWG
; .RRG|RRWG|GWRR|GRR.
; RRGG|GRR.|.RRG|GGRR
; .G.G|.G..|..G.|G.G.
;
lda $0,s
ora #$0c00
sta $0,s
lda $2,s
and #$f0ff
ora #$0400
sta $2,s
lda $4,s
and #$ff0f
ora #$0040
sta $4,s
lda $6,s
ora #$00c0
sta $6,s
lda $a0,s
and #$00ff
ora #$c400
sta $a0,s
lda $a2,s
and #$fff0
ora #$44c0
sta $a2,s
lda $a4,s
and #$f000
ora #$0c44
sta $a4,s
lda $a6,s
and #$ff00
ora #$004c
sta $a6,s
tsc
adc #$140
tcs
lda #$44cc
sta $0,s
lda #$c84c
sta $2,s
lda #$c48c
sta $4,s
lda #$cc44
sta $6,s
lda #$4444
sta $a0,s
lda #$4c44
sta $a2,s
lda #$44c4
sta $a4,s
lda #$4444
sta $a6,s
tsc
adc #$140
tcs
lda #$4cc8
sta $0,s
lda #$cc48
sta $2,s
lda #$84cc
sta $4,s
lda #$8cc4
sta $6,s
lda $a0,s
and #$00f0
ora #$4c04
sta $a0,s
lda #$8c44
sta $a2,s
lda #$44c8
sta $a4,s
lda $a6,s
and #$0f00
ora #$40c4
sta $a6,s
tsc
adc #$140
tcs
lda #$cc44
sta $0,s
lda $2,s
and #$0f00
ora #$40c4
sta $2,s
lda $4,s
and #$00f0
ora #$4c04
sta $4,s
lda #$44cc
sta $6,s
lda $a0,s
ora #$0c0c
sta $a0,s
lda $a2,s
ora #$000c
sta $a2,s
lda $a4,s
ora #$c000
sta $a4,s
lda $a6,s
ora #$c0c0
sta $a6,s
_spriteFooter
rtl
shipExplosion4 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ...G|..G.|.G..|G...
; .GGR|G.GG|GGWG|RGG.
; .GRG|WGRG|GRGW|GRGG
; GRGW|GWGR|RGWG|WGR.
; .RGG|WRGW|WGRW|GGRG
; GGRR|GRWG|GWRG|RRG.
; .GGW|RGGR|RGGR|.GG.
; ..G.|G...|...G|.G..
;
lda $0,s
ora #$0c00
sta $0,s
lda $2,s
ora #$c000
sta $2,s
lda $4,s
ora #$000c
sta $4,s
lda $6,s
ora #$00c0
sta $6,s
lda $a0,s
and #$00f0
ora #$c40c
sta $a0,s
lda $a2,s
ora #$ccc0
sta $a2,s
lda #$8ccc
sta $a4,s
lda $a6,s
and #$0f00
ora #$c04c
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$4c0c
sta $0,s
lda #$4c8c
sta $2,s
lda #$c8c4
sta $4,s
lda #$ccc4
sta $6,s
lda #$c8c4
sta $a0,s
lda #$c4c8
sta $a2,s
lda #$8c4c
sta $a4,s
lda $a6,s
and #$0f00
ora #$408c
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$cc04
sta $0,s
lda #$c884
sta $2,s
lda #$488c
sta $4,s
lda #$4ccc
sta $6,s
lda #$44cc
sta $a0,s
lda #$8cc4
sta $a2,s
lda #$4cc8
sta $a4,s
lda $a6,s
and #$0f00
ora #$c044
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$c80c
sta $0,s
lda #$c44c
sta $2,s
lda #$c44c
sta $4,s
lda $6,s
ora #$c00c
sta $6,s
lda $a0,s
ora #$c000
sta $a0,s
lda $a2,s
ora #$00c0
sta $a2,s
lda $a4,s
ora #$0c00
sta $a4,s
lda $a6,s
ora #$000c
sta $a6,s
_spriteFooter
rtl
shipExplosion5 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|...G|G...|....
; ..G.|..GR|RG..|.G..
; .GRG|GGGG|WRGG|GRG.
; ..WR|RWGR|WGWR|RW..
; ..RW|GRWG|RRWG|WR..
; .GRG|G.GW|GG.G|GRG.
; ..G.|...G|G...|.G..
; ....|....|....|....
;
lda $2,s
ora #$0c00
sta $2,s
lda $4,s
ora #$00c0
sta $4,s
lda $a0,s
ora #$c000
sta $a0,s
lda $a2,s
and #$00ff
ora #$c400
sta $a2,s
lda $a4,s
and #$ff00
ora #$004c
sta $a4,s
lda $a6,s
ora #$000c
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00f0
ora #$4c0c
sta $0,s
lda #$cccc
sta $2,s
lda #$cc84
sta $4,s
lda $6,s
and #$0f00
ora #$c0c4
sta $6,s
lda $a0,s
and #$00ff
ora #$8400
sta $a0,s
lda #$c448
sta $a2,s
lda #$848c
sta $a4,s
lda $a6,s
and #$ff00
ora #$0048
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00ff
ora #$4800
sta $0,s
lda #$8cc4
sta $2,s
lda #$8c44
sta $4,s
lda $6,s
and #$ff00
ora #$0084
sta $6,s
lda $a0,s
and #$00f0
ora #$4c0c
sta $a0,s
lda $a2,s
and #$000f
ora #$c8c0
sta $a2,s
lda $a4,s
ora #$0ccc
sta $a4,s
lda $a6,s
and #$0f00
ora #$c0c4
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
ora #$c000
sta $0,s
lda $2,s
ora #$0c00
sta $2,s
lda $4,s
ora #$00c0
sta $4,s
lda $6,s
ora #$000c
sta $6,s
_spriteFooter
rtl
shipExplosion6 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|..W.|....|....
; ....|.G.R|G.R.|....
; ....|GWRW|WGWR|....
; ..GR|WW.R|WGGG|GR..
; ..RG|GGGW|RWWW|RG..
; ....|RWGW|WRWG|....
; ....|.R.G|R.G.|....
; ....|....|....|....
;
lda $2,s
and #$0fff
ora #$8000
sta $2,s
lda $a2,s
and #$f0f0
ora #$040c
sta $a2,s
lda $a4,s
and #$0f0f
ora #$40c0
sta $a4,s
tsc
adc #$140
tcs
lda #$48c8
sta $2,s
lda #$848c
sta $4,s
lda $a0,s
and #$00ff
ora #$c400
sta $a0,s
lda $a2,s
and #$f000
ora #$0488
sta $a2,s
lda #$cc8c
sta $a4,s
lda $a6,s
and #$ff00
ora #$00c4
sta $a6,s
tsc
adc #$140
tcs
lda $0,s
and #$00ff
ora #$4c00
sta $0,s
lda #$c8cc
sta $2,s
lda #$8848
sta $4,s
lda $6,s
and #$ff00
ora #$004c
sta $6,s
lda #$c848
sta $a2,s
lda #$8c84
sta $a4,s
tsc
adc #$140
tcs
lda $2,s
and #$f0f0
ora #$0c04
sta $2,s
lda $4,s
and #$0f0f
ora #$c040
sta $4,s
_spriteFooter
rtl
shipExplosion7 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|....|..R.|....
; ....|...R|.G..|....
; ....|..GW|GW.G|....
; ....|RRGW|WG.R|....
; ....|G.WG|WG..|....
; ....|..G.|R...|....
; ....|....|....|....
; ....|....|....|....
;
lda $4,s
and #$0fff
ora #$4000
sta $4,s
lda $a2,s
and #$f0ff
ora #$0400
sta $a2,s
lda $a4,s
ora #$000c
sta $a4,s
tsc
adc #$140
tcs
lda $2,s
and #$00ff
ora #$c800
sta $2,s
lda $4,s
and #$f000
ora #$0cc8
sta $4,s
lda #$c844
sta $a2,s
lda $a4,s
and #$f000
ora #$048c
sta $a4,s
tsc
adc #$140
tcs
lda $2,s
and #$000f
ora #$8cc0
sta $2,s
lda $4,s
and #$ff00
ora #$008c
sta $4,s
lda $a2,s
ora #$c000
sta $a2,s
lda $a4,s
and #$ff0f
ora #$0040
sta $a4,s
_spriteFooter
rtl
shipExplosion8 entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|....|....|....
; ....|....|....|....
; ....|....|....|....
; ....|..G.|G...|....
; ....|.RRG|WR..|....
; ....|..RG|G...|....
; ....|....|....|....
; ....|....|....|....
;
tsc
adc #$140
tcs
lda $a2,s
ora #$c000
sta $a2,s
lda $a4,s
ora #$00c0
sta $a4,s
tsc
adc #$140
tcs
lda $2,s
and #$00f0
ora #$4c04
sta $2,s
lda $4,s
and #$ff00
ora #$0084
sta $4,s
lda $a2,s
and #$00ff
ora #$4c00
sta $a2,s
lda $a4,s
ora #$00c0
sta $a4,s
_spriteFooter
rtl
end