scoreboard panel

This commit is contained in:
alpine9000
2016-04-16 12:24:51 +10:00
parent f3c3e0fc42
commit 7653b91d60
7 changed files with 105 additions and 22 deletions
+8 -8
View File
@@ -11,12 +11,8 @@ NUM_COLORS=8
BOOTBLOCK_ASM=alpine_bootblock.s
OBJS=out/init.o out/utils.o out/image.o out/blit.o out/joystick.o
#IMAGES=gigi_full.png
#IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin))
#SIZEDIMAGEDATA=$(addprefix out/, $(IMAGES:.png=.sized.png))
TILEMAPS=foreground.png background.png
TILEMAPDATA=$(addprefix out/, $(TILEMAPS:.png=.bin))
IMAGES=foreground.png background.png panel.png
IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin))
VASM_EXTRA_ARGS=-DNUM_COLORS=$(NUM_COLORS)
@@ -39,7 +35,11 @@ out/background.bin: assets/tilemap.png
$(IMAGECON) --use-palette=assets/background.pal --input $< $(IMAGECON_ARGS) --colors $(NUM_COLORS) --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-grey-palette --output-palette --output-png --output out/background
out/tilemap-palette.s: assets/tilemap.png
$(IMAGECON) --use-palette=assets/palette.pal --full-color-palette-file --input=assets/tilemap.png --output-palette-asm --output=out/tilemap
$(IMAGECON) --use-palette=assets/palette.pal --full-color-palette-file --input=assets/tilemap.png --output-palette-asm --output=out/tilemap --output-copperlist
out/panel.bin: assets/panel.png
$(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 16 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/panel
out/foreground-map.s: foreground.tmx
../tools/mapgen/out/mapgen --depth=3 --input=foreground.tmx
@@ -50,5 +50,5 @@ out/background-map.s: background.tmx
mv background-map.s out
out/blit.o: constants.i macros.i
out/main.o: out/background-map.s out/foreground-map.s $(TILEMAPDATA) $(IMAGEDATA) constants.i macros.i Makefile link.script.x assets/palette.pal out/tilemap-palette.s
out/main.o: out/background-map.s out/foreground-map.s $(IMAGEDATA) constants.i macros.i Makefile link.script.x assets/palette.pal out/tilemap-palette.s
out/init.o: constants.i Makefile
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

+49 -9
View File
@@ -22,9 +22,9 @@ Entry:
move #$7ff,DMACON(a6) ; disable all dma
move #$7fff,INTENA(a6) ; disable all interrupts
jsr InstallPalette
;; jsr InstallPalette
;; move.w #$09e,COLOR00(a6)
move.w #$09e,COLOR08(a6)
;; move.w #$09e,COLOR08(a6)
lea Level3InterruptHandler,a3
move.l a3,LVL3_INT_VECTOR
@@ -38,6 +38,9 @@ Entry:
move.w #(INTF_SETCLR|INTF_VERTB|INTF_INTEN),INTENA(a6)
move.w #(DMAF_BLITTER|DMAF_SETCLR!DMAF_MASTER),DMACON(a6)
lea panelCopperListBpl1Ptr,a0
lea panel,a1
jsr PokePanelBitplanePointers
jsr Init ; enable the playfield
@@ -67,8 +70,8 @@ MainLoop:
move.w #1,moving
.s1:
move.w #$000,COLOR00(a6)
move.w #$000,COLOR08(a6)
;; move.w #$000,COLOR00(a6)
;; move.w #$000,COLOR08(a6)
bsr Update
@@ -76,8 +79,8 @@ MainLoop:
bsr RenderNextForegroundFrame
bsr RenderNextBackgroundFrame
move.w #$09e,COLOR00(a6)
move.w #$09e,COLOR08(a6)
;; move.w #$09e,COLOR00(a6)
;; move.w #$09e,COLOR08(a6)
bra MainLoop
@@ -138,7 +141,8 @@ HoriScrollPlayfield:
lsl.w #4,d5
or.w d5,d0
move.w d0,BPLCON1(a6)
move.w d0,copperListScrollPtr
;; move.w d0,BPLCON1(a6)
;; movem.l (sp)+,d0-d6
rts
@@ -213,7 +217,7 @@ RenderForegroundTile:
add.l d0,a0
lea tilemap,a1
add.w (a2),a1 ; source tile
add.l #(BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*SCREEN_HEIGHT/4)+BITPLANE_WIDTH_BYTES-8,a0
add.l #(BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(256-(16*4))/4)+BITPLANE_WIDTH_BYTES-8,a0
lea animIndex,a4
move.l d2,d1
lsl.l #2,d1
@@ -319,6 +323,32 @@ Level3InterruptHandler:
copperList:
panelCopperListBpl1Ptr:
dc.w BPL1PTL,0
dc.w BPL1PTH,0
dc.w BPL2PTL,0
dc.w BPL2PTH,0
dc.w BPL3PTL,0
dc.w BPL3PTH,0
dc.w BPL4PTL,0
dc.w BPL4PTH,0
dc.w BPLCON1,0
dc.w DDFSTRT,(RASTER_X_START/2-SCREEN_RES)
dc.w DDFSTOP,(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1))
dc.w BPLCON0,(4<<12)|COLOR_ON ; 4 bit planes
dc.w BPL1MOD,SCREEN_WIDTH_BYTES*4-SCREEN_WIDTH_BYTES
dc.w BPL2MOD,SCREEN_WIDTH_BYTES*4-SCREEN_WIDTH_BYTES
include "out/panel-copper-list.s"
DC.W $5bd1,$fffe
dc.w BPL1MOD,BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES-2
dc.w BPL2MOD,BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES-2
dc.w BPLCON1
copperListScrollPtr:
dc.w 0
copperListBpl1Ptr:
;; this is where bitplanes are assigned to playfields
;; http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0079.html
@@ -329,6 +359,7 @@ copperListBpl1Ptr:
dc.w BPL3PTH,0
dc.w BPL5PTL,0
dc.w BPL5PTH,0
copperListBpl2Ptr:
;; 3 bitplanes per playfield, playfield2 gets bitplanes 2,4,6
dc.w BPL2PTL,0
@@ -337,6 +368,13 @@ copperListBpl2Ptr:
dc.w BPL4PTH,0
dc.w BPL6PTL,0
dc.w BPL6PTH,0
dc.w DDFSTRT,(RASTER_X_START/2-SCREEN_RES)-8 ; -8 for extra scrolling word
dc.w DDFSTOP,(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1))
dc.w BPLCON0,(SCREEN_BIT_DEPTH*2<<12)|COLOR_ON|DBLPF
include "tilemap-copper-list.s"
dc.l $fffffffe
@@ -355,7 +393,9 @@ backgroundOffscreen:
tilemap:
incbin "out/foreground.bin"
backgroundTilemap:
incbin "out/background.bin"
incbin "out/background.bin"
panel:
incbin "out/panel.bin"
map:
include "out/foreground-map.s"
dc.w $FFFF
+18
View File
@@ -1,6 +1,7 @@
include "includes.i"
xdef SwitchBuffers
xdef PokePanelBitplanePointers
SwitchBuffers:
;; offscreen - bitplane address
@@ -44,5 +45,22 @@ PokeBitplanePointers:
rts
PokePanelBitplanePointers:
; a0 = BPLP copper list address
; a1 = bitplanes pointer
moveq #4-1,d0
.bitplaneloop:
move.l a1,d1
move.w d1,2(a0)
swap d1
move.w d1,6(a0)
lea SCREEN_WIDTH_BYTES(a1),a1
addq #8,a0
dbra d0,.bitplaneloop
rts
+5 -5
View File
@@ -15,13 +15,13 @@ Init:
move.w #(RASTER_Y_START<<8)|RASTER_X_START,DIWSTRT(a6)
move.w #((RASTER_Y_STOP-256)<<8)|(RASTER_X_STOP-256),DIWSTOP(a6)
move.w #(RASTER_X_START/2-SCREEN_RES)-8,DDFSTRT(a6) ; -8 for extra scrolling word
move.w #(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1)),DDFSTOP(a6)
;; move.w #(RASTER_X_START/2-SCREEN_RES)-8,DDFSTRT(a6) ; -8 for extra scrolling word
;; move.w #(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1)),DDFSTOP(a6)
;; enabled 2x the bitplanes as 2x playfields
move.w #(SCREEN_BIT_DEPTH*2<<12)|COLOR_ON|DBLPF,BPLCON0(a6)
move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES-2,BPL1MOD(a6) ; -2 for extra scrolling word
move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES-2,BPL2MOD(a6)
;; move.w #(SCREEN_BIT_DEPTH*2<<12)|COLOR_ON|DBLPF,BPLCON0(a6)
;; move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES-2,BPL1MOD(a6) ; -2 for extra scrolling word
;; move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES-2,BPL2MOD(a6)
;; install copper list, then enable dma and selected interrupts
lea copperList,a0
+25
View File
@@ -0,0 +1,25 @@
dc.w COLOR00,$09e
dc.w $182,$500
dc.w $184,$801
dc.w $186,$d30
dc.w $188,$d72
dc.w $18a,$fa1
dc.w $18c,$ed6
dc.w $18e,$18e
dc.w $190,$0f0
dc.w $192,$1cf
dc.w $194,$7ef
dc.w $196,$4ac
dc.w $198,$ddd
dc.w $19a,$d02
dc.w $19c,$999
dc.w $19e,$00f
dc.w $1a0,$ea6
dc.w $1a2,$f76
dc.w $1a4,$a31
dc.w $1a6,$37
dc.w $1a8,$19a
dc.w $1aa,$1ef
dc.w $1ac,$f70
dc.w $1ae,$ff0
dc.w $1b0,$fff