From 72265face95684ced0f8184c24aeb45208940ace Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Fri, 3 Jul 2020 02:04:27 -0400 Subject: [PATCH] Start adding centipede head segment sprites. --- BuGS.xcodeproj/project.pbxproj | 2 + BuGS/game.s | 6 + BuGS/sprites/segments.s | 215 +++++++++++++++++++++++++++++++++ 3 files changed, 223 insertions(+) create mode 100644 BuGS/sprites/segments.s diff --git a/BuGS.xcodeproj/project.pbxproj b/BuGS.xcodeproj/project.pbxproj index c3af68e..66e3086 100644 --- a/BuGS.xcodeproj/project.pbxproj +++ b/BuGS.xcodeproj/project.pbxproj @@ -74,6 +74,7 @@ 9D3396FC24AECFBB003222B3 /* letters.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = letters.s; sourceTree = ""; }; 9D3396FD24AECFF5003222B3 /* mushrooms.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = mushrooms.s; sourceTree = ""; }; 9D3396FF24AED09D003222B3 /* sprites.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = sprites.md; sourceTree = ""; }; + 9D33970024AEFBF2003222B3 /* segments.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = segments.s; sourceTree = ""; }; 9D62AF3B249871A300348F45 /* colour.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = colour.s; sourceTree = ""; }; 9D62AF3E2499660100348F45 /* local.macros */ = {isa = PBXFileReference; lastKnownFileType = text; path = local.macros; sourceTree = ""; }; 9D62AF3F2499CD1E00348F45 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; @@ -169,6 +170,7 @@ 9D3396FB24AECF7C003222B3 /* symbols.s */, 9D3396FC24AECFBB003222B3 /* letters.s */, 9D3396FD24AECFF5003222B3 /* mushrooms.s */, + 9D33970024AEFBF2003222B3 /* segments.s */, ); path = sprites; sourceTree = ""; diff --git a/BuGS/game.s b/BuGS/game.s index f6e7c69..89ce1ed 100644 --- a/BuGS/game.s +++ b/BuGS/game.s @@ -312,6 +312,12 @@ game start ldx #$5c6b jsl explosion6 + ldx #$5c73 + jsl left_head1 + + ldx #$5c7b + jsl left_head1s + jsl waitForKey rtl diff --git a/BuGS/sprites/segments.s b/BuGS/sprites/segments.s new file mode 100644 index 0000000..f2f2449 --- /dev/null +++ b/BuGS/sprites/segments.s @@ -0,0 +1,215 @@ +; +; segments.s +; BuGS +; +; Created by Jeremy Rand on 2020-07-03. +;Copyright © 2020 Jeremy Rand. All rights reserved. +; + + case on + mcopy segments.macros + keep segments + +segments start + +left_head1 entry + dex + dex + dex + dex + _spriteHeader + +; $c - Green +; $4 - Red +; $8 - Off-white +; +; ...O|.... +; .RRG|G... +; GRRG|GG.. +; GGGG|GGG. +; GGGG|GGG. +; GRRG|GG.. +; .RRG|G... +; ...O|.... + + lda $1,s + and #$f0ff + ora #$0800 + sta $1,s + + lda $a1,s + and #$00f0 + ora #$4c04 + sta $a1,s + + lda $a3,s +; and #$ff0f not necessary with pure green + ora #$00c0 + sta $a3,s + + tsc + adc #$142 + tcs + + pea $4cc4 + + lda $3,s +; and #$ff00 not necessary with pure green + ora #$00cc + sta $3,s + + lda #$cccc + sta $a1,s + + lda $a3,s +; and #$0f00 not necessary with pure green + ora #$c0cc + sta $a3,s + + tsc + adc #$142 + tcs + + pea $cccc + + lda $3,s +; and #$0f00 not necessary with pure green + ora #$c0cc + sta $3,s + + lda #$4cc4 + sta $a1,s + + lda $a3,s +; and #$ff00 not necessary with pure green + ora #$00cc + sta $a3,s + + tsc + adc #$140 + tcs + + lda $1,s + and #$00f0 + ora #$4c04 + sta $1,s + + lda $3,s +; and #$ff0f not necessary with pure green + ora #$00c0 + sta $3,s + + lda $a1,s + and #$f0ff + ora #$0800 + sta $a1,s + + _spriteFooter + rtl + + +left_head1s entry + dex + dex + dex + dex + _spriteHeader + +; $c - Green +; $4 - Red +; $8 - Off-white +; +; ....|O... +; ..RR|GG.. +; .GRR|GGG. +; .GGG|GGGG +; .GGG|GGGG +; .GRR|GGG. +; ..RR|GG.. +; ....|O... + + lda $3,s + and #$ff0f + ora #$0080 + sta $3,s + + lda $a1,s + and #$00ff + ora #$4400 + sta $a1,s + + lda $a3,s +; and #$ff00 not necessary with pure green + ora #$00cc + sta $a3,s + + tsc + adc #$140 + tcs + + lda $1,s + and #$00f0 + ora #$440c + sta $1,s + + lda $3,s +; and #$0f00 not necessary with pure green + ora #$c0cc + sta $3,s + + lda $a1,s +; and #$00f0 not necessary with pure green + ora #$cc0c + sta $a1,s + + lda #$cccc + sta $a3,s + + tsc + adc #$140 + tcs + + lda $1,s +; and #$00f0 not necessary with pure green + ora #$cc0c + sta $1,s + + lda #$cccc + sta $3,s + + lda $a1,s + and #$00f0 + ora #$440c + sta $a1,s + + lda $a3,s +; and #$0f00 not necessary with pure green + ora #$c0cc + sta $a3,s + + tsc + adc #$140 + tcs + + lda $1,s + and #$00ff + ora #$4400 + sta $1,s + + lda $3,s +; and #$ff00 not necessary with pure green + ora #$00cc + sta $3,s + + lda $a3,s + and #$ff0f + ora #$0080 + sta $a3,s + + _spriteFooter + rtl + + +backupStack dc i2'0' + + end