Fix the last known bug. The "Game Over" screen is now shown when the first of the two players in a two player game runs out of lives.

This commit is contained in:
Jeremy Rand 2021-02-01 22:31:53 -05:00
parent f6ecb9bf65
commit e213cc918b
4 changed files with 6 additions and 4 deletions

View File

@ -9,6 +9,7 @@ This project would not have been a success without help from the Apple // commun
* Brutal Deluxe in general for their incredible reference information about the Apple //GS, especially their page about Mr. Sprite. I very nearly used Mr. Sprite for this project but there were further assumptions and optimizations I could do because of the limited colour palette so I decided to hand code my sprites. But the ideas were key to my approach and I read those webpages multiple times.
* Jason Andersen for pointers to some low level sound routines which I could use for reference.
* Dagen Brock for GSPlus and for his technical support and encouragement on slack. GSPlus was the emulator I used primarily and when I did a "build and run", GSPlus always launched reliably and quickly so I could test the latest code.
* Andrew Roughan for his work testing the beta builds and helping to make the release as good as possible.
* Mike Westerfield and Byte Works for the ORCA tools which I have used for building this project.
* Kelvin Sherlock for GoldenGate and Profuse which are the fundamental tools I used for building this project.
* Ken Gagne and Juiced.GS for making tools like ORCA and GoldenGate available.

View File

@ -3,11 +3,11 @@ BUGS
This is a list of the software bugs (as opposed to the bugs in the game that you shoot) that still need attention:
* When the first player finishes a game in a two player game, if they do not get a high score, there is supposed to be a "GAME OVER PLAYER #" message on the screen for about 2 seconds before it switches to the other player. I don't see any message at all when that happens, other than the notice of the switch to the other player.
FIXED
=======
* When the first player finishes a game in a two player game, if they do not get a high score, there is supposed to be a "GAME OVER PLAYER #" message on the screen for about 2 seconds before it switches to the other player. I don't see any message at all when that happens, other than the notice of the switch to the other player.
* Sometimes a mushroom seems to appear out of nowhere. I usually see that happen in the middle of the playfield but I don't know if that is the only place that can happen. What makes it appear is something coming along and marking that tile as dirty and suddenly it is refreshed and the mushoom is visible.
* I added code in the main loop to detect mushrooms which exist in the tile data structures but are not on screen. If it found one, it would issue a brk instruction. It never happened. That means the problem is not with sometihng going into the tile data without being marked dirty.
* I just saw a mushroom appear at (12,12). That makes it tile # 312 which is tile offset 624. This is the absolute centre of the game board.

View File

@ -7,7 +7,7 @@
<key>Binary.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>3</integer>
</dict>
<key>BuGS.xcscheme_^#shared#^_</key>
<dict>
@ -22,7 +22,7 @@
<key>doNotBuild.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
<integer>1</integer>
</dict>
</dict>
</dict>

View File

@ -317,6 +317,7 @@ updateGameState_notHighScore anop
lda #GAME_STATE_GAME_OVER
sta gameState
lda #GAME_OVER_FRAME_COUNT
sta frameCount
rtl
updateGameState_gameNotOver anop
jsl segmentsInitLevel
@ -406,7 +407,7 @@ updateGameState_gameOver anop
updateGameState_gameOverWait anop
dec a
sta frameCount
ldx #GAME_NUM_TILES_WIDE*11+12
ldx #GAME_NUM_TILES_WIDE*10+14
_overwriteGameTile TILE_EMPTY
_overwriteGameTile TILE_LETTER_G
_overwriteGameTile TILE_LETTER_A