数字媒体的实验考古(六):老式个人电脑

作者:蓬岸 Dr.Quest
知乎文章编号:457471338
创建于:2022-01-14 7:18:57
修改于:2022-01-14 11:54:03


我们来到数字媒体实验考古的第6节课,老式个人电脑,今天我这个古董电脑博主终于可以聊一下古董电脑了。我今天在教室里也是摆了了几个老一点的电脑,首先我们来看一下我们现在来说老式电脑或者Oldschool computer、Retrocomputering等等说法,一般来讲是指什么事情呢?

当然来说在大众的观念里,可能10年以前电脑就算是“老电脑”了。而对于游戏发烧友来说,可能两三年之前电脑已经够“老”了,因为很多他们要玩的游戏都不能流畅运行了。

数字艺术中社群Demoscene中的“老电脑”

但是我觉得对于数字艺术研究者来说,定义“老电脑”这件事情的关键,还是要取决于那些仍在老电脑上创作的人们。仍然有一群发烧友在积极地用老电脑做新的数字艺术作品。在国外,特别是欧洲,这样的发烧友的创作相当活跃。他们的创作社群一般叫演示场景(demoscene)。demoscene的“场景”(scene)就像“地下音乐场景”那样围绕着一个特定的话题产生,而demoscene自然关注的就是其作品“演示”(demo)。

那么“演示”(demo)是个什么东西?它是实时生成的、非交互的电脑视听效果展示程序。那怎么理解这个事情呢?如果你们做过Processing编程的话,Processing开发的产生动画效果的程序就类似于一个demo。它们的画面效果都是电脑在运行时演算出来的,而不是像After Effects那样是电脑预先渲染好的视频然后展示的时候去播片。因此demo程序运行所产生的效果,会受到这种电脑硬件规格的限制,特别是电脑的CPU、显卡、内存等部件的限制。而非交互的特性则将demo和游戏区分开来,游戏的画面也是实时生成的,但游戏有着复杂的交互部分,同时画面要配合游戏的交互规则,而demo则不需要考虑这些,图形和声音效果就是demo的全部内容。下面的视频教程介绍了怎样用Processing做一个简单的demo。

Introduction to Demo Making

对于demoscene社群来说,最重大的活动是demo社群聚会,也就是demoparty。就像地下音乐场景种人们聚集在演唱会和音乐会中一样,demoscene的成员也会聚集在demoparty中交流技术、展示作品。就在上个周末(2021年11月12~13号),在美国的卡内基梅隆大学就举办了一场名为Demosplash的Demoparty。我们来看一下他们会在Party里做什么:他们会分Commodore 64蛋糕、会使用Amstrad CPC这样的老电脑做创作。在卡内基梅隆大学的电脑俱乐部里,也会摆出许多老电脑,我们教室里摆的这些,算是模仿了其中的一个小角落。

卡内基梅隆大学电脑俱乐部一角

这就是一个典型的,仍在活跃的老电脑社群,它属于依托大学活动的社群。那么这样的社群是怎么样来定义老电脑的呢?我们看到这里他们会有compo,也就是demo制作比赛,比赛会分好几个不同的参赛组别,其中“Retro”这一组别就是针对老电脑开设的。

比赛规则的第一条写道:

大致来说,"复古 "平台是指目前或近期没有生产的任何东西。作为一条经验法则,2000年以前生产的任何东西都属于这一类别。对于更近的平台,必须事先向组织者提出论据。
A "retro" platform is, roughly speaking, anything not in current or recent production. As a rule of thumb, anything produced before the year 2000 falls into this category. Arguments for more recent platforms must be raised with the organizers in advance.
Demosplash 2021 - Compos - Retro

按照这个规则,我今天带来这些电脑大概都符合这个标准。这里面配置最新的赛扬533是2000年生产的,它的主板是SIS620芯片组,是1999年的,算是能符合这个标准最晚的边界。但是在其他的一些比赛中就会有更加严格一些的定义。比如说在德国的Revision Party上也有一个demoscene的比赛,他们是这么规定的:

(参赛的)平台可以是家用电脑、家用游戏机和手持设备,包括第四代及之前的游戏主机,和第五代及之前的掌机,以及任何具有16位或更小数据总线的CPU的设备。
Allowed platforms are Home Computers, Home Consoles and Handhelds up to and including the time period of the 4th generation of Video Game Consoles and Handheld Systems up to and including period of the 5th generation or any device with a CPU that has a 16 bit or smaller data bus.
Revision 2021 - April 2nd to April 5th

那么第四代游戏主机是什么样的?它是指80年代末到90年代初发售的16位游戏机。比如说世嘉Genesis,国内通常叫世嘉MD、超级任天堂SNES、CD-I、Neo Geo等。Neo Geo家用机玩家不多,但它的主板和很多流行的街机相仿,比如说拳皇等SNK的游戏都在这个平台上出现过。

大概的情况就是欧洲的社群会以一个更严格的标准定义“老电脑”。其“新”和“老”的边界就卡在90年代初。芬兰Assembly Party(今年因为疫情停办)的规则定得非常详细。比如在实时生成类别中,就分了1K intro,4K intro等等,这个几K就是指程序的容量,1K就是只有1024个字节,4K就是4096个字节。这是一个非常严格的限制,因为即使是4096个字节也只有只有4000多个字母的空间,需要在这样小的尺寸里编写可执行的程序,还要要生成各种效果,这个事情是非常考验程序开发者的这种水平和思维的。其他的分组包括“老式(Oldskool)8-bit和16-bit”它大概对应德国Revision Party的要求,在我今天展示的机器里小霸王SB2000和Laser 310是符合这个级别的。

Assembly Party的实时生成demo比赛规则: Assembly Summer 2021 - Real-time rules

但是我们这台Celeron 533的电脑因为它是Pentium II、Pentium III级别的PC,就已经不符合这个组别的要求了,但它又和今天的PC有一些明显的区别。因此Assembly Party为这类老电脑设置了一个额外的组别“老式32-bit和64-bit”用来描述这个级别的硬件。但是这个标准又特别说明了“在PC平台上不许使用3D加速卡因为它会超出比赛机型的规格”。

而他们给出的比赛机型是Pentium 133、S3 86C775显卡、Gravis Ultrasound Extreme声卡、32MB内存和DOS。因此我们这台电脑虽然可以用作制作这个类别demo的开发机,但相较于比赛机的要求还是太新了,要参加这个类别的比赛就限制了我们制作的demo不许用3D加速卡等硬件、也不许用Windows95、DirectX API,和OpenGL等其他现代游戏开发的3D API和软件环境。

T-Rex Tech Demo 1 Playstation 1 Dino 1994_哔哩哔哩_bilibili

站在游戏机的角度上来讲,大概来说的话以Playstation为代表的第5代游戏机是一个分界线,即有32位RISC CPU和多边形3D加速芯片的游戏机。稍微宽松的一点的比赛的话,这个世代的游戏机和电脑就会被放进“Oldskool”里,严格一点的社群,就会把它排除在“Oldskool”之外。

那么我们来找一个例子来看一下demoscene社群会在会在老式电脑上干什么事情。

Oldskool compoRevision Online 2021 - Compo - Oldskool Demo

我们看到的这些视频,都是demo聚会比赛的录像。里面的作品都是近年来爱好者们在老平台上制作的,其中包含了很多不同的图像效果。这些作品都是非交互式的,所以不是游戏,它们着重展示的是开发者在对老式电脑软硬件环境的了解、图形编程的技巧和对组合编排音、视频效果的把握。

早期的8-bit电脑(1977~1990s)

然后我们来看一下这些老电脑它们内部具体的一些区别。虽然今天常提到“8-bit”风格,但8-bit内部大概可以分成两个阶段或两个世代。第一代的话是早期的8位电脑,以1977年上市的三款商品个人电脑Commodore PET、Apple II和Tandy TRS-80 Model I为代表。这三款电脑其实出现时间非常近,Apple II要比另外两款出现早几个星期。

1977年出现的的三款个人电脑中最为有名的是Apple II,它具有另外两款电脑不具备的功能:一个是软驱,这也是苹果创始人沃兹尼亚克的最重要的成果之一,他对软驱的改进可以让软驱更加廉价、性能也更好,可以广泛使用在家用电脑上面。另一个重要的功能是Apple II支持彩色图形显示,而其他两款电脑都只支持黑白图像。所以说Apple II是1977年的三款个人电脑里功能最丰富的一个,因此它也是最为重要的老式个人电脑之一。

“oldschool”风的图形工作原理-苹果和雅达利_哔哩哔哩_bilibili

这一世代的电脑使用8位的CPU,具有简单的图像输出能力,但没有卷轴(Scrolling)和精灵(Sprite)这些在之后世代的8-bit游戏中常见的图形特性。超级玛丽就是一款典型的“卷轴和精灵”游戏,游戏中背景是由图形芯片处理的卷轴,是可以无缝滚动的。角色在卷轴上面运动,也就是活动精灵。

但是早期的8位电脑是不具备这样的图像加速功能的,它只能够用CPU将图像数据写入显存来控制图像输出。同时这类电脑没有专用的声音芯片,发出声音的话也必须用CPU来控制扬声器发出蜂鸣声,因此无论是图像还是声音都会占用很多的CPU,为了留出资源处理操作交互,当时的游戏中少有复杂的音效和背景音乐。

这类电脑一般是用磁带或者软盘做外存,上一节课我想用磁带往Laser 310加载程序,但是没有加载上。我后来问了好多人,最后是 @张浩斌 老师提到用手机开到最大的音量就能给Laser 310加载程序了。

用手机为Laser 310加载程序 https://www.zhihu.com/video/1465416015039926272

第一代8-bit电脑流行的机型除了Apple II,还包括ZX Spectrum、BBC Micro、TRS-80等,但很可惜这些机器国内都挺难买到的。不过网页里的电脑博物馆都有模拟器,我们可以试一下Apple IIe和里面有代表性的游戏,比如《淘金者》(Lode Runner)。《淘金者》的红白机版本在国内很流行,但它的首发平台是Apple II电脑。在下面的视频里,可以找到各种不同平台《淘金者》运行的效果

移植游戏对比专辑【淘金者(Lode Runner)】_哔哩哔哩_bilibili

另外一个值得一看的游戏是Ant Attack,是ZX Spectrum平台上的,它是个人电脑上最早的等轴视角(Isometric)2.5D游戏。这款制作于1983年的游戏仍然有一个网站,作者Sandy White也在2011年接受了《从卧室到亿万产业》(From Bedrooms to Billions)摄制组的采访。

an Ant Attack homepageThe Making of 'Ant Attack!'

我们回来看一下我们的演示机Laser 310,它和大多数8-bit个人电脑类似,开机之后都是进入BASIC编程环境,可以直接通过命令做运算或编写程序。我们会发现当时的这些电脑键盘上面都会有一些方块符号,这些字符通常是用来拼接游戏画面的。在Sinclair ZX81上面也能找到类似的字符。

使用Laser 310的方块生成图案 https://www.zhihu.com/video/1465427513342656512

Laser 310出现较晚,是1985年上市的,当时它是一款比较便宜的低端8-bit电脑,因此没有比较强大的视频和声音芯片,只能显示8种颜色,也没有很丰富的音效,配备软驱的情形也比较少,大多数使用者都是使用录音线加载程序的,其功能水平仍处于第一代8-bit电脑。

[Laser310]复古z80主机游戏Kamikaze Invaders_哔哩哔哩_bilibili

高级的8-bit电脑(1979~1990s)

但第二代8-bit电脑出现的要比Laser 310更早,在1977年第一批家用电脑出现之后不久,雅达利就开始尝试把游戏机上丰富的图像和声音功能引入到用电脑里了。1979年雅达利推出了第一批带有专用的图像和声音处理芯片的家用电脑:Atari 8-bit系列。这个系列首发的机型包括Atari 400和Atari 800,分别标配4KB和8KB内存,同时它们都配置了专用的图像和声音处理芯片,也因此具有了卷轴和精灵这样以往游戏机才有的图像功能。

卡内基梅隆大学电脑俱乐部的Atari 800

以Atari 8-bit系列为起点的第二代8-bit家用电脑的图像和声音能力更加强大,要远远超出Apple II、TRS-80或Laser 310这种较早或较低端的8-bit家用电脑,也因此demoscene中大多数8-bit demo也是围绕着这一世代的家用电脑开发的。比如说Commodore 64就是最受欢迎的demo开发平台,直到今天仍然有许多爱好者围绕着它进行创作,当我们在欧美提到8-bit风格时,很多时候人们的第一反应都会联想到Commodore 64的画面和声音风格。

“oldschool”风的图形工作原理-任天堂和康懋达_哔哩哔哩_bilibili

Commodore 64 demo从80年代至今已经发展超过30年,其作品风格已经非常成熟了。许多创作定式也被沉淀下来,比如滚动的字幕,彩色光条,伪3D模型和视频片段等。许多功能都是Commodore 64电脑在设计之初所未曾想到的用法,比如8-bit电脑普遍不具备视频播放所需要的高速全屏幕刷新功能,因此需要使用特殊的办法对视频画面进行处理,才能实现全屏播放视频的效果。许多在Demo中的效果,都是一代代发烧友不断地尝试、破解、积累而逐渐开发出来的,而Commodore 64电脑的潜力,也一步步被挖掘到极致。

流行的带有专用图像和声音芯片的“第二代”8-bit家用电脑除了Atari 800和Atari 400、Commodore 64之外,常见的还有Amstrad CPC和MSX。

Amstrad CPC是英国流行的一款电脑,它上市于1984年。在网页里的电脑博物馆里可以玩到它的模拟器。你可以看到它上面的游戏,比如《1943》就是典型的卷轴和精灵画面,以及多声部的芯片音乐,这是后期8-bit电脑和游戏机标准的游戏特征。

【LGR黑历史】长的可以打板球的电脑——Amstrad CPC 464评测(自制熟肉)_哔哩哔哩_bilibili随机回顾370款Amstrad cpc游戏_哔哩哔哩_bilibili

MSX是一系列日本流行的8-bit家用电脑,上面诞生了不少著名的游戏,比如《合金装备》系列最早就出现在MSX平台上,我们发现初代的《合金装备》没有用到卷轴,背景是静态的,但上面的角色精灵是活动的。当角色走到背景边缘的时候,整个背景就会切换到下一个区域。

合金装备1(MSX版)- 通关视频_哔哩哔哩_bilibili

相比游戏开发者基本都会遵守硬件规格的限制和原始的设定,demoscene作品往往会试图突破这些限制,包括活动3D模型和全屏视频都是8-bit家用电脑图形芯片所不能提供功能,但爱好者们的努力下却得以实现。

电脑变游戏机,游戏机变电脑

在8-bit时代,许多的游戏机和电脑都共享了相同或相似的硬件架构,比如说Atari 8-bit系列的芯片组就被用在Atari 5200游戏机上。Commodore 64电脑的芯片组也被用在Commodore 64 Games System上。它们的芯片组都是先在家用电脑上使用,然后对家用电脑进行裁剪开发成游戏机的。当然也有先开发游戏机,然后再对游戏机扩展成为家用电脑的例子,比如在ColecoVision的基础上开发的Coleco Adam电脑,以及任天堂Famicom的Family BASIC配件及其衍生而来的“学习机”产品。

Commodore 64 Games System Review - C64GS | Nostalgia Nerd

我们今天的另一台演示机是小霸王SB2000,它发售于1998年,几乎是最后一批8-bit家用电脑。其配置相比大多数80年代的家用电脑也非常奢侈,它的1MB内存已经超出了许多著名的16位电脑,比如说1981年的初代IBM PC低配内存只有16K,而1984年的初代Macintosh 也只有128K内存,1987年的Amiga 500才标配512KB内存,直到286之后的电脑才开始有1MB内存的配置。关于比尔盖茨有一个流传了很多年的梗,就是说比尔盖茨曾说过“640K就足够运行所有DOS程序了”,这也从一个侧面看出1MB对于8-bit电脑来说却是是个很大的容量。

小霸王SB2000使用了联华电子的UM6576 CPU,相比国产红白机常用的UM6561 CPU它主要的变化是在输入输出接口上进行了改进。UM6576增加了标准的键盘和鼠标接口,跟IBM PC的键盘鼠标兼容,同时支持PC标准的1.44M软驱,这对于8-bit电脑来说也是很大的容量,相比之下大多数8-bit电脑的软驱都只有100多KB。除此之外,在声音和图形部分,小霸王SB2000基本上继承了红白机的配置,但在声音上增加了语音合成的功能。

小霸王SB2000在它的固件里有一套完整的DOS,能够支持大多数PC-DOS的命令。许多教学软件里都也使用了PCM语音,这在8-bit电脑里也是比较高级的功能。

下面的视频来自 @汤神马圆 大家也可以关注他的专栏 :

电脑学习机考古估计是B站最靠谱的小霸王测评了!_哔哩哔哩_bilibili

由于小霸王SB2000主要是在中国卖,所以它没有像海外demoscene社区那样活跃的开发者社群,因此许多功能到今天也没有被完全挖掘出来。而我接下来演示的也大多数是国外的爱好者为红白机开发的demo。

[SB2000]软盘游戏镜像,写盘,加载,运行_哔哩哔哩_bilibili

在小霸王SB2000上可以运行许多为普通红白机开发的demo,因为小霸王能够使用软盘,我们可以不用烧录卡而直接把ROM写到软盘里去运行。相比普通红白机,作为家用电脑的小霸王SB2000开发和调试起来都会更方便一点。

小霸王SB2000运行一段NES demo https://www.zhihu.com/video/1465428109269348352

第一个demo里面我们可以看到demoscene作品中常见的旋转三维立方体和滚动字幕,这些字幕往往是对其他demo团队或聚会参与者的问候。这个demo比较简单,只有一个效果,第二个demo就更复杂一点,它是一张2020年的新年电子贺卡。

[SB2000]软盘加载demoscene-ny2020_哔哩哔哩_bilibili

小霸王所使用的DOS系统和国内另外几个学习机开发商所使用的都很相似,比如步步高软驱一号和98型学生电脑,以及邦谷小PC等。另外值得一提的是小霸王SB2000在开发时有国防科工委指挥技术学院的参与,它很可能曾经被用于军事用途,或许用小霸王这样8-bit电脑作为废土世界的末日电脑会是一个蛮有意思的科幻话题。

芯片音乐

在8-bit个人电脑上还发展出一个社群,算是Demoscene的一个外延,就是芯片音乐社群。我刚才提到在“第二代”8-bit电脑里会有额外的声音芯片,这种芯片跟我们现在在PC上用的声卡的功能是不太一样的。现代PC上面的声音大多数都是靠录音采样然后通过采样回放发声的,但是在8-bit电脑上采样就太占存储空间了。小霸王SB2000靠着90年代的1.44MB软驱这种“穿越”级别的硬件可以用PCM采样存储语音数据,但是想要保存和回放高质量的音乐录音仍然是很困难的。

因此8-bit电脑上的声音通常是使用可编程声音发声器(PSG,programmable sound generator)芯片来产生音乐的,也就是声音芯片(sound chip)。大多数的声音芯片会有2~4个波形通道以及一个噪音通道。像Commodore 64的SID芯片,就有三个波形声道加上一个噪音声道。而红白机则是4波形+1噪音的组合。今天为声音芯片制作音乐的主要创作方法是用使用tracker,也就是序列器。它是通过把一系列控制声音芯片的命令放到时间顺序的轨道上面来实现编写音乐的。

CajoNES https://www.zhihu.com/video/1465438604172947456

我们可以用CajoNES在小霸王SB2000上试做一段芯片音乐。这个软件是一个典型的tracker操作模式的软件,如果你熟悉新一点的音乐制作软件的话,就会发现用起来很像鼓机。在界面中的表头可以看到IPA、IPB、IPC,MDA、MDB、MBC等标题,它们分别对应A、B、C三个波形通道。在红白机里的四个通道里,A和B是方波,C是三角波,D是噪声,所以A和B可调的项目是相同的,C和D则各有不同。表格的最后一列是CTRL,也就是控制轨道,用以加入循环或中止等控制指令。

CajoNES在启动之后就会自动加载一个例子,我们可以从修改这个例子开始实验芯片音乐的制作流程,比如IPA/IPB就是音符开始的音高、MDA/MDB就是音符在播放时是升调还是降调,MSA、MSB就是音调变化的速度,EVA、EVB则是振幅和衰减。通过修改这些音符,就可以组成自己希望得到的乐句。而多个声部的存在,也让声音芯片可以产生复杂的多和音乐曲。

CajoNES说明书: neilbaldwin.github.io/n

当然芯片音乐也会有一些这种比较“魔性”的玩法,比如SMMM就是一款操作比较傻瓜化的噪音生成软件。

SMMM说明书: neilbaldwin.github.io/n

SMMM运行效果 https://www.zhihu.com/video/1465441723605843968

16-bit电脑与Tracker音乐

下一个我们要讲的是16位的个人电脑,它工作的方式就离今天的电脑更接近一些。最常见的16位个人电脑处理器是Intel 80x86及其兼容型处理器,也就是通常所说的x86处理器。这个系列的处理器都是Intel 8086的后续或衍生型号。除了IBM PC,x86处理器还被用在NEC PC-98、富士通FM Towns等不兼容IBM PC的机型上。

另外一个比较重要的16-bit处理器是摩托罗拉68000系列,他被用在Amiga、Atari ST、Macintosh等电脑和世嘉Genesis、Philips CD-I等游戏平台上。

Amiga和Atari都使用了摩托罗拉68000处理器,同时也都支持图形界面

16-bit时代的电脑最重要的特点就是图形操作界面的广泛使用,无论是苹果Macintosh、Amiga OS还是Atari ST所使用的GEM以及IBM PC上最流行的微软Windows,都开始支持鼠标驱动的窗口化操作。同时,高彩色显示能力也出现在一些硬件平台上。

生成声音的方式也逐渐分化成两种方式:一种方式似于8位个人电脑,使用指令控制声音芯片来生成声音,当然这个时期的PSG往往更强大,能够同时输出更多和音。典型的例子是AdLib声卡,可以支持FM合成多达9个和音。另外一种方式就是数字音频的运用,电脑支持直接播放数字化的音频采样,典型的例子像是Amiga电脑的Paula芯片支持回放8-bit采样精度,最高可到57Khz的数字音频,同时它还支持左右声道各两和音的多音轨输出。

在80年代中后期到90年代初,Amiga和Atari ST是产生最多demoscene作品的平台,而Macintosh由于流行的型号如Mac SE、Mac Classic都是黑白屏幕,支持彩色的Macintosh II又太贵而不够流行,因此产生的作品就比较少。IBM PC平台在90年代386、486处理器以及之后的Pentium级别电脑上逐渐成为被广泛使用的平台,这得益于大量廉价同时功能强大的第三方声卡、显卡的出现。

[OPL2LPT]并口adlib声卡运行at2播放badapple_哔哩哔哩_bilibili

接下来我要展示的一个程序是AdLib Tracker,它的功能和前面展示的CajoNES有些类似,都是音轨序列类的音乐制作软件。从名字可以看出,它是一款为AdLib声卡开发的Tracker软件,今天原始的AdLib声卡已经不容易买到了,但是AdLib声卡所使用的雅马哈YM3812(OPL2)芯片还是比较容易买到的,因此一些爱好者们也开发了OPL2LPT,也就是接在电脑LPT打印口上的外置型AdLib声卡。

【8-Bit Guy】并口的 Adlib 声卡 OPL2LPT 组装评测_哔哩哔哩_bilibili

YM3812芯片可以支持9和音,比红白机的4和音更多,而且FM合成能产生的音色也更丰富。但是我们也会发现,使用声音芯片制作的音乐通常不能包含人声、语音,这是因为语音通常是需要采样回放才能产生的。而且你会发现当在Tracker软件播放中途按下停止时,音乐有时并不会停止而是会持续播放最后一个音符,这是因为Tracker是顺序地向声音芯片发送指令的,如果发送了“连续播放”却没有发送“停止”指令,声音芯片就不会停下来。

类似Amiga电脑的那样基于采样的制作方式的软件也叫做“Tracker”,其实对采样进行修饰、编排并制作音乐才是Tracker的起源,使用声音芯片的Tracker是采样类的Tracker被爱好者社群广泛接受之后借鉴其操作方式开发的。我们展示的是FastTracker,是DOS平台下最常用的Tracker软件之一。下面是FastTracker2的入门教程,从中可以大概理解采样类Tracker的制作过程。

Fasttracker 2 - Tutorial 1: Basics

OPL2LPT是不能支持FastTracker的,因为YM3812芯片并没有可以将数字信号转换为模拟信号的DAC(数模转换器),所以我们用到了Covox Speech Thing,它是一个简单的8-bit DAC,可以播放数字音频采样。在FastTracker里,你可以单独查看采样,并单独播放它们。

自制 Covox 上机展示_哔哩哔哩_bilibili

如果说声音芯片PSG是一组可编程控制的合成器,数字采样播放就像是一组编程控制的采样录音机和效果器。当使用Tracker软件时,它们的操作逻辑有些相似,但是发声的原理确是颇为不同的。这就是16位电脑时代最常见的两种电脑音乐形态。

关于更多声卡和声音芯片的故事,可以参考:

蓬岸 Dr.Quest:声卡和游戏音乐的发展史(上)

蓬岸 Dr.Quest:声卡和游戏音乐的发展史(下)

蓬岸 Dr.Quest:电脑音乐格式之争——MIDI与Tracker(上)

蓬岸 Dr.Quest:电脑音乐格式之争——MIDI与Tracker(下)

Windows,向“新式”电脑迈进

基本上来说“老式电脑”的历史结束于Windows。特别是Windows95出现之后,它改变了PC上多媒体软件的主流开发方式,并带来了从软件到硬件整个PC的多媒体生态的改变。Atari ST和Amiga电脑都被Windows 95所打败,甚至说,在Windows 3.1时代IBM PC+Windows的Wintel组合就已经奠定了胜局。

其中一个重要的变化是Windows 3.x重新定义了电脑处理音视频的API,从此之后,安装Windows的电脑就成为了我在两节课之前所说到的现代意义的多媒体电脑。我们这台Celeron 533机器也能跑Windows 3.x,让我们能够体验一下Windows 3.x的多媒体特性。

微软在Windows 3.x(确切地说是Windows 3.0 Multimedia Extensions及之后的版本)中提供了一系列标准的多媒体API。音频部分使用MIDI作为数字乐器及合成器的API,同时也支持数字音频录制和回放API,但并没有提供PSG或FM合成的API。在Windows 3.x下,硬件驱动会用声卡的FM合成功能模拟MIDI设备,软件也以操作标准MIDI设备的方式调用这些功能,很少直接操作声卡芯片的FM合成器。这在相当程度上削弱了不同声卡芯片的区别,也导致许多人将声卡的FM合成功能误认为是“MIDI功能”。

Windows 3.x中的MIDI https://www.zhihu.com/video/1465456042952224768

在Windows 98中,微软内建了Microsoft GS 波表合成软件合成器(Microsoft GS Software Wavetable Synthesizer)。当使用这个软件合成器时,系统通过软件完成声音合成,并直接以波形数字音频的方式传给声卡,而声卡的FM合成功能就完全被闲置了。这让各厂家生产的声卡芯片中的功能区别大大减少,而Windows开发者也不再像DOS时代那样需要了解不同声卡芯片的技术细节,这埋下了独立声卡隐退的种子。

我们的演示机使用的是Windows 3.2,它是Windows 3.1的中文的加强版,是1994年发布的,只比Windows 95早出了一年。Windows 3.2是第一个在国内流行起来的Windows版本,同时也是我自己用过的第一个Windows版本。Windows 3.2曾经给中国的软件生态带来一系列很重大的变化,特别是Word和Excel的Windows中文版的发行,曾一度把WPS、CCED等国产办公软件逼到绝路。

Encarta 94多媒体百科全书 https://www.zhihu.com/video/1465456817141100545

在Windows3.2上面已经具备了相当多的当代多媒体PC的特征,比如说微软的Encarta 94多媒体百科全书就几乎完全抛弃了之前8-bit家用电脑上的遗产。作为一个当代意义上的多媒体软件,它使用CD-ROM的大容量存储作为基础,声音文件全部使用预录制的数字音频,视频也是通过视频编码压缩过的录像文件。完美的契合了两节课之前讲到的多媒体PC的特征。

瀛海威《去日留痕》 https://www.zhihu.com/video/1465457737409130496

在1994年,微软为Windows 3.x提供了新的绘图API WinG,又在1995年开发了DirectX,这些API都大大方便了人们为Windows开发高性能的3D图形应用程序,在使用这些API时,开发者可以较少的关注硬件之间的差别,而围绕Windows提供的功能进行开发。这改变了人们在PC上开发高性能多媒体软件的方式。

Farbrausch使用了基于Direct3D的工具来创建demo
【技术的汉斯】fr-08 the product_哔哩哔哩_bilibili

特别是在3D加速卡出现后,利用OpenGL或Direct 3D这样的操作系统API能够实现许多之前难以实现的效果,在demoscene社群中,新的开发技巧也更关注操作系统API而非特定硬件的特性。直到今天,PC上的多媒体软件开发依然主要建构在DirectX之上。这种开发方式上的区别即是硬件规格之外Oldskool和Newskool demo的真实界限,也是区分“古董电脑”和“现代电脑”最为核心的差异。