Technical stuff about demos

Demo

A demo is not a political demonstration or a demonstration of a program, a preview of a game or anything like that.
A demo on the Atari ST is a program which demonstrates how good this computer is despite it is in fact not so good. You got the point, no? Well a demo is a program which shows that the ST can do things other computers (well the Amiga or PC) can do but for which the ST is not build for, has not the corret hardware or any other reason for which the demo should be impossible to exist in this universe.

Scene

The copying scene is somewhat difficult to describe. It first issued from the illegal copying of software programs, mainly games. Those games were cracked and an intro with the name of the cracker was shown before the game started. From this intro coding emerged a secondary scene which wanted to be detached from the illegal part and focussed mainly on programming more and better demos. So the games dissapeared and the disks were filled with demos.

Digisound

Digital sound, now the standard sound type on any computer was not possible on the Atari ST. The ST featured a mediocre soundchip with 3 channels producing only square wave sound. You could add some noise and an ADSR wave to it. But mainly it sounded like a very old video game. Impossible to do some decent sound on that.

Wrong! The first people to show off the possibilities of good programming on a bad soundchip were The Exceptions with the port of some of the famous Rob Hubbart tunes to the ST. They did not sound as good as on the C64 but were a great improvement in quality. With the emergence of the Amiga, people started to look into how to do digitized sound and managed to use a combination of the 3 volume registers to simulate an digital to analog converter. This put a lot of work on the CPU and the first digital sound demos only had a static screen with the sound playing. More recent demos featured 4 voice digital music with a lot of animations going on at the same time. And that's still on a simple ST.

Not many people thought about compressing the sound. Besides myself I only know of one other crew who compressed the sound to 4 bit. To be heard in the S-express demo by the Anonymous Programming Association.

Animations

Due to the lack of any supporting hardware to do animations on the ST, animations are impossible to do. How else than with special hardware could you do blops (sprites) move pixels around or create polygons.

Wrong! Scrolltexts of various sizes and speeds were soon to be seen on the ST. Funny enough the fast scrolling routines were the easiest to make. You had to precalculate a lot, like pre-shifting the font in memory. Animations take a lot of the precious memory. But 512KB should be enough.

The same goes for moving parts like sprite opbjects. Still a lot of memory is needed to make up for the lack of a hardware sprite engine. But it was done, as well as all sorts of 3D animations up to texture mapped polygons.

Overscan

This is a technical term which designs the border you see around the image of the computer. Between the displayed graphics and the real edge of the monitor is a black border. On TV this overscan border is included in the picture. On Amiga it was possible to use more pixels per line and so include the border into the computer graphics. This is particularly useful for doing video titling and is also very nice in demos.

The ST had no way to do overscan. But already in the early days some ingenious people found out that the black border was black because it took it's color out of the background register. The first overscan graphics was displayed by quickly switching the background color. First it was only horizontal lines, but it is also possible to create 8 pixel wide graphics.

Being used to this technique it was a real surprise to suddenly see real graphics first in the lower border. In succeeding demos the left border and right border vanished and finally also the top border could display real graphics. This nearly doubled the size of displayed graphics. A demo with all four borders removed is called a fullscreen. All this was done by quickly changing the display frequency of the video chip. In the exact microsecond when it displays the last pixel, the chip is speeded up for a short period, so it misses the test that the end of the screen has arrived and keeps on reading data.

Hardware scrolling

A problem with the ST is that it can only move about the size of a screenfull of data (32KB) in one frame (there are 50 frames per second). So it is impossible to make the whole screen move around in a correct way because Atari did not seem to believe that a freely adjustable beginning of the screen could be useful. The screen base register had no lower byte and so the screen boundary could only be fixed in 256 byte steps. Very useful if you know that the screen is 360 bytes wide. To simulate the lower byte of the base register was made possible with a trick called hardscrolling or syncscroll.

The hardware scrolling is based on the same technique as the overscan. When you switch on overscan on one single line, this line contains more data and displays the beginning of the next line. This means that all the following graphics are displayed at another location. If you switch on the overscan on a correct number of lines you can move the beginning of the screen on a word boundary.

Distorter

A distorter is a form of graphical animation which is not very often seen nowadays. It is the principle of moving a twodimensional picture in different ways by letting running a waveform through it. The most usual is the left/right movement because it's easy to do and can be considered as 1 pixel high sprites moving left and right.

More complicated distortes are those moving up/down or even diagonal. A special kind is the 3D one which makes the distorted picture float in 3D space. The ultimative distorter is the one where every pixel of the picture can be controlled independently.

Mainmenu

As soon as demos became bigger the unique and ST-scene copyrighted and rarely used in other scenes feature of the mainmenu was invented. The user could choose himself what parts of a demo he wants to look at. On other platforms the demos were mostly self running. The user could not interact with the demo, whereas the mainmenus of the ST demos sometimes looked rather like real games.

Hidden screen

I don't know who invented the first hidden screen. It is a part of a big demo which is not available directly. You have either to type in something on the keyboard, click in the menu in not so obvious places etc... Or even use a diskmonitor to activate it (thanks Tim!).

Reset Screen

Most demos feature an additional screen when you push the reset button. This was done to force people to power off the ST to load other programs and so avoid the possibility to easily grab code, musics or pictures out of the memory. Later it has become a tradition to have a reset screen, normally displaying the credits for the demo. One exception being the omega demo which has the complete demo only activated after pushing reset.