Prev: D05B Up: Map Next: D0AC
D08A: Start Game
Used by the routines at TitleScreen and GoldfishGame.
When a new game starts, the player lives have already been set to 04 in DisplayIntroductionScreen.
*GameState will be set to 02 after the player has collected the golden key and the game restarts. This is how the game ensures that the lives and booty count are not reset.
Game modes 01 and 02 appear to be mostly identical, however as the booty count is retained in the new game - this means the animals will continue to appear more frequently as the count checks if the number of items of booty is higher than 100. See the check at AnimalsEventTiming.
StartGame D08A LD A,($5BF1) Jump to SetNormalGame if *PlayerLives is equal to 04.
D08D CP $04
D08F JR Z,SetNormalGame
Else the game has been looped already so set *GameState accordingly.
D091 LD A,$02 Write "Game Looped Mode" (02) to *GameState.
D093 LD ($5BF0),A
D096 JP NewGame Jump to NewGame.
This is a normal "new" game.
SetNormalGame D099 LD A,$01 Write "Normal Game" (01) to *GameState.
D09B LD ($5BF0),A
Initialise...
NewGame D09E CALL InitialiseGame Call InitialiseGame.
This looks as though the game might start the Goldfish Game if you reach here without losing all your lives?
D0A1 LD A,($5BF1) Jump to DisplayIntroductionScreen if *PlayerLives is equal to FF.
D0A4 CP $FF
D0A6 JP Z,DisplayIntroductionScreen
D0A9 JP GoldfishGame_InitialiseGame Jump to GoldfishGame_InitialiseGame.
Prev: D05B Up: Map Next: D0AC