A.D.A. Amiga Demoscene Archive

  Welcome guest! Please register a new account or log in




Demos Amiga Demoscene Archive Forum / Coding / AGA Scroll


Author Message
#1 - Posted: 8 Mar 2017 13:23
Reply Quote
The AGA scroll register (BPLCON1) has 8-bits of scrollvalue per playfield expanded from 4 bits available on OCS.
These 8-bits should support 64 lores pixel scroll and 2 more bits for subpixel scroll.

https://www.ikod.se/references/amiga-aga-guide/new-features-for-aa/ <- search for bplcon1

However I can't seem to use this new expanded scrollrange. Seems I'm limited to 8-pixels scroll range (yes, not even 16 as would seem logical by having 4-bits).

How is the AGA scroll register enabled?

I'm guessing this expansion was made because of the new 64-bit fetchmode where bitplane pointers need to be 8 byte aligned in order to display correctly. One would need to scroll across a 64-pixels range using the scroll registers before a new valid bitplane pointer address is within reach.

Currently I scroll by setting bitplane pointers on byte boundaries and writing 3 bits into the scroll values. However this only works in FS-UAE and on the real thing I got a black screen.
#2 - Posted: 8 Mar 2017 13:37
Reply Quote
And yes I do attempt to shift the bits around so they fit the spec of BPLCON1 like below

15 PF2H7=0 PF2Hx = Playfield 2 Horizontal Scroll Code, X = 0-7
14 PF2H6=0
13 PF2H1=0
12 PF2H0=0
11 PF1H7=0
10 PF1H6=0
09 PF1H1=0
08 PF1H0=0
07 PF2H5 PF1Hx = Playfield 1 horizontal scroll code, x=0-7

Where PFyH0 = LSB = 35ns SHRES pixel. Bits have been renamed, old PFyH0 now PFyH2, etc.

Now that the scroll range has been quadrupled to allow for wider (32 or 64 bits) bitplanes.
06 PF2H4
05 PF2H3
04 PF2H2
03 PF1H5
02 PF1H4
01 PF1H3
00 PF1H2
#3 - Posted: 8 Mar 2017 16:04
Reply Quote
I did a quick test and it seemed that 0-63 indeed works only with the 64-bit fetchmode. 0-15 should work like on OCS.

You're sure the register is kept the same and not modified by anything else? (OS running in the background?)
#4 - Posted: 9 Mar 2017 13:36
Reply Quote
hmm if it works for you just like that using FMODE=0x000f and setting the value in the scrollreg then I need to check to see whether there is something else fishy going on.


  Please register a new account or log in to comment





A.D.A. Amiga Demoscene Archive, Version 3.0