Added cat sprites

- Integrated Mr. Sprite art pipeline
- Fixed background restore bug
- Added debug pause
This commit is contained in:
blondie7575 2017-09-30 13:01:36 -07:00
parent 9aadc36361
commit 2bdaae8f30
19 changed files with 735 additions and 14 deletions

BIN
Block.xcf Normal file

Binary file not shown.

BIN
Block1.xcf Normal file

Binary file not shown.

BIN
Cat.xcf Normal file

Binary file not shown.

View File

@ -12,6 +12,9 @@
700F21DF1F4A364600D7007D /* projectile.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = projectile.s; sourceTree = "<group>"; };
700F21E01F4A3A5500D7007D /* GenerateTrigTables.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateTrigTables.py; sourceTree = "<group>"; };
700FFAFB1F40F3BF00A442DE /* font.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = font.s; sourceTree = "<group>"; };
70218F1D1F8009B5005A32C6 /* cat.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = cat.s; sourceTree = "<group>"; };
70218F1E1F80127C005A32C6 /* block.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = block.s; sourceTree = "<group>"; };
70218F1F1F801BC4005A32C6 /* block1.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = block1.s; sourceTree = "<group>"; };
7059502B1F37A0BE00BBE90F /* GenerateVRAMTable.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateVRAMTable.py; sourceTree = "<group>"; };
706DF1641F2D39F700AA6680 /* loader.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = loader.s; sourceTree = "<group>"; };
706DF1651F2D4A8100AA6680 /* terrain.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = terrain.s; sourceTree = "<group>"; };
@ -51,6 +54,9 @@
700F21DF1F4A364600D7007D /* projectile.s */,
70A80FB01F43D7F200BD34C9 /* gamemanager.s */,
70E9D8611F2BD95400555C19 /* gscats.s */,
70218F1D1F8009B5005A32C6 /* cat.s */,
70218F1E1F80127C005A32C6 /* block.s */,
70218F1F1F801BC4005A32C6 /* block1.s */,
70E9D8631F2BD95400555C19 /* Makefile */,
7088096D1F2ECE8D00D4C950 /* GenerateRenderSpans.py */,
7059502B1F37A0BE00BBE90F /* GenerateVRAMTable.py */,

View File

@ -14,6 +14,8 @@ AC=AppleCommander.jar
ADDR=800
PGM=gscats
MRSPRITE=../MrSprite/mrsprite CODE
PALETTE=00ff00 000000 ffff00 886611 cc9933 eebb44 dd6666 ff99aa 00ff00 ffff00 ffff00 ffff00 ffff00 ffff00 ffff00 ffff00 ffffff
all: $(PGM)
@ -32,4 +34,7 @@ clean:
rm -f $(PGM).o
rm ~/Library/Application\ Support/Sweet16/Disk\ Images/*
sprites:
$(MRSPRITE) cat.gif $(PALETTE)
$(MRSPRITE) block.gif $(PALETTE)
$(MRSPRITE) block1.gif $(PALETTE)

BIN
block.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

124
block.s Normal file
View File

@ -0,0 +1,124 @@
Spr_001:
FASTGRAPHICS ; 16x16, 214 bytes, 433 cycles
clc
tya ; Y = Sprite Target Screen Address (upper left corner)
tcs ; New Stack address
ldx #$FFFF ; 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
;------------------------------

BIN
block1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

124
block1.s Normal file
View File

@ -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
;------------------------------

BIN
cat.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

219
cat.s Normal file
View File

@ -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
;------------------------------

219
cat.src Normal file
View File

@ -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
;------------------------------

View File

@ -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:

View File

@ -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

View File

@ -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"

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -326,7 +326,7 @@ renderProjectiles:
jmp renderProjectilesDone
renderProjectilesDoIt:
RENDER_GAMEOBJECT projectileData
RENDER_GAMEOBJECT projectileData,Spr_001
renderProjectilesDone:
pla