![]() |
Routines |
| Prev: A402 | Up: Map | Next: A685 |
|
Used by the routines at Main_Game and Start_1UP_Game.
|
||||
|
Check if either player has broken the high score.
|
||||
| Check_HighScore | A647 | LD HL,$B035 | HL=high score. | |
| A64A | LD DE,$B02F | DE=1UP score | ||
|
If this is not a two player game then we skip forward to Check_HighScore_1UP to only test for the 1UP score.
|
||||
| A64D | LD A,($9C2C) | Check Num_Players; is this a 2 player game? | ||
| A650 | CP $02 | |||
| A652 | JR NZ,Check_HighScore_1UP | If not, jump to Check_HighScore_1UP. | ||
|
A6B6 mirrors Num_Players here. todo: why?
|
||||
| A654 | LD ($A6B6),A | Store 02 at A6B6. | ||
|
Check 2UP score.
|
||||
| A657 | LD HL,$B032 | HL=Score_P2 and call Is_HighScore. | ||
| A65A | CALL Is_HighScore | |||
| A65D | JR NC,Check_HighScore_Changes | Jump to Check_HighScore_Changes if this is not a new high score. | ||
|
Overwrite the high score with the 2UP score.
|
||||
| A65F | LD BC,$0003 | Copy the 2UP score over the current Hi_Score. | ||
| A662 | LDDR | |||
| A664 | LD DE,$B02F | DE=2UP score | ||
| A667 | JR Check_HighScore_Restore | Jump to Check_HighScore_Restore. | ||
|
Checks if all three digits changed. todo: why?
|
||||
| Check_HighScore_Changes | A669 | LD A,($A6B7) | Check A6B7; are there three digit changes? | |
| A66C | CP $03 | |||
| A66E | LD A,$01 | Store 01 at A6B6 (skips forward to HighScore_Write_A6B6). | ||
| A670 | JR NZ,HighScore_Write_A6B6 | |||
|
Else reset A6B6.
|
||||
| A672 | XOR A | Write 00 to A6B6. | ||
| HighScore_Write_A6B6 | A673 | LD ($A6B6),A | ||
|
Resets HL with B038 so the 1UP score can also be tested.
|
||||
| Check_HighScore_Restore | A676 | LD HL,$B038 | HL=B038. | |
| Check_HighScore_1UP | A679 | CALL Is_HighScore | Call Is_HighScore. | |
| A67C | RET C | Return if this is not a new high score. | ||
|
Overwrite the high score with the 1UP score.
|
||||
| A67D | PUSH HL | Stash the high score memory address temporarily. | ||
| A67E | EX DE,HL | Overwrite the high score. | ||
| A67F | LD BC,$0003 | |||
| A682 | LDDR | |||
| A684 | POP HL | Restore the high score memory address to HL. | ||
| Prev: A402 | Up: Map | Next: A685 |