Prev: 63E0 Up: Map Next: 6416
63F0: Initialise Players
Used by the routine at StartGame.
PlayersInit 63F0 LD B,$02 B=02 (counter; both players).
PlayersInit_Loop 63F2 PUSH BC Stash BC on the stack.
63F3 XOR A Write 00 to 1UP_Level.
63F4 LD ($5F2D),A
Set both players starting lives.
63F7 LD A,$04 Write 04 to 1UP_Lives.
63F9 LD ($5F2E),A
63FC CALL ChangePlayer Call ChangePlayer to swap the player data between 1UP and 2UP players.
63FF POP BC Restore BC from the stack.
6400 DJNZ PlayersInit_Loop Decrease counter by one and loop back to PlayersInit_Loop until counter is zero.
Note this is +01 to 63F7 as you "spend a life", and 1UP goes first.
6402 LD A,$05 Write 05 to 2UP_Lives.
6404 LD ($5F32),A
Default to writing FF to 2UP_Level (this is a 1UP game).
6407 LD A,$FF Write FF to 2UP_Level.
6409 LD ($5F31),A
Handle 2UP game.
640C LD A,($5F0C) Return if bit 0 of GameOptions is not set (i.e. if this is a 1UP game).
640F AND %00000001
6411 RET NZ
6412 LD ($5F32),A Else, write it to 2UP_Lives.
6415 RET Return.
Prev: 63E0 Up: Map Next: 6416