MOVIE! a ram animation system by Eric Graham Version 1.00 The MOVIE! ram animation system consists of three programs that must be run from CLI. You will need to be familiar with CLI and with the use of a text editor, such as ED, because you will need to write text files to control the animation. The three programs are: DILBM Calculates the difference between two image files. PILBM Packs several difference files into a single animation file. MOVIE Plays back the animation. This system differs from other similar programs in several important ways: 1) It is in the public domain. It may be freely copied and distributed for non commercial purposes. Upgrades and enhancements may be provided from time to time. 2) It employs J-type animation compression. This is an adaptive algorithm that employs numerous different strategies to achieve the best compression and fastest playback. Additional strategies will probably be added to improve performance still further. 3) It works with HAM and non-HAM images, either full screen or overscan. It also works with European PAL Amigas. DILBM ----- This program calculates the differences between two images and stores the result as a delta file. The program is called with the names of three files: dilbm image1 image2 delta The two image files must exist. The delta file will be created. The delta file represents the data required to convert image1 into image2. It is not reversible. There is an alternate delta format that is reversible, to generate it, add an 'x' at the end of the command: dilbm image1 image2 delta x Normally, dilbm will display a picture of the differences between the images. To suppress this picture, add a 'q' at the end of the command, this will make dilbm run slightly faster. PILBM ----- This program packs delta files together to create an animation. It takes a single argument that is the name of a text file that contains a description of the animation. The following format must be followed: line 1 a The name of the animation that is to be produced. 2 i The name of the initial image. 3 d0 The name of the initial delta file. 4 d1 The name of the first delta file. 5 d2 The name of the second delta file. ... n+3 dn The name of the last delta file. n+4 * An asterisk to denote the start of sequence control n+5 m t m is a delta number and t is a time delay n+6 m t ... m t The animation works by double buffering, so you must specify two images. The file 'i' specifies the first image. The delta file 'd0' defines the second image in terms of the first. The delta file 'd0' is discarded after the second image file is constructed. The remaining delta files, d1 to dn are stored in memory. When the animation is replayed, the following actions take place: The first image is displayed on the screen. Then the second image is displayed. While the second image is displayed, the first image is changed with a delta file. Then it is displayed while the second image is modified with another delta file. This process is repeated. The sequence control determines the order in which the delta files are used. The value 'm' determines which delta file is to be used. The value t specifies how much time (in jiffies) is to be used for the change. If t is negative, then m is used to indicate a transfer to the m'th m-t pair. Thus the following sequence * 3 2 5 2 9 2 12 2 2 -1 would stand for the following sequence of delta files: d3 d5 d9 d12 d5 d9 d12 d5 d9 d12 d5 d9 d12 etc. Not all delta files need to be used (although that would be wasteful) and some may be used many times, if the sequence control specifies a loop. Deciding which images to use to construct delta files, and the correct sequence of delta files is complicated because of the nature of double buffering. Here is an example, suppose that we wish to display images in the following sequence: 15 14 13 12 11 10 9 8 7 8 9 10 11 12 13 14 15 14 13 12 11 etc then we can use the 'x' type of reversible deltas and compute the following files (it is a good idea to place the dilbm commands in a text file and use an 'execute' command). dilbm pic15.image pic14.image dx15-14 x q dilbm pic15.image pic13.image dx15-13 x q dilbm pic14.image pic12.image dx14-12 x q dilbm pic13.image pic11.image dx13-11 x q dilbm pic12.image pic10.image dx12-10 x q dilbm pic11.image pic9.image dx11-9 x q dilbm pic10.image pic8.image dx10-8 x q dilbm pic9.image pic7.image dx9-7 x q dilbm pic8.image pic8.image dx8-8 x q pilbm buildx.script The file buildx.script contains the following: picx.anim phongm15.image dx15-14 dx15-13 dx14-12 dx13-11 dx12-10 dx11-9 dx10-8 dx9-7 dx8-8 * 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 8 2 1 -1 Note that the delta file dx8-8 causes no action to take place, so it is also used in place of dx14-14. MOVIE ----- The movie playback program is particularly simple. Give it the name of an animation file. Press the 'escape' key to stop an animation that is looping. The program may also be run from workbench, set the default tool of the project (the animation file) to be 'movie'. Alternatively, hold down the shift key and click on the project and then while still holding down the shift key, double click on the movie icon.