Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6799365
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T18:50:23+00:00 2026-05-26T18:50:23+00:00

I have heard that old arcade side scrolling games used a specific programming hack

  • 0

I have heard that old arcade side scrolling games used a specific programming hack to enable performant side scrolling.

I understand that years ago the machines weren’t powerful enough to repaint the whole screen every frame as it’s done nowadays. There are techniques, such as dirty rectangles, which allow to minimise the screen area needed to repaint when the background is stationary and only the sprites move.

The above approach only works when the background doesn’t change (and hence most of the screen pixels remain stationary).

Vertical scrolling games, like old school shoot’em ups, have the thing a bit more difficult with the background changing every frame due to the scroll. However, one could take advantage of the way pixels are fed to the display (line-by-line). I imagine that one could use a bigger buffer and shift the data pointer some lines “down” every frame, so that it will be redrawn starting from another position, thus giving the impression of a smooth scroll. Still only sprites (and a bit of the background at the edge of the screen) would need to be redrawn, which is a serious optimisation.

However, for side scrolling games, the thing is not that simple and obvious. Still, I’m aware that somebody, somewhere in the past, has though of an optimisation which (with some limitations) allowed the old machines to scroll the background horizontally without redrawing it every frame.

IIRC it was used in many old games, mostly 80’s beat’em ups, as well as in demoscene productions

Can you describe this technique and name its author?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T18:50:24+00:00Added an answer on May 26, 2026 at 6:50 pm

    I have written games for the good old C64 doing exactly this. And there are basically two things to be aware of:

    1. These games were NOT using bitmapped graphics, but instead used “remapped” character fonts, which means that chunks of 8×8 pixels were actually hurdled around as just one byte.

    2. The next thing to note is that there was hardware support for displacing the whole screen seven pixels. Note that this didn’t in any way affect any graphics – it just made everything sent to the TV a little bit displaced.

    So 2) made it possible to really smooth scroll 7 pixels away. Then you moved every character around – which for a full screen was exactly 1000 bytes, which the computer could cope with, while at the same time you moved the scrolling register back 7 pixels. 8 – 7 = 1 means that it looked like you scrolled yet another single pixel… and then it just continued that way. So 1) and 2) combined made the illusion of true smooth scrolling!

    After that a third thing came into play: raster interrupts. This means that the CPU gets an interrupt when the TV/monitor was about to begin drawing a scan line at a specified location. That technique made it possible to create split screen so that you weren’t required to scroll the entire screen as opposed to my first description.

    And to be even more into details: even if you didn’t want a split screen, the raster interrupt was very important anyway: because it was just as important then as it is today (but today the framework hides this from you) to update the screen at the right time. Modifying the “scroll register” when the TV/monitor was updating anywhere on the visible area would cause an effect called “tearing” – where you clearly notice the two parts of the screen are one pixel off sync with each other.

    What more is there to say? Well, the technique with remapped character sets made it possible to do some animations very easily. For example conveyors and cog wheels and stuff could be animated by constantly changing the appearance of the “characters” representing them on screen. So a conveyor spanning the entire screen width could look as it was spinning everywhere by just changing a single byte in the character map.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have heard that there is lots of interesting and useful WSGI middleware around.
I have heard that it's best not to actually have any html in your
I have heard that LINQ2SQL has been written to support multiple database vendor providers
I have heard that closures could be introduced in the next Java standard that
I have heard that the Java implementation of Generics is not as good as
I have heard that using exception trapping is not a recommended practice for number
I have heard that in C++, using an accessor ( get...() ) in a
I have heard that web-based chat clients tend to use networking frameworks such as
I have heard that GTK covers all controls so that developers do not care
I have heard that DateTime.Now is very expensive call (from here ) Is GETDATE()

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.