Jump to content
IGNORED

Examples of the most advanced side scrolling?


ZackAttack

Recommended Posts

I'm looking into creating a version where the kitchen sink code loop that runs the scrolling engine runs on the ARM, everything still in BASIC of course and backward compatible otherwise just twice as fast and the option for 60 hz scrolling.

That's a really cool idea. I bet you could swap out the scrolling engine with one for my C cart pretty easily once it's ready.

  • Like 1
Link to comment
Share on other sites

I haven't programmed anything in a while, but this topic made me think again. I wrote a short demo, and have a proposal for creating a scrolling engine.

 

post-7074-0-56193600-1455865149_thumb.png

 

scroll.zip

 

 

Pretty simple here, I'm just alternating the background color and shifting the write times to scroll it. You can move the joystick up and down to go between to speeds. This demo is to get a sense of the scrolling smoothness.

 

 

But, here is the bread and butter for the proposal. I will just copy the comments I wrote in the source.

; Two kernels can be built with this idea.....
; a) Load the kernel into ram so that it can be self modified,
;    and you can turn blocks on and off with STA,STX,SAX, and maybe STY if you have enough ram or cycles.
; b) Use bus stuffing, and you can make any block any color. This would scroll picture backgrounds and be amazing.

.

 

 

Bring on bus stuffing!!

  • Like 2
Link to comment
Share on other sites

With bus stuffing you could use different timings too. So instead of all 9 pixel wide blocks you could have 9, 12, and 15 by simply using a 3, 4, or 5 cycle writes respectively. I do like how it scrolls 3 pixels instead of 4. Only drawback to this approach is the amount of render time consumed by the background. You'd only have enough time to update 4 TIA registers in the H-blank even with bus stuffing. Also repositioning objects would need to be done on lines with a solid background. Definitely has potential though.

  • Like 1
Link to comment
Share on other sites

Well that explains why it scrolls so fast...

Else it wouldn't work. :)

 

Simple math:

  • one screen: 6 x 168 = 1008 PF values
  • moving 1 PF value by 4 PF pixel: ~21 cycles (shifting with tables and merging two values)
  • total cycles: 1008 x ~21 = ~21,000 cycles
  • required scan lines: ~21,000 / 76 = ~276

So just for moving the screen, you would need more than one whole frame. Or, after deducting the kernel, about three frames. And then you haven't done any other game logic.

Link to comment
Share on other sites

With bus stuffing you could use different timings too. So instead of all 9 pixel wide blocks you could have 9, 12, and 15 by simply using a 3, 4, or 5 cycle writes respectively. I do like how it scrolls 3 pixels instead of 4. Only drawback to this approach is the amount of render time consumed by the background. You'd only have enough time to update 4 TIA registers in the H-blank even with bus stuffing. Also repositioning objects would need to be done on lines with a solid background. Definitely has potential though.

you can do more than 4 updates in the hblank area. I would love to see a full color picture background scrolling along. Theres so many possibilites with bus stuffing and extra ram. You can also do several types of horizontal minikernels. Just a whole bunch of ideas possibly with bus stuffing.

  • Like 1
Link to comment
Share on other sites

Simpsons Already Did It

 

... er, I mean Alex Herbert already did it in 2005.

Horizontal (and vertical) scrolling color-changing background with regular asymmetrical Playfield parallax horizontal scroll.

(At least I think that's what I'm seeing. He was SO far ahead of his time.)

 

Parallax Scroll-Text Demo (2005) (Alex Herbert).bin

  • Like 2
Link to comment
Share on other sites

Simpsons Already Did It

 

... er, I mean Alex Herbert already did it in 2005.

Horizontal (and vertical) scrolling color-changing background with regular asymmetrical Playfield parallax horizontal scroll.

(At least I think that's what I'm seeing. He was SO far ahead of his time.)

 

attachicon.gifParallax Scroll-Text Demo (2005) (Alex Herbert).bin

I don't think this is the same as what Omegamatrix proposed. The background scrolling is achieved by triplicating P0 and P1, and duplicating M0 and M1 to produce ten 8-pixel wide columns which are then moved. A cool demo though.

post-40226-0-52542600-1456606923_thumb.png

Link to comment
Share on other sites

I don't think this is the same as what Omegamatrix proposed. The background scrolling is achieved by triplicating P0 and P1, and duplicating M0 and M1 to produce ten 8-pixel wide columns which are then moved. A cool demo though.

attachicon.gifdebug colors.png

 

Thanks for checking. My convenient custom Stella build lacks "debug colors." (Based on freezing the screen, I saw 3 pixel wide on the far right, so I guessed. That's why I said "I think". ;-) )

 

Another instance where an awesome Demo effect can't be used in a game because it uses almost all the objects resources for the background scroll, Playfield for the foreground text... Hey, the Ball is unused! :thumbsup:

"Ballblazer possible?" uses parallax background color changes for the grid, at the expense of 100 kernels... (I am exaggerating, but it was mentioned quote, "(checkerboard has 37 kernels...)"

A. I don't know if he got the number of kernels down. Amazing there is time to do anything else at all!)

B. The "Ballblazer possible?" thread starts out saying source code will be posted during development, but roland p must have changed his mind.

C. I wonder if a 2600 project has ever been completed with source code anyone can change? "Boulder Dash" and our/my "DK Arcade 2600" was a small group, "Stay Frosty 2" a small group, "Star Castle Arcade" was started by collective anger in amazement that the 8K Star Castle creator initially said it was a one-off for his personal challenge in coding, then joking a $32 thousand dollar amount, further angering AtariAgers, and after I suggested someone should make one with the full 32K CD-W had a demo in a week, a game in 3 weeks, and a decent "impossible" game for the 2600, when it was handed to Thomas Jentzch who recoded, polished, and even wrote a friggin' task manager because the game needs to do more calculation that can be done within its available game frames.

  • Like 1
Link to comment
Share on other sites

C. I wonder if a 2600 project has ever been completed with source code anyone can change?

The majority of my projects, those with blog entries, have source available. Medieval Mayhem's current source is in Take 4, while Space Rocks is in release candidate 7. For the source for any of the unfinished projects just check out the Categories section in the right column of my blog.

 

Source for Stay Frosty 2 is being released in the blog as well in the The Story of Stay Frosty 2 entries. The SF2 source that's currently available is for the 20110113 build (have a ways to go to get to the final 20131217 build). Don't think I've released the source for Stay Frosty, I'll rectify that in the near future.

Link to comment
Share on other sites

 

 

C. I wonder if a 2600 project has ever been completed with source code anyone can change? "Boulder Dash" and our/my "DK Arcade 2600" was a small group, "Stay Frosty 2" a small group, "Star Castle Arcade" was started by collective anger in amazement that the 8K Star Castle creator initially said it was a one-off for his personal challenge in coding, then joking a $32 thousand dollar amount, further angering AtariAgers, and after I suggested someone should make one with the full 32K CD-W had a demo in a week, a game in 3 weeks, and a decent "impossible" game for the 2600, when it was handed to Thomas Jentzch who recoded, polished, and even wrote a friggin' task manager because the game needs to do more calculation that can be done within its available game frames.

 

Sure, my source code for StarBlitz is available and in BASIC so anyone can easily play around with it or any of the controversial 80's techniques used in the game. Same with the BASIC.

 

Andrew offered to make BD source code available for anyone serious in working on it which is pretty cool but I think that limits it to assembly developers; I was motivated by the smooth scrolling and the tile mapping just looking at the output. I think there was some discussion of a high level language for working with the engine, that would be cool to see.

 

I don't get why SolidCorp got negative feedack, it's always cool to see another developer from the 80's building something today - the other star castle was great too but SolidCorp's was the more interesting version for running in 8K, that's pretty amazing programming.

Link to comment
Share on other sites

 

Sure, my source code for StarBlitz is available and in BASIC so anyone can easily play around with it or any of the controversial 80's techniques used in the game. Same with the BASIC.

 

Andrew offered to make BD source code available for anyone serious in working on it which is pretty cool but I think that limits it to assembly developers; I was motivated by the smooth scrolling and the tile mapping just looking at the output. I think there was some discussion of a high level language for working with the engine, that would be cool to see.

 

I don't get why SolidCorp got negative feedack, it's always cool to see another developer from the 80's building something today - the other star castle was great too but SolidCorp's was the more interesting version for running in 8K, that's pretty amazing programming.

 

He tried to put his project on a pedestal, he believed his effort stood tall above all others.

 

Originally he had no intention of releasing anything. He only released what he had because his project was about to be eclipsed.

 

He was quickly put in his place by StarCastle Arcade, a far superior port.

 

 

We thank those just heroes that answered the call, we will forever be indebted.

  • Like 1
Link to comment
Share on other sites

Some other scrolling stuff I've done in the past:

 

14 Vertical Bars. This uses JSR with the stack pointer aligned to the color registers to do quick updates.

post-7074-0-73097400-1456620236_thumb.png

 

14_ColorVertBars(scroll).zip

 

Simple Quest. This uses RESPx bashing across the screen. The playfield is used later to produce a symmetrical effect.

post-7074-0-18074300-1456620435_thumb.png

 

Simple Quest.bin

 

Full Balloon Test. Use the joystick to slow down the scroll. It is a very fluid scroll.

post-7074-0-74033400-1456620552_thumb.png

 

FullBalloonTest.bin

 

And finally the old PRGE demo of Circus AtariAge from a couple of years ago. If you leave the demo alone for a while you will see an interesting pulsating scroll on a diagonal. Note that this is also a paddle game and you have to set Stella up for that.

post-7074-0-68544600-1456620704_thumb.pngpost-7074-0-26161400-1456620713_thumb.png

 

CAA_PRGE_Final.bin

  • Like 7
Link to comment
Share on other sites

 

He tried to put his project on a pedestal, he believed his effort stood tall above all others.

 

 

boulderdash Matthew! ;) SolidCorp is down to earth and his work clearly shows he's an 80's programmer. Sometimes a good modern programmer works in a team with an 80's programmer and I get fooled but Williamson's the real deal like Oliver and Davie.

Link to comment
Share on other sites

boulderdash Matthew! ;) SolidCorp is down to earth and his work clearly shows he's an 80's programmer. Sometimes a good modern programmer works in a team with an 80's programmer and I get fooled but Williamson's the real deal like Oliver and Davie.

Your are clearly a confused fanboy. I don't have the time or inclination to dig up the old threads, however I stand by my previous comment.

 

 

 

SolidCorp tried to put his project on a pedestal, he believed his effort stood tall above all others.

Originally he had no intention of releasing anything. He only released what he had because his project was about to be eclipsed.

He was quickly put in his place by StarCastle Arcade, a far superior port.

We thank those just heroes that answered the call, we will forever be indebted.

 

 

He made it clear originally, there would only be "one" cart and he wanted a ridiculous amount of money for it (~$32000).

 

He paraded his effort around the various retro game conventions and had zero intention of sharing his code/game (his choice). He enjoyed dangling it in front of salivating Atari enthusiast everywhere.

 

Then a group of champions quickly put him in his place, eclipsing his poor effort.

 

To save face, Solidcorp claimed that he had intentionally tried to limit his cart to an 8k standard. However, this is a lie, he simply could not utilise the more advanced features of the modern homebrew carts.

Link to comment
Share on other sites

Thanks for checking. My convenient custom Stella build lacks "debug colors." (Based on freezing the screen, I saw 3 pixel wide on the far right, so I guessed. That's why I said "I think". ;-) )

Why don't you install the latest release build along side your custom build so you can have debug colors when you need it. I can't even image trying to analyze/debug games without it.

 

Another instance where an awesome Demo effect can't be used in a game because it uses almost all the objects resources for the background scroll, Playfield for the foreground text... Hey, the Ball is unused! :thumbsup:

This is exactly why I made sure to put P0,M0,P1's, and BL on screen when I posted a prototype scrolling engine for Castlevania last week. It makes it appear more broken, but those who understand the harsh limitations of the VCS should appreciate it. At least I hope they do.

 

C. I wonder if a 2600 project has ever been completed with source code anyone can change?

I'd really like to see some larger games built as open source projects from the start.
Link to comment
Share on other sites

... er, I mean Alex Herbert already did it in 2005.

Horizontal (and vertical) scrolling color-changing background with regular asymmetrical Playfield parallax horizontal scroll.

(At least I think that's what I'm seeing. He was SO far ahead of his time.)

 

attachicon.gifParallax Scroll-Text Demo (2005) (Alex Herbert).bin

 

Thanks for posting, this is quite good - and has awesome music, too!

  • Like 1
Link to comment
Share on other sites

I'd really like to see some larger games built as open source projects from the start.

 

I know I'm veering off-topic, but I've been working on a larger scale action-adventure game for the past year or so, and it's all open source. I'm planning to post a demo and some information about it in the next couple days. (it doesn't do anything particularly advanced as far as scrolling or other fancy programming techniques though)

Edited by gauauu
Link to comment
Share on other sites

  • 2 weeks later...

How about Barnstorming then? Isn't that nice if the horizontal scroll is actually smooth? I know it's not playfield but you never gonna get smooth playfield horizontal scrolling on a 2600. Just compare the new Scramble and old Super Cobra - no difference.

 

Found out experimenting on another thread with RT that Empire Strikes Back has super smooth scrolling on the top mountain range at full throttle, 30 fps playfield scenery animation. And the ground scrolls so fast the eye can't follow it (60 fps) unless you slow it down. (curious if anyone's eyes are fast enough to follow 60 fps on CRT).

 

Interesting to see a super-smooth scroller with two bands of the playfield scrolling at different fps.

 

Some interesting observations from discussion:

 

We only have a limited set of speeds we can pick for scrolling the pf pixels because they're so big; when not at full throttle the animation breaks up in ESB. With the sprites we can do smooth 30 fps smooth scrolling at four times as many scroll speeds.

 

Some other interesting scroll techniques used in StarBlitz (and KC):

 

StarBlitz tile maps the meteor sprites to the scrolling background at 30 fps to match the horizontal scroll speed, but divides the vertical scroll rate by a factor of 4, but still super-smooth at 30 fps.

 

This creates the effect you are flying by the meteors much faster than they are falling. Horizontal drift animation is also at a different speed but still 30 fps in reverse direction to the city.

 

StarBlitz smooth scrolling scenery is also interactive, the City gets destroyed by the meteors.

 

I was inspired by seeing those techniques in demo's that scroll dynamically changing playfields around like this one at 2:08 but they generally use tables instead of doing the calculations on the fly so could never actually be used as game engines.

Link to comment
Share on other sites

 

Found out experimenting on another thread with RT that Empire Strikes Back has super smooth scrolling on the top mountain range at full throttle, 30 fps playfield scenery animation. And the ground scrolls so fast the eye can't follow it (60 fps) unless you slow it down. (curious if anyone's eyes are fast enough to follow 60 fps on CRT).

 

 

I don't really get how you're measuring the scrolling speed in fps. In the case of 30fps does it mean that 30 of the 60 frames in a given second will have a movement of one pf pixel? Wouldn't it make more sense to measure the scrolling speed in pf pixels per second? That way you could easily have a speed of 42.5 pixels per second, etc.

  • Like 1
Link to comment
Share on other sites

 

I don't really get how you're measuring the scrolling speed in fps. In the case of 30fps does it mean that 30 of the 60 frames in a given second will have a movement of one pf pixel? Wouldn't it make more sense to measure the scrolling speed in pf pixels per second? That way you could easily have a speed of 42.5 pixels per second, etc.

 

Yes, it just means every other frame has the same incremental movement; could be one pf pixel (4 px) or more, or less with the sprites.

 

Only changing the increment can change the scroll speed if staying super-smooth at 30 fps. StarBlitz moves 2 pf pixels every other frame, BoulderDash moves four I think.

 

I think you can also get away with incremental movement every 3rd frame (20 fps) and still look pretty smooth.

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...