English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Retrogaming General Discussion (https://eab.abime.net/forumdisplay.php?f=17)
-   -   Does the Amiga scroll in selected areas of the screen? (https://eab.abime.net/showthread.php?t=105273)

Foebane 05 January 2021 21:18

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.

DanScott 05 January 2021 21:46

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

Daedalus 05 January 2021 21:53

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.

hooverphonique 05 January 2021 22:05

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.

Foebane 05 January 2021 22:07

Yeah, I completely forgot about the Blitter for bitshifting, especially on one bitplane as in "One".

mcgeezer 06 January 2021 00:07

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

Antiriad_UK 06 January 2021 00:17

Quote:

Originally Posted by DanScott (Post 1451069)
Ok, in the first example, they are probably not
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

One of my fave greetz screens that. It looks great.

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
                                ;  VP 30, VE 7f; HP 08, HE fe; BFD 1
 00025078: 00f0 0004                  ;  BPL5PTH := 0x0004
 0002507c: 00f2 40b8                  ;  BPL5PTL := 0x40b8
 00025080: 01fe 0000                  ;  NULL := 0x0000

On every line. Can't see any bpl1con. 1/2 a frame worth of blits in visual dma so I'm assuming it's some brute force blittering? :)

DanScott 06 January 2021 00:25

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.

Page generated in 0.08323 seconds with 11 queries