diff --git a/028.bs/Makefile b/028.bs/Makefile index 93df0ff..6214fba 100644 --- a/028.bs/Makefile +++ b/028.bs/Makefile @@ -43,6 +43,10 @@ IMAGES=foreground.png \ sprite_coin-1.png \ sprite_coin-2.png \ sprite_coin-3.png\ + sprite_arrow-0.png \ + sprite_arrow-1.png \ + sprite_arrow-2.png \ + sprite_arrow-3.png\ sprite_fallingPig-0.png \ sprite_fallingPig-1.png \ sprite_fallingPig-2.png \ @@ -110,6 +114,10 @@ out/sprite_fallingTank-%.bin: out/sprite_fallingTank-%.png out/sprite_coin%.bin: out/sprite_coin%.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_coin$* --palette-offset 20 --use-palette=assets/coin.pal +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 + + 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 @@ -131,6 +139,9 @@ out/sprite_fallingTank%.png: assets/assets.png 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 +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 + out/font%.bin: assets/font%.png $(IMAGECON) --input $< $(IMAGECON_ARGS) --output-bitplanes --output-grey-palette-asm --output-palette-asm --output-palette --output out/font$* --colors=16 --use-palette assets/mpanel.pal --full-color-palette-file --output-mask --transparent-color=0,0,0 --output-png diff --git a/028.bs/assets/arrow.pal b/028.bs/assets/arrow.pal new file mode 100644 index 0000000..7304216 --- /dev/null +++ b/028.bs/assets/arrow.pal @@ -0,0 +1,4 @@ +000 000 000 255 +004 050 117 255 +020 155 173 255 +030 236 255 255 diff --git a/028.bs/assets/assets.png b/028.bs/assets/assets.png index 0c052b2..ddb2d36 100644 Binary files a/028.bs/assets/assets.png and b/028.bs/assets/assets.png differ diff --git a/028.bs/background.tmx b/028.bs/background.tmx index 82a87e7..ab2ef99 100644 --- a/028.bs/background.tmx +++ b/028.bs/background.tmx @@ -5,7 +5,7 @@ - eJztmssNwjAMQLsANxYA8VsAym8FPgvADrD/AfeAhKKS2olLi/oO74CUhuRZTWI326Ioxh/Mgt/f2CrbVcyFhbAUVsr+bsK9YWyWMaTMCRe4aKJ06GMn7IWDcFQ+8xCeTmN++9PEAxe4yJ1XxUSYKtuehLNwEa5O//+reOBi2C5S35e1sOlwThXW9z4WjxIXuKhx4bl2eKLZv73XQFzgIqTLfS0X7/0ZF7iwUlcvGCq4wEVITr3gk1EP5oILXPwT2jzKUhOJ4dUPLnChJacOrs2jLDWR2HrUdm0FF7jwpC/17z6AC1z0CfJLXFhcpJzB2vgu3xbh/hrLL3GBi7BdyhnM+h3GOw9qKw64wIUH1nNiTh5Ul1/F4qC9b4oLXOSSWouw3DNOuZPcFIfQhcc9aFwMy8ULfVgzRw== + eJztmssNwjAMhrsA4sICIF4LQMtjBR4LwA6w/wH3gFRFJbEdhwbyH74DUhqSz2oSu2mqqpp0mDu/P9Ew27UsiCWxItbM/m7EPTA2yRg0c4ILuAhRG/SxI/bEgTgyn3kQT6Mxv/1x4gEXcBE7r5YpMWO2PRFn4kJcjf7/W/GAi7JdjJV9bojtgHNqkb73vnjUzD7goiwX2vcjNZz923oNtFxH4eI/XAy5r8VivT/DBVxI6asXlApcwIVLTL2gyyiDucAFXPwS3DxKUhPxYdUPXMAFl5g6ODePktREfOtR6toKXMCFJbnUv3MALuAiJ5BfwoXEheYMluK7fCrc/dWXX8IFXLjtNGcw6XcY6zwoVRzgAi4skJ4TY/KgvvzKFwfufVO4gItYtLUIyT1jzZ3kUBxcFxb3oOGiLBcv7ZMzAQ== diff --git a/028.bs/constants.i b/028.bs/constants.i index 7e6ce13..5297cfd 100644 --- a/028.bs/constants.i +++ b/028.bs/constants.i @@ -34,7 +34,7 @@ ITEM_SPRITE_NUM_VERTICAL_SPRITES equ 6 ITEM_SPRITE_VERTICAL_BYTES equ ((ITEM_SPRITE_HEIGHT*4)+4) ITEM_SPRITE_BYTES equ (ITEM_SPRITE_NUM_VERTICAL_SPRITES*ITEM_SPRITE_VERTICAL_BYTES)+4 ITEM_SPRITE_VSTART equ 149 -ITEM_NUM_SLOTS equ 8 +ITEM_NUM_SLOTS equ 16 ITEM_SPRITE_HORIZONTAL_START_PIXELS equ 32 ITEM_SPRITE_Y_COLLISION_OFFSET equ 1 @@ -43,9 +43,8 @@ ITEM_X equ 0 ITEM_LAGX equ 2 ITEM_Y equ 4 ITEM_SPRITE equ 6 -ITEM_YEND equ 8 -ITEM_LAGYEND equ 10 -ITEM_INDEX equ 12 +ITEM_INDEX equ 8 +ITEM_SPRITE_ADDRESS equ 12 ITEM_STRUCT_SIZE equ 16 ITEM_STRUCT_MULU_SHIFT equ 4 ITEM_NUM_COIN_ANIMS equ 7 diff --git a/028.bs/foreground.tmx b/028.bs/foreground.tmx index 438ea62..45fbe03 100644 --- a/028.bs/foreground.tmx +++ b/028.bs/foreground.tmx @@ -18,7 +18,7 @@ - eJxjYBgFgw04MuLnE1JPCDgRqZ5YdcMdgMKX2DBGV+dKhD6QHucREtbUSFOwMMYVJy6MqGpJzR/YzBkFhIErI+G4QY8PUuOHmPxEKhjK5RzI7cgYBMipP2Bq3MgIC3L0UBOQEn+DJa5JLZPcqaie3PJwFIwCagMAfEgLSw== + eJxjYBgFgxk4MTIwODLiV0NIHpuZ1FQ33IEjgThwZkRVS475ziMkrKmRpmBhTExYI8edC4l2k6p+pANXRsJxg56XCOUtbHZQGwzlcg7kdmQMAujhSUz9AVPjRkZYkKOHmoCU+BsscU1qPeFORfXk1FGjYBTQAgAAcsgLSg== diff --git a/028.bs/game1.s b/028.bs/game1.s index b09ec9b..2029d24 100644 --- a/028.bs/game1.s +++ b/028.bs/game1.s @@ -129,7 +129,17 @@ SetupBoardLoop: move.l foregroundScrollX,d0 move.w #1,moving bsr Update - bsr RenderNextForegroundFrame + + jsr RenderNextForegroundFrame + + move.w #15,d5 + sub.l #BACKGROUND_SCROLL_PIXELS,backgroundScrollX +.renderNextBackgroundFrameLoop: + add.l #BACKGROUND_SCROLL_PIXELS,backgroundScrollX + jsr RenderNextBackgroundFrame + jsr SwitchBackgroundBuffers + dbra d5,.renderNextBackgroundFrameLoop + cmp.l #FOREGROUND_PLAYAREA_WIDTH_WORDS,frameCount bge .gotoGameLoop bra SetupBoardLoop @@ -1149,6 +1159,7 @@ playAreaCopperPalettePtr4_MP: InstallSpriteColorPalette: jsr InstallPlayerColorPalette include "out/sprite_coin-1-palette.s" + include "out/sprite_arrow-1-palette.s" rts InstallColorPalette: diff --git a/028.bs/image.s b/028.bs/image.s index 9a63254..34d66a1 100644 --- a/028.bs/image.s +++ b/028.bs/image.s @@ -1,7 +1,10 @@ include "includes.i" xdef SwitchBuffers + xdef SwitchBackgroundBuffers xdef PokePanelBitplanePointers + + SwitchBuffers: ;; offscreen - bitplane address @@ -23,8 +26,9 @@ SwitchBuffers: add.l #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(96-1),d0 lea copperListBpl1Ptr2_MP,a0 - bsr.s PokeBitplanePointers + bsr.s PokeBitplanePointers +SwitchBackgroundBuffers: move.l backgroundScrollX,d0 lsr.w #BACKGROUND_SCROLL_SHIFT_CONVERT,d0 ; convert to pixels @@ -41,7 +45,7 @@ SwitchBuffers: lea copperListBpl2Ptr_MP,a0 bsr.s PokeBitplanePointers - add.l #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(96-48+16),d0 + add.l #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(96-1),d0 lea copperListBpl2Ptr2_MP,a0 bsr.s PokeBitplanePointers diff --git a/028.bs/items.s b/028.bs/items.s index 0fb5d85..3726f25 100644 --- a/028.bs/items.s +++ b/028.bs/items.s @@ -93,6 +93,7 @@ ResetItems: rts ClearItemSpriteData: + rts ;; move.w #ITEM_SPRITE_NUM_VERTICAL_SPRITES-1,d4 ;; sub.w d2,d4 ; this is because of the upside board at the moment ;; move.w d4,d2 @@ -125,7 +126,7 @@ SetupItemSpriteData: move.w ITEM_Y(a1),d2 ;; move.l #5,d2 - move.l currentItemSprite,a0 + move.l ITEM_SPRITE_ADDRESS(a1),a0 cmp.w #(ITEM_NUM_COIN_ANIMS-1)<<3,ITEM_INDEX(a1) ble .dontResetIndex @@ -194,7 +195,7 @@ GetSpriteSlot: lea item1,a1 add.l d0,a1 - move.l #deadSprite,currentItemSprite + ;; move.l #deadSprite,ITEM_SPRITE_ADDRESS(a1) move.w #336<