mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-13 08:22:29 +00:00
scoreboard panel
This commit is contained in:
+8
-8
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user