diff options
Diffstat (limited to 'src/driver.s')
| -rw-r--r-- | src/driver.s | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/driver.s b/src/driver.s index 4f0e501..3d9eb53 100644 --- a/src/driver.s +++ b/src/driver.s @@ -562,15 +562,22 @@ .proc pal_handler ;; Check if 5 frames have passed since last counter reset. lda Driver::zp_pal_counter + beq @reset_movement_arg cmp #4 beq @do_handle + @player_timer_reset: ;; Nope! Reset the player's step on PAL and increase the counter. lda #1 sta Player::zp_step_on_pal inc Driver::zp_pal_counter bne @end + @reset_movement_arg: + ;; Restore the enemy movement to the same value as NTSC. + dec Enemies::zp_movement_arg + jmp @player_timer_reset + @do_handle: ;; Increase the step just for this frame and reset the counter. lda Player::zp_step_on_pal @@ -579,6 +586,11 @@ sta Player::zp_step_on_pal lda #0 sta Driver::zp_pal_counter + + ;; Increase the movement arg for this frame. This way we catch up to + ;; the NTSC real velocity on screen. + inc Enemies::zp_movement_arg + @end: rts .endproc |
