RE: [stella] Reflex: Paddle woes

Subject: RE: [stella] Reflex: Paddle woes
From: "Erik Mooney" <erik@xxxxxxxxxx>
Date: Fri, 2 Apr 2004 14:27:55 -0600
> (I wish I could think of a really easy way of identifying that,
> without counting cycles.
> I guess I could learn where to set a breakpoint in PCAEwin, and then
> what location to examine, with a usual 	
>   lda  #43	
>   sta  TIM64T	
> code, any suggestions from the big brains here?)

It usually becomes pretty obvious, actually, if your code is
overrunning the timer during VBLANK.  Can't miss the
entire screen jumping several lines down.  Especially if you
code your timer-checking loop with a BNE, because if you miss
the timer hitting zero, your code will wait until it ticks all
the way around from $FF back down to zero, and that's *really*
obvious.  It's harder to catch if you overrun overscan, since
most emulators will give that a free pass without jumping
the screen, but it'll be visible on a real machine.

>From the other thread branch:

> Again, at the risk of sounding like a broken record, what's the
> estimate for how long it takes, in machine cycles or scanlines?

Video Olympics (Pong) is the classic paddle case.  That simply
polls the paddle as the kernel draws the screen, and turns on
the player graphic when the paddle capacitor is charged.  This
is 160 or so lines, and you'll notice that it physically
extends over about one-fourth of the paddle's full 360-degree 
range of motion.  This isn't coincidence: a span of 
about 90 degrees is how far the human wrist can comfortably turn 
that fast.

Judging by that, a full 360-degree paddle rotation would take
over two entire frames.  You can't code that, but your users
couldn't use it anyway.

30 lines of overscan is too short; that'll get you only about
a 20-degree range of movement on the paddle, which is too small.
40 lines of Vblank isn't enough either.  If you can come
up with a clever way to run the paddle check through the entire
overscan plus Vblank interval while still doing the game
mechanics calculations, go for it...
Archives (includes files) at
Unsub & more at

Current Thread