A89: Re: HW vertical scrolling...
[Prev][Next][Index][Thread]
A89: Re: HW vertical scrolling...
To do a game you'd need to have something actually moving around on the screen
and that's usually done with a double-buffer technique, which obviously wouldn't
work with this hardware scrolling... the alternative is keeping track of
everything that's plotted on the hardware-scrolling data, and copies of that
which you've plotted over so you can restore it when needed. In any case it
would probably flicker a lot (could probably be fixed with careful timing
though).
/ Niklas Brunlid
Check out Prosit for the TI-89 / TI-92+ at http://prosit.ticalc.org
Random PQF Quote follows:
"And Howondaland Smith, Balrog Hunter, practic'ly eats the dark for
his tea."
-- Gaspode the wonder dog
(Terry Pratchett, Moving Pictures)
----- Original Message -----
From: "Henri Moilanen" <henri.moilanen@pp.phnet.fi>
To: "Assembly 89 mailing list" <assembly-89@lists.ticalc.org>
Sent: Wednesday, April 12, 2000 4:35 PM
Subject: A89: HW vertical scrolling...
>
> Hello,
>
> It's me again. This idea came to my mind some time ago.
>
> Why hasn't anyone programmed a vertical scrolling game (of course) like
> tyrian on PC. I'm quite sure it's possible to do hardware vertical scrolling
> on TI89. It maybe doesn't add any speed (though I bet it would).
>
> Idea is simple. As TI89 allows us to modify the start of its video memory
> (not quite video, but you get the idea) at 8 byte steps. That's 64 pixels,
> and TI89's screen is 160 pixels wide. So dividing 160 by 64 gives 2 as the
> quotient and also 32 as the remainder. I hear you cry: "We can't scroll down
> one row!!!"
>
> Take a clean paper and wipe off your tears. Of course we can scroll down two
> rows, but that is rather coarse. Don't worry, there is a better solution.
>
> Let's expand our video memory to the sides. The address 0x600012 holds a
> control byte that could be used in such a way (according to Johan Borg's
> text). It's got 6 bits, which tell the width of the screen. Screen is
> (64-x)*16 pixels wide, where x is the 6 bits from the address mentioned
> above. Johan Borg says that the default value is 0x31 so it gives (64-49)*16
> = 240. Hmm. Something doesn't match... Isn't that the width of the TI92's
> screen?
>
> Wow, my idea got a major problem... But maybe that address is still used to
> tell the width of the screen in memory? Please tell me what width the video
> memory really is?
>
> But ok, if it could be changed to a more suitable value i.e. to some which
> is some even multiply of 64, then hw scrolling would be possible using one
> row steps.
>
> It would just need to allocate enough video memory 2*width*height and then
> after each frame change the start of the screen until we've got down to the
> secong page. Then redraw the whole screen...
>
> But why I'm I mentioning self-evident ideas? I don't know. But if somebody
> would like to test that, I'd like to hear the results...
>
> Henri Moilanen
>
> PS. I made the calculations when writing this. That's the reason for
> unclarities.
Follow-Ups:
References: