From e8f39dc4a7cc19fb97e24ec0819ccd964cbd325f Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Sat, 7 Mar 2026 23:11:09 +0100 Subject: Initialize 'zp_pause_toggle' before NMI enablement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise we might randomly get weird scenarios like the title screen not showing up properly. Fixes: bc99212539f6 ("Toggle a "Paused" message on top of the screen") Signed-off-by: Miquel Sabaté Solà --- src/driver.s | 10 +++++++++- src/jetpac.s | 7 ++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/driver.s b/src/driver.s index 1449de5..1ac5718 100644 --- a/src/driver.s +++ b/src/driver.s @@ -49,6 +49,15 @@ ;; this, but we have plenty of RAM left. zp_pause_toggle = $39 + ;; Initialization routine that is to be called before enabling NMIs back for + ;; the first time. + .proc init_before_nmi + lda #0 + sta Driver::zp_pause_toggle + + rts + .endproc + ;; Switch from the title screen to the main screen. Note that this function ;; is to be called with the PPU disabled. If that's not the case, then it ;; will set the proper values to disable it on the next `nmi` call and set @@ -157,7 +166,6 @@ lda #0 sta zp_pause_timer sta Driver::zp_moved_out - sta Driver::zp_pause_toggle ;; Initialize variables for sprite cycling. sta zp_next_bullet_cycle diff --git a/src/jetpac.s b/src/jetpac.s index 5c1c099..52ec1f7 100644 --- a/src/jetpac.s +++ b/src/jetpac.s @@ -121,7 +121,8 @@ sta PPU::zp_control ;; Initialize other global variables which the rest of the game assume to - ;; have zero as their initial values. + ;; have zero as their initial values. Note that it's important to have these + ;; variables defined before sta Globals::zp_flags sta Joypad::zp_buttons1 sta Joypad::zp_buttons2 @@ -146,6 +147,10 @@ ;; Initialize some variables from the "Game Over" side of the game. jsr Over::init + ;; Initialize variables from the game's driver that need to be set before + ;; NMIs start ticking. + jsr Driver::init_before_nmi + ;; Initialize some PAL-specific constants. .ifdef PAL lda #0 -- cgit v1.2.3