User Interfaces of the Demo Scene
User Interfaces of the Demo Scene
演示场景(Demo Scene)的用户界面
Exploring the tools of the trade 探索行业工具 July 2026 2026年7月
Ahh, the demo scene - a digital art subculture, a motley gang of creative nerds, and a favourite pastime of mine. So much amazing art, music and code has been produced by sceners, and anyone who comes into contact with the scene might start to wonder exactly how - apart from hours of dedicated grind, of course. 啊,演示场景(Demo Scene)——一个数字艺术亚文化,一群充满创意的极客,也是我最喜欢的消遣。演示制作者(Sceners)创作了如此多令人惊叹的艺术、音乐和代码,任何接触过这个圈子的人可能都会好奇,除了数小时的刻苦钻研之外,他们究竟是如何做到的。
The scene has a long and storied tradition of building its own tools. Sometimes from scratch, sometimes by stealing ideas or even code from existing offerings. In a combination of teenage inexperience, old habits, a penchant for experimenting and a desire to make things look cool, this has resulted in some rather peculiar user interfaces. A few of them are presented below. Most of them are for the Amiga, but several other platforms are represented as well. 演示场景有着悠久且传奇的自制工具传统。有时是从零开始,有时则是借鉴甚至直接窃取现有产品的创意或代码。在青少年时期的经验不足、旧习惯、对实验的偏好以及让事物看起来很酷的渴望共同作用下,产生了一些相当奇特的用户界面。以下展示了其中一部分。它们大多是为 Amiga 平台设计的,但也涵盖了其他几个平台。
Elite Sinus Producer
Elite Sinus Producer(正弦波生成器)
Not wanting to be accused of clickbaiting, let’s start off with one of the main attractions: Elite Sinus Producer (sinus here is to be understood as sine), made by Ipec Elite for the Amiga. Demos are usually described as “real time”, which is true in the sense that they’re (almost) never just animation players, and that demo effects are produced, frame by frame, from code. 为了不被指责为标题党,我们先从主要看点之一开始:由 Ipec Elite 为 Amiga 制作的 Elite Sinus Producer(此处的 sinus 应理解为正弦)。演示通常被称为“实时”的,这在某种意义上是正确的,因为它们(几乎)从不是简单的动画播放器,演示效果是由代码逐帧生成的。
However, to achieve seemingly impossible technical feats, extensive “cheating” is employed. The most common cheat is probably the so called precalc, meaning that instead of doing complex maths on a 7 MHz (or even slower) CPU, lookup tables are utilized. A plethora of tools for creating such lookup tables exist. This is one of them. 然而,为了实现看似不可能的技术壮举,人们采用了大量的“作弊”手段。最常见的作弊手段大概就是所谓的“预计算”(precalc),即利用查找表(lookup tables)来代替在 7 MHz(甚至更慢)的 CPU 上进行复杂的数学运算。目前存在大量用于创建此类查找表的工具,这就是其中之一。
When first starting Elite Sinus Producer, the user is met with this menu. Upon pressing an F-key to make a selection, the corresponding menu option is highlighted and a sample of a cuckoo clock is played. Loudly. Here I’ve selected the “Flower” option. Pretty, no? This can then be saved to disk as (presumably) assembly source code. Any sprite would look nice when moving along this path! 首次启动 Elite Sinus Producer 时,用户会看到这个菜单。按下 F 键进行选择时,相应的菜单选项会高亮显示,并播放一段布谷鸟钟的采样声音。声音很大。在这里,我选择了“Flower”(花朵)选项。很漂亮,不是吗?然后可以将其保存到磁盘中(大概是汇编源代码格式)。任何精灵(sprite)沿着这条路径移动看起来都会很棒!
There’s also a handy help screen, which is so outlandish I had to grab a short film clip of it: Part of the background consists of moving blue raster bars, and the other part flashes between red and cyan. This obviously helps immensely when reading the text, displayed in a font designed with nothing but legibility in mind. 还有一个方便的帮助屏幕,它非常离奇,我不得不录制了一段短片:背景的一部分由移动的蓝色光栅条组成,另一部分在红色和青色之间闪烁。这显然对阅读文本有极大的“帮助”,因为该文本所使用的字体设计时完全没有考虑可读性。
Text Based Interfaces
基于文本的界面
Plenty of scene related tools are either command line utilities or predominantly text based. First out, we have the assemblers. There was a wide variety of assemblers for the Amiga, but the scene always favoured Seka, Asm-One and other derivatives of the same concept. There were so many different versions and hacks (Trash’m-one, for example) that the sprawling family tree rivals that of Unix systems. 许多与演示场景相关的工具要么是命令行实用程序,要么主要是基于文本的。首先是汇编器。Amiga 有各种各样的汇编器,但演示圈总是偏爱 Seka、Asm-One 以及基于相同概念的其他衍生版本。由于版本和修改版(例如 Trash’m-one)实在太多,其庞大的家族树足以与 Unix 系统相媲美。
Here’s Seka 2.0, and as we can see, it’s based on a commercial assembler. This type of assembler always asks the user for the size of the working memory to be allocated. They then enter a command line mode, which can be used to examine RAM memory and CPU registers, and load source files into the editor proper. 这是 Seka 2.0,正如我们所见,它基于一款商业汇编器。这类汇编器总是要求用户指定要分配的工作内存大小。随后它们会进入命令行模式,可用于检查 RAM 内存和 CPU 寄存器,并将源文件加载到编辑器中。
Here’s AsmOne in one of its many incarnations. It’s quite similar to Seka (in fact, it’s “Seka-Updated”), but has more built-in commands and presumably other improvements as well (I’ve never been much of a coder). Interface-wise, it opens its own screen, as opposed to running in a window on the default Workbench screen. 这是 AsmOne 的众多版本之一。它与 Seka 非常相似(事实上,它是“Seka-Updated”),但拥有更多内置命令,大概还有其他改进(我从来不是个出色的程序员)。在界面方面,它会打开自己的屏幕,而不是在默认的 Workbench 屏幕窗口中运行。
What if you found a piece of cool music or graphics in, say, a game? What if you wanted to steal some samples, or a sprite, or perhaps just save an entire tune for easy listening? Then you’d need a ripper - a tool for hunting through your computer’s memory, looking for remnants of such data after quitting the game. There were tons of various such rippers for the Amiga. 如果你在游戏中发现了很酷的音乐或图形怎么办?如果你想窃取一些采样、精灵,或者只是想保存整首曲子以便随时聆听怎么办?那么你需要一个“提取器”(ripper)——这是一种用于在计算机内存中搜索的工具,可以在退出游戏后寻找此类数据的残留。Amiga 上有大量此类提取器。
Here’s Multi-Ripper, which has a fairly representative set of features. Here’s another type of ripper, specifically written to look for Seka assembly sources in memory after the computer had crashed. The Amiga, like most other home computers, had no memory protection, and demo coding is a notoriously crash-prone activity. Saving often was common practice, but even seasoned coders sometimes messed up and forgot. With a bit of luck, the code could be extracted from memory after a warm reboot. 这是 Multi-Ripper,它具有相当典型的功能集。这是另一种类型的提取器,专门用于在计算机崩溃后在内存中查找 Seka 汇编源代码。Amiga 和大多数其他家用电脑一样,没有内存保护,而演示编程是一项出了名的容易崩溃的活动。经常保存是惯例,但即使是经验丰富的程序员有时也会搞砸并忘记。运气好的话,在热重启后可以从内存中提取出代码。
Here’s another type of sine precalculator, called The Sinus Creator. I have no idea if the numbers I’ve entered in the screenshot make sense, but the two-window text interface is interesting. Of course, the result can be saved as a Seka source file. 这是另一种类型的正弦预计算器,名为 The Sinus Creator。我不知道我在截图中输入的数字是否有意义,但这个双窗口文本界面很有趣。当然,结果可以保存为 Seka 源文件。
Music Trackers
音乐追踪器(Trackers)
Demo music has historically been made in trackers. Far from traditional notation, a tracker lets the musician enter tones along with various modifiers and effects in something that’s more reminiscent of a programming editor rather than regular composing. They also let the user manage instruments, whether sampled or synthesized. 演示音乐在历史上都是在追踪器(Trackers)中制作的。追踪器与传统的乐谱大相径庭,它允许音乐家输入音调以及各种修饰符和效果,其操作方式更像是一个编程编辑器,而不是常规的作曲软件。它们还允许用户管理乐器,无论是采样乐器还是合成乐器。
Sample-based trackers on the Amiga have an even more sprawling family tree than that of Amiga assemblers, but they all originate from Karsten Obarski’s commercial Ultimate Soundtracker from 1987. Being commercial and thus costing money, it was soon picked apart by sceners, which resulted in NoiseTracker, which was then revamped into ProTracker, which in turn exists in so many various versions and re-hashed hacks that it’s nigh impossible to keep track (heh) of. The sprawl is even sprawlier than that of Amiga assemblers! Amiga 上的采样追踪器家族树比 Amiga 汇编器还要庞大,但它们都源自 Karsten Obarski 于 1987 年推出的商业软件 Ultimate Soundtracker。由于它是商业软件且需要付费,很快就被演示制作者们拆解,从而产生了 NoiseTracker,随后又被改造成 ProTracker,而 ProTracker 又衍生出如此多不同的版本和修改版,以至于几乎无法追踪(双关语:keep track)。这种扩张比 Amiga 汇编器还要严重!
SoundMonitor 1.0 for the Commodore 64 (by Chris Huelsbeck) isn’t strictly speaking a scene release, and wasn’t called “tracker”. However, the interface (with one “track” per available sound channel) is what inspired the previously mentioned Ultimate Soundtracker, and is thus included here for posterity and correctness. Commodore 64 的 SoundMonitor 1.0(由 Chris Huelsbeck 开发)严格来说不是演示场景的发布作品,也不被称为“tracker”。然而,其界面(每个可用声音通道对应一个“轨道”)正是启发了前述 Ultimate Soundtracker 的灵感来源,因此为了后世参考和准确性,在此将其收录。
NoiseTracker by the Swedish duo Mahoney and Kaktus wasn’t the first, but it was immensely popular and came to define the tracker experience for years to come. Its legacy lives on just not in Protracker on the Amiga, but on several other platforms as well. Here’s Protrac 由瑞典二人组 Mahoney 和 Kaktus 开发的 NoiseTracker 虽然不是第一个,但它极其流行,并定义了未来多年的追踪器体验。它的遗产不仅在 Amiga 的 Protracker 中得以延续,在其他几个平台上也同样存在。这是 Protrac…