Jump to content
IGNORED

2600 "zig" demo--20 chars on one line NO FLICKER


supercat

Recommended Posts

Here's a preliminary taste of my "zig scroller" routine. Still needs some improvements, but the display is unlike anything I've seen on the 2600. The top line is controlled by moving the joystick left and right; the next line by moving it up and down. The remaining five bounce at various speeds. Pushing fire will let the joystick move text faster, and reset will restart the top two lines in their default positions.

 

I'll release some source code once I get everything improved to where I like it, but for now I'd be curious how well people can guess (without peeking at the code) how it all works. Anyone want to give it a go?

jpzig1a.zip

Edited by supercat
Link to comment
Share on other sites

Here's a preliminary taste of my "zig scroller" routine.  Still needs some improvements, but the display is unlike anything I've seen on the 2600.  The top line is controlled by moving the joystick left and right; the next line by moving it up and down.  The remaining five bounce at various speeds.  Pushing fire will let the joystick move text faster, and reset will restart the top two lines in their default positions.

 

I'll release some source code once I get everything improved to where I like it, but for now I'd be curious how well people can guess (without peeking at the code) how it all works.  Anyone want to give it a go?

871761[/snapback]

 

I recommend people have a good look at this great bit of coding.

Cheers

A

Link to comment
Share on other sites

Here's a preliminary taste of my "zig scroller" routine.  Still needs some improvements, but the display is unlike anything I've seen on the 2600.  The top line is controlled by moving the joystick left and right; the next line by moving it up and down.  The remaining five bounce at various speeds.  Pushing fire will let the joystick move text faster, and reset will restart the top two lines in their default positions.

 

I'll release some source code once I get everything improved to where I like it, but for now I'd be curious how well people can guess (without peeking at the code) how it all works.  Anyone want to give it a go?

871761[/snapback]

Wow, what a creative way to get by the previous best of 13 chars, with the zigzag, you squeek by this limitation while making it look like you intended it this way. I'm not sure exactly how it works, but I suspect you've got HMOVEs on each scanline.

 

Oh, and this next comment isn't intended to dig at you, but there's no need to post this in two different categories :|

Link to comment
Share on other sites

Here's a preliminary taste of my "zig scroller" routine.  Still needs some improvements, but the display is unlike anything I've seen on the 2600.  The top line is controlled by moving the joystick left and right; the next line by moving it up and down.  The remaining five bounce at various speeds.  Pushing fire will let the joystick move text faster, and reset will restart the top two lines in their default positions.

 

I'll release some source code once I get everything improved to where I like it, but for now I'd be curious how well people can guess (without peeking at the code) how it all works.  Anyone want to give it a go?

871761[/snapback]

That's pretty sweet looking!

Link to comment
Share on other sites

Hi there!

 

I'd guess the cool Zig Zags hide a kind of "checkerboard" pattern of player/no player.  Just a guess though.  Very cool.

871959[/snapback]

 

It's using tripple copies of each sprite, shifting one to the left and one to the right as it goes down. You can see it pretty good at the fastest one in the middle.

 

Brilliant idea! :thumbsup:

 

Greetings,

Manuel

Link to comment
Share on other sites

Hi there!

 

Just a thought, but wouldn't a sine wave work as well?

Finding the time for constantly changing HMOVE might be a problem.

872500[/snapback]

 

Hm... if this was the only problem, one could increase the height of the scroller, so it'd only need 5 sprites.

 

Greetings,

Manuel

Link to comment
Share on other sites

  • 2 weeks later...
Just a thought, but wouldn't a sine wave work as well?

872496[/snapback]

 

No, actually. The Atari 2600 is basically limitted to displaying a maximum of 48 pixels worth of sprite data per scan line, or if you really want to push things 56 (or maybe 64) and there are pretty severe restrictions on how that data can be placed. The zig-zag shape maximizes the effective usable screen real estate over which these pixels can be spread. At the spot where the upward and downward lines of text join, the maximum width is 16 pixels. If the left and right texts scroll inward at one pixel per scan line, this gives a height of 8 pixels. If you were to try to "flatten" out the shape on the top, this would reduce the allowable text height.

 

Further, even using unrolled loops, the calculations required to shape the text as it went around the curve would be too much for the poor 6507 to handle. Even on the Zig demo where I made things as simple as I could, there are only about 10 cycles left per scan line.

 

BTW, in case anyone is curious, the Zig demo uses two bitmaps for the scrolling text: one for the upward edge and one for the downward edge. Some of the letterforms are quite noticeably different in the two bitmaps. I did this rather than using one bitmap and deforming it on the fly because (1) it's oodles faster [and thus actually doable], and (2) hand-tweaking the bitmaps for some of the letters greatly improves their appearance. A few letters deform strangely right at the "turn", but for the most part they look pretty reasonable.

Link to comment
Share on other sites

At the spot where the upward and downward lines of text join, the maximum width is 16 pixels.  If the left and right texts scroll inward at one pixel per scan line, this gives a height of 8 pixels.  If you were to try to "flatten" out the shape on the top, this would reduce the allowable text height.

I understand.

 

But how about increasing the gradients in the middle? That would give some sinus effect, wouldn't it?

Link to comment
Share on other sites

  • 4 weeks later...

Hello everybody,

 

yesterday I talked to Cybergoth on the phone and told him about my latest routines and ideas about diagonal spritescrolling and the possibility to fill the whole screen with scrollers. He pointed me to this topic and it's funny that you had the very same idea at about the very same time. :D

 

Your demo looks very sweet!

 

I use a diagonal scroller in my new demo. It will be released at EUROCON 2005 in Germany at the end of september. You can download the binary after the event, too. Find attached a screenshot of the diagonal scroller. More information about the event can be fetched at http://www.gamereset.de/eurocon2005/

 

A second scrolling routine in development uses the two sprites as one scroller. One scrolls from bottom right to middle top and the other from middle top to bottom left like this /\. It's also possible to have it scrolling a bit rounder (sine) by using variables for the vertical pixel-shifting instead of constants for 1-pixel shifting. This results in a scrolltext over the whole screen.

 

All the best,

Simon

post-748-1122279139_thumb.jpg

Edited by Simon
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...