diff --git a/028.bs/Makefile b/028.bs/Makefile index 2d95a41..f7f37f3 100644 --- a/028.bs/Makefile +++ b/028.bs/Makefile @@ -192,14 +192,14 @@ out/panelFade.s: assets/panel.pal ../tools/fade/out/fade out/%_tileFade.s: out/%_tileFadeFrom.pal out/%_tileFadeTo.pal ../tools/fade/out/fade ../tools/fade/out/fade --steps=64 --colors=2 --from=out/$*_tileFadeFrom.pal --to=out/$*_tileFadeTo.pal --output=$*_tileFade > out/$*_tileFade.s -out/foreground-map.s: foreground.tmx - ../tools/mapgen/out/mapgen --depth=3 --input=foreground.tmx - @mv foreground-map.s out +out/%_foreground-map.s: levels/%_foreground.tmx + ../tools/mapgen/out/mapgen --depth=3 --input=levels/$*_foreground.tmx + @mv foreground-map.s out/$*_foreground-map.s @rm items-map.s - @mv items-indexes.s out + @mv items-indexes.s out/$*_items-indexes.s @rm foreground-indexes.s - @mv pathway-map.s out - @mv pathway-indexes.s out + @mv pathway-map.s out/$*_pathway-map.s + @mv pathway-indexes.s out/$*_pathway-indexes.s out/background-map.s: background.tmx @@ -222,7 +222,9 @@ out/chaching.raw: assets/chaching.wav out/yay.raw: assets/yay.wav sox -v 2.0 assets/yay.wav -c 1 -r 4000 -b 8 out/yay.raw -out/main.o: $(IMAGEDATA) out/background-map.s out/foreground-map.s Makefile link.script.x\ +out/main.o: $(IMAGEDATA) \ + out/levelA_foreground-map.s out/levelB_foreground-map.s \ + out/background-map.s Makefile link.script.x\ out/paletteA_playarea_fade.s out/paletteA_flags_fade.s out/paletteA_foreground-palette-table.s out/paletteA_tileFade.s\ out/paletteB_playarea_fade.s out/paletteB_flags_fade.s out/paletteB_foreground-palette-table.s out/paletteB_tileFade.s\ out/panelFade.s out/jump.raw out/falling.raw out/chaching.raw out/whoosh.raw out/yay.raw diff --git a/028.bs/game1.s b/028.bs/game1.s index 13e524e..2f9d901 100644 --- a/028.bs/game1.s +++ b/028.bs/game1.s @@ -86,6 +86,7 @@ Entry: move.w #(DMAF_SPRITE|DMAF_BLITTER|DMAF_SETCLR|DMAF_COPPER|DMAF_RASTER|DMAF_MASTER),DMACON(a6) jsr InitialiseItems + jsr InstallLevelA Reset: lea livesCounterText,a0 bsr DecrementCounter @@ -95,9 +96,11 @@ Reset: lea player1Text,a1 move.w #192,d0 jsr RenderCounter + + + move.l startForegroundMapPtr,foregroundMapPtr + move.l startPathwayMapPtr,pathwayMapPtr - move.l startForegroundMapPtr,foregroundMapPtr - move.l startPathwayMapPtr,pathwayMapPtr move.w #0,pathwayRenderPending move.w #0,pathwayClearPending move.w #0,moving @@ -117,8 +120,7 @@ Reset: bne .notGameOver bra GameOver .notGameOver: - lea message,a1 - move.w #128,d0 + move.l startMessage,a1 jsr Message @@ -300,14 +302,12 @@ Update: GameOver: lea gameOverMessage,a1 - move.w #128,d0 jsr Message - jsr InstallPaletteA + jsr InstallLevelA jsr WaitForJoystick - move.l #level1ForegroundMap,startForegroundMapPtr - move.l #level1PathwayMap,startPathwayMapPtr + move.l #'0004',livesCounterText jsr InitialiseItems bra Reset @@ -319,25 +319,22 @@ LevelComplete: jsr ResetPlayer jsr SelectNextPlayerSprite - move.l nextPaletteInstaller,a0 + move.l nextLevelInstaller,a0 cmp.l #0,(a0) - bne .dontResetPaletteInstaller - move.l #paletteInstallers,nextPaletteInstaller - move.l nextPaletteInstaller,a0 -.dontResetPaletteInstaller: + bne .dontResetLevelInstaller + move.l #levelInstallers,nextLevelInstaller + move.l nextLevelInstaller,a0 +.dontResetLevelInstaller: move.l (a0),a1 jsr (a1) add.l #4,a0 - move.l a0,nextPaletteInstaller + move.l a0,nextLevelInstaller - lea levelCompleteMessage,a1 - move.w #100,d0 + move.l levelCompleteMessage,a1 jsr Message jsr WaitForJoystick - move.l #level1ForegroundMap,startForegroundMapPtr - move.l #level1PathwayMap,startPathwayMapPtr move.l #'0004',livesCounterText jsr InitialiseItems bra Reset @@ -876,6 +873,15 @@ Message: ;; d0 - xpos ;; d1 - ypos + move.w #SCREEN_WIDTH/2,d0 + move.l a1,a2 +.loop: + cmp.b #0,(a2)+ + beq .lengthComplete + sub.w #4,d0 + bra .loop + +.lengthComplete: move.w d0,d1 move.w #(32*4)<<6|(8),d0 lea mpanelOrig,a0 @@ -955,21 +961,13 @@ player2Text: dc.b "P2" dc.b 0 align 4 - -message: - dc.b "LETS PLAY!" - dc.b 0 - align 4 + gameOverMessage: dc.b "GAME OVER" dc.b 0 align 4 -levelCompleteMessage: - dc.b "LEVEL COMPLETE!" - dc.b 0 - align 4 skippedFramesCounterText: dc.b "0000" @@ -1413,19 +1411,9 @@ InstallFlagGreyPalette: rts -InstallPaletteA: - move.l #paletteA_playAreaPalette,playAreaPalette - move.l #paletteA_playareaFade,playareaFade - move.l #paletteA_flagsFade,flagsFade - move.l #paletteA_tileFade,tileFade - rts + Level A,"LEVEL 1" + Level B,"LEVEL 2" -InstallPaletteB: - move.l #paletteB_playAreaPalette,playAreaPalette - move.l #paletteB_playareaFade,playareaFade - move.l #paletteB_flagsFade,flagsFade - move.l #paletteB_tileFade,tileFade - rts foregroundOnscreen: dc.l foregroundBitplanes1 @@ -1438,38 +1426,11 @@ panel: mpanel: incbin "out/mpanel.bin" mpanelOrig: - incbin "out/mpanelOrig.bin" -level1ForegroundMap: - include "out/foreground-map.s" - dc.w $FFFF - dc.w $FFFF - dc.w $FFFF - dc.w $FFFF - dc.w $FFFF - dc.w $FFFF - dc.w $FFFF - dc.w $FFFF -level1PathwayMap: - include "out/pathway-map.s" -itemsMap: - include "out/items-indexes.s" + incbin "out/mpanelOrig.bin" itemsMapOffset: - dc.l itemsMap-level1ForegroundMap -foregroundMapPtr: - dc.l 0 -pathwayMapPtr: - dc.l 0 -startForegroundMapPtr: - dc.l level1ForegroundMap -startPathwayMapPtr: - dc.l level1PathwayMap - - - + dc.l levelAItemsMap-levelAForegroundMap foregroundScrollPixels: - dc.l FOREGROUND_SCROLL_PIXELS -foregroundScrollX: - dc.l 0 + dc.l FOREGROUND_SCROLL_PIXELS frameCount: dc.l 0 verticalBlankCount: @@ -1478,18 +1439,8 @@ movingCounter: dc.w 0 moving: dc.w 0 - -foregroundPlayerTileAddress: - dc.l 0 -pathwayRenderPending: - dc.w 0 -pathwayPlayerTileAddress: - dc.l 0 -pathwayClearPending: - dc.w 0 pathwayFadeCount: dc.w 0 - tileFadePtr: dc.l 0 playareaFadePtr: @@ -1583,32 +1534,6 @@ deAnimIndexPattern: panelGreyPalette: include "out/panel-grey-table.s" -paletteA_playAreaPalette: - include "out/paletteA_foreground-palette-table.s" - include "out/background-palette-table.s" - -paletteA_playareaFade: - include "out/paletteA_playarea_fade.s" - -paletteA_flagsFade: - include "out/paletteA_flags_fade.s" - -paletteA_tileFade: - include "out/paletteA_tileFade.s" - -paletteB_playAreaPalette: - include "out/paletteB_foreground-palette-table.s" - include "out/background-palette-table.s" - -paletteB_playareaFade: - include "out/paletteB_playarea_fade.s" - -paletteB_flagsFade: - include "out/paletteB_flags_fade.s" - -paletteB_tileFade: - include "out/paletteB_tileFade.s" - playAreaPalette: dc.l paletteA_playAreaPalette playareaFade: @@ -1618,13 +1543,13 @@ flagsFade: tileFade: dc.l paletteA_tileFade -paletteInstallers: - dc.l InstallPaletteA - dc.l InstallPaletteB +levelInstallers: + dc.l InstallLevelA + dc.l InstallLevelB dc.l 0 -nextPaletteInstaller: - dc.l paletteInstallers+4 +nextLevelInstaller: + dc.l levelInstallers+4 panelFade: include "out/panelFade.s" @@ -1636,7 +1561,32 @@ foregroundBitplanes1: endif .endSplash ds.b (IMAGESIZE*2)-(.endSplash-foregroundBitplanes1) - section .bss + +startMessage: + dc.l 0 +levelCompleteMessage: + dc.l 0 +foregroundMapPtr: + dc.l 0 +pathwayMapPtr: + dc.l 0 +startForegroundMapPtr: + dc.l 0 +startPathwayMapPtr: + dc.l 0 +foregroundPlayerTileAddress: + dc.l 0 +pathwayRenderPending: + dc.w 0 +pathwayPlayerTileAddress: + dc.l 0 +pathwayClearPending: + dc.w 0 +foregroundScrollX: + dc.l 0 + + section .bss + startUserstack: ds.b $1000 ; size of stack userstack: diff --git a/028.bs/includes.i b/028.bs/includes.i index 34a2b64..e9cd81f 100644 --- a/028.bs/includes.i +++ b/028.bs/includes.i @@ -6,4 +6,5 @@ include "hardware/intbits.i" include "hardware/blit.i" include "constants.i" - include "macros.i" \ No newline at end of file + include "macros.i" + include "level.i" \ No newline at end of file diff --git a/028.bs/level.i b/028.bs/level.i new file mode 100644 index 0000000..cc8b350 --- /dev/null +++ b/028.bs/level.i @@ -0,0 +1,54 @@ +Level: macro +InstallLevel\1: + move.l #level\1StartMessage,startMessage + move.l #level\1CompleteMessage,levelCompleteMessage + move.l #level\1ForegroundMap,startForegroundMapPtr + move.l #level\1PathwayMap,startPathwayMapPtr + move.l #level\1ForegroundMap,foregroundMapPtr + move.l #level\1PathwayMap,pathwayMapPtr + move.l #palette\1_playAreaPalette,playAreaPalette + move.l #palette\1_playareaFade,playareaFade + move.l #palette\1_flagsFade,flagsFade + move.l #palette\1_tileFade,tileFade + rts + +level\1ForegroundMap: + include "out/level\1_foreground-map.s" + dc.w $FFFF + dc.w $FFFF + dc.w $FFFF + dc.w $FFFF + dc.w $FFFF + dc.w $FFFF + dc.w $FFFF + dc.w $FFFF +level\1PathwayMap: + include "out/level\1_pathway-map.s" +level\1ItemsMap: + include "out/level\1_items-indexes.s" + +level\1StartMessage: + dc.b \2 + dc.b 0 + align 4 + +level\1CompleteMessage: + dc.b \2 + dc.b " COMPLETE!" + dc.b 0 + align 4 + + +palette\1_playAreaPalette: + include "out/palette\1_foreground-palette-table.s" + include "out/background-palette-table.s" + +palette\1_playareaFade: + include "out/palette\1_playarea_fade.s" + +palette\1_flagsFade: + include "out/palette\1_flags_fade.s" + +palette\1_tileFade: + include "out/palette\1_tileFade.s" + endm \ No newline at end of file diff --git a/028.bs/foreground.tmx b/028.bs/levels/levelA_foreground.tmx similarity index 100% rename from 028.bs/foreground.tmx rename to 028.bs/levels/levelA_foreground.tmx diff --git a/028.bs/levels/levelB_foreground.tmx b/028.bs/levels/levelB_foreground.tmx new file mode 100644 index 0000000..1e5ad4d --- /dev/null +++ b/028.bs/levels/levelB_foreground.tmx @@ -0,0 +1,24 @@ + + + + + + + + + + + eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1FdPZ33k+AEWH5TE9Wg6p03+wJfulpOZDuidB8iVI9d/1HYnNfLHqBz1yo2hWH/QIp0PFjlYfEgz4G6D0UJuMLYxB5McAAccW5U= + + + + + eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA== + + + + + eJztVVsOgjAQpNfxFooooqIBq/e/CZDQpJbusw3hg/mEmdnZ2Y8WxY4t4WTkmiNT0xnZDMdrFJkoz7WQY97UL9Zxaf65Gn/foyc87ok7lRk60XpwdNT+ruNY1x+z5DreGfB9AN8hfogbwgvzSBDLleLH0Wq7sOP/au669rhv5B4WuSOEisG1HofDfzJ2S4FEfxB6T/uF+ak+a+Qm4b04uBAajedXoIHmt5nfGsiP2j8G6Tsh7fCK8DX3WBMvIt9v4/l38DEAYj8UWQ== + + +