[A83] Re: Delays and grayscales
[Prev][Next][Index][Thread]
[A83] Re: Delays and grayscales
Greyscale on the TI83s, using that way, is very difficult. When your batteries run out you will see the flicker getting worse and and things will look terrible. That's because on the 83, keeping the update frequency (almost) constant is very difficult. Updating the screen is done "manually". We have to use the Z80, which speed highly depends on the battery status. On the 86 on the other hand, the lcd is updated by an external device, which speed is rather constant, resulting in consistent timings and nice greyscale.
So when you get a clean picture on the 83, it's mostly just luck. Put in other batteries and things look different. This explains why your second example looks worse even though it's faster and should look better.
To reduce the flicker, you can use interlacing. Instead of displaying 1 picture and then the other, you display a part of the first and a part of the second at the same time. Next cycle, you display other parts. RIGView (83+) uses interlacing. It displays 2 bytes of the first screen, 1 of the second, 2 of the 1st,... The result is better, though not good enough. You don't have any flicker anymore, but instead you have, what's called, an interlacing effect.
Just a few weeks ago, I attempted to improve RIG so it would be usable in games (RIG 's just a picture viewer). I putted things in an interrupt routine, optimized,..(that's why I asked interrupt questions then).. But most importantly, instead of interlacing with bytes, I interlace with pixels. The result is very good. No flicker, and the interlacing effect is almost unnoticeable. The problem however is, that it eats processor power. The calculator runs *very* slow. (That's why I didn't release it yet.) So it's probably not usable in games that require a lot of speed (racing, Phoenix,..). Platform games might work out, but that's questionnable. If I find some time I might try it out.
And ow, it only works on the 83-. It seems that the interrupt speed on the 83+ is way too fast.
--Tijl Coosemans
PS: If you want the routine (to mess arround with it a bit :), I'll post it on this list. I couldn't include it now because I don't have it on this PC...
> ----------------------------------------
> From: Andreas Gustafsson <and_gu@hotmail.com>
> Sent: Tue Oct 02 08:57:20 GMT+02:00 2001
> To: <assembly-83@lists.ticalc.org>
> Subject: [A83] Delays and grayscales
>
>
>
> I read the recent thread on 'Shading' (grayscales) and some very
> interesting info came up. I had just written a grayscale routine
> myself for my upcoming demo, but I only flipped between two pictures
> that I displayed the same amount of time, thus I only got 3 shades.
> The 1/3 - 2/3 approach to get 4 shades is much smarter, can't beleive I
> didn't think of it!
> Anyway, when I display the second picture I need to delay a bit before
> showing the first again. At the moment I just do two 'fastCopy' calls
> to get the delay, but updating the LCD again with the same picture seem
> unnecessary. How do you people implement delays such as this (and delays
> in general)?
>
> Another thing that I find very strange is this. My first version of the
> grayscale routine looked something like this:
>
> loop:
> (copy pic1 to PLOTSSCREEN using ldir)
> call fastCopy
> (copy pic2 to PLOTSSCREEN using ldir)
> call fastCopy
> call fastCopy
> jr loop
>
> Now I got the idea to let fastCopy get the data from the pic's directly
> instead of going via PLOTSSCREEN to get a faster routine (with less
> flickering). So I modified fastCopy a bit, and my routine looked like
> this:
>
> loop:
> call fastCopy with pic1
> call fastCopy with pic2
> call fastCopy with pic2
> jr loop
>
> But this caused the screen to flicker noticeably MORE and the grayscale
> effect was lost. What could be causing this? The second solution _should_ be
> the better one, right?
>
> /Andreas
>
>
> _________________________________________________________________
> Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
>
>
>
-----------------------------------------------------
Mail.be, Free WebMail and Virtual Office
http://www.mail.be