Amoeba

From LinuxReviews
Jump to navigationJump to search


Amoeba by Excess running in Wine at 720p. There are black borders because the demo, from 2002, was made for PC monitors with a 4:3 aspect ratio.

Amoeba
The Amoeba PC demo
The Amoeba PC demo
Original author(s)Excess
Initial releaseMay 2002; 21 years ago (2002-05)
Repositorygithub.com/excess-demogroup/amoeba
Operating systemLinux, Windows
TypePC scene demo
LicenseGNU GPL v2
Pc-demo.jpg

Amoeba is a PC demoscene demo by the still active Norwegian demo group Excess released at the Underscore demoparty in May 2002. It won 1st place in the demo competition. It is noteworthy for being the first demo party competition winner with Linux binaries and source code included in the release archive. It is still pretty cool and still worth a watch nearly 20 years after it was created.

HOWTO Run The Demo[edit]

Neither of two Linux binaries included in the "final version" Amoeba release archive from June 2002, E amoeba-final.zip, will run on any modern GNU/Linux distributions and the source code within the archive, in a folder named src/, won't compile on modern GNU/Linux distributions due to a variety of compilation errors.

Excess member Kusma (Erik Faye-Lund), who happens to be a Mesa developer, maintains a GitHub repository with source code that does compile at https://github.com/excess-demogroup/amoeba.

The amoeba binary the GitHub repository as of April 2021 produces will fail to start with a message saying "Unhandled exception: demo.xml not found". The original E amoeba-final.zip contains a demo.dat, but no demo.xml is there, in the GitHub repository or anywhere else. Copying the demo.dat file from the original demo to the folder with the amoeba binary won't work, and copying it to a file name demo.xml won't work.. but there is a solution.

The packer/pakfile.cpp in the source tree contains this interesting piece of code:

#if __unix__
    int fd = open("/usr/share/amoeba/demo.dat", O_RDONLY);
#else
    int fd = open("demo.dat", O_RDONLY | O_BINARY);
#endif

This code in question was merged directly from the Debian packaging theme at some point.

"Some of the patches were taken directly from the debian packaging."

Excess member "kusma"
April 26th, 2021

Fixing it is easy enough. You can either replace that encode block with

int fd = open("demo.dat", O_RDONLY);

in the packer/pakfile.cpp file and (re-)compile and copy demo.dat from E amoeba-final.zip into the source tree folder with the amoeba binary or, alternatively, create a folder named /usr/share/amoeba/ and copy the demo.dat file there. The Amoeba demo will run either way, but you won't get any audio. The only "Sound" option the amoeba launcher lets you choose is "No".

Amoeba on Linux April 2021.jpg

The Open Sound System (OSS) was the dominant sound system on Linux when Amoeba was made in 2002. Audio libraries like PulseAudio appeared much later. It is quite possible that sound would with with OSS emulation of some sort.

It is possible to run the original demo-win32.exe binary from E amoeba-final.zip from 2002 in Wine on modern Linux systems and you will get sound if you choose to watch the demo that way.

The Amoeba demo is free software under the GNU GPL v2 license, and the source is availble at https://github.com/excess-demogroup/amoeba. You can study it if you want to learn how to make something similar, and you can probably make sound work on modern GNU/Linux distributions if you are familiar with C and Alsa and/or PulseAudio. It may become possible to run it natively on GNU/Linux with sound at some point in the future if someone look at it and makes it happen.

See Also[edit]


Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.