These simple techniques were really, really effective in 2D games.<p>When done well (as they were in SF2) they created a wonderful illusion of depth.<p>From a programmer's perspective, creating these sorts of effects surely gave you a true feeling of "racing the beam" - ie the nuts and bolts of the CRT itself.<p>The way scrolling worked on this systems was that you defined your tilemaps and then changed the <i>scroll register</i> to change the position at which they were drawn.<p>By changing the scroll register in the <i>vertical blanking interval</i> (the time between the bottom line was drawn) and before the topmost row was redrawn, you could shift the entire tile map left, right, up, or down en masse. That would move the entire tilemap like a flat sheet of paper.<p>However, if you changed the scroll register during the <i>horizontal blanking interval</i> - the time between individual horizontal lines were drawn on the screen - you could achieve fancier effects like the row scrolling effect described in the linked article.