Found Bug Re: [stella] Inspired by Roger

Subject: Found Bug Re: [stella] Inspired by Roger
From: "Roger Williams" <mer02@xxxxxxxxxxxxx>
Date: Sat, 20 Apr 2002 14:29:18 -0700
OK I got it to complile.  For some reason DASM
didn't like the way the shapeptrtabs were defined;
I had to put all the pointers in parentheses e.g.
.byte #>(shape02)

From: Manuel Polik <cybergoth@xxxxxxxx>
of scannlines drawn.
> ToDo: I've yet to find the bug Thomas spotted a while 
> ago , where certain objects just disappear sometimes. 
> You won't notice that with the demo in motion.

This doesn't completely go away, but is ameliorated
if you do this in FlickerSort:

    LDA ypos,Y          ; A-> 1st sprite ypos
    SEC                 ; Well, that is intentional :-)
    SBC #3          ;<--ADD THIS LINE
    SBC sprtsize,Y      ; A-> 1st sprite ypos + size
What happens is this:  You are using a mathematical
comparison, outside the kernal, to do the sort.
But before an object can be drawn, you must set
up its RESPx and HMPx, which takes a couple of
lines.  If you reach the object, set those things up,
and then find you're past the object, it doesn't get
drawn -- even though the sort routine thinks it was.
Result is it disappears completely.

My jigger doesn't completely solve it because you
can have several very close objects all cause the
same problem with one another.  This goes back
to my idea of doing it in the kernal, where you
know *for sure* whether a sprite was *actually
displayed,* even if other factors caused it to be
skipped on a frame.

Some flags maintained by the kernal might be the
way to do this -- they could be bitwise, rotated
in so as to take only one byte with only 8 objects.
We are very close to having something very
usable here.

--Roger Williams

Archives (includes files) at
Unsub & more at

Current Thread