Lots of general sprite cleanup. Add sprites for the ship and the shots and include collision detection in those routines. I think all of the drawing code is done now, maybe?

This commit is contained in:
Jeremy Rand 2020-07-09 22:55:08 -04:00
parent bc91429e3a
commit a718c8caef
11 changed files with 3194 additions and 3164 deletions

View File

@ -81,6 +81,8 @@
9D62AF402499CD3A00348F45 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
9D8FFC602491CA28005C9327 /* game.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = game.s; sourceTree = "<group>"; };
9D8FFC612491CAF0005C9327 /* game.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = "<group>"; };
9DC4D7BD24B7652100BACF4B /* ship.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ship.s; sourceTree = "<group>"; };
9DC4D7BE24B80C9600BACF4B /* shot.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = shot.s; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -171,6 +173,8 @@
9D3396FC24AECFBB003222B3 /* letters.s */,
9D3396FD24AECFF5003222B3 /* mushrooms.s */,
9D33970024AEFBF2003222B3 /* segments.s */,
9DC4D7BD24B7652100BACF4B /* ship.s */,
9DC4D7BE24B80C9600BACF4B /* shot.s */,
);
path = sprites;
sourceTree = "<group>";

View File

@ -183,321 +183,339 @@ game start
ldx #$345b
jsl number9
ldx #$3463
ldx #$345f
jsl flea1
ldx #$346b
ldx #$3467
jsl flea2
ldx #$3473
ldx #$346f
jsl flea3
ldx #$347b
ldx #$3477
jsl flea4
ldx #$3483
ldx #$347e
jsl score300
ldx #$348b
ldx #$3486
jsl score600
ldx #$3493
ldx #$348e
jsl score900
ldx #$3e0b
ldx #$3e04
jsl leftScorpion1
ldx #$3e1b
ldx #$3e14
jsl leftScorpion1s
ldx #$3e2b
ldx #$3e24
jsl leftScorpion2
ldx #$3e3b
ldx #$3e34
jsl leftScorpion2s
ldx #$3e4b
ldx #$3e44
jsl leftScorpion3
ldx #$3e5b
ldx #$3e54
jsl leftScorpion3s
ldx #$3e6b
ldx #$3e64
jsl leftScorpion4
ldx #$3e7b
ldx #$3e74
jsl leftScorpion4s
ldx #$480b
ldx #$4804
jsl rightScorpion1
ldx #$481b
ldx #$4814
jsl rightScorpion1s
ldx #$482b
ldx #$4824
jsl rightScorpion2
ldx #$483b
ldx #$4834
jsl rightScorpion2s
ldx #$484b
ldx #$4844
jsl rightScorpion3
ldx #$485b
ldx #$4854
jsl rightScorpion3s
ldx #$486b
ldx #$4864
jsl rightScorpion4
ldx #$487b
ldx #$4874
jsl rightScorpion4s
ldx #$520b
ldx #$5204
jsl spider1
ldx #$521b
ldx #$5214
jsl spider1s
ldx #$522b
ldx #$5224
jsl spider2
ldx #$523b
ldx #$5234
jsl spider2s
ldx #$524b
ldx #$5244
jsl spider3
ldx #$525b
ldx #$5254
jsl spider3s
ldx #$526b
ldx #$5264
jsl spider4
ldx #$527b
ldx #$5274
jsl spider4s
ldx #$528b
ldx #$5284
jsl spider5
ldx #$529b
ldx #$5294
jsl spider5s
ldx #$5c0b
ldx #$5c04
jsl spider6
ldx #$5c1b
ldx #$5c14
jsl spider6s
ldx #$5c2b
ldx #$5c24
jsl spider7
ldx #$5c3b
ldx #$5c34
jsl spider7s
ldx #$5c43
ldx #$5c40
jsl explosion1
ldx #$5c4b
ldx #$5c48
jsl explosion2
ldx #$5c53
ldx #$5c50
jsl explosion3
ldx #$5c5b
ldx #$5c58
jsl explosion4
ldx #$5c63
ldx #$5c60
jsl explosion5
ldx #$5c6b
ldx #$5c68
jsl explosion6
ldx #$5c73
ldx #$5c70
jsl leftHead1
ldx #$5c7b
ldx #$5c78
jsl leftHead1s
ldx #$5c83
ldx #$5c80
jsl leftHead2
ldx #$5c8b
ldx #$5c88
jsl leftHead2s
ldx #$5c93
ldx #$5c90
jsl leftHead3
ldx #$5c9b
ldx #$5c98
jsl leftHead3s
ldx #$6603
ldx #$6600
jsl leftHead4
ldx #$660b
ldx #$6608
jsl leftHead4s
ldx #$6613
ldx #$6610
jsl leftHead5
ldx #$661b
ldx #$6618
jsl leftHead5s
ldx #$6623
ldx #$6620
jsl leftBody1
ldx #$662b
ldx #$6628
jsl leftBody1s
ldx #$6633
ldx #$6630
jsl leftBody2
ldx #$663b
ldx #$6638
jsl leftBody2s
ldx #$6643
ldx #$6640
jsl leftBody3
ldx #$664b
ldx #$6648
jsl leftBody3s
ldx #$6653
ldx #$6650
jsl leftBody4
ldx #$665b
ldx #$6658
jsl leftBody4s
ldx #$6663
ldx #$6660
jsl leftBody5
ldx #$666b
ldx #$6668
jsl leftBody5s
ldx #$6673
ldx #$6670
jsl rightHead1
ldx #$667b
ldx #$6678
jsl rightHead1s
ldx #$6683
ldx #$6680
jsl rightHead2
ldx #$668b
ldx #$6688
jsl rightHead2s
ldx #$6693
ldx #$6690
jsl rightHead3
ldx #$669b
ldx #$6698
jsl rightHead3s
ldx #$7003
ldx #$7000
jsl rightHead4
ldx #$700b
ldx #$7008
jsl rightHead4s
ldx #$7013
ldx #$7010
jsl rightHead5
ldx #$701b
ldx #$7018
jsl rightHead5s
ldx #$7023
ldx #$7020
jsl rightBody1
ldx #$702b
ldx #$7028
jsl rightBody1s
ldx #$7033
ldx #$7030
jsl rightBody2
ldx #$703b
ldx #$7038
jsl rightBody2s
ldx #$7043
ldx #$7040
jsl rightBody3
ldx #$704b
ldx #$7048
jsl rightBody3s
ldx #$7053
ldx #$7050
jsl rightBody4
ldx #$705b
ldx #$7058
jsl rightBody4s
ldx #$7063
ldx #$7060
jsl rightBody5
ldx #$706b
ldx #$7068
jsl rightBody5s
ldx #$7073
ldx #$7070
jsl leftDownHead1
ldx #$707b
ldx #$7078
jsl leftDownHead1s
ldx #$7083
ldx #$7080
jsl leftDownHead2
ldx #$708b
ldx #$7088
jsl leftDownHead2s
ldx #$7093
ldx #$7090
jsl leftDownBody1
ldx #$709b
ldx #$7098
jsl leftDownBody1s
ldx #$7a03
ldx #$7a00
jsl leftDownBody2
ldx #$7a0b
ldx #$7a08
jsl leftDownBody2s
ldx #$7a13
ldx #$7a10
jsl rightDownHead1
ldx #$7a1b
ldx #$7a18
jsl rightDownHead1s
ldx #$7a23
ldx #$7a20
jsl rightDownHead2
ldx #$7a2b
ldx #$7a28
jsl rightDownHead2s
ldx #$7a33
ldx #$7a30
jsl rightDownBody1
ldx #$7a3b
ldx #$7a38
jsl rightDownBody1s
ldx #$7a43
ldx #$7a40
jsl rightDownBody2
ldx #$7a4b
ldx #$7a48
jsl rightDownBody2s
ldx #$7a53
ldx #$7a50
jsl downHead1
ldx #$7a5b
ldx #$7a58
jsl downHead2
ldx #$7a63
ldx #$7a60
jsl downHead3
ldx #$7a6b
ldx #$7a68
jsl downBody1
ldx #$7a73
ldx #$7a70
jsl downBody2
ldx #$7a7b
ldx #$7a78
jsl downBody3
ldx #$7a80
jsl drawShip
ldx #$7a88
jsl drawShipShift
ldx #$7a90
jsl drawHalfShot
ldx #$7a98
jsl drawHalfShotShift
ldx #$8400
jsl drawShot
ldx #$8408
jsl drawShotShift
jsl waitForKey
rtl

View File

@ -13,10 +13,6 @@
explosions start
explosion1 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -33,102 +29,98 @@ explosion1 entry
; .ROR|.R.G
;
lda $1,s
lda $0,s
and #$00ff
ora #$4400
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$fff0
ora #$0004
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$c408
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$ff0f not necessary with pure green
ora #$00c0
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$ff0f not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$0f00
ora #$40cc
sta $3,s
sta $2,s
lda #$cc4c
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0f00
ora #$80cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$0f00
ora #$c04c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$fff0 not necessary with pure green
ora #$c0cc
sta $3,s
sta $2,s
lda #$cc8c
sta $a1,s
sta $a0,s
lda #$8ccc
sta $a3,s
sta $a0,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$00f0
ora #$cc08
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$0f00
ora #$804c
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$8404
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$f0f0
ora #$0c04
sta $a3,s
sta $a2,s
_spriteFooter
rtl
explosion2 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -145,26 +137,26 @@ explosion2 entry
; .G.R|.G..
;
lda $1,s
lda $0,s
and #$00ff
ora #$c400
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$0f0f
ora #$40c0
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a1,s
sta $a0,s
lda #$4ccc
sta $a3,s
sta $a2,s
tsc
adc #$144
adc #$143
tcs
pea $c8cc
@ -209,10 +201,6 @@ explosion2 entry
explosion3 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -228,98 +216,94 @@ explosion3 entry
; RGGG|GGG.
; .OG.|.G.O
lda $1,s
lda $0,s
and #$00f0
ora #$8c0c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$ff00
ora #$004c
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$000f not necessary with pure green
ora #$ccc0
sta $a1,s
sta $a0,s
lda #$c4cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda #$c8cc
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$0f00
ora #$c0c8
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$0f00
ora #$804c
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$fff0 not necessary with pure green
ora #$000c
sta $3,s
sta $2,s
lda #$4cc4
sta $a1,s
sta $a0,s
lda #$cc4c
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda #$cc4c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$0ff0
ora #$c008
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$f0f0
ora #$080c
sta $a3,s
sta $a2,s
_spriteFooter
rtl
explosion4 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -336,109 +320,103 @@ explosion4 entry
; RG.G|GGO.
;
lda $1,s
lda $0,s
and #$000f
ora #$c8c0
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$f0f0
ora #$0c04
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$f0f0
ora #$0c08
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0f0f not necessary with pure green
ora #$c0c0
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$f000
ora #$044c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$f0f0
ora #$0408
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$0f0f
ora #$40c0
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0fff not necessary with pure green
ora #$c000
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$f0ff
ora #$0800
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$f0f0
ora #$0404
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$00f0
ora #$c804
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$0f0f
ora #$4080
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$000f
ora #$c440
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$f000
ora #$0c4c
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0f00
ora #$80cc
sta $a3,s
sta $a2,s
_spriteFooter
rtl
explosion5 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -455,108 +433,103 @@ explosion5 entry
; .G.G|OR..
;
lda $1,s
lda $0,s
; and #$000f not necessary with pure green
ora #$000c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$f0f0 not necessary with pure green
ora #$c0c0
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$8c04
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0ff0
ora #$c004
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$ff00
ora #$00c8
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$f00f
ora #$08c0
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$fff0
ora #$0004
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0fff
ora #$4000
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$0f0f
ora #$40c0
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$f0f0
ora #$0404
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$f0f0
ora #$0c08
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0ff0
ora #$800c
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$0f00
ora #$404c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$0fff not necessary with pure green
ora #$c000
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$f0f0 not necessary with pure green
ora #$0c0c
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$ff00
ora #$0084
sta $a3,s
sta $a2,s
_spriteFooter
rtl
explosion6 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -573,87 +546,87 @@ explosion6 entry
; .O.O|R.R.
;
lda $1,s
lda $0,s
and #$f0f0
ora #$0c08
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$0fff not necessary with pure green
ora #$c000
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$0f0f
ora #$c040
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$f000
ora #$0484
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $a1,s
lda $a0,s
; and #$ff0f not necessary with pure green
ora #$00c0
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0fff not necessary with pure green
ora #$c000
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$fff0
ora #$0008
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$f0ff not necessary with pure green
ora #$0c00
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$fff0
ora #$0008
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0fff
ora #$8000
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$0f0f
ora #$c040
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$f0ff not necessary with pure green
ora #$0c00
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$f0f0
ora #$0808
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0f0f
ora #$4040
sta $a3,s
sta $a2,s
_spriteFooter
rtl

View File

@ -14,10 +14,6 @@ fleas start
flea1 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -34,28 +30,28 @@ flea1 entry
; ....|.G.G|...G
;
lda $1,s
lda $0,s
and #$00ff
ora #$8800
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$ff0f
ora #$0080
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$8804
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$ff00
ora #$0088
sta $a3,s
sta $a2,s
tsc
adc #$0142
adc #$0141
tcs
pea $8844
@ -124,10 +120,6 @@ flea1 entry
flea2 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -144,28 +136,28 @@ flea2 entry
; ....|.G.G|..G.
;
lda $1,s
lda $0,s
and #$00ff
ora #$8800
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$ff0f
ora #$0080
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$8804
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$ff00
ora #$0088
sta $a3,s
sta $a2,s
tsc
adc #$0142
adc #$0141
tcs
pea $8844
@ -238,10 +230,6 @@ flea2 entry
flea3 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -258,28 +246,28 @@ flea3 entry
; ....|...G|..G.
;
lda $1,s
lda $0,s
and #$00ff
ora #$8800
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$ff0f
ora #$0080
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$8804
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$ff00
ora #$0088
sta $a3,s
sta $a2,s
tsc
adc #$0142
adc #$0141
tcs
pea $8844
@ -352,10 +340,6 @@ flea3 entry
flea4 entry
dex
dex
dex
dex
_spriteHeader
; $c - Green
@ -371,28 +355,28 @@ flea4 entry
; ....|..G.|.G.G
; ....|...G|.G.G
;
lda $1,s
lda $0,s
and #$00ff
ora #$8800
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$ff0f
ora #$0080
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$8804
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$ff00
ora #$0088
sta $a3,s
sta $a2,s
tsc
adc #$0142
adc #$0141
tcs
pea $8844

View File

@ -29,91 +29,91 @@ score300 entry
; ....|....|....
;
tsc
adc #$013a
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$00f0
ora #$8808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$00f0
ora #$8808
sta $5,s
sta $4,s
lda $a1,s
lda $a0,s
; and #$f0ff
ora #$0800
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$f0f0
ora #$0808
sta $a3,s
sta $a2,s
lda $a5,s
lda $a4,s
; and #$f0f0
ora #$0808
sta $a5,s
sta $a4,s
tsc
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$f0f0
ora #$0808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$f0f0
ora #$0808
sta $5,s
sta $4,s
lda $a1,s
lda $a0,s
; and #$f0ff
ora #$0800
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$f0f0
ora #$0808
sta $a3,s
sta $a2,s
lda $a5,s
lda $a4,s
; and #$f0f0
ora #$0808
sta $a5,s
sta $a4,s
tsc
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$00f0
ora #$8808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$00f0
ora #$8808
sta $5,s
sta $4,s
_spriteFooter
rtl
@ -137,91 +137,91 @@ score600 entry
;
tsc
adc #$013a
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$00f0
ora #$8808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$00f0
ora #$8808
sta $5,s
sta $4,s
lda $a1,s
lda $a0,s
; and #$fff0
ora #$0008
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$f0f0
ora #$0808
sta $a3,s
sta $a2,s
lda $a5,s
lda $a4,s
; and #$f0f0
ora #$0808
sta $a5,s
sta $a4,s
tsc
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$f0f0
ora #$0808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$f0f0
ora #$0808
sta $5,s
sta $4,s
lda $a1,s
lda $a0,s
; and #$f0f0
ora #$0808
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$f0f0
ora #$0808
sta $a3,s
sta $a2,s
lda $a5,s
lda $a4,s
; and #$f0f0
ora #$0808
sta $a5,s
sta $a4,s
tsc
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$00f0
ora #$8808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$00f0
ora #$8808
sta $5,s
sta $4,s
_spriteFooter
rtl
@ -245,91 +245,91 @@ score900 entry
;
tsc
adc #$013a
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$00f0
ora #$8808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$00f0
ora #$8808
sta $5,s
sta $4,s
lda $a1,s
lda $a0,s
; and #$f0f0
ora #$0808
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$f0f0
ora #$0808
sta $a3,s
sta $a2,s
lda $a5,s
lda $a4,s
; and #$f0f0
ora #$0808
sta $a5,s
sta $a4,s
tsc
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$f0f0
ora #$0808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$f0f0
ora #$0808
sta $5,s
sta $4,s
lda $a1,s
lda $a0,s
; and #$f0ff
ora #$0800
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$f0f0
ora #$0808
sta $a3,s
sta $a2,s
lda $a5,s
lda $a4,s
; and #$f0f0
ora #$0808
sta $a5,s
sta $a4,s
tsc
adc #$0140
tcs
lda $1,s
lda $0,s
; and #$00f0
ora #$8808
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$00f0
ora #$8808
sta $3,s
sta $2,s
lda $5,s
lda $4,s
; and #$00f0
ora #$8808
sta $5,s
sta $4,s
_spriteFooter
rtl

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

268
BuGS/sprites/ship.s Normal file
View File

@ -0,0 +1,268 @@
;
; ship.s
; BuGS
;
; Created by Jeremy Rand on 2020-07-09.
;Copyright © 2020 Jeremy Rand. All rights reserved.
;
case on
mcopy ship.macros
keep ship
ship start
drawShip entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ...O|....
; ..OO|O...
; .RRO|RR..
; ORRO|RRO.
; OOOO|OOO.
; .OOO|OO..
; ..OO|O...
; ..OO|O...
lda $0,s
_collision #$0c00
and #$f0ff
ora #$0800
sta $0,s
lda $a0,s
_collision #$cc00
and #$00ff
ora #$8800
sta $a0,s
lda $a2,s
_collision #$00c0
and #$ff0f
ora #$0080
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
_collision #$cc0c
and #$00f0
ora #$4804
sta $0,s
lda $2,s
_collision #$00cc
and #$ff00
ora #$0044
sta $2,s
lda $a0,s
_collision #$cccc
lda #$4884
sta $a0,s
lda $a2,s
_collision #$c0cc
and #$0f00
ora #$8044
sta $a2,s
tsc
adc #$140
tcs
lda $a0,s
_collision #$cccc
lda #$8888
sta $0,s
lda $2,s
_collision #$c0cc
and #$0f00
ora #$8088
sta $2,s
lda $a0,s
_collision #$cc0c
and #$00f0
ora #$8808
sta $a0,s
lda $a2,s
_collision #$00cc
and #$ff00
ora #$0088
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
_collision #$cc00
and #$00ff
ora #$8800
sta $0,s
lda $2,s
_collision #$00c0
and #$ff0f
ora #$0080
sta $2,s
lda $a0,s
_collision #$cc00
and #$00ff
ora #$8800
sta $a0,s
lda $a2,s
_collision #$00c0
and #$ff0f
ora #$0080
sta $a2,s
_spriteFooter
lda collision
rtl
drawShipShift entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|O...
; ...O|OO..
; ..RR|ORR.
; .ORR|ORRO
; .OOO|OOOO
; ..OO|OOO.
; ...O|OO..
; ...O|OO..
lda $2,s
_collision #$00c0
and #$ff0f
ora #$0080
sta $2,s
lda $a0,s
_collision #$0c00
and #$f0ff
ora #$0800
sta $a0,s
lda $a2,s
_collision #$00cc
and #$ff00
ora #$0088
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
_collision #$cc00
and #$00ff
ora #$4400
sta $0,s
lda $2,s
_collision #$c0cc
and #$0f00
ora #$4084
sta $2,s
lda $a0,s
_collision #$cc0c
and #$00f0
lda #$4408
sta $a0,s
lda $a2,s
_collision #$cccc
lda #$4884
sta $a2,s
tsc
adc #$140
tcs
lda $a0,s
_collision #$cc0c
and #$00f0
lda #$8808
sta $0,s
lda $2,s
_collision #$cccc
lda #$8888
sta $2,s
lda $a0,s
_collision #$cc00
and #$00ff
ora #$8800
sta $a0,s
lda $a2,s
_collision #$c0cc
and #$0f00
ora #$8088
sta $a2,s
tsc
adc #$140
tcs
lda $0,s
_collision #$0c00
and #$f0ff
ora #$0800
sta $0,s
lda $2,s
_collision #$00cc
and #$ff00
ora #$0088
sta $2,s
lda $a0,s
_collision #$0c00
and #$f0ff
ora #$0800
sta $a0,s
lda $a2,s
_collision #$00cc
and #$ff00
ora #$0088
sta $a2,s
_spriteFooter
lda collision
rtl
clearShipCollision entry
lda #$0000
sta collision
rtl
backupStack dc i2'0'
collision dc i2'0'
end

254
BuGS/sprites/shot.s Normal file
View File

@ -0,0 +1,254 @@
;
; shot.s
; BuGS
;
; Created by Jeremy Rand on 2020-07-09.
;Copyright © 2020 Jeremy Rand. All rights reserved.
;
case on
mcopy shot.macros
keep shot
shot start
drawHalfShot entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|....
; ....|....
; ....|....
; ....|....
; ....|....
; ...R|....
; ...R|....
; ...R|....
tsc
adc #$280
tcs
lda $a0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $a0,s
tsc
adc #$140
tcs
lda $0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $0,s
lda $a0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $a0,s
_spriteFooter
lda collision
rtl
drawHalfShotShift entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|....
; ....|....
; ....|....
; ....|....
; ....|....
; ....|R...
; ....|R...
; ....|R...
tsc
adc #$280
tcs
lda $a2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $a2,s
tsc
adc #$140
tcs
lda $2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $2,s
lda $a2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $a2,s
_spriteFooter
lda collision
rtl
drawShot entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|....
; ....|....
; ...R|....
; ...R|....
; ...R|....
; ...R|....
; ...R|....
; ...R|....
tsc
adc #$140
tcs
lda $0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $0,s
lda $a0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $a0,s
tsc
adc #$140
tcs
lda $0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $0,s
lda $a0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $a0,s
tsc
adc #$140
tcs
lda $0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $0,s
lda $a0,s
_collision #$0f00
and #$f0ff
ora #$0400
sta $a0,s
_spriteFooter
lda collision
rtl
drawShotShift entry
_spriteHeader
; $c - Green
; $4 - Red
; $8 - Off-white
;
; ....|....
; ....|....
; ....|R...
; ....|R...
; ....|R...
; ....|R...
; ....|R...
; ....|R...
tsc
adc #$140
tcs
lda $2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $2,s
lda $a2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $a2,s
tsc
adc #$140
tcs
lda $2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $2,s
lda $a2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $a2,s
tsc
adc #$140
tcs
lda $2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $2,s
lda $a2,s
_collision #$00f0
and #$ff0f
ora #$0040
sta $a2,s
_spriteFooter
lda collision
rtl
backupStack dc i2'0'
collision dc i2'0'
end

File diff suppressed because it is too large Load Diff

View File

@ -47,18 +47,18 @@
; .RRG|G...
; ....|....
lda $a1,s
lda $a0,s
and #$00f0
ora #$4c04
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$ff0f not necessary with pure green
ora #$00c0
sta $a3,s
sta $a2,s
tsc
adc #$142
adc #$141
tcs
pea $4cc4
@ -96,18 +96,18 @@
sta $a3,s
tsc
adc #$140
adc #$141
tcs
lda $1,s
lda $0,s
and #$00f0
ora #$4c04
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$ff0f not necessary with pure green
ora #$00c0
sta $3,s
sta $2,s
mend
@ -127,73 +127,73 @@
; ..RR|GG..
; ....|....
lda $a1,s
lda $a0,s
and #$00ff
ora #$4400
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$00f0
ora #$440c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a1,s
sta $a0,s
lda #$cccc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda #$cccc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
and #$00f0
ora #$440c
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
and #$00ff
ora #$4400
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $3,s
sta $2,s
mend
@ -214,18 +214,18 @@
; .GGG|G...
; ....|....
lda $a1,s
lda $a0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$ff0f not necessary with pure green
ora #$00c0
sta $a3,s
sta $a2,s
tsc
adc #$142
adc #$141
tcs
pea $cccc
@ -263,18 +263,18 @@
sta $a3,s
tsc
adc #$140
adc #$141
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$ff0f not necessary with pure green
ora #$00c0
sta $3,s
sta $2,s
mend
@ -295,73 +295,73 @@
; ..GG|GG..
; ....|....
lda $a1,s
lda $a0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a1,s
sta $a0,s
lda #$cccc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda #$cccc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $3,s
sta $2,s
mend
@ -382,69 +382,69 @@
; ...G|GRR.
; ....|....
lda $a1,s
lda $a0,s
; and #$f0ff not necessary with pure green
ora #$0c00
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$0f00
ora #$40c4
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $1,s
sta $0,s
lda #$4cc4
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a1,s
sta $a0,s
lda #$cccc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda #$cccc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $a1,s
sta $a0,s
lda #$4cc4
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$f0ff not necessary with pure green
ora #$0c00
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$0f00
ora #$40c4
sta $3,s
sta $2,s
mend
@ -465,40 +465,40 @@
; ..GG|RR..
; ....|....
lda $a1,s
lda $a0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
and #$ff00
ora #$0044
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$0f00
ora #$c044
sta $3,s
sta $2,s
lda #$cccc
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $a3,s
sta $a2,s
tsc
adc #$142
adc #$141
tcs
pea $cccc
@ -519,18 +519,18 @@
sta $a3,s
tsc
adc #$140
adc #$141
tcs
lda $1,s
lda $0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $1,s
sta $0,s
lda $3,s
lda $2,s
and #$ff00
ora #$0044
sta $3,s
sta $2,s
mend
@ -551,69 +551,69 @@
; ...G|GGG.
; ....|....
lda $a1,s
lda $a0,s
; and #$f0ff not necessary with pure green
ora #$0c00
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $1,s
sta $0,s
lda #$cccc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $a1,s
sta $a0,s
lda #$cccc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda #$cccc
sta $3,s
sta $2,s
lda $a1,s
lda $a0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $a1,s
sta $a0,s
lda #$cccc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$f0ff not necessary with pure green
ora #$0c00
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $3,s
sta $2,s
mend
@ -634,40 +634,40 @@
; ..GG|GG..
; ....|....
lda $a1,s
lda $a0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $a3,s
sta $a2,s
tsc
adc #$140
tcs
lda $1,s
lda $0,s
; and #$00f0 not necessary with pure green
ora #$cc0c
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $3,s
sta $2,s
lda #$cccc
sta $a1,s
sta $a0,s
lda $a3,s
lda $a2,s
; and #$0f00 not necessary with pure green
ora #$c0cc
sta $a3,s
sta $a2,s
tsc
adc #$142
adc #$141
tcs
pea $cccc
@ -688,17 +688,30 @@
sta $a3,s
tsc
adc #$140
adc #$141
tcs
lda $1,s
lda $0,s
; and #$00ff not necessary with pure green
ora #$cc00
sta $1,s
sta $0,s
lda $3,s
lda $2,s
; and #$ff00 not necessary with pure green
ora #$00cc
sta $3,s
sta $2,s
mend
macro
_collision &mask
tax
and #$0c00
beq ~&SYSCNT
sta collision
~&SYSCNT anop
txa
mend