Jump to content
Sign in to follow this  
José Pereira

Horizontal scrolling on A8

Recommended Posts

A thing came into my Mind right now and remember to show this Giana's just to exemplify:

post-6517-0-24511700-1311317174_thumb.png

If we have three Modes on screen and enable Fine Horizontal Scrolling:

-> 2:1

-> 4:1

-> 1:1

 

How this will scroll.

A8 scrolls in colour clock and if I am thinking right then:

-> 2:1 scrolls two Hi-Resolution pixels that is the A8 colour clock of these Modes.

-> 4:1 will scroll 4Hi-Resolution pixels as it's the colour clock of the GTIA Modes.

-> And 1:1?

If 1:1 and in Games like, for example Kult, it scrolls in what 1:1 or 2:1?

(and having there a PM affects the scroll in someway? But PMs. are always xPos. at 2:1=A8 normal colour clock this I know.)

 

 

 

And more:

If these three Modes are on the screen they will move different because there pixel ratio is different/colour clock, right?

These will give different speed scrolling right?

But there's a way to have all the three moving the same speed?

Like 1:1 moving four Hi-Resol. pixels a time and 2:1 four Hi-Resolution to get 1colour clock same/equal 4:1 GTIA scrolling?

 

 

 

Hope you understand.

Just some things that came up into to my mind...

Thanks.

José Pereira.

Edited by José Pereira

Share this post


Link to post
Share on other sites

Scroll speed is the same.

 

Hires can only scroll in 2 pixel steps, only way to do single pixel is by rotating data or using switched character sets.

Switch character set way is only really any good for text where the pixels don't need to overflow into the adjacent character.

 

H-Scrolling can't scroll by 1/2 pixel in GTIA modes. If you do that, the data from adjoining pixels gets messed up.

 

e.g. 2 pixels adjacent, colours wanted 3 and 7:

 

HSCROL value set to 0, pixels displayed are 0011 0111 (3,7)

 

HSCROL value set to 1, pixels displayed are 0000 1101 (0,13)

Share this post


Link to post
Share on other sites

Scroll speed is the same.

 

Hires can only scroll in 2 pixel steps, only way to do single pixel is by rotating data or using switched character sets.

Switch character set way is only really any good for text where the pixels don't need to overflow into the adjacent character.

 

H-Scrolling can't scroll by 1/2 pixel in GTIA modes. If you do that, the data from adjoining pixels gets messed up.

 

e.g. 2 pixels adjacent, colours wanted 3 and 7:

 

HSCROL value set to 0, pixels displayed are 0011 0111 (3,7)

 

HSCROL value set to 1, pixels displayed are 0000 1101 (0,13)

 

O.k., HSCROL=0 it's what? scrolls 2:1 pixel?

 

Can you post all the HSCROL values with correspondant 2:1 pixel scrolling?

 

 

(If HSCROL=0=one 2:1colour clock in ANTIC4/Hi-Resol., for example, then GTIA HSCROLL scanlines would need to be HSCROLL=1 4Hi-resol. pixels to move at the same time?)

Share this post


Link to post
Share on other sites

It's simple.

 

With GTIA modes, odd values of HSCROL are no good, they mess up the pixel values. Even values move 1 pixel increments.

 

If you want a table, do it yourself. There are so many combinations it'd be a big table.

 

You don't need a table anyway. You just need to know not to do odd HSCROL on GTIA lines.

Share this post


Link to post
Share on other sites

It's simple.

 

With GTIA modes, odd values of HSCROL are no good, they mess up the pixel values. Even values move 1 pixel increments.

 

If you want a table, do it yourself. There are so many combinations it'd be a big table.

 

You don't need a table anyway. You just need to know not to do odd HSCROL on GTIA lines.

 

 

That is saying that if you put a GTIA Mode even if there's not another GR. Mode you have to move it by software? Moving all the Data the way you want, like the ZX/CPC that doesn't have Fine Horizontal scrolling?

Share this post


Link to post
Share on other sites

That's not what I said.

 

I said you can only use even HSCROL values.

 

So the final meaning of that is you can only move that mode by full pixel values. You don't need to move data around, LMS movement is usable just like any other mode.

Share this post


Link to post
Share on other sites

Jose... in GTIA modes you can scroll by color clocks. full stop. and that is 4:1. and you have to use even values for HSCROL otherwise gfx get messed up.

 

of course you could use the "HIP" trick by alternating mode10 and mode9/11 as mode10 lines are shifted by 1/2 color clock but you are then restricted to less colors as you can only use 9 colors in mode10. if so you could scroll in 160 resolution. but that is a software trick.

 

and as in each mode if you are using HSCROL you don't need to do that in software if you rely on color clock scrolling. 1/2 color clock scrolling like in Mode F (high res) or GTIA modes are only possible by software tricks.

Share this post


Link to post
Share on other sites

Sorry but English/techinal words and it's me that are all 'Mess up'.

It's this "even" I don't ubderstand:

"and you have to use even values for HSCROL otherwise gfx get messed up."

 

 

ANTIC4 or any 2:1ratio would need to move two colour clocks to match one GTIA 4:1ratio pixel moving.

This is saying that I would have what values on HSCROL in 2:1 and 4:1scanlines?

 

 

Sorry to take your time but that's one more thing I would like to know...

Thanks.

Edited by José Pereira

Share this post


Link to post
Share on other sites

Sorry but English/techinal words and it's me that are all 'Mess up'.

It's this "even" I don't ubderstand:

"and you have to use even values for HSCROL otherwise gfx get messed up."

 

 

ANTIC4 or any 2:1ratio would need to move two colour clocks to match one GTIA 4:1ratio pixel moving.

This is saying that I would have what values on HSCROL in 2:1 and 4:1scanlines?

 

 

Sorry to take your time but that's one more thing I would like to know...

Thanks.

 

 

Sorry, I understand now:

'EVEN VALUES' it's 'SAME VALUES'

 

But if 2:1 and 4:1 have the same value in HSCROL then they will not move the same

When 4:1pixel is out of the screen then I have only one 2:1pixel out.

For them be out at the same time/same Gfxs. I would need to move two 2:1pixels for each one 4:1pixel.

I would need two different values in the two Mode's HSCROL, or not?

Edited by José Pereira

Share this post


Link to post
Share on other sites

Sorry but English/techinal words and it's me that are all 'Mess up'.

It's this "even" I don't ubderstand:

"and you have to use even values for HSCROL otherwise gfx get messed up."

 

 

ANTIC4 or any 2:1ratio would need to move two colour clocks to match one GTIA 4:1ratio pixel moving.

This is saying that I would have what values on HSCROL in 2:1 and 4:1scanlines?

 

 

Sorry to take your time but that's one more thing I would like to know...

Thanks.

 

 

Sorry, I understand now:

'EVEN VALUES' it's 'SAME VALUES'

 

But if 2:1 and 4:1 have the same value in HSCROL then they will not move the same

When 4:1pixel is out of the screen then I have only one 2:1pixel out.

For them be out at the same time/same Gfxs. I would need to move two 2:1pixels for each one 4:1pixel.

I would need two different values in the two Mode's HSCROL, or not?

 

 

What a mess, I really wasn't understand.

"EVEN" is the "SAME" but on Google translations.

 

Sory, sorry,....

Share this post


Link to post
Share on other sites

yes.

 

ok... now it gets tricky... need to test but I would assume that they move the same...

 

f.e.

 

mode9 HSCROL value 0,2

 

would be the same distance like

 

mode4 HSCROL 0,1,2

 

or I am now confused?

Share this post


Link to post
Share on other sites

GTIA HSCROL=1 moves one 4:1pixel

To get the same I need to do on ANTIC4 HSCROL=2 to match the same.

 

Have I finally understand?

Share this post


Link to post
Share on other sites

No.. in GTIA modes HSCROL=1 will just mess up the gfx, HSCROL=2 will move the gfx by one 4:1 pixel.

Share this post


Link to post
Share on other sites

No.. in GTIA modes HSCROL=1 will just mess up the gfx, HSCROL=2 will move the gfx by one 4:1 pixel.

 

 

 

HSCROL values are from 2:1ratio and can have values 0->15 (right 4bit of an 8bit number).

 

GTIA HSCROL=2 move one GTIA pixel

ANTIC4 HSCROL=2 move two 2:1ratio pixels.

 

True of the story:

To have them equal I would need to move in Pair number, like HSCROL=0/2/4/6/8/10/12/14.

 

 

 

Finally I get it?

:P

 

 

(P.s.- :roll: Probably this is usefull to guys like me:ATARI Corporation Confidential ;) )

Edited by José Pereira

Share this post


Link to post
Share on other sites

Mapa... yes... but it messes up because HSCROL=1 will move the bit patterns by 1 mode4 color clock internally?

 

so in theory scrollspeed is the same?

Share this post


Link to post
Share on other sites

Perhaps the best way to explain is to illustrate:

 

GTIA pixels are made up of 4 bits, 16 possible combinations give you 16 colors.

 

When you scroll, the pixel data is shifted left or right by bit-pairs (i.e. one color clock) which is how scrolling works in Graphics 7/15/12/13 and this enables the pixels to shift.

 

In GTIA mode this merely shifts the bit pattern, for example, let's say you had these three pixels in Graphics 9:

 

1111-0000-1111-0000

 

which is white (color 15) - background - white - background

 

Now shift them one color clock to the right:

 

0011 - 1100 - 0011 - 1100

 

The pixels change color to mid grey shades 3 - 12 - 3 - 12 but do not move on screen.

 

This is what happens when you set hscrol to odd value. The only way to scroll gtia pixels in hardware is to shift by 4 bit values like this:

 

1111-0000-1111-0000

 

0000-1111-0000-1111

 

 

In actuality scrollspeed is the same. If you are scrolling a screen with different GTIA settings, maybe the best way is to do a DLI on the HSCROL register, for example:

 

Top 18 lines: ANTIC 4

Bottom 6 lines: Set to GTIA 9 textmode

 

Lets say HSCROL across the screen is set to 12. Scroll 1 color clock to the right:

 

TOP: HSCROL=13

BOTTOM: HSCROL stays at 12

 

the top Antic 4 lines scroll by one pixel while the bottom GTIA mode remains stationary.

 

Now scroll one more color clock

 

TOP: HSCROL=14

BOTTOM: HSCROL=14

 

The display stays lined up, but the GTIA pixels shift by 4 bits (2 color clocks). So you have to shift the GTIA mode 2 color clocks every two cycles, while the ANTIC mode shifts once every cycle.

 

If you really wanted to, however, you could shift the bottom gtia pixel 2 color clocks every cycle while shifting the antic pixels once ... this would create a parallax scrolling effect much like in the Atari 2600 Empire Strikes Back game.

Share this post


Link to post
Share on other sites

Just thinking in this again...

Take all that ideas of Horizontal scrolling 'jumping' games and have different scanlines at different GR. Modes with some clever sprites moving (like moving PMs. over Hi-Resolution scanlines PFs.):

post-6517-0-65850200-1313408251_thumb.png

(bottom for example a GTIA 1colour with 16Blue Luminances for a Water movement...)

 

All this different Horizontal scrolling values in the diferent Gr. Modes and soft sprites would this be very hard to code?

I think with some good planning and A8 DLIs. and larger Pallete something good could be possible.

Is it worth to get something like this?

 

 

More than a coder, is there anyone interested in get some Gfxs. (new ones and from different games, like Giana, Mayhem,...) and help in creating a Map and a gameplay (at least for a first Level for demonstration...)?

 

 

Greets.

José Pereira.

Share this post


Link to post
Share on other sites

Could be interesting, to use the different modes for some parallax effect.

 

Hires for 320 pixel resolution, colour res for 160 pixel scrolling, and gtia mode in the foreground with the slowest scrolling.

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Could be interesting, to use the different modes for some parallax effect.

 

Hires for 320 pixel resolution, colour res for 160 pixel scrolling, and gtia mode in the foreground with the slowest scrolling.

 

 

GTIA MOde for the slowest scrolling?

If it is not to have 4bit pair mess you would move the 4bit-pair 2colour clock at the same time you move one 2in1 pixel/one colour clock of 160 pixel.

Then, thinking this way, the 160pixel are the ones that move slower, isn't it?

Share this post


Link to post
Share on other sites

GTIA MOde for the slowest scrolling?

 

 

Either you have to scroll the whole screen at the lowest resolution, or you have to set the framerate correct.

 

If you can move at 320 pixel resolution in 50Hz, you have to reduce scrolling speed for 160 pixel movement to 25Hz , and to reduce 80 pixel scrolling to "12-13" Hz , to have it at the "overall" same speed.

Edited by emkay

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...