- Great Painters
- Accounting
- Fundamentals of Law
- Marketing
- Shorthand
- Concept Cars
- Videogames
- The World of Sports

- Blogs
- Free Software
- Google
- My Computer

- PHP Language and Applications
- Wikipedia
- Windows Vista

- Education
- Masterpieces of English Literature
- American English

- English Dictionaries
- The English Language

- Medical Emergencies
- The Theory of Memory
- The Beatles
- Dances
- Microphones
- Musical Notation
- Music Instruments
- Batteries
- Nanotechnology
- Cosmetics
- Diets
- Vegetarianism and Veganism
- Christmas Traditions
- Animals

- Fruits And Vegetables


  1. Adobe Reader
  2. Adware
  3. Altavista
  4. AOL
  5. Apple Macintosh
  6. Application software
  7. Arrow key
  8. Artificial Intelligence
  9. ASCII
  10. Assembly language
  11. Automatic translation
  12. Avatar
  13. Babylon
  14. Bandwidth
  15. Bit
  16. BitTorrent
  17. Black hat
  18. Blog
  19. Bluetooth
  20. Bulletin board system
  21. Byte
  22. Cache memory
  23. Celeron
  24. Central processing unit
  25. Chat room
  26. Client
  27. Command line interface
  28. Compiler
  29. Computer
  30. Computer bus
  31. Computer card
  32. Computer display
  33. Computer file
  34. Computer games
  35. Computer graphics
  36. Computer hardware
  37. Computer keyboard
  38. Computer networking
  39. Computer printer
  40. Computer program
  41. Computer programmer
  42. Computer science
  43. Computer security
  44. Computer software
  45. Computer storage
  46. Computer system
  47. Computer terminal
  48. Computer virus
  49. Computing
  50. Conference call
  51. Context menu
  52. Creative commons
  53. Creative Commons License
  54. Creative Technology
  55. Cursor
  56. Data
  57. Database
  58. Data storage device
  59. Debuggers
  60. Demo
  61. Desktop computer
  62. Digital divide
  63. Discussion groups
  64. DNS server
  65. Domain name
  66. DOS
  67. Download
  68. Download manager
  69. DVD-ROM
  70. DVD-RW
  71. E-mail
  72. E-mail spam
  73. File Transfer Protocol
  74. Firewall
  75. Firmware
  76. Flash memory
  77. Floppy disk drive
  78. GNU
  79. GNU General Public License
  80. GNU Project
  81. Google
  82. Google AdWords
  83. Google bomb
  84. Graphics
  85. Graphics card
  86. Hacker
  87. Hacker culture
  88. Hard disk
  89. High-level programming language
  90. Home computer
  91. HTML
  92. Hyperlink
  93. IBM
  94. Image processing
  95. Image scanner
  96. Instant messaging
  97. Instruction
  98. Intel
  99. Intel Core 2
  100. Interface
  101. Internet
  102. Internet bot
  103. Internet Explorer
  104. Internet protocols
  105. Internet service provider
  106. Interoperability
  107. IP addresses
  108. IPod
  109. Joystick
  110. JPEG
  111. Keyword
  112. Laptop computer
  113. Linux
  114. Linux kernel
  115. Liquid crystal display
  116. List of file formats
  117. List of Google products
  118. Local area network
  119. Logitech
  120. Machine language
  121. Mac OS X
  122. Macromedia Flash
  123. Mainframe computer
  124. Malware
  125. Media center
  126. Media player
  127. Megabyte
  128. Microsoft
  129. Microsoft Windows
  130. Microsoft Word
  131. Mirror site
  132. Modem
  133. Motherboard
  134. Mouse
  135. Mouse pad
  136. Mozilla Firefox
  137. Mp3
  138. MPEG
  139. MPEG-4
  140. Multimedia
  141. Musical Instrument Digital Interface
  142. Netscape
  143. Network card
  144. News ticker
  145. Office suite
  146. Online auction
  147. Online chat
  148. Open Directory Project
  149. Open source
  150. Open source software
  151. Opera
  152. Operating system
  153. Optical character recognition
  154. Optical disc
  155. output
  156. PageRank
  157. Password
  158. Pay-per-click
  159. PC speaker
  160. Peer-to-peer
  161. Pentium
  162. Peripheral
  163. Personal computer
  164. Personal digital assistant
  165. Phishing
  166. Pirated software
  167. Podcasting
  168. Pointing device
  169. POP3
  170. Programming language
  171. QuickTime
  172. Random access memory
  173. Routers
  174. Safari
  175. Scalability
  176. Scrollbar
  177. Scrolling
  178. Scroll wheel
  179. Search engine
  180. Security cracking
  181. Server
  182. Simple Mail Transfer Protocol
  183. Skype
  184. Social software
  185. Software bug
  186. Software cracker
  187. Software library
  188. Software utility
  189. Solaris Operating Environment
  190. Sound Blaster
  191. Soundcard
  192. Spam
  193. Spamdexing
  194. Spam in blogs
  195. Speech recognition
  196. Spoofing attack
  197. Spreadsheet
  198. Spyware
  199. Streaming media
  200. Supercomputer
  201. Tablet computer
  202. Telecommunications
  203. Text messaging
  204. Trackball
  205. Trojan horse
  206. TV card
  207. Unicode
  208. Uniform Resource Identifier
  209. Unix
  210. URL redirection
  211. USB flash drive
  212. USB port
  213. User interface
  214. Vlog
  215. Voice over IP
  216. Warez
  217. Wearable computer
  218. Web application
  219. Web banner
  220. Web browser
  221. Web crawler
  222. Web directories
  223. Web indexing
  224. Webmail
  225. Web page
  226. Website
  227. Wiki
  228. Wikipedia
  229. WIMP
  230. Windows CE
  231. Windows key
  232. Windows Media Player
  233. Windows Vista
  234. Word processor
  235. World Wide Web
  236. Worm
  237. XML
  238. X Window System
  239. Yahoo
  240. Zombie computer

This article is from:

All text is available under the terms of the GNU Free Documentation License: 

Demo (computer programming)

From Wikipedia, the free encyclopedia


A demo is a non-interactive multimedia presentation made within the computer subculture known as the demoscene. Demogroups create demos to demonstrate their abilities in programming, music, drawing, and 3D modeling. The key difference between a classical animation and a demo is that the display of a demo is computed in real time, making computing power considerations the biggest challenge. Demos are mostly composed of 3D animations mixed with 2D effects and full screen effects.

The boot block demos of the 1980s, demos that were created to fit within the small (generally 512 to 4096 bytes) first block of the floppy disk that was to be loaded into RAM, were typically created so that software crackers could boast of their accomplishment prior to the loading of the game. What began as a type of electronic graffiti on cracked software became an art form unto itself.


A screenshot of the 64k intro Heaven 7 by Exceed
A screenshot of the 64k intro Heaven 7 by Exceed

Wired News has described frequently demos as "digital graffiti", emphasizing the underground nature of the demoscene as well as the way demos are used to proclaim the authoring "gang's" superiority.

Digitalcraft has described demos as "digital origami", referring to the creation of esthetically pleasing works by overcoming strict technical restrictions.


There are demos available for a great variety of platforms. Currently, most new demos are native-code programs designed to run on PC under the Microsoft Windows operating system, but demos are still actively being made for many other machines including old and new computers, consoles and mobile devices such as PDAs, mobile phones and pocket calculators.

The most important historical platforms include Commodore 64, ZX Spectrum, Atari ST and Commodore Amiga, and demo competitions for these platforms are still relatively common on today's demo parties. There are even demos running on such diverse platforms as VIC-20, Amstrad CPC, TO7, BeBox, RiscPC, Macintosh, Game Boy, GP32 and PlayStation.

Unlike mainstream retrocomputing, the activity of creating demos for old computers is more commonly associated with technical challenge than nostalgic feelings. The accomplishment of new and groundbreaking things is a major driving force on the demoscene, and the limits of various pieces of "obsolete" hardware are still being pushed forward by several groups. Even many PC-oriented democoders do some programming on more restricted platforms in order to get in touch with ways of democoding that are no longer available on modern PC's.

In the 1990s, it was still quite common for different platforms to have more or less separate demoscenes. When users of different platforms participated in a single event, it was considered obvious to split the competition categories for each supported platform (e.g. having separate demo and intro competitions for the PC and the Amiga). Nowadays, the availability of decent emulators and video captures have brought the different scenes closer together.

There has also been some effort for making demos for restricted software platforms such as BASIC interpreters, Java applets, J2ME, Macromedia Flash, JavaScript, PHP and even Microsoft Office. Software platform restrictions like this, however, have not earned the respect from the majority of demosceners.

Size restrictions

Screenshot from Gift by Potion, winner of the Mekka & Symposium 2000 Amiga 64k intro competition
Screenshot from Gift by Potion, winner of the Mekka & Symposium 2000 Amiga 64k intro competition

Small file sizes have been an integral feature of certain types of demos from the very beginning, when software crackers needed to squeeze a crack intro into a very small leftover area of a floppy disk or RAM. It was also important for BBS advertisement intros to be relatively small, since they were typically included in every file downloaded from the BBS.

Sometimes even the platform itself dictated some size restrictions: the size of the boot sector of a floppy disk (generally 512 to 4096 bytes) was also the maximum size of a boot block demo. The common 64-kilobyte size limit for intros, on the other hand, was the segment size in the 16-bit x86 architecture and also the maximum size of an MS-DOS-based .COM executable.

In later times, the practical need for very small demos had diminished, but the willingness to compete in squeezing much into little space had not disappeared. It was therefore necessary to introduce artificial size restrictions in order to challenge the authors. In modern demoscene events, there are demo competitions with relatively loose size restrictions, and intro competitions with quite strict limits of 64 kilobytes or less.

Because of the strict size limits, intros show off the programmer's ability to squeeze much into little space, often by generating graphic and sound data rather than just reading it from a datafile. Because of the extremely low size limit, 4K intros used to lack sound, or had extremely low quality music. As technology progresses, however, 4K sound synthesis has become a new frontier in the demoscene. 4K still isn't the lowest border for demosceners: some demoparties organize 1K, 256 byte or even 64 byte intro competitions. While creating a 4K might not require low-level programming knowledge anymore, sub-1K competitions require the demo coder to be skilled in both assembly programming and algorithmic optimization. (For comparison: The size of this section of article is over 2 kilobytes.)

Procedural generation techniques developed for small intros have worked their way into mainstream gaming such as Will Wright's upcoming game Spore.

Demo types

There are several categories into which demos are informally classified. The most common way to classify demos is by platform or size class, but the purpose, content or style of a demo can also matter.


An intro originally referred to an endless demo where all the action happened on a single graphical screen, often to promote a BBS or a game crack. Nowadays it can refer to any demo written within a strict size limit, such as 4 kB or 64 kB. Also, any demos written for announcement purposes (such as demo party invitation) are typically called intros regardless of the actual size.

Many demosceners reserve the term "demo" exclusively for "non-intros", that is, full-length demos that compete in demo competitions rather than intro competitions. However, the current trend of squeezing a "whole demo" within a strict intro-like size limit has decreased this kind of division.

Most demo parties have at least one intro competition, where the rules are nearly the same as in the main demo competition, with the exception of the size limit of the executable file. The most common intro types are the 64K intro and the 4K intro, where the size of the executable file is limited to 65536 and 4096 bytes, respectively.

Some intro types defined by their content rather than size may also have their own names. Crack intros or cracktros, attached to a cracked game, are perhaps the oldest category of intros. Invtros (or invitros) are demos or intros which serve as invitations to demo parties. A birthtro (or borntro) can announce a new demo group, while a memtro can announce a new group member, and a jointro can recruit others. For "real life" events, there have been wedtros to announce weddings and even babytros (also called birthtros) to announce the birth of a child of a demo scener.

The term dentro, much less common than demo and intro, can either mean a demo in between an intro and a full-length demo in size, or a short preview of an upcoming demo.


A Megademo is a demo that consists of >1MB data. A 880K Amiga standard disk plus the packing advantage = 1MB = Megademo. The first Trackmo and Megademo was "Antitrax 2010 Megademo" (1987) by Antitrax 2010, on the Amiga computer. Megademos are quite uncommon on today's demoscene.


Since the early 1990s, the predominant demo format has been the trackmo, in which visual effects follow a set timeline, synchronised to a continuous soundtrack, much like a music video. The word "track" also refers to the data tracks of a floppy disk, and therefore, to be called a trackmo in the original sense, the demo should run from a diskette and use a custom-made trackloader to read data from it. The first trackmos included "Enigma" (1991) by Phenomena and "Mental Hangover" (1990) by Scoopex, both on the Amiga.

Classification by platform

There are demos for a great variety of software and hardware platforms, and the platform is still the most important way for classifying demos. For instance, a demo designed to run on PC is a PC demo, and one written for Amiga is an Amiga demo.

It is also common to combine several related platforms into a larger group which may also have its own combined competitions. For example, a mobile demo is a demo written for a small handheld device such as a handheld phone, a PDA or a pocket calculator, whereas an 8-bit demo is made for an 8-bit machine (typically an old homecomputer). A related term, oldskool demo, may either refer to a demo running on an "oldskool" platform (such as an 8- or 16-bit computer of the 1980s) or to a demo that is "old-fashioned" in its design choices and esthetics.

Styles and genres

It is also quite common to classify demos by style and content rather than technology. Storydemos, for example, are based on a story line, while ravedemos share the musical and visual aesthetics of rave parties. The most experimental, unusual and controversial demos are often referred to as art demos or abstract demos. Many groups have a distinctive style of their own, and sometimes a demo can be described by referring to a well-known group cultivating a similar style, e.g. mfx style or Melon style.

Demo elements

Demos consist of program code, graphics and music, which are traditionally considered the three main elements of a demo and associated with the coder, graphician and musician, respectively. The overall design is also considered very important, although most groups lack specialized designers.

Program code

Demos are executable programs, and the program code created by the coder is still considered a very important element of a demo. Although there are programs known as demomakers or demotools that allow the creation of technically decent demos without coder involvement, demo groups not using any code of their own are still widely frowned upon. It is not custom to release the source code for a demo for various reasons although a handful of notable demos have had their source code released.

Programming languages

Earliest demos were typically made in machine code monitors, the same programs that were used by the crackers to crack copy protections. The next step was the transition from monitors to assemblers.

Higher-level programming languages, such as C and C++, started to gradually take over assembly programming in the demos of the 1990s, when cycle-level timing was no longer considered as important as before and compilers were beginning to be able to produce code comparable to hand-coded assembly. The transition to higher-level languages originated in the PC scene.

Nowadays, demos programmed in pure assembly are rare on the PC (except for the extreme size-restricted categories), but assembly is still widely considered the only relevant choice for democoding on eight-bit platforms such as the Commodore 64.

Visual effects

Snippets of program code performing visual tricks, collectively called effects, have always been an integral part of demos. Effects are often used to show off the programmer's skills, although they're seldom used as stand-alone content elements any more. See demo effect.


Executable compression has been used in demos since the very beginning: pirated software needed to be packed into a compact and easily spreadable format, which often required some kind of compression for both the software itself and the attached intro. Early demos often had multiple parts which were separately decompressed into memory during the short pauses between parts.

The demos and intros for modern platforms are compressed either by general-purpose executable compressors (such as UPX) or programs specifically designed for the compression of small intros. The decompressor stubs integrated in 4K intros are often well under 200 bytes in size. Some Windows-based 4K intros may even wrap themselves inside DOS-based .COM executables in order to eliminate the header bytes. Decompression facilities provided by the operating system may also be used.

Procedural generation

Many size-restricted intros use procedural techniques to generate content such as textures, 3D objects and music. Some of the ideas were pioneered by The Black Lotus in their PC intros such as Jizz and Stash. Nowadays, the achievements of the Farbrausch group are well-known.

Procedural generation is often disguised as compression in order to increase the amusement value. See, for example, the end scrollers of The Product by Farbrausch and Zoom3 by AND.

Video modes

Demos written for older platforms often use hand-tailored video modes rather than standard ones. Some examples:

  • FLI (Flexible Line Interpretation) makes more colorful pictures possible on the C-64 by diminishing the size of the "character chunk". IFLI (Interlaced FLI) swaps between two FLI pictures between screen refreshes, enhancing both resolution and color palette.
  • The display areas in most home computers were surrounded by borders, which could often be removed with special undocumented tricks. The removal of borders made it possible to implement full-screen graphics images and demo effects.
  • Mode X was commonly used in VGA-based MS-DOS demos, allowing resolutions up to 360x480 in 256 colors along with decent double-buffering. Pseudo-truecolor was an 18-bit color mode based on separate red, green and blue scanlines in Mode X.

Drawing 2D art for newly invented graphics modes often require sceners to first write graphics editors of their own.


Music is considered essential to demos. The lack of music is generally tolerated only in the most restricted intro categories (4096 bytes or less).

The music in the earliest cracktros and demos was often ripped from games. However, some of the groups of the time started to create demo music of their own quite early, and some groups, such as Vibrants and Maniacs of Noise, even specialized in music.

"Oldskool" demo songs are typically chiptunes similar to the video game music of the 1980s. The chiptune style was also used in several Amiga and PC intros of the 1990s due to the lack of need for large and storage-consuming samples.

The use of sample-based trackers greatly affected the styles of demo music, making it possible to closely imitate techno music and many other genres of electronica. Even today, most of demo music is electronic music, even though the use of streaming formats allows the use of virtually any music in the soundtrack.

Many demo groups have written music editors of their own. Well-known examples include the classical PC trackers Scream Tracker and FastTracker by Future Crew and Triton respectively, and the modular synthesizer Buzz by Jeskola. Nowadays, most demo musicians use music sequencers and other professional tools for creating demo music.

In most demos, the music is played back by a stock player routine such as a module player, MP3/Vorbis player or a routine specific to a music editor. Specialized players are also rather common, particularly in size-restricted intros. Modern 4K and 64K intros often contain a software synthesizer which may even have been written with a specific song in mind.


In demoscene parlance, graphics or GFX typically only includes the work of the graphician - that is, still images, textures, 3D scenes, 3D objects and color schemes. Effects and other code-related visualization is usually not regarded as graphics.

The traditional form of graphics art in demos is pixel art, which has been made with dedicated editors or commercial graphics software such as Deluxe Paint. The still images in modern PC demos are usually made with industry-standard software such as Adobe Photoshop.

The technical skills of an artist were often stressed far more than originality or imagination, which gave birth to many graphics-related clichés in the demoscene art of the 1990s. Sci-fi and fantasy themes with dragons, swords and spaceships were very common, as were images of women, naked or otherwise.

The earliest 3D objects and scenes in demos were often very simplistic and were constructed by the coder, often without any modeller-like software whatsoever. Nowadays, many demos have several complex 3D scenes but lack still art entirely.

In the mid-1990s, many groups had advanced 3D routines capable of dealing with complex objects but lacked members skilled or interested in 3D modelling. This lead many demos to only have simple procedural objects such as toruses or example file objects such as ducks and teapots. The use of these stock objects is the origin of a lot of insider humor within the demoscene.


Design, in its broadest sense, refers to everything that combines the separate elements of a demo into a consistent whole, down from the low-level synchronization of soundtrack and visuals to the overall choices in concept, structure and narrative.

Melon Dezign, active on the Amiga in the early 1990s, is known as one of the first groups that paid a considerable attention on design aspects.

Traditional recurring elements

While the demoscene itself is already a long-running phenomenon, to this day, a lot of demos have common elements which are reiterated in most modern demos as well.


A "fuckings" to a member of the Andromeda demogroup
A "fuckings" to a member of the Andromeda demogroup

It is traditionally standard in demos for the creators to send greetings (or greetz) and well-wishes to other demoscene groups, typically of the same platform. While these were often used in scrollers in the early days, in current, graphically more complex demos, greets are usually presented through a demo effect, such as mapping the group names onto objects or using particle systems to fill the letters of the groupname. Being greeted in a demo is usually considered an honor, especially when the demo is high-quality. While there's no rule on whom one should greet, tradition dictates that groups send greetings to other groups who they consider their friends. Other groups, usually newcomers to the demoscene who don't have sufficient contacts, prefer to greet groups whose works they consider influential or high-quality. Some groups occasionally send greetings to individual people.

Greetings sometimes include "fuckings", in which the creators can explain their dismay about another group's productions or behavior. Fuckings were more common in the early days of the demoscene, but are quite rare nowadays. Perhaps the most famous "fuckings" in a demo appeared in Nexus 7 by Andromeda, in which a voxel scroller said "The infinite Andromeda sends fuckings to -Lord Helmet- of Spaceballs for being a pathetic figure and a pityful liar!"


It is very important in a demo to display a list of names of people who made the demo. These are also usually presented through a graphical effect, but some groups prefer a cinematic approach and present the credits during the opening scene as movie-like overlays, or have them as an endscroller.

Specific platforms

  • Amiga demos
  • Apple IIgs demos
  • Atari demos (Atari ST)
  • Commodore 64 demos
  • Commodore VIC-20 demos
  • ZX Spectrum demos
  • Text mode demos

See also

  • Demoscene
  • List of demos by year
Retrieved from ""