mirror of https://github.com/jeremysrand/BuGS.git
Finish the spider sprites and the explosion sprites. Remove "and" masking from the spider and scorpion sprites because they will be drawn first and will not overlap with anything on the foreground. Split the sprite.s file into a series of smaller files for each type of sprite. Add a file to describe the overall plan for the design of the sprites.
This commit is contained in:
parent
e7ca4d4624
commit
598934446b
|
@ -63,8 +63,18 @@
|
|||
9D1716A42491C49300C83148 /* system601.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = system601.2mg; sourceTree = "<group>"; };
|
||||
9D1716A62491C49300C83148 /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = tail.mk; sourceTree = "<group>"; };
|
||||
9D1716A92491C49300C83148 /* BuGS.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = BuGS.xcscheme; path = ../../BuGS.xcodeproj/xcshareddata/xcschemes/BuGS.xcscheme; sourceTree = "<group>"; };
|
||||
9D3396F424AECB1D003222B3 /* explosions.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = explosions.s; sourceTree = "<group>"; };
|
||||
9D3396F524AECBB1003222B3 /* spiders.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spiders.s; sourceTree = "<group>"; };
|
||||
9D3396F624AECC40003222B3 /* scorpions.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = scorpions.s; sourceTree = "<group>"; };
|
||||
9D3396F724AECCAC003222B3 /* scores.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = scores.s; sourceTree = "<group>"; };
|
||||
9D3396F824AECD11003222B3 /* fleas.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = fleas.s; sourceTree = "<group>"; };
|
||||
9D3396F924AECD7A003222B3 /* numbers.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = numbers.s; sourceTree = "<group>"; };
|
||||
9D3396FA24AECDE9003222B3 /* solid.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = solid.s; sourceTree = "<group>"; };
|
||||
9D3396FB24AECF7C003222B3 /* symbols.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = symbols.s; sourceTree = "<group>"; };
|
||||
9D3396FC24AECFBB003222B3 /* letters.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = letters.s; sourceTree = "<group>"; };
|
||||
9D3396FD24AECFF5003222B3 /* mushrooms.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = mushrooms.s; sourceTree = "<group>"; };
|
||||
9D3396FF24AED09D003222B3 /* sprites.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = sprites.md; sourceTree = "<group>"; };
|
||||
9D62AF3B249871A300348F45 /* colour.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = colour.s; sourceTree = "<group>"; };
|
||||
9D62AF3C24994B1600348F45 /* sprites.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = sprites.s; sourceTree = "<group>"; };
|
||||
9D62AF3E2499660100348F45 /* local.macros */ = {isa = PBXFileReference; lastKnownFileType = text; path = local.macros; sourceTree = "<group>"; };
|
||||
9D62AF3F2499CD1E00348F45 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
|
||||
9D62AF402499CD3A00348F45 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||
|
@ -111,7 +121,7 @@
|
|||
9D8FFC602491CA28005C9327 /* game.s */,
|
||||
9D8FFC612491CAF0005C9327 /* game.h */,
|
||||
9D62AF3B249871A300348F45 /* colour.s */,
|
||||
9D62AF3C24994B1600348F45 /* sprites.s */,
|
||||
9D3396F324AECACC003222B3 /* sprites */,
|
||||
9D62AF3E2499660100348F45 /* local.macros */,
|
||||
9D1716912491C49300C83148 /* main.rez */,
|
||||
9D1716932491C49300C83148 /* Makefile */,
|
||||
|
@ -145,6 +155,24 @@
|
|||
path = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9D3396F324AECACC003222B3 /* sprites */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9D3396FF24AED09D003222B3 /* sprites.md */,
|
||||
9D3396F424AECB1D003222B3 /* explosions.s */,
|
||||
9D3396F524AECBB1003222B3 /* spiders.s */,
|
||||
9D3396F624AECC40003222B3 /* scorpions.s */,
|
||||
9D3396F724AECCAC003222B3 /* scores.s */,
|
||||
9D3396F824AECD11003222B3 /* fleas.s */,
|
||||
9D3396F924AECD7A003222B3 /* numbers.s */,
|
||||
9D3396FA24AECDE9003222B3 /* solid.s */,
|
||||
9D3396FB24AECF7C003222B3 /* symbols.s */,
|
||||
9D3396FC24AECFBB003222B3 /* letters.s */,
|
||||
9D3396FD24AECFF5003222B3 /* mushrooms.s */,
|
||||
);
|
||||
path = sprites;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXLegacyTarget section */
|
||||
|
|
|
@ -30,7 +30,7 @@ TARGETTYPE=desktop
|
|||
|
||||
# Add any other directories where you are putting C or assembly source
|
||||
# files to this list:
|
||||
# SRCDIRS+=
|
||||
SRCDIRS+=sprites
|
||||
|
||||
# If you put your main entry point for your project in a file called main.c
|
||||
# Then you don't need to change this value. If you want to call your entry
|
||||
|
|
48
BuGS/game.s
48
BuGS/game.s
|
@ -264,6 +264,54 @@ game start
|
|||
ldx #$523b
|
||||
jsl spider2s
|
||||
|
||||
ldx #$524b
|
||||
jsl spider3
|
||||
|
||||
ldx #$525b
|
||||
jsl spider3s
|
||||
|
||||
ldx #$526b
|
||||
jsl spider4
|
||||
|
||||
ldx #$527b
|
||||
jsl spider4s
|
||||
|
||||
ldx #$528b
|
||||
jsl spider5
|
||||
|
||||
ldx #$529b
|
||||
jsl spider5s
|
||||
|
||||
ldx #$5c0b
|
||||
jsl spider6
|
||||
|
||||
ldx #$5c1b
|
||||
jsl spider6s
|
||||
|
||||
ldx #$5c2b
|
||||
jsl spider7
|
||||
|
||||
ldx #$5c3b
|
||||
jsl spider7s
|
||||
|
||||
ldx #$5c43
|
||||
jsl explosion1
|
||||
|
||||
ldx #$5c4b
|
||||
jsl explosion2
|
||||
|
||||
ldx #$5c53
|
||||
jsl explosion3
|
||||
|
||||
ldx #$5c5b
|
||||
jsl explosion4
|
||||
|
||||
ldx #$5c63
|
||||
jsl explosion5
|
||||
|
||||
ldx #$5c6b
|
||||
jsl explosion6
|
||||
|
||||
jsl waitForKey
|
||||
rtl
|
||||
|
||||
|
|
7270
BuGS/sprites.s
7270
BuGS/sprites.s
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,664 @@
|
|||
;
|
||||
; 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
|
||||
|
||||
explosion1 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ..RR|.R..
|
||||
; .OGR|G...
|
||||
; .GGG|GGR.
|
||||
; RGGG|GGO.
|
||||
; RGG.|GGG.
|
||||
; OGGG|GGOG
|
||||
; .OGG|RGO.
|
||||
; .ROR|.R.G
|
||||
;
|
||||
|
||||
lda $1,s
|
||||
and #$00ff
|
||||
ora #$4400
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$00f0
|
||||
ora #$c408
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$ff0f not necessary with pure green
|
||||
ora #$00c0
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$ff0f not necessary with pure green
|
||||
ora #$cc0c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$0f00
|
||||
ora #$40cc
|
||||
sta $3,s
|
||||
|
||||
|
||||
lda #$cc4c
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$0f00
|
||||
ora #$80cc
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$0f00
|
||||
ora #$c04c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$fff0 not necessary with pure green
|
||||
ora #$c0cc
|
||||
sta $3,s
|
||||
|
||||
lda #$cc8c
|
||||
sta $a1,s
|
||||
|
||||
lda #$8ccc
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$00f0
|
||||
ora #$cc08
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$0f00
|
||||
ora #$804c
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$00f0
|
||||
ora #$8404
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$f0f0
|
||||
ora #$0c04
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
explosion2 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ..GR|G.R.
|
||||
; .GGG|GGRG
|
||||
; OGGG|GGGO
|
||||
; OGGO|OGGG
|
||||
; OGGO|OGGO
|
||||
; OGGG|GGGG
|
||||
; OGGR|GGGO
|
||||
; .G.R|.G..
|
||||
;
|
||||
|
||||
lda $1,s
|
||||
and #$00ff
|
||||
ora #$c400
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$0f0f
|
||||
ora #$40c0
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$00f0 not necessary with pure green
|
||||
ora #$cc0c
|
||||
sta $a1,s
|
||||
|
||||
lda #$4ccc
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$144
|
||||
tcs
|
||||
|
||||
pea $c8cc
|
||||
pea $cc8c
|
||||
|
||||
adc #$a0
|
||||
tcs
|
||||
|
||||
pea $cc8c
|
||||
pea $c88c
|
||||
|
||||
adc #$a0
|
||||
tcs
|
||||
|
||||
pea $c88c
|
||||
pea $c88c
|
||||
|
||||
adc #$a0
|
||||
tcs
|
||||
|
||||
pea $cccc
|
||||
pea $cc8c
|
||||
|
||||
adc #$a0
|
||||
tcs
|
||||
|
||||
pea $c8cc
|
||||
pea $c48c
|
||||
|
||||
lda $a1,s
|
||||
and #$f0f0
|
||||
ora #$040c
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$f0f0 not necessary for pure green
|
||||
ora #$000c
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
explosion3 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; .GOG|RG..
|
||||
; G.GG|GGGR
|
||||
; GGGO|GOG.
|
||||
; RGO.|.GGG
|
||||
; GG..|.G..
|
||||
; GRRG|RGGG
|
||||
; RGGG|GGG.
|
||||
; .OG.|.G.O
|
||||
|
||||
lda $1,s
|
||||
and #$00f0
|
||||
ora #$8c0c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$ff00
|
||||
ora #$004c
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$000f not necessary with pure green
|
||||
ora #$ccc0
|
||||
sta $a1,s
|
||||
|
||||
lda #$c4cc
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda #$c8cc
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$0f00
|
||||
ora #$c0c8
|
||||
sta $3,s
|
||||
|
||||
|
||||
lda $a1,s
|
||||
and #$0f00
|
||||
ora #$804c
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$00f0 not necessary with pure green
|
||||
ora #$cc0c
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$ff00 not necessary with pure green
|
||||
ora #$00cc
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$fff0 not necessary with pure green
|
||||
ora #$000c
|
||||
sta $3,s
|
||||
|
||||
lda #$4cc4
|
||||
sta $a1,s
|
||||
|
||||
lda #$cc4c
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda #$cc4c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$0f00 not necessary with pure green
|
||||
ora #$c0cc
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$0ff0
|
||||
ora #$c008
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$f0f0
|
||||
ora #$080c
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
explosion4 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_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 $1,s
|
||||
and #$000f
|
||||
ora #$c8c0
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$f0f0
|
||||
ora #$0c04
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$f0f0
|
||||
ora #$0c08
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$0f0f not necessary with pure green
|
||||
ora #$c0c0
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$f000
|
||||
ora #$044c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$f0f0
|
||||
ora #$0408
|
||||
sta $3,s
|
||||
|
||||
|
||||
lda $a1,s
|
||||
and #$0f0f
|
||||
ora #$40c0
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$0fff not necessary with pure green
|
||||
ora #$c000
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$ff00 not necessary with pure green
|
||||
ora #$00cc
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$f0f0
|
||||
ora #$0404
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$00f0
|
||||
ora #$c804
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$0f0f
|
||||
ora #$4080
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$000f
|
||||
ora #$c440
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$f000
|
||||
ora #$0c4c
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$0f00
|
||||
ora #$80cc
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
explosion5 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_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 $1,s
|
||||
; and #$000f not necessary with pure green
|
||||
ora #$000c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$f0f0 not necessary with pure green
|
||||
ora #$c0c0
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$00f0
|
||||
ora #$8c04
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$0ff0
|
||||
ora #$c004
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$ff00
|
||||
ora #$00c8
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$f00f
|
||||
ora #$08c0
|
||||
sta $3,s
|
||||
|
||||
|
||||
lda $a1,s
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$0fff
|
||||
ora #$4000
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$0f0f
|
||||
ora #$40c0
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$f0f0
|
||||
ora #$0404
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$f0f0
|
||||
ora #$0c08
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$0ff0
|
||||
ora #$800c
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$0f00
|
||||
ora #$404c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$0fff not necessary with pure green
|
||||
ora #$c000
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$f0f0 not necessary with pure green
|
||||
ora #$0c0c
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$ff00
|
||||
ora #$0084
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
explosion6 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_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 $1,s
|
||||
and #$f0f0
|
||||
ora #$0c08
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$0fff not necessary with pure green
|
||||
ora #$c000
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$0f0f
|
||||
ora #$c040
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$f000
|
||||
ora #$0484
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $a1,s
|
||||
; and #$ff0f not necessary with pure green
|
||||
ora #$00c0
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$0fff not necessary with pure green
|
||||
ora #$c000
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$fff0
|
||||
ora #$0008
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$f0ff not necessary with pure green
|
||||
ora #$0c00
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$fff0
|
||||
ora #$0008
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$0fff
|
||||
ora #$8000
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
and #$0f0f
|
||||
ora #$c040
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$f0ff not necessary with pure green
|
||||
ora #$0c00
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$f0f0
|
||||
ora #$0808
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$0f0f
|
||||
ora #$4040
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
backupStack dc i2'0'
|
||||
|
||||
end
|
|
@ -0,0 +1,465 @@
|
|||
;
|
||||
; fleas.s
|
||||
; BuGS
|
||||
;
|
||||
; Created by Jeremy Rand on 2020-07-02.
|
||||
;Copyright © 2020 Jeremy Rand. All rights reserved.
|
||||
;
|
||||
|
||||
case on
|
||||
mcopy fleas.macros
|
||||
keep fleas
|
||||
|
||||
fleas start
|
||||
|
||||
|
||||
flea1 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ....|..OO|O...
|
||||
; ....|.ROO|OO..
|
||||
; ....|RROO|OOO.
|
||||
; ...O|OOOO|OOOO
|
||||
; ...O|OOG.|GOOO
|
||||
; ....|..G.|G.OO
|
||||
; ....|..G.|G.G.
|
||||
; ....|.G.G|...G
|
||||
;
|
||||
|
||||
lda $1,s
|
||||
and #$00ff
|
||||
ora #$8800
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$ff0f
|
||||
ora #$0080
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$00f0
|
||||
ora #$8804
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$ff00
|
||||
ora #$0088
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$0142
|
||||
tcs
|
||||
|
||||
pea $8844
|
||||
lda $3,s
|
||||
and #$0f00
|
||||
ora #$8088
|
||||
sta $3,s
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
tsc
|
||||
adc #$00a4
|
||||
tcs
|
||||
pea $8888
|
||||
pea $8888
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
lda $a1,s
|
||||
and #$0f00
|
||||
ora #$c088
|
||||
sta $a1,s
|
||||
|
||||
tsc
|
||||
adc #$00a4
|
||||
tcs
|
||||
pea $88c8
|
||||
|
||||
lda $9f,s
|
||||
ora #$c000
|
||||
sta $9f,s
|
||||
|
||||
lda $a1,s
|
||||
and #$000f
|
||||
ora #$88c0
|
||||
sta $a1,s
|
||||
|
||||
tsc
|
||||
adc #$013e
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
ora #$c000
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
ora #$c0c0
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
ora #$0c0c
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
ora #$0c00
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
flea2 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ....|..OO|O...
|
||||
; ....|.ROO|OO..
|
||||
; ....|RROO|OOO.
|
||||
; ...O|OOOO|OOOO
|
||||
; ...O|OO.G|.OOO
|
||||
; ....|..G.|.GOO
|
||||
; ....|.G..|G..G
|
||||
; ....|.G.G|..G.
|
||||
;
|
||||
|
||||
lda $1,s
|
||||
and #$00ff
|
||||
ora #$8800
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$ff0f
|
||||
ora #$0080
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$00f0
|
||||
ora #$8804
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$ff00
|
||||
ora #$0088
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$0142
|
||||
tcs
|
||||
|
||||
pea $8844
|
||||
lda $3,s
|
||||
and #$0f00
|
||||
ora #$8088
|
||||
sta $3,s
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
tsc
|
||||
adc #$00a4
|
||||
tcs
|
||||
pea $8888
|
||||
pea $8888
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
lda $a1,s
|
||||
and #$f000
|
||||
ora #$0c88
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$00f0
|
||||
ora #$8808
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
ora #$c000
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$00f0
|
||||
ora #$880c
|
||||
sta $3,s
|
||||
|
||||
tsc
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
ora #$000c
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
ora #$0cc0
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
ora #$0c0c
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
ora #$c000
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
flea3 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ....|..OO|O...
|
||||
; ....|.ROO|OO..
|
||||
; ....|RROO|OOO.
|
||||
; ...O|OOOO|OOOO
|
||||
; ...O|OO.G|.OOO
|
||||
; ....|..G.|G.OO
|
||||
; ....|..G.|.G.G
|
||||
; ....|...G|..G.
|
||||
;
|
||||
|
||||
lda $1,s
|
||||
and #$00ff
|
||||
ora #$8800
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$ff0f
|
||||
ora #$0080
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$00f0
|
||||
ora #$8804
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$ff00
|
||||
ora #$0088
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$0142
|
||||
tcs
|
||||
|
||||
pea $8844
|
||||
lda $3,s
|
||||
and #$0f00
|
||||
ora #$8088
|
||||
sta $3,s
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
tsc
|
||||
adc #$00a4
|
||||
tcs
|
||||
pea $8888
|
||||
pea $8888
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
lda $a1,s
|
||||
and #$f000
|
||||
ora #$0c88
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$00f0
|
||||
ora #$8808
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
ora #$c000
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$000f
|
||||
ora #$88c0
|
||||
sta $3,s
|
||||
|
||||
tsc
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
ora #$c000
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
ora #$0c0c
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
ora #$0c00
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
ora #$c000
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
flea4 entry
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ....|..OO|O...
|
||||
; ....|.ROO|OO..
|
||||
; ....|RROO|OOO.
|
||||
; ...O|OOOO|OOOO
|
||||
; ...O|OOG.|GOOO
|
||||
; ....|..G.|G.OO
|
||||
; ....|..G.|.G.G
|
||||
; ....|...G|.G.G
|
||||
;
|
||||
lda $1,s
|
||||
and #$00ff
|
||||
ora #$8800
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
and #$ff0f
|
||||
ora #$0080
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
and #$00f0
|
||||
ora #$8804
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
and #$ff00
|
||||
ora #$0088
|
||||
sta $a3,s
|
||||
|
||||
tsc
|
||||
adc #$0142
|
||||
tcs
|
||||
|
||||
pea $8844
|
||||
lda $3,s
|
||||
and #$0f00
|
||||
ora #$8088
|
||||
sta $3,s
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
tsc
|
||||
adc #$00a4
|
||||
tcs
|
||||
pea $8888
|
||||
pea $8888
|
||||
|
||||
lda $9f,s
|
||||
and #$f0ff
|
||||
ora #$0800
|
||||
sta $9f,s
|
||||
|
||||
lda $a1,s
|
||||
and #$0f00
|
||||
ora #$c088
|
||||
sta $a1,s
|
||||
|
||||
tsc
|
||||
adc #$00a4
|
||||
tcs
|
||||
pea $88c8
|
||||
|
||||
lda $9f,s
|
||||
ora #$c000
|
||||
sta $9f,s
|
||||
|
||||
lda $a1,s
|
||||
and #$000f
|
||||
ora #$88c0
|
||||
sta $a1,s
|
||||
|
||||
tsc
|
||||
adc #$013e
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
ora #$c000
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
ora #$0c0c
|
||||
sta $3,s
|
||||
|
||||
lda $a1,s
|
||||
ora #$0c00
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
ora #$0c0c
|
||||
sta $a3,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
backupStack dc i2'0'
|
||||
|
||||
end
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,529 @@
|
|||
;
|
||||
; mushrooms.s
|
||||
; BuGS
|
||||
;
|
||||
; Created by Jeremy Rand on 2020-07-02.
|
||||
;Copyright © 2020 Jeremy Rand. All rights reserved.
|
||||
;
|
||||
|
||||
case on
|
||||
mcopy mushrooms.macros
|
||||
keep mushrooms
|
||||
|
||||
mushrooms start
|
||||
|
||||
mushroom1 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x2)
|
||||
; #$0022 - Red, Red, Black, Black (x2)
|
||||
; #$1102 - Black, Red, Green, Green (x1)
|
||||
; #$2011 - Green, Green, Red, Black (x1)
|
||||
; #$1121 - Red, Green, Green, Green (x2)
|
||||
; #$1211 - Green, Green, Green, Red (x2)
|
||||
; #$2222 - Red, Red, Red, Red (x2)
|
||||
; #$2100 - Black, Black, Red, Green (x2)
|
||||
; #$0012 - Green, Red, Black, Black (x2)
|
||||
;
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2011
|
||||
pea $1102
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1211
|
||||
pea $1121
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1211
|
||||
pea $1121
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2222
|
||||
pea $2222
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0012
|
||||
pea $2100
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0012
|
||||
pea $2100
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
mushroom2 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x1)
|
||||
; #$1102 - Black, Red, Green, Green (x1)
|
||||
; #$2011 - Green, Green, Red, Black (x1)
|
||||
; #$1121 - Red, Green, Green, Green (x2)
|
||||
; #$1211 - Green, Green, Green, Red (x2)
|
||||
; #$2220 - Red, Black, Red, Red (x1)
|
||||
; #$2222 - Red, Red, Red, Red (x1)
|
||||
; #$2100 - Black, Black, Red, Green (x1)
|
||||
; #$0012 - Green, Red, Black, Black (x1)
|
||||
; #$0100 - Black, Black, Black, Green (x1)
|
||||
; #$0000 - Black, Black, Black, Black (x3)
|
||||
;
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2011
|
||||
pea $1102
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1211
|
||||
pea $1121
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1211
|
||||
pea $1121
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2222
|
||||
pea $2220
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0012
|
||||
pea $2100
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0000
|
||||
pea $0100
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0000
|
||||
pea $0000
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
mushroom3 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x1)
|
||||
; #$1102 - Black, Red, Green, Green (x1)
|
||||
; #$2011 - Green, Green, Red, Black (x1)
|
||||
; #$1121 - Red, Green, Green, Green (x2)
|
||||
; #$1211 - Green, Green, Green, Red (x2)
|
||||
; #$2020 - Red, Black, Red, Black (x2)
|
||||
; #$2000 - Black, Black, Red, Black (x1)
|
||||
; #$0000 - Black, Black, Black, Black (x5)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2011
|
||||
pea $1102
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1211
|
||||
pea $1121
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1211
|
||||
pea $1121
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2020
|
||||
pea $2020
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2000
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
mushroom4 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x1)
|
||||
; #$1102 - Black, Red, Green, Green (x1)
|
||||
; #$2011 - Green, Green, Red, Black (x1)
|
||||
; #$1021 - Red, Green, Green, Black (x1)
|
||||
; #$1211 - Green, Green, Green, Red (x1)
|
||||
; #$1020 - Red, Black, Green, Black (x1)
|
||||
; #$1210 - Green, Black, Green, Red (x1)
|
||||
; #$0000 - Black, Black, Black, Black (x8)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2011
|
||||
pea $1102
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1211
|
||||
pea $1021
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1210
|
||||
pea $1020
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
poisonedMushroom1 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x2)
|
||||
; #$0022 - Red, Red, Black, Black (x2)
|
||||
; #$3302 - Black, Red, Off-white, Off-white (x1)
|
||||
; #$2033 - Off-white, Off-white, Red, Black (x1)
|
||||
; #$3323 - Red, Off-white, Off-white, Off-white (x2)
|
||||
; #$3233 - Off-white, Off-white, Off-white, Red (x2)
|
||||
; #$2222 - Red, Red, Red, Red (x2)
|
||||
; #$2300 - Black, Black, Red, Off-white (x2)
|
||||
; #$0032 - Off-white, Red, Black, Black (x2)
|
||||
;
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2033
|
||||
pea $3302
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3233
|
||||
pea $3323
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3233
|
||||
pea $3323
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2222
|
||||
pea $2222
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0032
|
||||
pea $2300
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0032
|
||||
pea $2300
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
poisonedMushroom2 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x1)
|
||||
; #$3302 - Black, Red, Off-white, Off-white (x1)
|
||||
; #$2033 - Off-white, Off-white, Red, Black (x1)
|
||||
; #$3323 - Red, Off-white, Off-white, Off-white (x2)
|
||||
; #$3233 - Off-white, Off-white, Off-white, Red (x2)
|
||||
; #$2220 - Red, Black, Red, Red (x1)
|
||||
; #$2222 - Red, Red, Red, Red (x1)
|
||||
; #$2300 - Black, Black, Red, Off-white (x1)
|
||||
; #$0032 - Off-white, Red, Black, Black (x1)
|
||||
; #$0300 - Black, Black, Black, Off-white (x1)
|
||||
; #$0000 - Black, Black, Black, Black (x3)
|
||||
;
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2033
|
||||
pea $3302
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3233
|
||||
pea $3323
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3233
|
||||
pea $3323
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2222
|
||||
pea $2220
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0032
|
||||
pea $2300
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0000
|
||||
pea $0300
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0000
|
||||
pea $0000
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
poisonedMushroom3 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x1)
|
||||
; #$3302 - Black, Red, Off-white, Off-white (x1)
|
||||
; #$2033 - Off-white, Off-white, Red, Black (x1)
|
||||
; #$3323 - Red, Off-white, Off-white, Off-white (x2)
|
||||
; #$3233 - Off-white, Off-white, Off-white, Red (x2)
|
||||
; #$2020 - Red, Black, Red, Black (x2)
|
||||
; #$2000 - Black, Black, Red, Black (x1)
|
||||
; #$0000 - Black, Black, Black, Black (x5)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2033
|
||||
pea $3302
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3233
|
||||
pea $3323
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3233
|
||||
pea $3323
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2020
|
||||
pea $2020
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2000
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
poisonedMushroom4 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x1)
|
||||
; #$3302 - Black, Red, Off-white, Off-white (x1)
|
||||
; #$2033 - Off-white, Off-white, Red, Black (x1)
|
||||
; #$3023 - Red, Off-white, Off-white, Black (x1)
|
||||
; #$3233 - Off-white, Off-white, Off-white, Red (x1)
|
||||
; #$3020 - Red, Black, Off-white, Black (x1)
|
||||
; #$3230 - Off-white, Black, Off-white, Red (x1)
|
||||
; #$0000 - Black, Black, Black, Black (x8)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
|
||||
pea $0022
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2033
|
||||
pea $3302
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3233
|
||||
pea $3023
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $3230
|
||||
pea $3020
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
backupStack dc i2'0'
|
||||
|
||||
end
|
|
@ -0,0 +1,645 @@
|
|||
;
|
||||
; numbers.s
|
||||
; BuGS
|
||||
;
|
||||
; Created by Jeremy Rand on 2020-07-02.
|
||||
;Copyright © 2020 Jeremy Rand. All rights reserved.
|
||||
;
|
||||
|
||||
case on
|
||||
mcopy numbers.macros
|
||||
keep numbers
|
||||
|
||||
numbers start
|
||||
|
||||
|
||||
number0 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x2)
|
||||
; #$0020 - Red, Black, Black, Black (x2)
|
||||
; #$2200 - Black, Black, Red, Red (x2)
|
||||
; #$0022 - Red, Red, Black, Black (x4)
|
||||
; #$2002 - Black, Red, Red, Black (x4)
|
||||
; #$0002 - Black, Red, Black, Black (x2)
|
||||
;
|
||||
ldx #$0022 ; Red, Red, Black, Black
|
||||
ldy #$2002 ; Black, Red, Red, Black
|
||||
|
||||
pea $0000
|
||||
pea $0000
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $0002
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0002
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
pea $2200
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number1 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x8)
|
||||
; #$2200 - Black, Black, Red, Red (x5)
|
||||
; #$0022 - Red, Red, Black, Black (x1)
|
||||
; #$2202 - Black, Red, Red, Red (x1)
|
||||
; #$2222 - Red, Red, Red, Red (x1)
|
||||
;
|
||||
ldx #$2200 ; Black, Black, Red, Red
|
||||
ldy #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phy
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
pea $2202
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0022
|
||||
pea $2222
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number2 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x4)
|
||||
; #$2202 - Black, Red, Red, Red (x2)
|
||||
; #$0022 - Red, Red, Black, Black (x3)
|
||||
; #$2002 - Black, Red, Red, Black (x1)
|
||||
; #$2022 - Red, Red, Red, Black (x3)
|
||||
; #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$0020 - Red, Black, Black, Black (x1)
|
||||
; #$2222 - Red, Red, Red, Red (x1)
|
||||
;
|
||||
ldx #$0022 ; Red, Red, Black, Black
|
||||
ldy #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phy
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2202
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2022
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
pea $2202
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
pea $2022
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2022
|
||||
pea $2222
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number3 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x4)
|
||||
; #$2202 - Black, Red, Red, Red (x2)
|
||||
; #$2022 - Red, Red, Red, Black (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x4)
|
||||
; #$0020 - Red, Black, Black, Black (x1)
|
||||
; #$0200 - Black, Black, Black, Red (x1)
|
||||
; #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$2002 - Black, Red, Red, Black (x2)
|
||||
;
|
||||
ldx #$0022 ; Red, Red, Black, Black
|
||||
ldy #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phy
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2022
|
||||
pea $2202
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
pea $0200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2202
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number4 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x4)
|
||||
; #$0022 - Red, Red, Black, Black (x7)
|
||||
; #$0200 - Black, Black, Black, Red (x1)
|
||||
; #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$2002 - Black, Red, Red, Black (x1)
|
||||
; #$2222 - Red, Red, Red, Red (x1)
|
||||
; #$2022 - Red, Red, Red, Black (x1)
|
||||
;
|
||||
ldx #$0022 ; Red, Red, Black, Black
|
||||
ldy #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phy
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $0200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2002
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2022
|
||||
pea $2222
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number5 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x5)
|
||||
; #$0022 - Red, Red, Black, Black (x5)
|
||||
; #$2222 - Red, Red, Red, Red (x2)
|
||||
; #$2002 - Black, Red, Red, Black (x3)
|
||||
; #$2202 - Black, Red, Red, Red (x1)
|
||||
;
|
||||
ldx #$0022 ; Red, Red, Black, Black
|
||||
ldy #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phy
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2222
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2222
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2202
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number6 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x4)
|
||||
; #$0022 - Red, Red, Black, Black (x6)
|
||||
; #$2200 - Black, Black, Red, Red (x1)
|
||||
; #$2002 - Black, Red, Red, Black (x3)
|
||||
; #$2222 - Red, Red, Red, Red (x1)
|
||||
; #$2202 - Black, Red, Red, Red (x1)
|
||||
;
|
||||
ldx #$0022 ; Red, Red, Black, Black
|
||||
ldy #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phy
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
pea $2002
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phy
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2222
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2202
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number7 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x6)
|
||||
; #$2222 - Red, Red, Red, Red (x1)
|
||||
; #$2022 - Red, Red, Red, Black (x1)
|
||||
; #$2002 - Black, Red, Red, Black (x1)
|
||||
; #$0022 - Red, Red, Black, Black (x2)
|
||||
; #$0020 - Red, Black, Black, Black (x1)
|
||||
; #$0200 - Black, Black, Black, Red (x1)
|
||||
; #$2200 - Black, Black, Red, Red (x3)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
ldy #$2200 ; Black, Black, Red, Red
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2022
|
||||
pea $2222
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
pea $0022
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0022
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
pea $0200
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number8 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x2)
|
||||
; #$0020 - Red, Black, Black, Black (x3)
|
||||
; #$2202 - Black, Red, Red, Red (x3)
|
||||
; #$0002 - Black, Red, Black, Black (x2)
|
||||
; #$0022 - Red, Red, Black, Black (x2)
|
||||
; #$2022 - Red, Red, Red, Black (x2)
|
||||
; #$2002 - Black, Red, Red, Black (x1)
|
||||
; #$0220 - Red, Black, Black, Red (x1)
|
||||
;
|
||||
ldx #$0020 ; Red, Black, Black, Black
|
||||
ldy #$2202 ; Black, Red, Red, Red
|
||||
|
||||
pea $0000
|
||||
pea $0000
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0002
|
||||
pea $0022
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0002
|
||||
pea $2022
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2022
|
||||
pea $0220
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0022
|
||||
phy
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
number9 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x4)
|
||||
; #$0022 - Red, Red, Black, Black (x4)
|
||||
; #$2202 - Black, Red, Red, Red (x3)
|
||||
; #$2002 - Black, Red, Red, Black (x3)
|
||||
; #$2022 - Red, Red, Red, Black (x1)
|
||||
; #$0020 - Red, Black, Black, Black (x1)
|
||||
;
|
||||
ldx #$0022 ; Red, Red, Black, Black
|
||||
ldy #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phy
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
pea $2202
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2022
|
||||
pea $2202
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $2002
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
pea $2202
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
backupStack dc i2'0'
|
||||
|
||||
end
|
|
@ -0,0 +1,341 @@
|
|||
;
|
||||
; scores.s
|
||||
; BuGS
|
||||
;
|
||||
; Created by Jeremy Rand on 2020-07-02.
|
||||
;Copyright © 2020 Jeremy Rand. All rights reserved.
|
||||
;
|
||||
|
||||
case on
|
||||
mcopy scores.macros
|
||||
keep scores
|
||||
|
||||
scores start
|
||||
|
||||
score300 entry
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ....|....|....
|
||||
; ....|....|....
|
||||
; .OOO|.OOO|.OOO
|
||||
; ...O|.O.O|.O.O
|
||||
; .OOO|.O.O|.O.O
|
||||
; ...O|.O.O|.O.O
|
||||
; .OOO|.OOO|.OOO
|
||||
; ....|....|....
|
||||
;
|
||||
tsc
|
||||
adc #$013a
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $5,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$f0ff
|
||||
ora #$0800
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a3,s
|
||||
|
||||
lda $a5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a5,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $5,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$f0ff
|
||||
ora #$0800
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a3,s
|
||||
|
||||
lda $a5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a5,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $5,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
score600 entry
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ....|....|....
|
||||
; ....|....|....
|
||||
; .OOO|.OOO|.OOO
|
||||
; .O..|.O.O|.O.O
|
||||
; .OOO|.O.O|.O.O
|
||||
; .O.O|.O.O|.O.O
|
||||
; .OOO|.OOO|.OOO
|
||||
; ....|....|....
|
||||
;
|
||||
|
||||
tsc
|
||||
adc #$013a
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $5,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$fff0
|
||||
ora #$0008
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a3,s
|
||||
|
||||
lda $a5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a5,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $5,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a3,s
|
||||
|
||||
lda $a5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a5,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $5,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
score900 entry
|
||||
_spriteHeader
|
||||
|
||||
; $c - Green
|
||||
; $4 - Red
|
||||
; $8 - Off-white
|
||||
;
|
||||
; ....|....|....
|
||||
; ....|....|....
|
||||
; .OOO|.OOO|.OOO
|
||||
; .O.O|.O.O|.O.O
|
||||
; .OOO|.O.O|.O.O
|
||||
; ...O|.O.O|.O.O
|
||||
; .OOO|.OOO|.OOO
|
||||
; ....|....|....
|
||||
;
|
||||
|
||||
tsc
|
||||
adc #$013a
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $5,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a3,s
|
||||
|
||||
lda $a5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a5,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $5,s
|
||||
|
||||
lda $a1,s
|
||||
; and #$f0ff
|
||||
ora #$0800
|
||||
sta $a1,s
|
||||
|
||||
lda $a3,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a3,s
|
||||
|
||||
lda $a5,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
sta $a5,s
|
||||
|
||||
tsc
|
||||
adc #$0140
|
||||
tcs
|
||||
|
||||
lda $1,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $1,s
|
||||
|
||||
lda $3,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $3,s
|
||||
|
||||
lda $5,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
sta $5,s
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
backupStack dc i2'0'
|
||||
|
||||
|
||||
end
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,242 @@
|
|||
;
|
||||
; solid.s
|
||||
; BuGS
|
||||
;
|
||||
; Created by Jeremy Rand on 2020-07-02.
|
||||
;Copyright © 2020 Jeremy Rand. All rights reserved.
|
||||
;
|
||||
|
||||
case on
|
||||
mcopy solid.macros
|
||||
keep solid
|
||||
|
||||
solid start
|
||||
|
||||
|
||||
solid0 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x16)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
solid1 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$1111 - Green, Green, Green, Green (x16)
|
||||
;
|
||||
ldx #$1111 ; Green, Green, Green, Green
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
solid2 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$2222 - Red, Red, Red, Red (x16)
|
||||
;
|
||||
ldx #$2222 ; Red, Red, Red, Red
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
solid3 entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$3333 - Off-white, Off-white, Off-white, Off-white (x16)
|
||||
;
|
||||
ldx #$3333 ; Off-white, Off-white, Off-white, Off-white
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
backupStack dc i2'0'
|
||||
|
||||
end
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,58 @@
|
|||
# Sprites Design
|
||||
|
||||
## Performance of Different Stack Ops
|
||||
|
||||
Performance of two approaches:
|
||||
```
|
||||
ldx #$abcd 3 cycles
|
||||
phx 4 cycles (per push)
|
||||
```
|
||||
|
||||
versus:
|
||||
```
|
||||
pea $abcd 5 cycles
|
||||
```
|
||||
|
||||
When the pattern $abcd appears just once:
|
||||
* ldx/phx takes 7 cycles
|
||||
* pea takes 5 cycles (best)
|
||||
|
||||
When the pattern $abcd appears twice:
|
||||
* ldx/phx/phx takes 11 cycles
|
||||
* pea/pea takes 10 cycles (best)
|
||||
|
||||
When the pattern $abcd appears three times:
|
||||
* ldx/phx/phx/phx takes 15 cycles
|
||||
* pea/pea/pea takes 15 cycles
|
||||
|
||||
When the pattern $abcd appears four times:
|
||||
* ldx/phx/phx/phx takes 19 cycles (best)
|
||||
* pea/pea/pea takes 20 cycles
|
||||
|
||||
So, if a pattern appears four or more times, it is worth using a register for the pattern. If it appears exactly three times, a register can be used but it buys nothing. If it appears two or fewer times, a register for the pattern should not be used.
|
||||
|
||||
## Colours and Layers
|
||||
|
||||
Every level has three primary colours which are used for all sprites. Because the GS can have up to 16 colours on a line, we have more colours available in the HW than is required for the game.
|
||||
|
||||
Each colour is 4 bits wide. All zeros is always black in all the different palletes for each level. The bottom two bits are used by the "lowest layer" which is drawn first. The bottom layer consists of:
|
||||
* mushrooms
|
||||
* numbers
|
||||
* letters
|
||||
* symbols
|
||||
* solid squares (primarily the all black square)
|
||||
|
||||
These sprites generally draw first and overwrite what may have been there before. After the background layer is drawn, other things are drawn in this order:
|
||||
* spiders
|
||||
* scorpions
|
||||
* fleas
|
||||
* scores
|
||||
* centipede segments
|
||||
* missle
|
||||
* player
|
||||
|
||||
If that item is exploding, the explosion is also drawn at this time. Because we only have three non-black colours, the bottom two bits of the colour is used for the "background colour". Background sprites only set these bits.
|
||||
|
||||
Then, these forground sprites can just set the upper two bits to overwrite the background colour. This turns a load, and, or, store into a load, or, store cycle for each 4 pixels. Spiders and scorpions never overlap with each other so they can avoid the "and" operation. Fleas, scores and centipede segments may overlap with other sprites so they maybe need to perform an and operation to preserve background or other foreground pixels from other sprites.
|
||||
|
||||
But there is one more optimization I have made. The majority of foreground sprites are centipede segments and the centipede is mostly green (in the first level colour pallete). This colour is always 11xx. That means to make a foreground pixel green, we only need to set the two high bits of the pixel and that can always be done with just an or operation. If the four pixels consist of only green pixels (one, two, three or four green pixels and no other colours), then that can always be done with just an or operation. No masking is required. Again, centipede segments are mostly green and there tends to be lots of segments so this is a useful optimization.
|
|
@ -0,0 +1,261 @@
|
|||
;
|
||||
; symbols.s
|
||||
; BuGS
|
||||
;
|
||||
; Created by Jeremy Rand on 2020-07-02.
|
||||
;Copyright © 2020 Jeremy Rand. All rights reserved.
|
||||
;
|
||||
|
||||
case on
|
||||
mcopy symbols.macros
|
||||
keep symbols
|
||||
|
||||
symbols start
|
||||
|
||||
symbolC entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$1100 - Black, Black, Green, Green (x2)
|
||||
; #$0011 - Green, Green, Black, Black (x2)
|
||||
; #$0201 - Black, Green, Black, Red (x2)
|
||||
; #$1020 - Red, Black, Green, Black (x2)
|
||||
; #$2010 - Green, Black, Red, Black (x4)
|
||||
; #$0102 - Black, Red, Black, Green (x2)
|
||||
; #$0100 - Black, Black, Black, Green (x2)
|
||||
;
|
||||
ldx #$2010 ; Green, Black, Red, Black
|
||||
|
||||
pea $0011
|
||||
pea $1100
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1020
|
||||
pea $0201
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0102
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0100
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0100
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0102
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1020
|
||||
pea $0201
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0011
|
||||
pea $1100
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
symbolP entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$1100 - Black, Black, Green, Green (x2)
|
||||
; #$0011 - Green, Green, Black, Black (x2)
|
||||
; #$0201 - Black, Green, Black, Red (x1)
|
||||
; #$1020 - Red, Black, Green, Black (x1)
|
||||
; #$2010 - Green, Black, Red, Black (x3)
|
||||
; #$0102 - Black, Red, Black, Green (x2)
|
||||
; #$2210 - Green, Black, Red, Red (x1)
|
||||
; #$0120 - Red, Black, Black, Green (x1)
|
||||
; #$0100 - Black, Black, Black, Green (x1)
|
||||
; #$2001 - Black, Green, Red, Black (x1)
|
||||
; #$1000 - Black, Black, Green, Black (x1)
|
||||
;
|
||||
ldx #$2010 ; Green, Black, Red, Black
|
||||
|
||||
pea $0011
|
||||
pea $1100
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1020
|
||||
pea $0201
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0102
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0102
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0120
|
||||
pea $2210
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0100
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $1000
|
||||
pea $2001
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0011
|
||||
pea $1100
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
symbolDot entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x15)
|
||||
; #$0030 - Off-white, Black, Black, Black (x1)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0030
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
symbolColon entry
|
||||
_spriteHeader
|
||||
|
||||
; Colours #$0000 - Black, Black, Black, Black (x8)
|
||||
; #$0020 - Red, Black, Black, Black (x4)
|
||||
; #$0200 - Black, Black, Black, Red (x4)
|
||||
;
|
||||
ldx #$0000 ; Black, Black, Black, Black
|
||||
ldy #$0200 ; Black, Black, Black, Red
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
pea $0020
|
||||
phy
|
||||
|
||||
adc #$00a0
|
||||
tcs
|
||||
|
||||
phx
|
||||
phx
|
||||
|
||||
_spriteFooter
|
||||
rtl
|
||||
|
||||
|
||||
backupStack dc i2'0'
|
||||
|
||||
end
|
Loading…
Reference in New Issue