mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 04:02:46 +00:00
don't be quite as wasteful with ram
This commit is contained in:
+16
-1
@@ -17,6 +17,7 @@ IMAGES=foreground.png \
|
||||
background.png \
|
||||
panel.png \
|
||||
mpanel.png \
|
||||
mpanelOrig.png \
|
||||
sprite_pig-0.png \
|
||||
sprite_pig-1.png \
|
||||
sprite_pig-2.png \
|
||||
@@ -71,7 +72,6 @@ IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin))
|
||||
|
||||
VASM_EXTRA_ARGS=-DTIMING_TEST=0 -DSFX=1
|
||||
|
||||
#SYMBOL_INFO=-M
|
||||
LINKER_OPTIONS=-T link.script.x
|
||||
|
||||
include ../shared/base.mk
|
||||
@@ -109,6 +109,10 @@ out/panel.bin: assets/panel.png
|
||||
out/mpanel.bin: assets/mpanel.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/mpanel --use-palette=assets/mpanel.pal
|
||||
|
||||
out/mpanelOrig.bin: out/mpanelOrig.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/mpanelOrig --use-palette=assets/mpanel.pal
|
||||
|
||||
|
||||
out/sprite_pig-%.bin: out/sprite_pig-%.png
|
||||
$(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig-$* --palette-offset 16 --use-palette=assets/pig.pal
|
||||
|
||||
@@ -135,27 +139,38 @@ out/sprite_arrow%.bin: out/sprite_arrow%.png
|
||||
$(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_arrow$* --palette-offset 24 --use-palette=assets/arrow.pal
|
||||
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_pig%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_pig --width=16 --height=16 --rows=1 --cols=8 --dx=16 --dy=16 --x=192 --y=112
|
||||
|
||||
out/mpanelOrig.png: assets/mpanel.png
|
||||
../tools/croppa/out/croppa --input=assets/mpanel.png --output=out/mpanelOrig.png --width=320 --height=16 --rows=1 --cols=1 --dx=0 --dy=0 --x=0 --y=8
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_robot%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_robot --width=16 --height=16 --rows=1 --cols=8 --dx=16 --dy=16 --x=192 --y=176
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_tank%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_tank --width=16 --height=16 --rows=1 --cols=8 --dx=16 --dy=16 --x=192 --y=208
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_fallingPig%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_fallingPig --width=16 --height=16 --rows=1 --cols=5 --dx=16 --dy=16 --x=192 --y=128
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_fallingRobot%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_fallingRobot --width=16 --height=16 --rows=1 --cols=5 --dx=16 --dy=16 --x=192 --y=192
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_fallingTank%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_fallingTank --width=16 --height=16 --rows=1 --cols=5 --dx=16 --dy=16 --x=192 --y=224
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_coin%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_coin --width=16 --height=15 --rows=1 --cols=4 --dx=16 --dy=16 --x=192 --y=144
|
||||
|
||||
.SECONDARY:
|
||||
out/sprite_arrow%.png: assets/assets.png
|
||||
../tools/croppa/out/croppa --input=assets/assets.png --output=out/sprite_arrow --width=16 --height=15 --rows=1 --cols=4 --dx=16 --dy=16 --x=192 --y=160
|
||||
|
||||
|
||||
+7
-5
@@ -39,10 +39,10 @@ RenderBackgroundTile:
|
||||
jsr BlitTile
|
||||
cmp.l #backgroundBitplanes1,backgroundOffscreen
|
||||
bne .offsetSub
|
||||
add.l #IMAGESIZE*2,a0
|
||||
add.l #backgroundBitplanes2-backgroundBitplanes1,a0
|
||||
bra .doBlit
|
||||
.offsetSub:
|
||||
sub.l #IMAGESIZE*2,a0
|
||||
sub.l #backgroundBitplanes2-backgroundBitplanes1,a0
|
||||
.doBlit:
|
||||
jsr BlitTile
|
||||
rts
|
||||
@@ -64,7 +64,7 @@ RenderNextBackgroundFrame:
|
||||
backgroundScrollX:
|
||||
dc.l 0
|
||||
backgroundTilemap:
|
||||
incbin "out/background.bin"
|
||||
incbin "out/background.bin"
|
||||
backgroundMap:
|
||||
include "out/background-map.s"
|
||||
dc.w $FFFF
|
||||
@@ -75,9 +75,11 @@ backgroundOffscreen:
|
||||
|
||||
section .bss
|
||||
backgroundBitplanes1:
|
||||
ds.b IMAGESIZE*2
|
||||
ds.b IMAGESIZE
|
||||
ds.b LINESIZE*10
|
||||
backgroundBitplanes2:
|
||||
ds.b IMAGESIZE*2
|
||||
ds.b IMAGESIZE
|
||||
ds.b LINESIZE*10
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -21,7 +21,7 @@ PLAYER_CHECK_MISS_PIXELS equ 10
|
||||
PLAYER_FAST_PAUSE_PIXELS equ 4 ; number of pixel waits between jumps
|
||||
PLAYER_FAST_CHECK_MISS_PIXELS equ 2
|
||||
|
||||
|
||||
SPLASH_USE_FOREGROUND equ 0
|
||||
|
||||
PATHWAY_FADE_TIMER_COUNT equ 100
|
||||
|
||||
@@ -88,5 +88,5 @@ RASTER_X_START equ $81 ; hard coded coordinates from hardware manual
|
||||
RASTER_Y_START equ $2c
|
||||
RASTER_X_STOP equ RASTER_X_START+SCREEN_WIDTH
|
||||
RASTER_Y_STOP equ RASTER_Y_START+256
|
||||
SCROLL_EXTRA equ 0
|
||||
IMAGESIZE equ BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(SCREEN_HEIGHT+SCROLL_EXTRA)
|
||||
IMAGESIZE equ BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(SCREEN_HEIGHT)
|
||||
LINESIZE equ BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH
|
||||
+42
-10
@@ -24,6 +24,7 @@
|
||||
xdef foregroundOnscreen
|
||||
xdef foregroundOffscreen
|
||||
xdef foregroundScrollX
|
||||
xdef foregroundBitplanes1
|
||||
|
||||
xdef foregroundMapPtr
|
||||
xdef pathwayMapPtr
|
||||
@@ -51,6 +52,9 @@ Entry:
|
||||
|
||||
jsr StartMusic
|
||||
jsr ShowSplash
|
||||
if SPLASH_USE_FOREGROUND=1
|
||||
jsr InstallBlackPalette
|
||||
endif
|
||||
jsr BlueFill
|
||||
|
||||
;; d0 - fg bitplane pointer offset
|
||||
@@ -872,9 +876,10 @@ Message:
|
||||
;; d1 - ypos
|
||||
|
||||
move.w d0,d1
|
||||
move.w #(32*4)<<6|(320/16),d0
|
||||
move.w #(32*4)<<6|(8),d0
|
||||
lea mpanelOrig,a0
|
||||
lea mpanel,a2
|
||||
add.l #(40*4*8),a2
|
||||
jsr SimpleBlit
|
||||
|
||||
lea mpanel,a0
|
||||
@@ -1274,10 +1279,34 @@ InstallFlagsGreyPalette:
|
||||
add.l #4,a2
|
||||
dbra d0,.loop
|
||||
|
||||
rts
|
||||
|
||||
|
||||
rts
|
||||
|
||||
if SPLASH_USE_FOREGROUND=1
|
||||
InstallBlackPalette:
|
||||
move.w #$000,COLOR00(a6)
|
||||
move.w #$000,COLOR01(a6)
|
||||
move.w #$000,COLOR02(a6)
|
||||
move.w #$000,COLOR03(a6)
|
||||
move.w #$000,COLOR04(a6)
|
||||
move.w #$000,COLOR05(a6)
|
||||
move.w #$000,COLOR06(a6)
|
||||
move.w #$000,COLOR07(a6)
|
||||
move.w #$000,COLOR08(a6)
|
||||
move.w #$000,COLOR09(a6)
|
||||
move.w #$000,COLOR10(a6)
|
||||
move.w #$000,COLOR11(a6)
|
||||
move.w #$000,COLOR12(a6)
|
||||
move.w #$000,COLOR13(a6)
|
||||
move.w #$000,COLOR14(a6)
|
||||
move.w #$000,COLOR15(a6)
|
||||
move.w #$000,COLOR16(a6)
|
||||
move.w #$000,COLOR17(a6)
|
||||
move.w #$000,COLOR18(a6)
|
||||
move.w #$000,COLOR19(a6)
|
||||
move.w #$000,COLOR20(a6)
|
||||
rts
|
||||
endif
|
||||
|
||||
InstallTilePalette:
|
||||
move.l tileFade,tileFadePtr
|
||||
lea playAreaCopperPalettePtr2,a1
|
||||
@@ -1400,7 +1429,7 @@ InstallPaletteB:
|
||||
foregroundOnscreen:
|
||||
dc.l foregroundBitplanes1
|
||||
foregroundOffscreen:
|
||||
dc.l foregroundBitplanes2
|
||||
dc.l foregroundBitplanes1+IMAGESIZE
|
||||
foregroundTilemap:
|
||||
incbin "out/foreground.bin"
|
||||
panel:
|
||||
@@ -1408,7 +1437,7 @@ panel:
|
||||
mpanel:
|
||||
incbin "out/mpanel.bin"
|
||||
mpanelOrig:
|
||||
incbin "out/mpanel.bin"
|
||||
incbin "out/mpanelOrig.bin"
|
||||
level1ForegroundMap:
|
||||
include "out/foreground-map.s"
|
||||
dc.w $FFFF
|
||||
@@ -1598,11 +1627,14 @@ nextPaletteInstaller:
|
||||
panelFade:
|
||||
include "out/panelFade.s"
|
||||
|
||||
section .bss
|
||||
|
||||
foregroundBitplanes1:
|
||||
ds.b IMAGESIZE
|
||||
foregroundBitplanes2:
|
||||
ds.b IMAGESIZE
|
||||
if SPLASH_USE_FOREGROUND=1
|
||||
incbin "out/splash.bin"
|
||||
endif
|
||||
.endSplash
|
||||
ds.b (IMAGESIZE*2)-(.endSplash-foregroundBitplanes1)
|
||||
section .bss
|
||||
startUserstack:
|
||||
ds.b $1000 ; size of stack
|
||||
userstack:
|
||||
|
||||
@@ -24,5 +24,6 @@ SECTIONS
|
||||
bss (NOLOAD) : {
|
||||
. = endCode;
|
||||
*(.bss)
|
||||
endRam = .;
|
||||
} > ram;
|
||||
}
|
||||
+7
-1
@@ -20,7 +20,11 @@ ShowSplash:
|
||||
move.w #SPLASH_SCREEN_WIDTH_BYTES*SPLASH_COLOR_DEPTH-SPLASH_SCREEN_WIDTH_BYTES,BPL2MOD(a6)
|
||||
|
||||
;; poke bitplane pointers
|
||||
if SPLASH_USE_FOREGROUND=1
|
||||
lea foregroundBitplanes1,a1
|
||||
else
|
||||
lea splash(pc),a1
|
||||
endif
|
||||
lea splashCopperListBplPtr(pc),a2
|
||||
moveq #SPLASH_COLOR_DEPTH-1,d0
|
||||
.bitplaneloop:
|
||||
@@ -68,5 +72,7 @@ splashCopperListBplPtr:
|
||||
dc.w BPL6PTH,0
|
||||
dc.l $fffffffe
|
||||
|
||||
if SPLASH_USE_FOREGROUND=0
|
||||
splash:
|
||||
incbin "out/splash.bin"
|
||||
incbin "out/splash.bin"
|
||||
endif
|
||||
@@ -131,6 +131,7 @@ 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
|
||||
@echo "RAM USAGE:" $$((16#`cat ~/Projects/amiga/debugger.syms | grep endRam | sed 's/0x//' | sed 's/endRam: //'`)) bytes
|
||||
|
||||
|
||||
out/shrunk.bin: $(SHRINKLER_EXE) out/main.bin
|
||||
|
||||
Reference in New Issue
Block a user