diff --git a/Art/cat_000.gif b/Art/000Cat.gif similarity index 100% rename from Art/cat_000.gif rename to Art/000Cat.gif diff --git a/Art/Cat_000.xcf b/Art/000Cat.xcf similarity index 100% rename from Art/Cat_000.xcf rename to Art/000Cat.xcf diff --git a/Art/cat_001.gif b/Art/001Cat.gif similarity index 100% rename from Art/cat_001.gif rename to Art/001Cat.gif diff --git a/Art/Cat_001.xcf b/Art/001Cat.xcf similarity index 100% rename from Art/Cat_001.xcf rename to Art/001Cat.xcf diff --git a/Art/box_002.gif b/Art/002Box.gif similarity index 100% rename from Art/box_002.gif rename to Art/002Box.gif diff --git a/Art/Box_002.xcf b/Art/002Box.xcf similarity index 100% rename from Art/Box_002.xcf rename to Art/002Box.xcf diff --git a/Art/bomb_003.gif b/Art/003Bomb.gif similarity index 100% rename from Art/bomb_003.gif rename to Art/003Bomb.gif diff --git a/Art/Bomb_003.xcf b/Art/003Bomb.xcf similarity index 100% rename from Art/Bomb_003.xcf rename to Art/003Bomb.xcf diff --git a/Art/spit0_004.gif b/Art/004Spit0.gif similarity index 100% rename from Art/spit0_004.gif rename to Art/004Spit0.gif diff --git a/Art/Spit0_004.xcf b/Art/004Spit0.xcf similarity index 100% rename from Art/Spit0_004.xcf rename to Art/004Spit0.xcf diff --git a/Art/spit1_005.gif b/Art/006Spit1.gif similarity index 100% rename from Art/spit1_005.gif rename to Art/006Spit1.gif diff --git a/Art/Spit1_005.xcf b/Art/006Spit1.xcf similarity index 100% rename from Art/Spit1_005.xcf rename to Art/006Spit1.xcf diff --git a/Art/spit2_006.gif b/Art/008Spit2.gif similarity index 100% rename from Art/spit2_006.gif rename to Art/008Spit2.gif diff --git a/Art/Spit2_006.xcf b/Art/008Spit2.xcf similarity index 100% rename from Art/Spit2_006.xcf rename to Art/008Spit2.xcf diff --git a/Art/tab_007.gif b/Art/010Tab.gif similarity index 100% rename from Art/tab_007.gif rename to Art/010Tab.gif diff --git a/Art/Tab_007.xcf b/Art/010Tab.xcf similarity index 100% rename from Art/Tab_007.xcf rename to Art/010Tab.xcf diff --git a/Art/select_008.gif b/Art/011Select.gif similarity index 100% rename from Art/select_008.gif rename to Art/011Select.gif diff --git a/Art/Select_008.xcf b/Art/011Select.xcf similarity index 100% rename from Art/Select_008.xcf rename to Art/011Select.xcf diff --git a/Art/fan_009.gif b/Art/012Fan.gif similarity index 100% rename from Art/fan_009.gif rename to Art/012Fan.gif diff --git a/Art/Fan_009.xcf b/Art/012Fan.xcf similarity index 100% rename from Art/Fan_009.xcf rename to Art/012Fan.xcf diff --git a/GSCats.xcodeproj/project.pbxproj b/GSCats.xcodeproj/project.pbxproj index 047beaf..cbe65fd 100644 --- a/GSCats.xcodeproj/project.pbxproj +++ b/GSCats.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 700F21DE1F43E31300D7007D /* input.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = input.s; sourceTree = ""; }; 700F21DF1F4A364600D7007D /* projectile.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = projectile.s; sourceTree = ""; }; 700F21E01F4A3A5500D7007D /* GenerateTrigTables.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateTrigTables.py; sourceTree = ""; }; + 700F72872112428D00225B17 /* RenumberSpriteFiles.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = RenumberSpriteFiles.sh; sourceTree = ""; }; 700FFAFB1F40F3BF00A442DE /* font.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = font.s; sourceTree = ""; }; 7059502B1F37A0BE00BBE90F /* GenerateVRAMTable.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateVRAMTable.py; sourceTree = ""; }; 705AAFA920040B0D001BB0ED /* terrain_e1.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = terrain_e1.s; sourceTree = ""; }; @@ -65,6 +66,7 @@ 70E9D8631F2BD95400555C19 /* Makefile */, 70BDCBC92006AD5F00CB51F1 /* linkerConfig */, 70FE79D21F8814A600E0095C /* MerlinToCA65.sh */, + 700F72872112428D00225B17 /* RenumberSpriteFiles.sh */, 7088096D1F2ECE8D00D4C950 /* GenerateRenderSpans.py */, 7059502B1F37A0BE00BBE90F /* GenerateVRAMTable.py */, 7099E3851F4107B100182A82 /* GenerateVRAMYOffset.py */, diff --git a/Makefile b/Makefile index 0c3b9b6..a5d7006 100644 --- a/Makefile +++ b/Makefile @@ -15,9 +15,11 @@ ADDR=800 PGM=gscats MRSPRITE=../MrSprite/mrsprite +GENART=Art/Generated CHROMA=a4dffb PALETTE=a4dffb a4dffb 008800 886611 cc9933 eebb44 dd6666 ff99aa 777777 ff0000 b7b7b7 dddddd 0077bb ffff00 000000 ffffff SPRITES=SpriteBank +FLIPLIST=$(wildcard Art/*Fan.gif) $(wildcard Art/*Spit*.gif) REMOTESYMBOLS=-Wl $(shell ./ParseMapFile.py *.map) all: terrain_e1 $(PGM) loader @@ -57,13 +59,20 @@ clean: rm -f terrain_e1.o rm -f terrain_e1.map rm -f terrain_e1 + rm -f Art/*m.gif + rm -f $(GENART)/* .PHONY: art art: - $(MRSPRITE) CODE "Art/*.gif" $(CHROMA) $(PALETTE) - $(MRSPRITE) BANK "Art/*.txt" $(SPRITES) - mv Art/$(SPRITES)00.bin . - ./MerlinToCA65.sh Art/$(SPRITES)Src.txt > spritebank.s - rm Art/*.txt + rm -f $(GENART)/* + for gif in $(FLIPLIST); do $(MRSPRITE) MIRROR "$$gif" $(CHROMA); done + ./RenumberSpriteFiles.sh + $(MRSPRITE) CODE $(GENART)"/*.gif" $(CHROMA) $(PALETTE) + $(MRSPRITE) BANK $(GENART)"/*.txt" $(SPRITES) +# $(MRSPRITE) WALLPAPER "Art/*.gif" $(CHROMA) ff0000 + mv $(GENART)/$(SPRITES)00.bin . + ./MerlinToCA65.sh $(GENART)/$(SPRITES)Src.txt > spritebank.s + rm $(GENART)/*.txt + rm -f Art/*m.gif java -jar $(AC) -d $(PGM).2mg $(SPRITES)00 java -jar $(AC) -p $(PGM).2mg $(SPRITES)00 BIN 0x0000 < $(SPRITES)00.bin diff --git a/RenumberSpriteFiles.sh b/RenumberSpriteFiles.sh new file mode 100755 index 0000000..ecc6c64 --- /dev/null +++ b/RenumberSpriteFiles.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Takes the list of gifs in the art folder and numbers them in +# increasing order. This is needed for Mr. Sprite to process them properly +# but requires that alphabetic order of sprite filenames remains consistent +counter=0 +for filename in Art/*.gif + do + extension="${filename##*.}" + base="${filename%.*}" + printf -v index "%03d" $counter + newpath=$(echo $filename | sed 's/_*[0-9]*\.gif$/\_'$index'.gif/') + newfile=$(basename $newpath) + cp $filename "Art/Generated/"$newfile + ((counter++)) + done + diff --git a/SpriteBank00.bin b/SpriteBank00.bin index 937f316..6b72789 100644 Binary files a/SpriteBank00.bin and b/SpriteBank00.bin differ diff --git a/gscats.2mg b/gscats.2mg index c65cb38..8fde88c 100644 Binary files a/gscats.2mg and b/gscats.2mg differ diff --git a/inventory.s b/inventory.s index 56f1794..a9ac115 100644 --- a/inventory.s +++ b/inventory.s @@ -90,7 +90,7 @@ renderInventoryItem: ply phy - lda #8 + lda #11 clc jsr DrawSpriteBank @@ -104,7 +104,7 @@ renderInventoryItem_unselected: adc #ITEM_HEIGHT*160 pha tay - lda #7 + lda #10 jsr DrawSpriteBank ; Render counter diff --git a/projectile.s b/projectile.s index 9cf7692..834541f 100644 --- a/projectile.s +++ b/projectile.s @@ -41,8 +41,8 @@ projectileTypes: .word 3 ; Damage .word 3 ; Crater radius .word 4 ; Frame 0 - .word 5 ; Frame 1 - .word 6 ; Frame 2 + .word 6 ; Frame 1 + .word 8 ; Frame 2 .word 0,0,0 ; Padding to 16-byte boundary @@ -58,9 +58,9 @@ projectileTypes: ; Fan .word 3 ; Damage .word 3 ; Crater radius - .word 9 ; Frame 0 - .word 9 ; Frame 1 - .word 9 ; Frame 2 + .word 12 ; Frame 0 + .word 12 ; Frame 1 + .word 12 ; Frame 2 .word 0,0,0 ; Padding to 16-byte boundary diff --git a/spritebank.s b/spritebank.s index 352006a..7a05bd8 100644 --- a/spritebank.s +++ b/spritebank.s @@ -2,18 +2,18 @@ DrawSpriteBank : - ASL ; A=Sprite Number ($0000-$0009) + ASL ; A=Sprite Number ($0000-$000D) TAX ; Y=Target Screen Address ($2000-$9D00) LDA SpriteBankNum,X ; Relative Sprite Number Table JMP (SpriteBankBank,X) ; Bank Number Table SpriteBankNum : - .dbyt $0100,$0000,$0600,$0300,$0400,$0800,$0500,$0700 - .dbyt $0900,$0200 + .dbyt $0100,$0000,$0900,$0400,$0500,$0800,$0C00,$0B00 + .dbyt $0700,$0600,$0A00,$0D00,$0200,$0300 SpriteBankBank : .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 - .addr SpriteBankBank00,SpriteBankBank00 + .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 SpriteBankBank00 : JSL $AA0000