Jump to content
IGNORED

Smooth scrolling playfield - I think I've done it :)


eshu

Recommended Posts

We have a winner! congratulations. Tested on my harmony and light sixer and it looks great. I only have an LCD screen though.From what I can tell just by looking, seems like you didnt use PF0 and reflected the playfield. works great to hide the screen shifting. Love it! Looks like its going to introduce some weird positioning methods for players, missiles and the ball as a trade off.

 

edit: If most all other systems display this correctly, Stella will need an update to allow this and be closser to real hardware performace. It jitters real bad in stella.

Edited by grafixbmp
  • Like 1
Link to comment
Share on other sites

If most all other systems display this correctly, Stella will need an update to allow this and be closser to real hardware performace. It jitters real bad in stella.

I doubt this is going to happen soon. It breaks up the assumed rendering structure, so a major rewrite would be required.

Link to comment
Share on other sites

This is a great project! That said, there are a few problems on my CRT (see attached video - harmony cart, light sixer). First there is a feint flashing vertical line on the left side of the screen. Second, the scrolling still looks pretty rough to me. It might be just because you are trying to do white on black which is probably the worst case, but also you are moving it so quickly that it's hard to tell if it's really any smoother than just regular playfield scrolling. Compare to the attached rally-x for example.What is the horizontal resolution of this method?

 

Thanks and I hope you continue to perfect this.

 

-EdF

Link to comment
Share on other sites

I have to be quick as I'm trying to put the children to sleep - I've attached a binary slowed down to a 16th of the speed....not tested on real hardware, but looks like the slowdown is working in Stella....

 

With the original binary, the difference is night and day on my setup - it's scrolling by one pixel = 1 colour clock. I can only shift the screen in increments of three pixels, but combining that with a traditional playfield scroll means we can get 1 pixel precision (because 4-3=1 ;) )

 

Edit:

 

So it uses 4 kernel setups

 

0 - no shift

1 - +3 pixels right

2 - +6 pixels right

3 - -3 pixels left

 

Mod 4 these are equal to

 

0 - 0

1 - 3/-1

2 - 2/-2

3 - 1/-3

 

So these can be combined with PF's at offsets:

 

0 - 0

1 - -1

2 - -2

3 - 0

 

To get:

 

0-0*4 = 0

3-1*4 = -1

6-2*4 = -2

-3+0*4 = -3

 

I've done that in a rush, but you get the idea....

scrolltestslow.bin

Edited by eshu
  • Like 2
Link to comment
Share on other sites

This is a great project! That said, there are a few problems on my CRT (see attached video - harmony cart, light sixer). First there is a feint flashing vertical line on the left side of the screen. Second, the scrolling still looks pretty rough to me. It might be just because you are trying to do white on black which is probably the worst case, but also you are moving it so quickly that it's hard to tell if it's really any smoother than just regular playfield scrolling. Compare to the attached rally-x for example.What is the horizontal resolution of this method?

 

Thanks and I hope you continue to perfect this.

 

-EdF

 

I'm really keen to see how the slower test works on your setup - maybe it's the same issue as RevEng below?

 

On my NTSC 7800 (going to a CRT TV through composite) there's a jerk in the fine scroll. The first two fine scrolls are good, the third one appears to have the same position as the 4th (coarse) scroll.

 

Hmm that's a shame, I think I'll have to do a test with numbered frames so I can make sure I'm looking at the right one...

 

I'm really intrigued by this and I would like to know how you did it :D

 

It's basically variants on the technique I explained in the other thread, but to get the small changes to the HSYNC position you have to use a quirk of the 6502 combined with a quirk of the 2600 - I'm planning to start a blog and write up all the details in there.....Hopefully I'll get it done tonight....I'll post here once it's done...

  • Like 3
Link to comment
Share on other sites

For me (PAL Darth Vader, Sony Trinitron CRT) the slow scrolling is not smooth. It scrolls 2 pixel one by one, then 2 pixel at once and then stops for one interval.

 

During this break, several things happen:

  1. the leftmost pixel disappears
  2. a new rightmost pixel appears
  3. a dark blue border appears on the left of each pixel
  4. the background color changes into a very dark gray
  5. pretty randomly ~8 lines directly below the text become even a bit brighter, showing a gradient going from dark gray to not so dark gray (with some red) and back then back to dark gray.
Edited by Thomas Jentzsch
Link to comment
Share on other sites

 

For me (PAL Darth Vader, Sony Trinitron CRT) the slow scrolling is not smooth. It scrolls 2 pixel one by one, then 2 pixel at once and then stops for one interval.

 

During this break, several things happen:

  1. the leftmost pixel disappears
  2. a new rightmost pixel appears
  3. a dark blue border appears on the left of each pixel
  4. the background color changes into a very dark gray
  5. pretty randomly ~8 lines directly below the text become even a bit brighter, showing a gradient going from dark gray to not so dark gray (with some red) and back then back to dark gray.

 

 

Ug - that sounds like it's really not working at all on there - have you tried some of the tests from the other thread? http://atariage.com/forums/topic/224748-rsyncvsync-experiment/

 

1 and 2 are probably just from me trying to mask the pixels that only appear on some kernels (i.e. are too far left and right to appear on all 4) - I've attached another binary with no masking...

 

Edit: ah lol - the post was edited while I was quoting, sounds like the same as RevEng - I haven't looked at it slowed down on my machine yet, maybe I've just made an error with that Kernel......will take a look later...

scrolltestslownomask.bin

Edited by eshu
Link to comment
Share on other sites

I just tried synctest.bin:

  1. Up: picture moves ~12 pixel to the left. But this takes ~8 rows. A dark blue changing to green and a dark red changing to blue bar appear at the very right.
  2. Left: pictures moves ~4 pixel to the right (and a bit up too, but that's only from the colors changing). Again it takes a few rows (~4).
  3. Right: picture moves ~8 pixel to the left (at the top a bit more, then it takes a few rows (~4) until the final position is reached)

In all three cases the colors change to other rainbow colors, but different for each case (and unlike normal colors).

 

I also tried the fast scroller again. And it seems to behave exactly like the slow scroller.

Edited by Thomas Jentzsch
Link to comment
Share on other sites

Hard to follow this one, because I can only see 0 and 1 clearly. 2 and 3 are moving fast to the right. Also the PF gets distorted in the lower third when the kernel number reenters at the left.

 

It seems that 2 and 3 are the critical kernels not working as expected.

Link to comment
Share on other sites

Hard to follow this one, because I can only see 0 and 1 clearly. 2 and 3 are moving fast to the right. Also the PF gets distorted in the lower third when the kernel number reenters at the left.

 

It seems that 2 and 3 are the critical kernels not working as expected.

ah lol - I forgot to reset their positions - RSYNC means there not getting all their clocks - hold on....

 

Edit: ok - hopefully fixed file attached - so am I right in thinking:

 

0->1 1 pixel left

1->2 2 pixel left

2->3 no difference (but some anomolies)

3->0 1 pixel left

scrolltestframecount_fixed.bin

Edited by eshu
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...