From 639de63c47ec6c95c6bb8d943e9fb69c440fe3ce Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Sun, 8 May 2016 09:58:52 +1000 Subject: [PATCH] wip level complete --- 028.bs/assets/assets.png | Bin 12362 -> 12418 bytes 028.bs/constants.i | 6 ++- 028.bs/foreground.tmx | 48 ++++++++++++------------ 028.bs/game1.s | 78 ++++++++++++++++++++++++++++++--------- 028.bs/items.s | 2 +- 028.bs/player.s | 19 +++++++++- 6 files changed, 107 insertions(+), 46 deletions(-) diff --git a/028.bs/assets/assets.png b/028.bs/assets/assets.png index ddb2d3674f072b21866aec35a6a859b8ef300386..a9d329321b61268f15eb8e170b1e758b7323e6db 100644 GIT binary patch delta 11411 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 diff --git a/028.bs/constants.i b/028.bs/constants.i index 7dbfaa1..2925489 100644 --- a/028.bs/constants.i +++ b/028.bs/constants.i @@ -34,6 +34,9 @@ FOREGROUND_PLAYAREA_RIGHT_MARGIN_BYTES equ 12 FOREGROUND_PLAYAREA_HEIGHT_WORDS equ 8 FOREGROUND_MOVING_COUNTER equ 50 +FOREGROUND_TILE_ENDLEVEL equ $7098 +FOREGROUND_TILE_EMPTY equ $709a + BACKGROUND_SCROLL_SHIFT_CONVERT equ 4 BACKGROUND_SCROLL_TILE_INDEX_CONVERT equ 3 BACKGROUND_SCROLL_PIXELS equ 16 @@ -85,4 +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 -IMAGESIZE equ BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*SCREEN_HEIGHT \ No newline at end of file +SCROLL_EXTRA equ 0 +IMAGESIZE equ BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(SCREEN_HEIGHT+SCROLL_EXTRA) \ No newline at end of file diff --git a/028.bs/foreground.tmx b/028.bs/foreground.tmx index 1757def..663c026 100644 --- a/028.bs/foreground.tmx +++ b/028.bs/foreground.tmx @@ -1,24 +1,24 @@ - - - - - - - - - - - eJxjZ2BgsGTEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvOMiBwkwLhzzTIJTbTaa+ejrro8QPlMTnaDqnvhyhOFtOID4HSx4gV45c/9HKnYMxjQx1OUrKjcFWR9A7nQ82OWkG3G0wWsgNxjbmYJIDAJ+ZWmA= - - - - - eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA== - - - - - eJztlV0OgjAQhNmjIaJVAZuo97+KNrGxQPeXSnjgeyEps7Pb2QSqamdLHEBfUwtrPOh6RN3VMBPnuRYl+oV8qYwbGGst/qnHhfG4LbxTUyATq4ek7sFoYsa5rJ8w10bdEfHtkHNMP4Xa13QeDdhcViT3sWbhPu/bb9Yu0XpiH57YI0Yr0KY9Jfqe0bxW/mZpCPfr4fcMcHk6wU40nJgai2eJ/kPmnJuVIudn9dT+J7QZngn9v/exlPvG59spxxv5VRN9 - - - + + + + + + + + + + + eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1FdPZ33k+AEWH5TE9Wg6p03+wJfulpOZDuidB8iVI9d/1HYnNfLHqBz1yo2hWH/QIp0PFjlYfEgz4G6D0UJuMLYxB5McAAccW5U= + + + + + eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA== + + + + + eJztlcsOgjAQRZlPU0TxgRK0+v9/ok1sLLXzLCEsOBuS9s7tzJ0FVbWyJLagr9kIawbQvRF0J0NPnOdcTPGez5fKuIax1uIfe9wZj3PhTPUEmVg9JHXc/CHjXNYP+NcG3Q7xvSDnmD7lSOjSfjTk+irxk9Ras3Cf++abdRtpe2IfjtgjRiPQukgj0XeC2Uoorafw83Xw+3q4PFtiJ+m+JOyZGovnU1GDvX/NnHO9UuT8rJ7a/4Q2wwOht+xjTm5Mf6+F978i5w1JIRUK + + + diff --git a/028.bs/game1.s b/028.bs/game1.s index 1abba4f..9fde2c5 100644 --- a/028.bs/game1.s +++ b/028.bs/game1.s @@ -1,5 +1,6 @@ include "includes.i" - + + xdef LevelComplete xdef BigBang xdef IncrementCounter xdef RenderCounter @@ -29,7 +30,7 @@ xdef startForegroundMapPtr xdef startPathwayMapPtr - xdef mapSize + xdef itemsMapOffset xdef moving xdef foregroundScrollPixels @@ -113,6 +114,7 @@ Reset: bra GameOver .notGameOver: lea message,a1 + move.w #128,d0 jsr Message @@ -171,6 +173,8 @@ FadeInLoop: move.l #0,verticalBlankCount move.l #1,frameCount + move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels + bra GameLoop .c1: bra FadeInLoop @@ -195,7 +199,6 @@ GameLoop: add.l #1,frameCount move.l frameCount,d6 - move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels jsr WaitVerticalBlank @@ -298,6 +301,7 @@ Update: GameOver: lea gameOverMessage,a1 + move.w #128,d0 jsr Message move.l #100,d0 @@ -311,8 +315,33 @@ GameOver: bne .gotJoystick bra .waitForJoystick .gotJoystick: - move.l #foregroundMap,startForegroundMapPtr - move.l #pathwayMap,startPathwayMapPtr + move.l #level1ForegroundMap,startForegroundMapPtr + move.l #level1PathwayMap,startPathwayMapPtr + move.l #'0004',livesCounterText + jsr InitialiseItems + bra Reset + + +LevelComplete: + jsr ResetItems + jsr ResetPlayer + lea levelCompleteMessage,a1 + move.w #100,d0 + jsr Message + + move.l #100,d0 +.pause: + jsr WaitVerticalBlank + dbra d0,.pause + +.waitForJoystick: + jsr ReadJoystick + btst.b #0,joystick + bne .gotJoystick + bra .waitForJoystick +.gotJoystick: + move.l #level1ForegroundMap,startForegroundMapPtr + move.l #level1PathwayMap,startPathwayMapPtr move.l #'0004',livesCounterText jsr InitialiseItems bra Reset @@ -630,10 +659,13 @@ RenderForegroundTile: add.l d0,a0 lea foregroundTilemap,a1 move.w (a2),d0 - cmp.l #0,d0 - beq .s2 + ;; cmp.l #0,d0 + ;; beq .s2 add.w (a2),a1 ; source tile add.l #(BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*(256-(16*8)+32)/4)+BITPLANE_WIDTH_BYTES-FOREGROUND_PLAYAREA_RIGHT_MARGIN_BYTES,a0 + cmp.w #$ffff,d0 + beq stopScrolling + lea animIndex,a4 move.l d2,d1 lsl.l #2,d1 @@ -650,6 +682,9 @@ RenderForegroundTile: sub.l #2,(a4) .s2: rts +stopScrolling: + move.l #0,foregroundScrollPixels + rts PostMissedTile: @@ -662,7 +697,6 @@ BigBang: PlaySound Falling jsr WaitVerticalBlank jsr PlayNextSound - jsr ResetItems move.w #0,moving move.l #0,frameCount @@ -761,6 +795,8 @@ ClearForegroundTile: lsr.l #2,d1 ; anim scaling (speed) cmp.l #10,d1 bge .s1 + cmp.l #0,foregroundScrollPixels + beq .s1 add.l d1,a1 add.l #2,(a4) bra .s2 @@ -805,13 +841,14 @@ Message: ;; d0 - xpos ;; d1 - ypos + move.w d0,d1 move.w #(32*4)<<6|(320/16),d0 lea mpanelOrig,a0 lea mpanel,a2 jsr SimpleBlit lea mpanel,a0 - move.w #128,d0 + move.w d1,d0 move.w #11,d1 jsr DrawMaskedText8 bsr ShowMessagePanel @@ -891,7 +928,12 @@ message: gameOverMessage: dc.b "GAME OVER" dc.b 0 - align 4 + align 4 + +levelCompleteMessage: + dc.b "LEVEL COMPLETE!" + dc.b 0 + align 4 skippedFramesCounterText: dc.b "0000" @@ -1330,25 +1372,25 @@ mpanel: incbin "out/mpanel.bin" mpanelOrig: incbin "out/mpanel.bin" -pathwayMap: - include "out/pathway-map.s" - dc.w $FFFF -foregroundMap: +level1ForegroundMap: include "out/foreground-map.s" dc.w $FFFF +level1PathwayMap: + include "out/pathway-map.s" + dc.w $FFFF itemsMap: include "out/items-indexes.s" dc.w $FFFF -mapSize: - dc.l itemsMap-foregroundMap +itemsMapOffset: + dc.l itemsMap-level1ForegroundMap foregroundMapPtr: dc.l 0 pathwayMapPtr: dc.l 0 startForegroundMapPtr: - dc.l foregroundMap + dc.l level1ForegroundMap startPathwayMapPtr: - dc.l pathwayMap + dc.l level1PathwayMap diff --git a/028.bs/items.s b/028.bs/items.s index fbc9baf..0c9facb 100644 --- a/028.bs/items.s +++ b/028.bs/items.s @@ -208,7 +208,7 @@ RenderItemSprite: cmp.b #$f,d1 ; only add sprite after tile has scrolled in bne dontAddSprite move.l a2,a3 - add.l mapSize,a3 + add.l itemsMapOffset,a3 cmpi.w #0,(a3) beq dontAddSprite diff --git a/028.bs/player.s b/028.bs/player.s index b75c377..0071331 100644 --- a/028.bs/player.s +++ b/028.bs/player.s @@ -1,5 +1,6 @@ include "includes.i" + xdef ResetPlayer xdef GetNextAutoMove xdef CheckPlayerMiss xdef UpdatePlayer @@ -35,6 +36,11 @@ InitialisePlayer: move.w #PLAYER_INITIAL_Y+16,spriteYEnd rts +ResetPlayer: + move.w #0,spriteX + move.w #0,spriteY + move.w #0,spriteYEnd + rts HidePlayer: move.w #$7000,spriteX @@ -42,8 +48,11 @@ HidePlayer: ScrollSprites: + cmp.l #0,foregroundScrollPixels + beq .skip sub.w #1,spriteX bra ScrollItemSprites +.skip: rts @@ -330,9 +339,12 @@ CheckPlayerMiss: ;; a3 now points at the tile under the sprite move.w (a3),d0 + + cmp.w #FOREGROUND_TILE_EMPTY,d0 ; empty tile + bge .doBigBang - cmp.w #$7098,d0 ; empty tile - beq .doBigBang + cmp.w #FOREGROUND_TILE_ENDLEVEL,d0 + beq .levelComplete cmp.w #$78e,d0 bge .noBigBang @@ -340,6 +352,9 @@ CheckPlayerMiss: .doBigBang: jmp BigBang +.levelComplete: + jmp LevelComplete + .noBigBang: move.w (a3),d0 cmp.w #$1e00,d0