diff --git a/026.tile_hscroll/Makefile b/026.tile_hscroll/Makefile index 9dd8613..378fdcd 100644 --- a/026.tile_hscroll/Makefile +++ b/026.tile_hscroll/Makefile @@ -11,9 +11,13 @@ NUM_COLORS=16 BOOTBLOCK_ASM=alpine_bootblock.s OBJS=out/init.o out/utils.o out/image.o out/blit.o out/scroll.o -IMAGES=gigi_full.png -IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin)) -SIZEDIMAGEDATA=$(addprefix out/, $(IMAGES:.png=.sized.png)) +#IMAGES=gigi_full.png +#IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin)) +#SIZEDIMAGEDATA=$(addprefix out/, $(IMAGES:.png=.sized.png)) + +TILEMAPS=tilemap.png +TILEMAPDATA=$(addprefix out/, $(TILEMAPS:.png=.bin)) + VASM_EXTRA_ARGS=-DNUM_COLORS=$(NUM_COLORS) #SYMBOL_INFO=-M @@ -22,12 +26,19 @@ LINKER_OPTIONS=-T link.script.x include ../shared/base.mk -out/%.sized.png: ../assets/%.png - $(RESIZE) --width=352 --height=256 --blur=0.75 --input=$< --output=$@ +#out/%.sized.png: ../assets/%.png +# $(RESIZE) --width=352 --height=256 --blur=0.75 --input=$< --output=$@ -out/%.bin: out/%.sized.png +#out/%.bin: out/%.sized.png +# $(IMAGECON) --input $< $(IMAGECON_ARGS) --quantize --colors $(NUM_COLORS) --output-bitplanes --output-palette-asm --output-grey-palette --output-palette $(DITHER) --output out/$* + +out/%.bin: %.png $(IMAGECON) --input $< $(IMAGECON_ARGS) --quantize --colors $(NUM_COLORS) --output-bitplanes --output-palette-asm --output-grey-palette --output-palette $(DITHER) --output out/$* +out/main-map.s: map.tmx + ../tools/mapgen/out/mapgen --depth=4 --input=map.tmx + mv main-map.s out + out/blit.o: constants.i macros.i -out/main.o: $(IMAGEDATA) constants.i macros.i Makefile link.script.x palette.pal +out/main.o: out/main-map.s $(TILEMAPDATA) $(IMAGEDATA) constants.i macros.i Makefile link.script.x palette.pal out/init.o: constants.i Makefile \ No newline at end of file diff --git a/026.tile_hscroll/blit.s b/026.tile_hscroll/blit.s index fbafa39..5554f43 100644 --- a/026.tile_hscroll/blit.s +++ b/026.tile_hscroll/blit.s @@ -101,7 +101,7 @@ BlitScroll: BlitTile: ;; a0 - dest bitplane pointer - ;; a1 - source bitplane pointer + ;; a1 - source tile pointer ;; d2 - y tile index WaitBlitter @@ -109,12 +109,12 @@ BlitTile: move.w #0,BLTCON1(a6) ; move.w #BC0F_SRCA|BC0F_DEST|$f0,BLTCON0(a6) - move.w #BITPLANE_WIDTH_BYTES-2,BLTAMOD(a6) + move.w #TILEMAP_WIDTH_BYTES-2,BLTAMOD(a6) move.w #BITPLANE_WIDTH_BYTES-2,BLTDMOD(a6) ; mulu.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*16,d2 add.l d2,a0 - add.l d2,a1 + ;; add.l d2,a1 move.l a1,BLTAPTH(a6) ; source move.l a0,BLTDPTH(a6) ; dest move.w #$ffff,BLTAFWM(a6) diff --git a/026.tile_hscroll/constants.i b/026.tile_hscroll/constants.i index b38853e..aa05bc4 100644 --- a/026.tile_hscroll/constants.i +++ b/026.tile_hscroll/constants.i @@ -5,6 +5,9 @@ SCREEN_WIDTH_WORDS equ SCREEN_WIDTH_BYTES/2 BITPLANE_WIDTH equ 352 BITPLANE_WIDTH_BYTES equ BITPLANE_WIDTH/8 BITPLANE_WIDTH_WORDS equ BITPLANE_WIDTH_BYTES/2 +TILEMAP_WIDTH equ 256 +TILEMAP_WIDTH_BYTES equ TILEMAP_WIDTH/8 +TILEMAP_WIDTH_WORDS equ TILEMAP_WIDTH_BYTES/2 if NUM_COLORS==64 SCREEN_BIT_DEPTH equ 6 diff --git a/026.tile_hscroll/map.tmx b/026.tile_hscroll/map.tmx new file mode 100644 index 0000000..6b62ddd --- /dev/null +++ b/026.tile_hscroll/map.tmx @@ -0,0 +1,11 @@ + + + + + + + + eJzt2FOQXEEUxvGObdvWxk42djKxk4lt27Zt27ZtY2NzY+Ofyu2azkVetpJUpfrhV9Ona6q/U/fcnofxFkJ4a37iD/4RAAERCIERBEERDMERAiERCqERBmGN70l/qkevv/g8/nVWOIRHBEREJERGFERFNERHDMRELMRGHMQVv84jHuIjARIiERIjCZIiGZIjBVIiFVIjjVGb97x+83x0lv256jzSIh3SIwMyIhMyIwuyIhuyIwdyIhdyG7V5T/boMj6bo4Wx1ln256rzyIO8yIf8KICCKITCKIKiKIbiKIGSKGXU5j2XwY1u6I4e6KmzbLNcpnmURhmURTmURwVURCVURhVURTVURw3UNGrznlvpeRiGYwRG6izbLLdpHrVQG3VQF/VQHw3QEI3QGE3QFM2E5662NNVyLXuehumYgZk6yzFLnUcrtEYbtEU7tEcHdEQndEYXdBXWu6rWci17XoblWIGVOssxS51HL/RGH/RFP/THAAzEIAzGEAwV1ruq1nIte96G7diBnTrLMUudxyiMxhiMxTiMxwRMxCRMxhRMFda7qtZyLXs+huM4gZM6yzFLnccszMYczMU8zMcCLMQiLMYSLBXWu6rWci17vmrwET9/Y3WWfZY6j1VYjTVYi3VYjw3YiE3YjC3YKqx3Va3lWvbso/Tsq7Mcs9R57MJu7MFe7MN+HMBBHMJhHMFRYb2rai3X8v2R/Uo6yz5LnccpnMYZnMU5nMcFXMQlXMYV4Xk3ruE6bgjPu6LumfuV/tcsXz9mqfO4iVu4jTu4i3u4jwd4iEd4jCd4imd4bvRht+dEZ9mfq87jBV7iFV7jDd7iHd7jAz7iEz7jC77iG3780Wy359S3zrI/V53HdxA4QSI= + + + diff --git a/026.tile_hscroll/screenshot.png b/026.tile_hscroll/screenshot.png deleted file mode 100644 index c4ab0fb..0000000 Binary files a/026.tile_hscroll/screenshot.png and /dev/null differ diff --git a/026.tile_hscroll/test.asm b/026.tile_hscroll/test.asm deleted file mode 100644 index 9cae193..0000000 --- a/026.tile_hscroll/test.asm +++ /dev/null @@ -1,20 +0,0 @@ - idnt "test.c" - opt 0 - opt NQLPSMRBT - section "CODE",code - public _blah - cnop 0,4 -_blah - movem.l l2,-(a7) - moveq #0,d0 - move.w (6+l4,a7),d0 - move.l #320,-(a7) - move.l d0,-(a7) - public __lmods - jsr __lmods - addq.w #8,a7 -l1 -l2 reg -l4 equ 0 - rts -; stacksize=8 diff --git a/026.tile_hscroll/test.c b/026.tile_hscroll/test.c deleted file mode 100644 index 624bf04..0000000 --- a/026.tile_hscroll/test.c +++ /dev/null @@ -1,4 +0,0 @@ -int blah(unsigned short x) -{ - return x % 320; -} diff --git a/026.tile_hscroll/tile_hscroll.s b/026.tile_hscroll/tile_hscroll.s index ca1a006..bf2291a 100644 --- a/026.tile_hscroll/tile_hscroll.s +++ b/026.tile_hscroll/tile_hscroll.s @@ -30,6 +30,7 @@ Entry: move.l #0,d1 ; x pos move.l #0,d2 ; shift counter + move.l #0,d3 MainLoop: jsr WaitVerticalBlank move.l d1,d0 ; x position in pixels @@ -37,20 +38,25 @@ MainLoop: jsr SwitchBuffers ; takes bitplane pointer offset in d0 add.l #1,d1 .backfill: - move.l onscreen,a1 - add.l d0,a1 - ;; sub.l #2,a1 - move.l a1,a0 + move.l onscreen,a0 + add.l d0,a0 add.l #BITPLANE_WIDTH_BYTES-2,a0 ; dest + lea tilemap,a1 + lea map,a2 + add.l d3,a2 + add.w (a2),a1 ; source tile jsr BlitTile - move.l offscreen,a1 - add.l d0,a1 - ;; sub.l #2,a1 - move.l a1,a0 - add.l #BITPLANE_WIDTH_BYTES-2,a0 + + move.l offscreen,a0 + add.l d0,a0 + add.l #BITPLANE_WIDTH_BYTES-2,a0 ; dest + lea tilemap,a1 + lea map,a2 + add.l d3,a2 + add.w (a2),a1 ; source tile jsr BlitTile - - + add.l #2,d3 + cmp.l #15,d2 bne .s1 move.l #0,d2 @@ -99,24 +105,27 @@ copperListBplPtr: dc.l $fffffffe InstallPalette: - include "out/gigi_full-palette.s" + include "out/tilemap-palette.s" rts -GreyPalette: - include "out/gigi_full-grey.s" - rts onscreen: dc.l bitplanes1 offscreen: dc.l bitplanes2 +tilemap: + incbin "out/tilemap.bin" + bitplanes1: - incbin "out/gigi_full.bin" + ds.b IMAGESIZE ds.b BITPLANE_WIDTH_BYTES*20 bitplanes2: - incbin "out/gigi_full.bin" + ds.b IMAGESIZE ds.b BITPLANE_WIDTH_BYTES*20 +map: + include "out/main-map.s" + section .bss startUserstack: ds.b $1000 ; size of stack diff --git a/026.tile_hscroll/tilemap.png b/026.tile_hscroll/tilemap.png new file mode 100644 index 0000000..1db93e3 Binary files /dev/null and b/026.tile_hscroll/tilemap.png differ