Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/NesTiler.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-10-25 17:18:00 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-10-25 17:19:11 +0300
commita01a365f1b289bce483131d0f1445c56069d8d9f (patch)
treec6f8cb2105312c6dd8fffa1bd048f34bc65d0722
parent2f99d859a6e19a17ad155b7d4522ce1cc388c2b2 (diff)
Samples.
-rw-r--r--Samples/sprites8x16/Makefile39
-rw-r--r--Samples/sprites8x16/main.asm151
-rw-r--r--Samples/sprites8x8/Makefile4
-rw-r--r--Samples/sprites8x8/main.asm22
-rw-r--r--Samples/sprites8x8/sprites.csv13
-rw-r--r--TestImages/Images/sprites1.pngbin1513 -> 1874 bytes
-rw-r--r--TestImages/Images/sprites2.pngbin0 -> 1862 bytes
-rw-r--r--TestImages/TestImages.csproj6
8 files changed, 222 insertions, 13 deletions
diff --git a/Samples/sprites8x16/Makefile b/Samples/sprites8x16/Makefile
new file mode 100644
index 0000000..517bd9f
--- /dev/null
+++ b/Samples/sprites8x16/Makefile
@@ -0,0 +1,39 @@
+NESASM=nesasm
+EMU=fceux64
+TILER=nestiler
+SOURCE=main.asm
+EXECUTABLE=sprites8x16.nes
+
+IMAGE?=../../TestImages/Images/sprites2.png
+
+PATTERN_0_BIN=pattern_0.bin
+PALETTE_0_BIN=palette_0.bin
+
+build: $(EXECUTABLE)
+
+all: $(EXECUTABLE)
+
+clean:
+ rm -f *.nes *.lst *.nl *.bin *.csv
+
+run: $(EXECUTABLE)
+ $(EMU) $(EXECUTABLE)
+
+$(EXECUTABLE): $(SOURCE) \
+$(PATTERN_0_BIN) $(PATTERN_1_BIN) \
+$(NAME_TABLE_0_BIN) $(NAME_TABLE_1_BIN) \
+$(ATTR_TABLE_0_BIN) $(ATTR_TABLE_1_BIN) \
+$(PALETTE_0_BIN) $(PALETTE_1_BIN)
+ rm -f $(EXECUTABLE)
+ $(NESASM) $(SOURCE) -o $(EXECUTABLE) --symbols=$(notdir $(EXECUTABLE)) -iWss
+
+$(PATTERN_0_BIN) \
+$(NAME_TABLE_0_BIN) \
+$(ATTR_TABLE_0_BIN) \
+$(PALETTE_0_BIN) $(PALETTE_1_BIN) \
+$(PALETTE_2_BIN) $(PALETTE_3_BIN): $(IMAGE)
+ $(TILER) --mode sprites8x16 --enable-palettes 0 \
+ --in-0 $(IMAGE) \
+ --out-pattern-table-0 $(PATTERN_0_BIN) \
+ --out-palette-0 $(PALETTE_0_BIN) \
+ --out-tiles-csv sprites.csv --bg-color \#000000
diff --git a/Samples/sprites8x16/main.asm b/Samples/sprites8x16/main.asm
new file mode 100644
index 0000000..2c2a584
--- /dev/null
+++ b/Samples/sprites8x16/main.asm
@@ -0,0 +1,151 @@
+ ; INES header stuff
+ .inesprg 1 ; 1 bank of PRG
+ .ineschr 1 ; 1 bank of CHR data
+ .inesmir 0 ; mirroring
+ .inesmap 0 ; we use mapper 0
+
+ .rsset $0000 ; variables
+COPY_SOURCE_ADDR .rs 2
+COPY_DEST_ADDR .rs 2
+ .rsset $0200
+SPRITES .rs 256
+
+ .bank 1
+ .org $FFFA ; reset vectors
+ .dw NMI
+ .dw Start
+ .dw IRQ
+
+ .bank 0
+ .org $C000 ; code starts here
+Start:
+ ; disable interrupts
+ sei
+ ; reset stack
+ ldx #$ff
+ txs
+
+ ; disable PPU
+ lda #%00000000
+ sta PPUCTRL
+ lda #%00000000
+ sta PPUMASK
+
+ jsr waitblank
+
+ ; reset sound
+ lda #0
+ sta $4000
+ sta $4001
+ sta $4002
+ sta $4003
+ sta $4004
+ sta $4005
+ sta $4006
+ sta $4007
+ sta $4009
+ sta $400A
+ sta $400C
+ sta $400D
+ sta $400E
+ sta $400F
+ sta $4010
+ sta $4011
+ sta $4012
+ sta $4013
+ lda #$0F
+ sta $4015
+ lda #$40
+ sta $4017
+ lda #0
+
+load_palette:
+ ; load single palette for sprites
+ lda #$3F
+ sta PPUADDR
+ lda #$10
+ sta PPUADDR
+ lda palette
+ sta PPUDATA
+ lda palette+1
+ sta PPUDATA
+ lda palette+2
+ sta PPUDATA
+ lda palette+3
+ sta PPUDATA
+
+reset_sprites:
+ lda #$FF
+ ldx 0
+.loop:
+ sta SPRITES, x
+ inx
+ bne .loop
+
+set_sprites:
+ ldx 0
+.loop:
+ lda sprites_init_data, x
+ sta SPRITES, x
+ inx
+ cpx #(4 * 12)
+ bne .loop
+
+ ; enable PPU
+ jsr waitblank
+ lda #%00100000
+ sta PPUCTRL
+ lda #%00010100
+ sta PPUMASK
+
+main_loop:
+ jsr waitblank
+
+ ldx 0
+.move_sprites_loop:
+ inc SPRITES, x
+ inx
+ inx
+ inx
+ inx
+ cpx #(4 * 12 + 3)
+ bne .move_sprites_loop
+
+ lda #0
+ sta OAMADDR
+ lda #HIGH(SPRITES)
+ sta OAMDMA
+ jmp main_loop
+
+ ; VBlank wait subroutine
+waitblank:
+ bit PPUSTATUS
+ lda #0
+ sta PPUSCROLL
+ sta PPUSCROLL
+.loop:
+ lda PPUSTATUS ; load A with value at location PPUSTATUS
+ bpl .loop ; if bit 7 is not set (not VBlank) keep checking
+ rts
+
+NMI:
+ rti
+
+IRQ:
+ rti
+
+palette:
+ .incbin "palette_0.bin"
+sprites_init_data:
+ .db 20, 0, 0, 0
+ .db 20, 2, 0, 8
+ .db 80, 4, 0, 30
+ .db 80, 6, 0, 38
+ .db 120, 8, 0, 60
+ .db 120, 10, 0, 68
+ .db 180, 12, 0, 90
+ .db 180, 14, 0, 98
+
+ .bank 2
+ .org $0000
+ .incbin "pattern_0.bin"
diff --git a/Samples/sprites8x8/Makefile b/Samples/sprites8x8/Makefile
index aa1be55..b9f2546 100644
--- a/Samples/sprites8x8/Makefile
+++ b/Samples/sprites8x8/Makefile
@@ -14,7 +14,7 @@ build: $(EXECUTABLE)
all: $(EXECUTABLE)
clean:
- rm -f *.nes *.lst *.nl *.bin
+ rm -f *.nes *.lst *.nl *.bin *.csv
run: $(EXECUTABLE)
$(EMU) $(EXECUTABLE)
@@ -36,4 +36,4 @@ $(PALETTE_2_BIN) $(PALETTE_3_BIN): $(IMAGE)
--in-0 $(IMAGE) \
--out-pattern-table-0 $(PATTERN_0_BIN) \
--out-palette-0 $(PALETTE_0_BIN) \
- --out-tiles-csv sprites.csv --bg-color \#000000 \ No newline at end of file
+ --out-tiles-csv sprites.csv --bg-color \#000000
diff --git a/Samples/sprites8x8/main.asm b/Samples/sprites8x8/main.asm
index 944381c..db41984 100644
--- a/Samples/sprites8x8/main.asm
+++ b/Samples/sprites8x8/main.asm
@@ -137,18 +137,18 @@ IRQ:
palette:
.incbin "palette_0.bin"
sprites_init_data:
- .db 0, 0, 0, 10
- .db 20, 1, 0, 30
- .db 40, 2, 0, 50
- .db 60, 3, 0, 70
+ .db 20, 0, 0, 10
+ .db 35, 1, 0, 30
+ .db 50, 2, 0, 50
+ .db 65, 3, 0, 70
.db 80, 4, 0, 90
- .db 100, 5, 0, 110
- .db 120, 6, 0, 130
- .db 140, 7, 0, 150
- .db 160, 8, 0, 170
- .db 180, 9, 0, 190
- .db 200, 10, 0, 210
- .db 220, 11, 0, 230
+ .db 95, 5, 0, 110
+ .db 110, 6, 0, 130
+ .db 125, 7, 0, 150
+ .db 140, 8, 0, 170
+ .db 155, 9, 0, 190
+ .db 170, 10, 0, 210
+ .db 185, 11, 0, 230
.bank 2
.org $0000
diff --git a/Samples/sprites8x8/sprites.csv b/Samples/sprites8x8/sprites.csv
new file mode 100644
index 0000000..4522c5b
--- /dev/null
+++ b/Samples/sprites8x8/sprites.csv
@@ -0,0 +1,13 @@
+image_id,image_file,line,column,tile_x,tile_y,tile_width,tile_height,tile_id,palette_id
+0,../../TestImages/Images/sprites1.png,0,0,0,0,8,8,0,0
+0,../../TestImages/Images/sprites1.png,0,1,8,0,8,8,2,0
+0,../../TestImages/Images/sprites1.png,0,2,16,0,8,8,4,0
+0,../../TestImages/Images/sprites1.png,0,3,24,0,8,8,6,0
+0,../../TestImages/Images/sprites1.png,0,4,32,0,8,8,8,0
+0,../../TestImages/Images/sprites1.png,0,5,40,0,8,8,10,0
+0,../../TestImages/Images/sprites1.png,0,6,48,0,8,8,12,0
+0,../../TestImages/Images/sprites1.png,0,7,56,0,8,8,14,0
+0,../../TestImages/Images/sprites1.png,0,8,64,0,8,8,16,0
+0,../../TestImages/Images/sprites1.png,0,9,72,0,8,8,18,0
+0,../../TestImages/Images/sprites1.png,0,10,80,0,8,8,20,0
+0,../../TestImages/Images/sprites1.png,0,11,88,0,8,8,22,0
diff --git a/TestImages/Images/sprites1.png b/TestImages/Images/sprites1.png
index 55b9eed..9a3e363 100644
--- a/TestImages/Images/sprites1.png
+++ b/TestImages/Images/sprites1.png
Binary files differ
diff --git a/TestImages/Images/sprites2.png b/TestImages/Images/sprites2.png
new file mode 100644
index 0000000..2ae7350
--- /dev/null
+++ b/TestImages/Images/sprites2.png
Binary files differ
diff --git a/TestImages/TestImages.csproj b/TestImages/TestImages.csproj
index 97b122f..35300fb 100644
--- a/TestImages/TestImages.csproj
+++ b/TestImages/TestImages.csproj
@@ -106,6 +106,12 @@
<None Update="Images\sindikat.gif">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
+ <None Update="Images\sprites1.png">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ <None Update="Images\sprites2.png">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
<None Update="Images\sputnik.gif">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>