Continue
A way to keep playing after the last life is lost.
On this page
A continue picks the game up after the last life is lost. Contra and Super C on the NES offer a set number at each game over, 3 and 21,2. Gradius on the NES brings back a player who enters a button code while the game-over screen waits3.
Games
| Game | Year | How | Note |
|---|---|---|---|
| Gradius | 1985 | Code | Down Up B A B A B A B A at game over restores the lives |
| Contra | 1987 | Limited | 3 lives and 3 continues a game |
| Super C | 1990 | Limited | 2 continues a game, one fewer than Contra |
| Super Mario Bros.: The Lost Levels | 1986 | Unlimited | at every game over outside World 9, Continue restarts the world from its first level |
Every claim about this mechanic, by game (5)
References
- ^ abA new game of the US NES Contra gives each player 2 lives in reserve (3 in all) and the game 3 continues. A death with none in reserve puts that player in game over, and each game over spends a continue; with none left, the CONTINUE/END choice is skipped.Codevermiceli/nes-contra-us
How we know
1143init_score_player_lives: ⋮ 1146 lda #$03 ; a = #$03 1147 sta NUM_CONTINUES ; continues remaining
src/bank7.asm lines 1143–1147 at 687d651 · upstream ↗ 1165init_player_lives: 1166 lda #$02 ; start off with #$02 lives
src/bank7.asm lines 1165–1166 at 687d651 · upstream ↗ 5150init_player_dec_num_lives: ⋮ 5153 lda P1_NUM_LIVES,x ; load player number of lives 5154 beq @set_game_over ; branch if no more lives 5155 dec P1_NUM_LIVES,x ; decrement player number of lives ⋮ 5158@set_game_over: 5159 lda #$01 ; a = #$01 5160 sta P1_GAME_OVER_STATUS,x ; game over state of player (1 = game over)
src/bank7.asm lines 5150–5161 at 687d651 · upstream ↗ 3289show_game_over_screen: ⋮ 3301 dec NUM_CONTINUES ; subtract from number of continues remaining 3302 bmi @no_continues_remaining ; if run out of continues, jump 3303 lda #$0e ; a = #$0e (continue end)
src/bank7.asm lines 3289–3307 at 687d651 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ abThe US NES Super C allows 2 continues a game, where Contra allows 3: the count is set to 2 at the start, and each game over spends one before offering CONTINUE/END.Codevermiceli/nes-super-c · vermiceli/nes-contra-usrevised
How we know
1484init_player_for_level_a: ⋮ 1489 lda #$02 1490 sta NUM_CONTINUES
src/bank-f.asm lines 1484–1490 at be6ccce · upstream ↗ 2465level_routine_06: 2466 dec LEVEL_ROUTINE_DELAY ; decrement level routine delay 2467 bne game_over_exit ; exit if level delay hasn't elapsed 2468 dec NUM_CONTINUES ; decrement number of continues 2469 bmi restart_game ; branch if no more continues to reset the game 2470 lda #$0a ; store "CONTINUE END" in CPU_GRAPHICS_BUFFER
src/bank-f.asm lines 2465–2470 at be6ccce · upstream ↗ 1322 jsr clear_mid_high_ram 1323 jsr init_player_level_1 ; set level 1, initialize player state, number of lives, player count, player mode, etc.
src/bank-f.asm lines 1322–1323 at be6ccce · upstream ↗ 1478init_player_level_1: 1479 lda #$00
src/bank-f.asm lines 1478–1479 at be6ccce · upstream ↗ 1143init_score_player_lives: ⋮ 1146 lda #$03 ; a = #$03 1147 sta NUM_CONTINUES ; continues remaining
src/bank7.asm lines 1143–1147 at 687d651 · upstream ↗ 3301 dec NUM_CONTINUES ; subtract from number of continues remaining 3302 bmi @no_continues_remaining ; if run out of continues, jump
src/bank7.asm lines 3301–3302 at 687d651 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
- ^ abWhen a player's lives byte drops below 0 in the US NES Gradius, the game-over state waits, for as long as $B0 is nonzero and then 120 frames (
$78), and meanwhile runs the code check with its other ten-entry table, Down Up B A B A B A B A. If the count has reached ten when the wait ends, the player comes back with the lives byte at 3, the value a new game sets.Code“Gradius (USA)”revisedHow we know
In the cartridge (“Gradius (USA)”): $979D-$97C4: decrement the player's lives byte at $20,X; if it's negative, branch to $97F1; $97F1-$9829: clear the player's bit in $0A, set the state $1B to `$C0`, draw text `$1C`, and store `$78` in the timer $4C; $96FB-$9764, state bit `$40`: while $B0 is nonzero, run the check with table 1 ($9789) without counting $4C down ($96FF branches to $975D); after that, while $4C is nonzero, count it down and run the check; when $4C reaches 0 with the count at 10, store 3 in $20,X, set the player's bit in $0A again, and resume; $9785-$979C: the first table, at $9789, is 04 08 40 80 40 80 40 80 40 80; $82F8-$8306, in the new-game setup: store 3 in both players' lives bytes, $20 and $21. We don't reproduce the bytes.
Checked against the evidence by its author, an AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
Sources
Code
- (vermiceli), Michael Miceli. 2026. “Contra (US), annotated disassembly (vermiceli).” Commit 687d651. vermiceli/nes-contra-us @ 687d651 · licence, all uses
- (vermiceli), Michael Miceli. 2026. “Super C (US), annotated disassembly (vermiceli).” Commit be6ccce. vermiceli/nes-super-c @ be6ccce · licence, all uses
- 1986. “Gradius (USA).” · licence, all uses