From aee2b26fea5742f38d6d6ea8b84d65f840332cd2 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Tue, 29 Dec 2020 14:15:25 -0500 Subject: [PATCH] Add some info about how to start a game and quit and make space for showing the high score list. --- BuGS/game.s | 669 +++++++++++++++++++++++++++++++++++--------- BuGS/gameMushroom.s | 16 +- BuGS/global.macros | 18 +- TODO.md | 1 + 4 files changed, 555 insertions(+), 149 deletions(-) diff --git a/BuGS/game.s b/BuGS/game.s index 7c8c2e8..ad7a439 100644 --- a/BuGS/game.s +++ b/BuGS/game.s @@ -29,6 +29,8 @@ game start lda #0 jsl setColour + + jsl gameOver gameLoop anop @@ -200,148 +202,162 @@ startLevel entry jsl shotInitLevel jsl playerLevelStart jmp levelStart + + +overwriteGameTile entry + tay + lda #TILE_STATE_DIRTY + sta tileDirty,x + tya + ldy tileScreenOffset,x + phx + jsl drawTile + plx + inx + inx + rts pauseGame entry jsl pauseSound ldx #GAME_NUM_TILES_WIDE*4+2 - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY ldx #GAME_NUM_TILES_WIDE*6+2 - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_P - _overwriteTile TILE_LETTER_A - _overwriteTile TILE_LETTER_U - _overwriteTile TILE_LETTER_S - _overwriteTile TILE_LETTER_E - _overwriteTile TILE_LETTER_D - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_P + _overwriteGameTile TILE_LETTER_A + _overwriteGameTile TILE_LETTER_U + _overwriteGameTile TILE_LETTER_S + _overwriteGameTile TILE_LETTER_E + _overwriteGameTile TILE_LETTER_D + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY ldx #GAME_NUM_TILES_WIDE*8+2 - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY ldx #GAME_NUM_TILES_WIDE*10+2 - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_P - _overwriteTile TILE_LETTER_R - _overwriteTile TILE_LETTER_E - _overwriteTile TILE_LETTER_S - _overwriteTile TILE_LETTER_S - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_Q - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_T - _overwriteTile TILE_LETTER_O - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_Q - _overwriteTile TILE_LETTER_U - _overwriteTile TILE_LETTER_I - _overwriteTile TILE_LETTER_T - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_P + _overwriteGameTile TILE_LETTER_R + _overwriteGameTile TILE_LETTER_E + _overwriteGameTile TILE_LETTER_S + _overwriteGameTile TILE_LETTER_S + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_Q + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_T + _overwriteGameTile TILE_LETTER_O + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_Q + _overwriteGameTile TILE_LETTER_U + _overwriteGameTile TILE_LETTER_I + _overwriteGameTile TILE_LETTER_T + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY ldx #GAME_NUM_TILES_WIDE*12+2 - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_O - _overwriteTile TILE_LETTER_T - _overwriteTile TILE_LETTER_H - _overwriteTile TILE_LETTER_E - _overwriteTile TILE_LETTER_R - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_K - _overwriteTile TILE_LETTER_E - _overwriteTile TILE_LETTER_Y - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_T - _overwriteTile TILE_LETTER_O - _overwriteTile TILE_EMPTY - _overwriteTile TILE_LETTER_R - _overwriteTile TILE_LETTER_E - _overwriteTile TILE_LETTER_S - _overwriteTile TILE_LETTER_U - _overwriteTile TILE_LETTER_M - _overwriteTile TILE_LETTER_E - _overwriteTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_O + _overwriteGameTile TILE_LETTER_T + _overwriteGameTile TILE_LETTER_H + _overwriteGameTile TILE_LETTER_E + _overwriteGameTile TILE_LETTER_R + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_K + _overwriteGameTile TILE_LETTER_E + _overwriteGameTile TILE_LETTER_Y + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_T + _overwriteGameTile TILE_LETTER_O + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_LETTER_R + _overwriteGameTile TILE_LETTER_E + _overwriteGameTile TILE_LETTER_S + _overwriteGameTile TILE_LETTER_U + _overwriteGameTile TILE_LETTER_M + _overwriteGameTile TILE_LETTER_E + _overwriteGameTile TILE_EMPTY ldx #GAME_NUM_TILES_WIDE*14+2 - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY - _overwriteTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY + _overwriteGameTile TILE_EMPTY short i,m pauseGame_loop anop @@ -361,6 +377,18 @@ pauseGame_quit anop rtl +setGameTile entry + cmp tileType,x + beq setGameTile_skip + sta tileType,x + lda #TILE_STATE_DIRTY + sta tileDirty,x +setGameTile_skip anop + inx + inx + rts + + gameOver entry lda #1 sta gameRunning @@ -369,20 +397,383 @@ gameOver entry jsl spiderInitLevel jsl fleaInitLevel - ldx #0 -gameOver_loop anop - lda tileType,x - beq gameOver_tileEmpty - stz tileType,x - lda #TILE_STATE_DIRTY - sta tileDirty,x -gameOver_tileEmpty anop - inx - inx - cpx #RHS_FIRST_TILE_OFFSET - blt gameOver_loop + jsl checkHighScore - jmp checkHighScore + jsl addRandomMushrooms + lda #TILE_PLAYER + sta tileType+RHS_FIRST_TILE_OFFSET-GAME_NUM_TILES_WIDE-1 + lda #TILE_STATE_DIRTY + sta tileDirty+RHS_FIRST_TILE_OFFSET-GAME_NUM_TILES_WIDE-1 + + ldx #GAME_NUM_TILES_WIDE*8+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_H + _setGameTile TILE_LETTER_I + _setGameTile TILE_LETTER_G + _setGameTile TILE_LETTER_H + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_S + _setGameTile TILE_LETTER_C + _setGameTile TILE_LETTER_O + _setGameTile TILE_LETTER_R + _setGameTile TILE_LETTER_E + _setGameTile TILE_LETTER_S + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*10+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*12+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*14+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*16+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*18+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*20+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*22+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*24+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*26+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*28+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*30+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*32+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_P + _setGameTile TILE_LETTER_R + _setGameTile TILE_LETTER_E + _setGameTile TILE_LETTER_S + _setGameTile TILE_LETTER_S + _setGameTile TILE_SYMBOL_COLON + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*34+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_NUMBER_1 + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_F + _setGameTile TILE_LETTER_O + _setGameTile TILE_LETTER_R + _setGameTile TILE_EMPTY + _setGameTile TILE_NUMBER_1 + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_P + _setGameTile TILE_LETTER_L + _setGameTile TILE_LETTER_A + _setGameTile TILE_LETTER_Y + _setGameTile TILE_LETTER_E + _setGameTile TILE_LETTER_R + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*36+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_NUMBER_2 + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_F + _setGameTile TILE_LETTER_O + _setGameTile TILE_LETTER_R + _setGameTile TILE_EMPTY + _setGameTile TILE_NUMBER_2 + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_P + _setGameTile TILE_LETTER_L + _setGameTile TILE_LETTER_A + _setGameTile TILE_LETTER_Y + _setGameTile TILE_LETTER_E + _setGameTile TILE_LETTER_R + _setGameTile TILE_LETTER_S + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + ldx #GAME_NUM_TILES_WIDE*38+2 + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_Q + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_T + _setGameTile TILE_LETTER_O + _setGameTile TILE_EMPTY + _setGameTile TILE_LETTER_Q + _setGameTile TILE_LETTER_U + _setGameTile TILE_LETTER_I + _setGameTile TILE_LETTER_T + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + _setGameTile TILE_EMPTY + + rtl checkKeyboard entry diff --git a/BuGS/gameMushroom.s b/BuGS/gameMushroom.s index 7d7c409..2706943 100644 --- a/BuGS/gameMushroom.s +++ b/BuGS/gameMushroom.s @@ -95,9 +95,23 @@ resetMushrooms_next anop addRandomMushrooms entry - stz numInfieldMushrooms lda #INVALID_TILE_NUM sta mushroomToRefresh + + ldx #RHS_FIRST_TILE_OFFSET-2 +addRandomMushrooms_clear anop + lda tileType,x + beq addRandomMushrooms_skipClear + lda #TILE_EMPTY + sta tileType,x + lda #TILE_STATE_DIRTY + sta tileDirty,x +addRandomMushrooms_skipClear anop + dex + dex + bpl addRandomMushrooms_clear + + stz numInfieldMushrooms ldy #STARTING_NUM_MUSHROOMS addRandomMushrooms_loop anop diff --git a/BuGS/global.macros b/BuGS/global.macros index 4b44fdd..10d5ab0 100644 --- a/BuGS/global.macros +++ b/BuGS/global.macros @@ -130,16 +130,16 @@ _dirtyNonGameTile_skip&SYSCNT anop macro - _overwriteTile &type - lda #TILE_STATE_DIRTY - sta tileDirty,x + _overwriteGameTile &type lda #&type - ldy tileScreenOffset,x - phx - jsl drawTile - plx - inx - inx + jsr overwriteGameTile + mend + + + macro + _setGameTile &type + lda #&type + jsr setGameTile mend diff --git a/TODO.md b/TODO.md index 3f893e0..b3d9b93 100644 --- a/TODO.md +++ b/TODO.md @@ -4,5 +4,6 @@ TODO * Implement a high score list and save the high scores across restarts * Look at supporting a global high score list for systems with an Internet connection * Implement the code for supporting a two player game +* Provide a way to swap left and right stereo channels * Look at supporting Versions in order to support automatic SW upgrades * So much more.