From 2bdaae8f304c28b7fef9e1e78549120c3278748e Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Sat, 30 Sep 2017 13:01:36 -0700 Subject: [PATCH] Added cat sprites - Integrated Mr. Sprite art pipeline - Fixed background restore bug - Added debug pause --- Block.xcf | Bin 0 -> 665 bytes Block1.xcf | Bin 0 -> 671 bytes Cat.xcf | Bin 0 -> 930 bytes GSCats.xcodeproj/project.pbxproj | 6 + Makefile | 7 +- block.gif | Bin 0 -> 68 bytes block.s | 124 +++++++++++++++++ block1.gif | Bin 0 -> 76 bytes block1.s | 124 +++++++++++++++++ cat.gif | Bin 0 -> 189 bytes cat.s | 219 +++++++++++++++++++++++++++++++ cat.src | 219 +++++++++++++++++++++++++++++++ gamemanager.s | 18 ++- gameobject.s | 10 +- graphics.s | 7 +- gscats.2mg | Bin 819264 -> 819264 bytes input.s | 9 ++ player.s | 4 +- projectile.s | 2 +- 19 files changed, 735 insertions(+), 14 deletions(-) create mode 100644 Block.xcf create mode 100644 Block1.xcf create mode 100644 Cat.xcf create mode 100644 block.gif create mode 100644 block.s create mode 100644 block1.gif create mode 100644 block1.s create mode 100644 cat.gif create mode 100644 cat.s create mode 100644 cat.src diff --git a/Block.xcf b/Block.xcf new file mode 100644 index 0000000000000000000000000000000000000000..ef5fef671967dd92bc9400c9a415d123f3c04c0e GIT binary patch literal 665 zcmZ`%%TB{E5Oe~9(o#{LCk{TQhoJTs%Aw+b#4n_Y<60zfmAIlkAie;JFX0!arA-!J1L>>aiAy5gC6|X36JI&o7i2wWX>|q=;p$GV)Lzu&6QHLhwcxDjWBsT&B9v zHILd5*K(2Y$-|^YhnU*b7_EzrR+s1h3u@got0YyGzk_;w1>pU+^Hq_48p>#F^2G!4QDNYmMYJ*#N|XI3Mydr$X0 sJ@E9or-z=tfTn#NP9f+#g8wr14hxkP?&?Q)IPZsE_(|)JfbATA0J6Vn-2eap literal 0 HcmV?d00001 diff --git a/Block1.xcf b/Block1.xcf new file mode 100644 index 0000000000000000000000000000000000000000..b5e057887157950ecf85f283a23df5dae75ef7a0 GIT binary patch literal 671 zcmZ{iOHRWu5Qd$IM=3;<=Zb}w=_07T0xT*dka~qQaa@Z$s@RBj)g!=`E3oJl%Rj+} zRD_ZK`13zAwq-}EV!@Y5#xs=*h8S28pFy67&jr-GduNP%_*2_F^3l}=&C9{vGjCc_NO0`P#fJ_{-vjjTBldC}JxI#wG@Uib zyVG`_RcYL$WBaCPj_m&Pmj_bW>RO9woTr1lD#osxf_~l1C#kK=Nip8t>}PpWPRh#m zyD+Ho!`KcV4?9}}My|9A>ERlwuiO6vk)G7YaZ=23JMw3NoUbDtH+VHG8e7bgqqG)% znPqj_{Jo&4|E2ygH>L6(oYA>Qh<=9=aPJ_l<%Pb8=V>K9vRE+jm1 zVy1|+F`D&)LQ+ipGjzliu~Li=p$`p9R*_n;CZ$PVqEo2=Ut$no5xz?<4UD<;RT&dS zMzq}=C=8h;rpYL!ey}m*Cx_}9sSfqR9r}wUyT8mj0Ee-|{b>v*lLzW;<2}YXG$G7%Tt) literal 0 HcmV?d00001 diff --git a/block1.s b/block1.s new file mode 100644 index 0000000..771c952 --- /dev/null +++ b/block1.s @@ -0,0 +1,124 @@ +Spr_002: + FASTGRAPHICS ; 16x16, 214 bytes, 433 cycles + clc + tya ; Y = Sprite Target Screen Address (upper left corner) + tcs ; New Stack address + ldx #$6666 ; Pattern #1 : 112 +;-- + tsc + adc #$0007 + tcs + phx + phx + phx + phx + tsc ; Line 1 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 2 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 3 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 4 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 5 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 6 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 7 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 8 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 9 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 10 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 11 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 12 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 13 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 14 + adc #$00A8 + tcs + phx + phx + phx + phx + tsc ; Line 15 + adc #$00A8 + tcs + phx + phx + phx + phx +;-- +SLOWGRAPHICS + rts + +;------------------------------ diff --git a/cat.gif b/cat.gif new file mode 100644 index 0000000000000000000000000000000000000000..a269e38edd4aefbd6484a0e0df12e0f7a761c9a2 GIT binary patch literal 189 zcmZ?wbhEHb6krfwc+AcK1RZIDXJ#6|+wF2UE$#ozRSf?b{^JIU{{)?jQWHy3QxwWG zOEMJPJ$(Zh6o0ZXaxri)=zxp^8O*>Edf`MS%i8j`q$Yvr1Q~WwfrB47UqoabT5xWW z`_ZCxWrtZFF-RVmyo<4Q+7+%TN}^os(t6)MPFQ3&w@YM0>Q<(pv{l^wp|SmEiX7AT Qx=ma%t8nAnnH&t(0GGs8mjD0& literal 0 HcmV?d00001 diff --git a/cat.s b/cat.s new file mode 100644 index 0000000..2ab4108 --- /dev/null +++ b/cat.s @@ -0,0 +1,219 @@ +Spr_000: + FASTGRAPHICS ; 16x16, 484 bytes, 710 cycles + clc + tya ; Y = Sprite Target Screen Address (upper left corner) + tcs ; New Stack address + ldx #$4444 ; Pattern #1 : 4 + ldy #$0444 ; Pattern #2 : 2 + lda #$4004 ; Pattern #3 : 2 + tcd +;-- + lda #$2633 ; Line 0 + sta $A5,S + lda $A3,S + and #$F000 + ora #$0226 + sta $A3,S + sep #$20 + .a8 + lda $03,S + and #$F0 + ora #$03 + sta $03,S + lda $06,S + and #$F0 + ora #$03 + sta $06,S + lda $A7,S + and #$0F + ora #$20 + sta $A7,S + rep #$30 + .a16 + tsc ; Line 2 + adc #$0140 + tcs + sep #$20 + .a8 + lda #$FF + sta $00,S + sta $A0,S + lda $07,S + and #$0F + ora #$20 + sta $07,S + lda $A7,S + and #$0F + ora #$20 + sta $A7,S + rep #$30 + .a16 + tsc + adc #$0006 + tcs + pea $3533 + pea $2425 + tsc ; Line 3 + adc #$00A4 + tcs + sep #$20 + .a8 + lda #$23 + sta $9A,S + lda $A1,S + and #$0F + ora #$30 + sta $A1,S + rep #$30 + .a16 + pea $3434 + pea $4423 + tsc ; Line 4 + adc #$00A4 + tcs + lda $9C,S + and #$00F0 + ora #$2303 + sta $9C,S + sep #$20 + .a8 + lda #$24 + sta $9A,S + rep #$30 + .a16 + phx + pea $4434 + tsc ; Line 5 + adc #$00A5 + tcs + sep #$20 + .a8 + lda #$24 + sta $99,S + lda $A0,S + and #$0F + ora #$30 + sta $A0,S + rep #$30 + .a16 + pea $2340 + phy + tsc ; Line 6 + adc #$00A3 + tcs + phd + pea $4433 + tsc ; Line 7 + adc #$00A5 + tcs + sep #$20 + .a8 + lda $99,S + and #$F0 + ora #$03 + sta $99,S + rep #$30 + .a16 + pea $236F + pea $F64F + pea $2233 + pea $3324 + tsc ; Line 8 + adc #$00A7 + tcs + lda $9F,S + and #$0F00 + ora #$3022 + sta $9F,S + sep #$20 + .a8 + lda $9A,S + and #$F0 + ora #$03 + sta $9A,S + rep #$30 + .a16 + pea $F2FF + pea $2333 + pea $3444 + tsc ; Line 9 + adc #$00A4 + tcs + txa + sta $9E,S + lda $9C,S + and #$00F0 + ora #$4403 + sta $9C,S + lda $A0,S + and #$0F00 + ora #$F03F + sta $A0,S + pea $FF43 + phx + tsc ; Line 11 + adc #$0140 + tcs + lda #$4434 + sta $02,S + lda #$2322 + sta $A2,S + lda $00,S + and #$00F0 + ora #$4403 + sta $00,S + lda $04,S + and #$0F00 + ora #$F043 + sta $04,S + lda $A0,S + and #$00F0 + ora #$4303 + sta $A0,S + lda $A4,S + and #$0F00 + ora #$3044 + sta $A4,S + tsc ; Line 13 + adc #$0140 + tcs + lda $00,S + and #$00F0 + ora #$3204 + sta $00,S + lda $03,S + and #$00F0 + ora #$4203 + sta $03,S + lda $A0,S + and #$00F0 + ora #$3203 + sta $A0,S + lda $A3,S + and #$00F0 + ora #$3203 + sta $A3,S + sep #$20 + .a8 + lda $05,S + and #$0F + ora #$30 + sta $05,S + rep #$30 + .a16 + tsc ; Line 15 + adc #$0140 + tcs + lda $00,S + and #$00F0 + ora #$F30F + sta $00,S + lda $03,S + and #$00F0 + ora #$F30F + sta $03,S +;-- +SLOWGRAPHICS + rts + +;------------------------------ diff --git a/cat.src b/cat.src new file mode 100644 index 0000000..20ace59 --- /dev/null +++ b/cat.src @@ -0,0 +1,219 @@ +Spr_000: + FASTGRAPHICS ; 16x16, 484 bytes, 710 cycles + clc + tya ; Y = Sprite Target Screen Address (upper left corner) + tcs ; New Stack address + ldx #$3333 ; Pattern #1 : 4 + ldy #$0333 ; Pattern #2 : 2 + lda #$3003 ; Pattern #3 : 2 + tcd +;-- + lda #$1522 ; Line 0 + sta $A5,S + lda $A3,S + and #$F000 + ora #$0115 + sta $A3,S + sep #$20 + .a8 + lda $03,S + and #$F0 + ora #$02 + sta $03,S + lda $06,S + and #$F0 + ora #$02 + sta $06,S + lda $A7,S + and #$0F + ora #$10 + sta $A7,S + rep #$30 + .a16 + tsc ; Line 2 + adc #$0140 + tcs + sep #$20 + .a8 + lda #$77 + sta $00,S + sta $A0,S + lda $07,S + and #$0F + ora #$10 + sta $07,S + lda $A7,S + and #$0F + ora #$10 + sta $A7,S + rep #$30 + .a16 + tsc + adc #$0006 + tcs + pea $2422 + pea $1314 + tsc ; Line 3 + adc #$00A4 + tcs + sep #$20 + .a8 + lda #$12 + sta $9A,S + lda $A1,S + and #$0F + ora #$20 + sta $A1,S + rep #$30 + .a16 + pea $2323 + pea $3312 + tsc ; Line 4 + adc #$00A4 + tcs + lda $9C,S + and #$00F0 + ora #$1202 + sta $9C,S + sep #$20 + .a8 + lda #$13 + sta $9A,S + rep #$30 + .a16 + phx + pea $3323 + tsc ; Line 5 + adc #$00A5 + tcs + sep #$20 + .a8 + lda #$13 + sta $99,S + lda $A0,S + and #$0F + ora #$20 + sta $A0,S + rep #$30 + .a16 + pea $1230 + phy + tsc ; Line 6 + adc #$00A3 + tcs + phd + pea $3322 + tsc ; Line 7 + adc #$00A5 + tcs + sep #$20 + .a8 + lda $99,S + and #$F0 + ora #$02 + sta $99,S + rep #$30 + .a16 + pea $1257 + pea $7537 + pea $1122 + pea $2213 + tsc ; Line 8 + adc #$00A7 + tcs + lda $9F,S + and #$0F00 + ora #$2011 + sta $9F,S + sep #$20 + .a8 + lda $9A,S + and #$F0 + ora #$02 + sta $9A,S + rep #$30 + .a16 + pea $7177 + pea $1222 + pea $2333 + tsc ; Line 9 + adc #$00A4 + tcs + txa + sta $9E,S + lda $9C,S + and #$00F0 + ora #$3302 + sta $9C,S + lda $A0,S + and #$0F00 + ora #$7027 + sta $A0,S + pea $7732 + phx + tsc ; Line 11 + adc #$0140 + tcs + lda #$3323 + sta $02,S + lda #$1211 + sta $A2,S + lda $00,S + and #$00F0 + ora #$3302 + sta $00,S + lda $04,S + and #$0F00 + ora #$7032 + sta $04,S + lda $A0,S + and #$00F0 + ora #$3202 + sta $A0,S + lda $A4,S + and #$0F00 + ora #$2033 + sta $A4,S + tsc ; Line 13 + adc #$0140 + tcs + lda $00,S + and #$00F0 + ora #$2103 + sta $00,S + lda $03,S + and #$00F0 + ora #$3102 + sta $03,S + lda $A0,S + and #$00F0 + ora #$2102 + sta $A0,S + lda $A3,S + and #$00F0 + ora #$2102 + sta $A3,S + sep #$20 + .a8 + lda $05,S + and #$0F + ora #$20 + sta $05,S + rep #$30 + .a16 + tsc ; Line 15 + adc #$0140 + tcs + lda $00,S + and #$00F0 + ora #$7207 + sta $00,S + lda $03,S + and #$00F0 + ora #$7207 + sta $03,S +;-- +SLOWGRAPHICS + rts + +;------------------------------ diff --git a/gamemanager.s b/gamemanager.s index 8cc75ed..bc89d4f 100644 --- a/gamemanager.s +++ b/gamemanager.s @@ -17,7 +17,7 @@ beginGameplay: jsr setPalette ; Erase the screen - ldx #$2222 + ldx #$0000 jsr colorFill ; Generate, compile, and clip terrain @@ -37,7 +37,6 @@ beginGameplay: ldy #0 jsr renderPlayerHeader - gameplayLoop: jsr syncVBL @@ -52,12 +51,16 @@ gameplayLoop: jsr renderPlayers gameplayLoopKbd: - lda projectileActive - bpl gameplayLoopProjectiles ; Skip input during shots +; lda projectileActive +; bpl gameplayLoopProjectiles ; Skip input during shots ; Check for keys down jsr kbdScan + ; Check for pause + lda paused + bne gameplayLoopEndFrame + ; Scroll map if needed lda mapScrollRequested bmi gameplayLoopAngle @@ -208,7 +211,10 @@ fire: basePalette: - .word $0000,$0080,$0000,$000F,$0FFF,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0FFF + .word $0000,$0080,$0861,$0c93,$0eb4,$0d66,$0f9a,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0FFF + + + quitRequested: .word $0000 mapScrollRequested: @@ -231,6 +237,8 @@ gameOver: .word -1 ; Player index of winner projectileActive: .word -1 +paused: + .word 0 ; Position of map viewing window. Can be visualized in two ways: diff --git a/gameobject.s b/gameobject.s index e5514ba..e317171 100644 --- a/gameobject.s +++ b/gameobject.s @@ -59,7 +59,7 @@ placeGameObjectOnTerrain: ; ptr = Pointer to gameobject data ; Trashes SCRATCHL ; -.macro RENDER_GAMEOBJECT ptr +.macro RENDER_GAMEOBJECT ptr,compiledSprite .scope SAVE_AXY @@ -356,6 +356,8 @@ renderGameobjectBackground: iny lda VRAMBANK+160*14+6,x sta ptr+GO_BACKGROUND,y + iny + iny lda VRAMBANK+160*15,x sta ptr+GO_BACKGROUND,y @@ -371,12 +373,10 @@ renderGameobjectBackground: iny lda VRAMBANK+160*15+6,x sta ptr+GO_BACKGROUND,y - iny - iny ; Draw sprite ply - jsr Spr_000 + jsr compiledSprite renderGameobjectDone: RESTORE_AXY @@ -564,6 +564,8 @@ unrenderGameobjectBackground: iny lda ptr+GO_BACKGROUND,y sta VRAMBANK+160*7+6,x + iny + iny lda ptr+GO_BACKGROUND,y sta VRAMBANK+160*8,x diff --git a/graphics.s b/graphics.s index 788d717..1858b13 100644 --- a/graphics.s +++ b/graphics.s @@ -206,6 +206,7 @@ waitVBLToStart: BITS16 rts +.if 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; TEST OF MR. SPRITE ; @@ -413,7 +414,7 @@ SLOWGRAPHICS rts ;------------------------------ - +.endif ; caches @@ -423,3 +424,7 @@ stackRegister: .byte 0 stackPtr: .word 0 + +.include "cat.s" +.include "block.s" +.include "block1.s" diff --git a/gscats.2mg b/gscats.2mg index 1923a81a023cd7c9461f28475bc8b7452cf6d17d..a22476f61c2668e24adaa8c268b641b065a813c0 100644 GIT binary patch delta 7624 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 Oa6I~hf4i6ZTmJ%p#M27^ delta 6362 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 F|KC%hGYS9z diff --git a/input.s b/input.s index 61e8e47..7ec13e4 100644 --- a/input.s +++ b/input.s @@ -36,6 +36,8 @@ kbdScan: beq kbdScanSpace cmp #(27 + $80) beq kbdScanESC + cmp #(127 + $80) + beq kbdScanDEL kbdScanDone: BITS16 @@ -104,6 +106,13 @@ kbdScanESC: sta breakpoint rts +kbdScanDEL: + BITS16 + lda paused + eor #1 + sta paused + rts + breakpoint: .word 0 diff --git a/player.s b/player.s index e40e2a5..915568a 100644 --- a/player.s +++ b/player.s @@ -200,8 +200,8 @@ playerIntersectRect: ; ; renderPlayers: - RENDER_GAMEOBJECT playerData - RENDER_GAMEOBJECT playerData+PD_SIZE + RENDER_GAMEOBJECT playerData,Spr_000 + RENDER_GAMEOBJECT playerData+PD_SIZE,Spr_000 rts diff --git a/projectile.s b/projectile.s index 54181f7..0857fcd 100644 --- a/projectile.s +++ b/projectile.s @@ -326,7 +326,7 @@ renderProjectiles: jmp renderProjectilesDone renderProjectilesDoIt: - RENDER_GAMEOBJECT projectileData + RENDER_GAMEOBJECT projectileData,Spr_001 renderProjectilesDone: pla