Thursday, May 15, 2008

XeO3: Begining again.....

So... finally found a little time (and will power) to sit down and do a little work. I started out by changing the colours on the panel so that I now have the GREEN zone on the weapon's bar that I wanted, but Luca and I also changed some other colours, and it just looks "nicer" over all I have to say.

After sending Luca the latest version he spotted a stutter in the movement of the sprites which I was just not seeing. Still, after him slapping me with a wet fish called bernard I finally spotted what he was seeing. Very odd.

I stuck on some colour bars thinking that perhaps it was over running raster time but no... a whole frame left!

Next we downloaded it onto a real machine thinking it could be the emulator (since its not on a real TV and would judder a little), but no... exactly the same! While on real machine I moved the player ship around and it was smooth as silk, even when the judder in the baddies happened!

So I tried to capture what was happening in Yape and do a frame step - and there it was!! But it wasn't just the baddies stuttering - oh no! It was some baddies stuttering!

Damn...

I tried a couple of things thinking that it might be a MCM sprite on an odd pixel boundary due to scrolling and sprite coordinates, but no....nothing!

Time to break out the debugger... First I ran it to just before a sprite stalled then jumped in to watch its coordinates. Yep! For 1 frame they dont change! How weird is that!

After all this I finally discovered that an optimisation Id done to in-line a function into the PATH system (I made a function a macro) had missed a RTS!! WHen a sprite was killed due to being clipped (gone off screen) it was returning. Now before it was a macro it would return to the PATH routine, but now it IS a macro, it was returning to the main loop, effectively missing the update for last few sprites - DOH!

Oh well... all fixed and looking better. Well spotted Luca!! :)

1 comment:

Luca said...

Eh but beware, now another bad bug has born: some coins'animations look flickering, try to shoot down the very first waves...