From e213cc918b6b361dfd67e1013f0d454d7daf5860 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Mon, 1 Feb 2021 22:31:53 -0500 Subject: [PATCH] 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. --- ACKNOWLEDGEMENTS.md | 1 + BUGS.md | 2 +- .../jrand.xcuserdatad/xcschemes/xcschememanagement.plist | 4 ++-- BuGS/game.s | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md index bfb199e..77c6ad7 100644 --- a/ACKNOWLEDGEMENTS.md +++ b/ACKNOWLEDGEMENTS.md @@ -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. diff --git a/BUGS.md b/BUGS.md index 0dab210..bbc258c 100644 --- a/BUGS.md +++ b/BUGS.md @@ -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. diff --git a/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist b/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist index c7870af..dc9e153 100644 --- a/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ Binary.xcscheme_^#shared#^_ orderHint - 1 + 3 BuGS.xcscheme_^#shared#^_ @@ -22,7 +22,7 @@ doNotBuild.xcscheme_^#shared#^_ orderHint - 3 + 1 diff --git a/BuGS/game.s b/BuGS/game.s index 188b660..b7a0b56 100644 --- a/BuGS/game.s +++ b/BuGS/game.s @@ -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