mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 01:32:35 +00:00
Tinkering
This commit is contained in:
+14
-17
@@ -8,8 +8,6 @@ USERSTACK_ADDRESS=7fffc
|
||||
BASE_ADDRESS=4000
|
||||
# note: this must be high enough not to conflict with MFMbufE
|
||||
|
||||
NUM_COLORS=8
|
||||
|
||||
BOOTBLOCK_ASM=alpine_bootblock.s
|
||||
OBJS=out/init.o out/utils.o out/image.o out/blit.o out/joystick.o out/player.o out/items.o out/blitmtext.o out/blittext.o out/music.o out/P6112-Play.o out/splash.o out/background.o
|
||||
|
||||
@@ -52,7 +50,7 @@ IMAGES=foreground.png \
|
||||
|
||||
IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin))
|
||||
|
||||
VASM_EXTRA_ARGS=-DNUM_COLORS=$(NUM_COLORS)
|
||||
VASM_EXTRA_ARGS=
|
||||
|
||||
#SYMBOL_INFO=-M
|
||||
LINKER_OPTIONS=-T link.script.x
|
||||
@@ -60,10 +58,10 @@ LINKER_OPTIONS=-T link.script.x
|
||||
include ../shared/base.mk
|
||||
|
||||
#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/$*
|
||||
# $(IMAGECON) --input $< $(IMAGECON_ARGS) --quantize --colors 8 --output-bitplanes --output-palette-asm --output-grey-palette --output-palette $(DITHER) --output out/$*
|
||||
|
||||
out/foreground.bin: assets/assets.png
|
||||
$(IMAGECON) --use-palette=assets/foreground.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-copperlist --output out/foreground
|
||||
$(IMAGECON) --use-palette=assets/foreground.pal --input $< $(IMAGECON_ARGS) --colors 8 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-grey-palette --output-palette --output-png --output-copperlist --output out/foreground
|
||||
sed -i '' "1s/.*/ dc.w COLOR00,\$$$(BACKGROUND_COLOR)/" out/foreground-copper-list.s
|
||||
sed -i '' "1s/.*/ dc.w \$$$(BACKGROUND_COLOR)/" out/foreground-palette-table.s
|
||||
sed -i '' "1s/.*/ dc.w \$$$(BACKGROUND_GREY_COLOR)/" out/foreground-grey-table.s
|
||||
@@ -72,7 +70,7 @@ out/foreground.bin: assets/assets.png
|
||||
sed -i '' "3s/.*/ dc.w COLOR02,\$$bbb/" out/foreground-grey-copper.s
|
||||
|
||||
out/background.bin: assets/assets.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-copperlist --output out/background --palette-offset 8
|
||||
$(IMAGECON) --use-palette=assets/background.pal --input $< $(IMAGECON_ARGS) --colors 8 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-grey-palette --output-palette --output-png --output-copperlist --output out/background --palette-offset 8
|
||||
|
||||
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-grey-palette --output out/panel --use-palette=assets/panel.pal
|
||||
@@ -132,19 +130,18 @@ out/tileFade.s: assets/tileFadeFrom.pal assets/tileFadeTo.pal ../tools/fade/out/
|
||||
|
||||
out/foreground-map.s: foreground.tmx
|
||||
../tools/mapgen/out/mapgen --depth=3 --input=foreground.tmx
|
||||
mv foreground-map.s out
|
||||
rm items-map.s
|
||||
mv items-indexes.s out
|
||||
rm foreground-indexes.s
|
||||
mv pathway-map.s out
|
||||
mv pathway-indexes.s out
|
||||
@mv foreground-map.s out
|
||||
@rm items-map.s
|
||||
@mv items-indexes.s out
|
||||
@rm foreground-indexes.s
|
||||
@mv pathway-map.s out
|
||||
@mv pathway-indexes.s out
|
||||
|
||||
|
||||
out/background-map.s: background.tmx
|
||||
../tools/mapgen/out/mapgen --depth=3 --input=background.tmx
|
||||
mv background-map.s out
|
||||
rm background-indexes.s
|
||||
@mv background-map.s out
|
||||
@rm background-indexes.s
|
||||
|
||||
out/main.o: $(IMAGEDATA) out/background-map.s out/foreground-map.s Makefile link.script.x out/playarea_fade.s out/flags_fade.s out/panelFade.s out/tileFade.s
|
||||
|
||||
out/blit.o: constants.i macros.i
|
||||
out/main.o: out/background-map.s out/foreground-map.s $(IMAGEDATA) constants.i macros.i Makefile link.script.x assets/palette.pal out/playarea_fade.s out/flags_fade.s out/panelFade.s out/tileFade.s
|
||||
out/init.o: constants.i Makefile
|
||||
+5
-45
@@ -9,7 +9,6 @@ FONT_WIDTH equ 8
|
||||
FONTMAP_WIDTH_BYTES equ 32
|
||||
_SCREEN_BIT_DEPTH equ 4
|
||||
_BITPLANE_WIDTH_BYTES equ 320/8
|
||||
MASKED_FONT equ 1
|
||||
|
||||
DrawMaskedText8:
|
||||
;; a0 - bitplane
|
||||
@@ -20,12 +19,8 @@ DrawMaskedText8:
|
||||
WaitBlitter
|
||||
|
||||
;; blitter config that is shared for every character
|
||||
if MASKED_FONT==1
|
||||
move.w #BC0F_SRCA|BC0F_SRCB|BC0F_SRCC|BC0F_DEST|BLIT_LF_MINTERM,d6 ; BLTCON0 value (masked version)
|
||||
move.w #FONTMAP_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTAMOD(a6) ; A modulo (only used for masked version)
|
||||
else
|
||||
move.w #BC0F_SRCB|BC0F_SRCC|BC0F_DEST|BLIT_LF_MINTERM,d6 ; BLTCON0 value
|
||||
endif
|
||||
move.w #FONTMAP_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTBMOD(a6) ; B modulo
|
||||
move.w #_BITPLANE_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTCMOD(a6) ; C modulo
|
||||
move.w #_BITPLANE_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTDMOD(a6) ; D modulo
|
||||
@@ -60,43 +55,18 @@ DrawChar8:
|
||||
;; a5 - #font
|
||||
;; d7 - #fontMask
|
||||
|
||||
sub.w #' ',d2 ; index = char - '!'
|
||||
move.w d2,d5
|
||||
|
||||
sub.w #' ',d2 ; index = char - ' '
|
||||
move.w d2,d5
|
||||
lsr.w #5,d5 ; char / 32 = fontmap line
|
||||
andi.w #$1f,d2 ; char index in line (char index - start of line index)
|
||||
|
||||
andi.w #$1f,d2 ; char index in line (char index - start of line index)
|
||||
add.l #1,d5 ; while we have a weird font image, ' ' starts on second line
|
||||
move.l a5,a1 ; #font
|
||||
|
||||
if 1
|
||||
mulu.w d3,d5 ; d5 *= #FONTMAP_WIDTH_BYTES*_SCREEN_BIT_DEPTH*FONT_HEIGHT
|
||||
else
|
||||
move.w d5,d3
|
||||
lsl.w #7,d3 ; d5 *= FONTMAP_WIDTH_BYTES*_SCREEN_BIT_DEPTH
|
||||
move.w d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
endif
|
||||
|
||||
if MASKED_FONT==1
|
||||
move.l d7,a2 ; #fontMask
|
||||
add.w d5,a2 ; add y offset in lines to fontMask address
|
||||
endif
|
||||
|
||||
add.w d5,a1 ; add y offset in lines to font address
|
||||
|
||||
add.w d2,a1 ; add offset into font
|
||||
if MASKED_FONT==1
|
||||
add.l d2,a2 ; add offset into mask
|
||||
endif
|
||||
|
||||
.blitChar8:
|
||||
;; kills a4,d2,d4,d5
|
||||
@@ -125,31 +95,21 @@ DrawChar8:
|
||||
.evenChar:
|
||||
move.w #$FF00,BLTAFWM(a6) ; select the first character in the word
|
||||
.continue:
|
||||
|
||||
;; this shift will give us the bits to shift (bits 0-3) in bits (12-15) of d5
|
||||
swap d5 ; d5 << 12
|
||||
lsr.l #4,d5 ;
|
||||
|
||||
lsr.l #4,d5 ;
|
||||
move.w d5,BLTCON1(A6) ; set the shift bits 12-15, bits 00-11 cleared
|
||||
|
||||
if MASKED_FONT==1
|
||||
move.l a2,BLTAPTH(a6) ; mask bitplane
|
||||
endif
|
||||
|
||||
move.l a1,BLTBPTH(a6) ; source bitplane
|
||||
or.w d6,d5 ; d5 = BLTCON0 value
|
||||
move.w d5,BLTCON0(a6) ; set minterm, dma channel and shift
|
||||
|
||||
add.l d4,a4 ; dest += XPOS_BYTES
|
||||
add.l d1,a4 ; dest += YPOS_BYTES
|
||||
|
||||
move.l a4,BLTCPTH(a6) ; background top left corner
|
||||
move.l a4,BLTDPTH(a6) ; destination top left corner
|
||||
|
||||
move.w #(FONT_HEIGHT*_SCREEN_BIT_DEPTH)<<6|(BLIT_WIDTH_WORDS),BLTSIZE(a6) ;rectangle size, starts blit
|
||||
rts
|
||||
|
||||
font:
|
||||
incbin "out/font8x8.bin"
|
||||
fontMask:
|
||||
incbin "out/font8x8-mask.bin"
|
||||
incbin "out/font8x8-mask.bin"
|
||||
+9
-53
@@ -1,6 +1,7 @@
|
||||
include "includes.i"
|
||||
xdef DrawText8
|
||||
|
||||
xdef font
|
||||
|
||||
BLIT_LF_MINTERM equ $ca ; cookie cut
|
||||
BLIT_WIDTH_WORDS equ 2 ; blit 2 words to allow shifting
|
||||
BLIT_WIDTH_BYTES equ 4
|
||||
@@ -9,23 +10,17 @@ FONT_WIDTH equ 8
|
||||
FONTMAP_WIDTH_BYTES equ 32
|
||||
_SCREEN_BIT_DEPTH equ 4
|
||||
_BITPLANE_WIDTH_BYTES equ 320/8
|
||||
MASKED_FONT equ 0
|
||||
|
||||
DrawText8:
|
||||
;; a0 - bitplane
|
||||
;; a1 - text
|
||||
;; d0 - xpos
|
||||
;; d1 - ypos
|
||||
movem.l d0-d7/a0-a4,-(sp)
|
||||
movem.l d0-d6/a0-a4,-(sp)
|
||||
WaitBlitter
|
||||
|
||||
;; blitter config that is shared for every character
|
||||
if MASKED_FONT==1
|
||||
move.w #BC0F_SRCA|BC0F_SRCB|BC0F_SRCC|BC0F_DEST|BLIT_LF_MINTERM,d6 ; BLTCON0 value (masked version)
|
||||
move.w #FONTMAP_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTAMOD(a6) ; A modulo (only used for masked version)
|
||||
else
|
||||
move.w #BC0F_SRCB|BC0F_SRCC|BC0F_DEST|BLIT_LF_MINTERM,d6 ; BLTCON0 value
|
||||
endif
|
||||
move.w #FONTMAP_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTBMOD(a6) ; B modulo
|
||||
move.w #_BITPLANE_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTCMOD(a6) ; C modulo
|
||||
move.w #_BITPLANE_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTDMOD(a6) ; D modulo
|
||||
@@ -34,7 +29,6 @@ DrawText8:
|
||||
move.w #$ffff,BLTADAT(a6) ; preload source mask so only BLTA?WM mask is used
|
||||
move.l a1,a3 ; character pointer
|
||||
move.l #font,a5 ; font pointer
|
||||
move.l #fontMask,d7 ; font mask pointer
|
||||
move.w #FONTMAP_WIDTH_BYTES*_SCREEN_BIT_DEPTH*FONT_HEIGHT,d3 ; bytes per font line
|
||||
.loop:
|
||||
clr.l d2
|
||||
@@ -46,7 +40,7 @@ DrawText8:
|
||||
add.l #FONT_WIDTH,d0 ; increment the x position
|
||||
bra .loop
|
||||
.done:
|
||||
movem.l (sp)+,d0-d7/a0-a4
|
||||
movem.l (sp)+,d0-d6/a0-a4
|
||||
rts
|
||||
|
||||
DrawChar8:
|
||||
@@ -58,45 +52,16 @@ DrawChar8:
|
||||
;; d6 - bltcon0 value
|
||||
;; a4* - bitplane
|
||||
;; a5 - #font
|
||||
;; d7 - #fontMask
|
||||
|
||||
sub.w #' ',d2 ; index = char - '!'
|
||||
move.w d2,d5
|
||||
|
||||
sub.w #' ',d2 ; index = char - ' '
|
||||
move.w d2,d5
|
||||
lsr.w #5,d5 ; char / 32 = fontmap line
|
||||
andi.w #$1f,d2 ; char index in line (char index - start of line index)
|
||||
|
||||
andi.w #$1f,d2 ; char index in line (char index - start of line index)
|
||||
add.l #1,d5 ; while we have a weird font image, ' ' starts on second line
|
||||
move.l a5,a1 ; #font
|
||||
|
||||
if 1
|
||||
mulu.w d3,d5 ; d5 *= #FONTMAP_WIDTH_BYTES*_SCREEN_BIT_DEPTH*FONT_HEIGHT
|
||||
else
|
||||
move.w d5,d3
|
||||
lsl.w #7,d3 ; d5 *= FONTMAP_WIDTH_BYTES*_SCREEN_BIT_DEPTH
|
||||
move.w d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
add.l d3,d5
|
||||
endif
|
||||
|
||||
if MASKED_FONT==1
|
||||
move.l d7,a2 ; #fontMask
|
||||
add.w d5,a2 ; add y offset in lines to fontMask address
|
||||
endif
|
||||
|
||||
add.w d5,a1 ; add y offset in lines to font address
|
||||
|
||||
add.w d2,a1 ; add offset into font
|
||||
if MASKED_FONT==1
|
||||
add.l d2,a2 ; add offset into mask
|
||||
endif
|
||||
|
||||
.blitChar8:
|
||||
;; kills a4,d2,d4,d5
|
||||
@@ -128,21 +93,13 @@ DrawChar8:
|
||||
|
||||
;; this shift will give us the bits to shift (bits 0-3) in bits (12-15) of d5
|
||||
swap d5 ; d5 << 12
|
||||
lsr.l #4,d5 ;
|
||||
|
||||
lsr.l #4,d5 ;
|
||||
move.w d5,BLTCON1(A6) ; set the shift bits 12-15, bits 00-11 cleared
|
||||
|
||||
if MASKED_FONT==1
|
||||
move.l a2,BLTAPTH(a6) ; mask bitplane
|
||||
endif
|
||||
|
||||
move.l a1,BLTBPTH(a6) ; source bitplane
|
||||
or.w d6,d5 ; d5 = BLTCON0 value
|
||||
move.w d5,BLTCON0(a6) ; set minterm, dma channel and shift
|
||||
|
||||
add.l d4,a4 ; dest += XPOS_BYTES
|
||||
add.l d1,a4 ; dest += YPOS_BYTES
|
||||
|
||||
move.l a4,BLTCPTH(a6) ; background top left corner
|
||||
move.l a4,BLTDPTH(a6) ; destination top left corner
|
||||
|
||||
@@ -151,5 +108,4 @@ DrawChar8:
|
||||
|
||||
font:
|
||||
incbin "out/font8x8.bin"
|
||||
fontMask:
|
||||
incbin "out/font8x8-mask.bin"
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</layer>
|
||||
<layer name="pathway" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjYBgFo2AUjIKhCc4D8Uck/kkgNmZkYNBlRKVHAe0AcjhLAvFjBggfBORHw34UjIJRMApGARYAAKjfBWM=
|
||||
eJxjYBgFo2AUjIKhCc4D8Uck/kkgNmZkYNBlRKVHAW0BLJwlgfgxlD8KRsEoGAWjYBTgAgCgkwUP
|
||||
</data>
|
||||
</layer>
|
||||
<layer name="items" width="100" height="8">
|
||||
|
||||
+35
-38
@@ -1,7 +1,6 @@
|
||||
include "includes.i"
|
||||
|
||||
xdef BigBang
|
||||
xdef IncrementScore
|
||||
|
||||
xdef pathwayRenderPending
|
||||
|
||||
@@ -41,13 +40,10 @@ Entry:
|
||||
|
||||
lea Level3InterruptHandler,a3
|
||||
move.l a3,LVL3_INT_VECTOR
|
||||
|
||||
|
||||
jsr StartMusic
|
||||
|
||||
jsr ShowSplash
|
||||
|
||||
;; jsr InstallGreyPalette
|
||||
|
||||
|
||||
;; d0 - fg bitplane pointer offset
|
||||
;; d1 - bg bitplane pointer offset
|
||||
move.l #0,d0
|
||||
@@ -93,12 +89,11 @@ Reset:
|
||||
jsr Message
|
||||
jsr InstallGreyPalette
|
||||
jsr HidePlayer
|
||||
bsr RenderScore
|
||||
|
||||
MainLoop:
|
||||
MOVE.W #$0024,BPLCON2(a6)
|
||||
move.l #0,frameCount
|
||||
|
||||
|
||||
SetupBoardLoop:
|
||||
add.l #1,frameCount
|
||||
move.l frameCount,d6
|
||||
@@ -118,14 +113,10 @@ SetupBoardLoop:
|
||||
cmp.l #50,d6
|
||||
ble .gotoGameLoop
|
||||
jsr ProcessJoystick
|
||||
;; cmp.l #FOREGROUND_PLAYAREA_WIDTH_WORDS+50,d6
|
||||
;; bne .gotoGameLoop
|
||||
btst.b #0,joystick
|
||||
beq .gotoGameLoop
|
||||
move.w #0,moving
|
||||
move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels
|
||||
;; move.w #$ffff,mpanelWaitLinePtr
|
||||
;; bsr ClearMPanel
|
||||
bsr HideMessagePanel
|
||||
|
||||
FadeInLoop:
|
||||
@@ -141,11 +132,26 @@ FadeInLoop:
|
||||
bne .c1
|
||||
jsr InitialisePlayer
|
||||
jsr EnableItemSprites
|
||||
|
||||
lea frameCounterText,a0
|
||||
bsr ResetCounter
|
||||
lea verticalBlankCounterText,a0
|
||||
bsr ResetCounter
|
||||
|
||||
bra GameLoop
|
||||
.c1:
|
||||
bra FadeInLoop
|
||||
|
||||
GameLoop:
|
||||
lea frameCounterText,a0
|
||||
bsr IncrementCounter
|
||||
lea frameCounterText,a1
|
||||
move.w #31,d0
|
||||
jsr RenderCounter
|
||||
lea verticalBlankCounterText,a1
|
||||
move.w #101,d0
|
||||
jsr RenderCounter
|
||||
|
||||
add.l #1,frameCount
|
||||
move.l frameCount,d6
|
||||
move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels
|
||||
@@ -193,7 +199,6 @@ Update:
|
||||
beq .skipForegroundUpdates
|
||||
;; ---- Foreground updates ----------------------------------------
|
||||
.foregroundUpdates:
|
||||
jsr CalculateScore
|
||||
move.l foregroundScrollX,d0
|
||||
lsr.l #FOREGROUND_SCROLL_SHIFT_CONVERT,d0 ; convert to pixels
|
||||
andi.l #$f,d0
|
||||
@@ -228,7 +233,6 @@ ShowMessagePanel:
|
||||
jsr WaitVerticalBlank
|
||||
lea mpanelCopperList,a0
|
||||
move.l a0,COP1LC(a6)
|
||||
;; move.w COPJMP1(a6),d0
|
||||
rts
|
||||
|
||||
|
||||
@@ -236,7 +240,6 @@ HideMessagePanel:
|
||||
jsr WaitVerticalBlank
|
||||
lea copperList,a0
|
||||
move.l a0,COP1LC(a6)
|
||||
;; move.w COPJMP1(a6),d0
|
||||
rts
|
||||
|
||||
HoriScrollPlayfield:
|
||||
@@ -261,7 +264,6 @@ HoriScrollPlayfield:
|
||||
lsl.w #4,d5
|
||||
or.w d5,d0
|
||||
move.w d0,copperListScrollPtr
|
||||
;; move.w d0,copperListScrollPtr2
|
||||
move.w d0,copperListScrollPtr_MP
|
||||
move.w d0,copperListScrollPtr2_MP
|
||||
rts
|
||||
@@ -332,7 +334,6 @@ RenderNextForegroundFrame:
|
||||
lsr.l #1,d0
|
||||
and.b #$f0,d0
|
||||
add.l d0,a2
|
||||
;; move.l #FOREGROUND_PLAYAREA_HEIGHT_WORDS-1,d3 ; 8 tiles per column
|
||||
move.l 0,d3
|
||||
.loop:
|
||||
move.l d3,d2
|
||||
@@ -490,8 +491,6 @@ PostMissedTile:
|
||||
|
||||
|
||||
BigBang:
|
||||
;; move.w #(DMAF_SPRITE),DMACON(a6) ; turn sprites off for now
|
||||
|
||||
jsr ResetItems
|
||||
move.w #0,moving
|
||||
move.l #0,frameCount
|
||||
@@ -505,7 +504,6 @@ BigBang:
|
||||
jsr SwitchBuffers
|
||||
jsr ProcessJoystick
|
||||
jsr UpdatePlayerFallingAnimation
|
||||
;; bsr Update
|
||||
|
||||
lea map,a2
|
||||
move.l foregroundScrollX,d0
|
||||
@@ -615,8 +613,10 @@ Level3InterruptHandler:
|
||||
.verticalBlank:
|
||||
move.w #INTF_VERTB,INTREQ(a6) ; clear interrupt bit
|
||||
add.l #1,verticalBlankCount
|
||||
lea verticalBlankCounterText,a0
|
||||
bsr IncrementCounter
|
||||
jsr SetupSpriteData
|
||||
;; jsr P61_Music
|
||||
jsr P61_Music
|
||||
.checkCopper:
|
||||
move.w INTREQR(a6),d0
|
||||
and.w #INTF_COPER,d0
|
||||
@@ -638,23 +638,21 @@ Message:
|
||||
move.w #128,d0
|
||||
move.w #11,d1
|
||||
jsr DrawMaskedText8
|
||||
;; move.w #MPANEL_COPPER_WAIT,mpanelWaitLinePtr
|
||||
;; jsr EnableMPanel
|
||||
bsr ShowMessagePanel
|
||||
rts
|
||||
|
||||
RenderScore:
|
||||
|
||||
RenderCounter:
|
||||
lea panel,a0
|
||||
lea scoreText,a1
|
||||
move.w #31,d0
|
||||
move.w #20,d1
|
||||
jsr DrawText8
|
||||
rts
|
||||
|
||||
|
||||
ResetCounter:
|
||||
move.l #"0000",(a0)
|
||||
|
||||
IncrementScore:
|
||||
movem.l d0-a6,-(sp)
|
||||
lea scoreText,a0
|
||||
IncrementCounter:
|
||||
add.l #3,a0
|
||||
.loop:
|
||||
sub.l d0,d0
|
||||
@@ -668,8 +666,6 @@ IncrementScore:
|
||||
bra .loop
|
||||
.done
|
||||
move.b d0,(a0)
|
||||
jsr RenderScore
|
||||
movem.l (sp)+,d0-a6
|
||||
rts
|
||||
|
||||
message:
|
||||
@@ -678,11 +674,18 @@ message:
|
||||
|
||||
align 4
|
||||
|
||||
scoreText:
|
||||
frameCounterText:
|
||||
dc.b "0000"
|
||||
dc.b 0
|
||||
|
||||
align 4
|
||||
|
||||
verticalBlankCounterText:
|
||||
dc.b "0000"
|
||||
dc.b 0
|
||||
|
||||
align 4
|
||||
|
||||
|
||||
copperList:
|
||||
panelCopperListBpl1Ptr:
|
||||
@@ -1209,12 +1212,6 @@ deAnimIndexPattern:
|
||||
dc.l 0
|
||||
dc.l $ffffffff
|
||||
|
||||
if 0
|
||||
greyPalette:
|
||||
include "out/foreground-grey-table.s"
|
||||
include "out/background-grey-table.s"
|
||||
endif
|
||||
|
||||
panelGreyPalette:
|
||||
include "out/panel-grey-table.s"
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
xdef UpdatePlayerFallingAnimation
|
||||
xdef InstallPlayerColorPalette
|
||||
xdef SelectNextPlayerSprite
|
||||
xdef CalculateScore
|
||||
|
||||
xdef spriteLagX
|
||||
xdef spriteY
|
||||
@@ -21,7 +20,6 @@ PLAYER_SPRITE_DATA equ 4
|
||||
PLAYER_SPRITE_FALLING_DATA equ 8
|
||||
|
||||
InitialisePlayer:
|
||||
move.w #0,playerMaxX
|
||||
move.l playerSpriteConfig,a0
|
||||
move.l PLAYER_SPRITE_DATA(a0),d0
|
||||
add.l #6*PLAYER_SPRITE_VERTICAL_BYTES,d0
|
||||
@@ -72,7 +70,6 @@ UpdatePlayer:
|
||||
cmp.w #PLAYER_PAUSE_PIXELS,spriteR
|
||||
ble .skipRight
|
||||
add.w #PLAYER_MOVE_PIXELS,spriteX
|
||||
add.w #1,playerX
|
||||
add.l #7*PLAYER_SPRITE_VERTICAL_BYTES,d0
|
||||
move.l d0,currentSprite
|
||||
|
||||
@@ -124,7 +121,6 @@ UpdatePlayer:
|
||||
cmp.w #PLAYER_PAUSE_PIXELS,spriteL
|
||||
ble .skipLeft
|
||||
sub.w #PLAYER_MOVE_PIXELS,spriteX
|
||||
sub.w #1,playerX
|
||||
add.l #5*PLAYER_SPRITE_VERTICAL_BYTES,d0
|
||||
move.l d0,currentSprite
|
||||
.skipLeft
|
||||
@@ -143,18 +139,6 @@ UpdatePlayer:
|
||||
rts
|
||||
|
||||
|
||||
CalculateScore:
|
||||
move.w playerX,d0
|
||||
move.w playerMaxX,d1
|
||||
lsr.w #PLAYER_JUMP_SHIFT_CONVERT,d0
|
||||
cmp.w d1,d0
|
||||
ble .skip
|
||||
move.w d0,playerMaxX
|
||||
jsr IncrementScore
|
||||
.skip:
|
||||
rts
|
||||
|
||||
|
||||
ProcessJoystick:
|
||||
;; 812
|
||||
;; 7 3
|
||||
@@ -364,8 +348,4 @@ spriteY:
|
||||
dc.w $e4
|
||||
spriteYEnd:
|
||||
dc.w $f5
|
||||
playerMaxX:
|
||||
dc.w 0
|
||||
playerX:
|
||||
dc.w 0
|
||||
|
||||
@@ -114,15 +114,20 @@ out/bootblock.o: $(BOOTBLOCK_ASM) $(PROGRAM_BIN)
|
||||
|
||||
out/main.o: $(MODULE) $(EXTRA)
|
||||
vasmm68k_mot $(VASM_ARGS) $(VASM_EXTRA_ARGS) $< -o $@ -I/usr/local/amiga/os-include
|
||||
@vasmm68k_mot -depend=make $(VASM_ARGS) $(VASM_EXTRA_ARGS) $< -o $@ -I/usr/local/amiga/os-include > $*.d
|
||||
|
||||
out/%.o: %.s
|
||||
vasmm68k_mot $(VASM_ARGS) $(VASM_EXTRA_ARGS) $< -o $@ -I/usr/local/amiga/os-include
|
||||
@vasmm68k_mot -depend=make $(VASM_ARGS) $(VASM_EXTRA_ARGS) $< -o $@ -I/usr/local/amiga/os-include > out/$*.d
|
||||
|
||||
out/%.o: %.c
|
||||
vc -O3 -c $< -o $@
|
||||
-@vc -O3 -S $< -o out/$*.s > /dev/null 2> /dev/null
|
||||
-@vc -O0 -S $< -o out/$*-noopt.s > /dev/null 2> /dev/null
|
||||
|
||||
ALL_OBJS=out/main.o $(OBJS)
|
||||
ALL_DEPENDS=$(ALL_OBJS:.o=.d)
|
||||
|
||||
out/main.bin: out/main.o $(OBJS)
|
||||
vlink $(LINKER_OPTIONS) -brawbin1 $< $(OBJS) -o $@
|
||||
@vlink $(LINKER_OPTIONS) -brawbin1 $< $(OBJS) -M -o /tmp/main.bin | grep ", value " | cut -d " " -f3,7 | cut -d "," -f1 > ~/Projects/amiga/debugger.syms
|
||||
@@ -133,3 +138,5 @@ out/shrunk.bin: $(SHRINKLER_EXE) out/main.bin
|
||||
|
||||
clean:
|
||||
rm -rf out bin *~
|
||||
|
||||
-include $(ALL_DEPENDS)
|
||||
Reference in New Issue
Block a user