Does the Amiga scroll in selected areas of the screen?
I often wonder how the Amiga manages the hardware scrolling it is famous for, and recently I saw two demos that exhibit that I think that a selected rectangular region of the screen is selected, and then a direction vector and axis is specified, like -1 for left/up and 1 for right/down or something, with the programmer having to fill in the blanks after scrolling:
https://www.youtube.com/watch?v=Wsz9fYsYdj8 (move to 0:44 in video) https://www.youtube.com/watch?v=nT1JB9-sRmA (move to 3:54 in video) The principle is probably behind the famous parallax scrolling in games like Shadow of the Beast, am I right? Also, it seems that many areas can be scrolled in one frame, too, as these examples show. |
Ok, in the first example, they are probably not scrolling anything at all with the hardware scroll... they are blitting data into rectangular areas, with the data being shifted by the blitter.
the second example (a demo I worked on), I don't remember how Leonard did this exactly, but possibly a combination of hardware scrolling (for the left/right shifting rows) and blitting for the columns |
Just guessing here, but the first example might be doing a hardware scroll of sorts by adjusting the bitmap pointers at a certain point across the screen on certain lines. This would normally give you a few pixels of garbage since only one bitplane pointer is being updated at a time by the copper, leaving the other bitplanes unmoved until a couple of pixels later, but this looks like it might be only a single bitplane in use, so no garbage and just a gutter of a few pixels in between.
|
In general, the amiga doesn't do hardware scroll in arbitrary rectangles, but in rectangles covering the whole width of the playfield. If you (also) utilize the blitter (as mentioned above), arbitrary rectangles are possible. It's a little more low-level to use than specifying direction vectors though ;)
There is of course cases where tricks are used to do "the impossible", but they are normally not generally applicable. |
Yeah, I completely forgot about the Blitter for bitshifting, especially on one bitplane as in "One".
|
There's plenty of tricks that can be done with the Amiga's hardware.
With the way the copper is and it's legacy design from the Atari 8bit it is generally easier to do vertical video splits. The copper can also wait or horizontal lines with some limitations. With that said, the first demo they're either blitting or given the low number of bitplanes maybe changing video addresses at different positions so they are genuine rectangles... I dunno... quite a few ways to do it really I suppose. Second demo I can probably guess but is probably copper splits for the horizontal movement and blitting for the vertical. I'm probably wrong as I'm not a demo programmer... but that's how I'd do it. Geezer |
Quote:
Just booted it up and looked at the copper. No idea what's going on here: Code:
00025074: 3009 fffe ; Wait for vpos >= 0x30 and hpos >= 0x08 |
I think it probably is brute force blitting... 5th plane is used to "flash" the greets
|
All times are GMT +2. The time now is 08:49. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.