梦幻主机的灵魂:复古计算

作者:蓬岸 Dr.Quest
知乎文章编号:374471848
创建于:2021-05-22 9:32:37
修改于:2021-05-22 8:38:18


当我们玩Pico-8这样的Fantasy Console(虚构游戏机、梦幻主机)的时候,可能大家会发现里面的很多东西它不合今天游戏开发者的习惯,比如说它内置的很原始的文本编辑器、图形精灵编辑器、以及它制作音乐的工具Tracker也叫音轨序列器,都与今天开发者的工作流明显不同。

或许你会好奇Pico-8为什么要是这样的设定,如果说我们仅仅从一个今天的软件开发者的背景知识或是对开发环境的预期来看的话,其实是没有办法理解这些元素的,其实这背后都是一系列来自复古计算(Retrocomputing)社群的语言和文化符号。

本文是为“独立之光梦幻主机工作坊Ep.1——Pico-8第一次开发就上手”的演讲稿,关于这次活动的信息在:matataki.io/p/8571

复古计算社群都做些什么?

我们先从一个远景的角度,来大概的看一下复古计算社群都包括了什么样的人和事物。因为在国内,大家一说玩老电脑人,大概就会想到上了点年纪的,有一些怀旧情绪的人。要么就是那些炒作古董的人,毕竟老电脑也算是一项“杂项”收藏品。

但是在国外复古计算社群里,参与者的年龄层次、专业背景都颇为广泛。其中相当一部分是具有黑客精神的电脑爱好者,许多本身就是软件开发者,或是熟悉硬件的工程师和爱好者。

这些爱好者们的实践也是多种多样的,玩老电脑和修复老电脑自然是许多爱好者们都会去做的事情,也有许多人会为老电脑开发一些新的外设,这些爱好者往往不追求修旧如旧,而是会自己动手为老电脑增加新功能,比如说他们会给8位的老电脑开发WiFi网卡,或者SD卡适配器。也有一些爱好者会用FPGA来重现一些老式电脑的功能,比如说MiSTer就是一个用FPGA重现老电脑的硬件。

也有一些爱好者会编写模拟器软件,比如说目前最有影响力的模拟器软件社群MAME。爱好者们也会参与到数字保存活动中,比如说很多老式电脑的软盘格式跟PC软盘都是不兼容的,而爱好者们会开发专用的工具来去读取这种老式电脑软盘里的数据。

此外,爱好者们还会为老式电脑设备开发新的软件和游戏,在今天,无论是红白机或者Gamboy这样的老游戏机,还是Commodore 64这样的老式电脑,都仍然有新的开发者加入。同时,爱好者们还会对老设备进行二次开发和创作,比如用老式电脑来制做芯片音乐(Chiptune)以及装置艺术等等。

复古计算图谱

这张图是我制作的一个复古计算社群中的硬件图谱。可以在图谱的最左边一列,我们可以看到一些老式的电脑设备,比如以SGI工作站为代表的老式商用电脑设备、Commodore 64为代表的老式家用电脑,以红白机为代表的老式游戏机,和以Atari 1020为代表的老式外设,Atari 1020看起来像一个打印机,但严格的说它并不是“打印机”而是一台笔式绘图仪(pen plotter)。

在老式电脑旁边的一列,都是基于老式设备开发的新产品,比如可以模拟很多不同老式电脑和游戏机的MAME模拟器,以及SID Station合成器,它使用的是Commodore 64同款的声音发生芯片,是基于Commodore 64硬件开发的一款独立的电子音乐合成器。此外我们还可以看到MiST它是从Amiga电脑的FPGA重制版本Minimig发展而来的,而我们前面提到的MiSTer,则又是在MiST的基础上开发的。

图上的第三列是在某种程度受到老式电脑启发而开发的硬件,比如说树莓派基金会的创始人Ebon Upton就明确的说过树莓派的起源是受到BBC Micro的启发,希望给年轻一代一个开机即编程的环境。而Arduino则在很多情况下被用在与Z80处理器相关的DIY项目中。

然后值得一提的是WiFi232,是一种基于ESP866,也就是NodeMCU微控制器的DIY项目,这个项目用ESP8266小开发版为老电脑添加WiFi功能,算是一个“WiFi网卡”,它具有RS232标准串口,因此可以连接到许多不同型号的老电脑上。安装了WiFi232的老式电脑可以运行终端仿真程序,访问专门为老式电脑开发的BBS等网站。

【LGR】古董机也要上WiFi!WiFi232和BBS的爱恨情仇_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

然后虚拟软驱在国内还是挺常见的;Arduboy是在Arduino的基础上开发的游戏机,国内应该也有一些人玩过;还有就是Retrogame复古游戏机,是一款国内厂家开发的设备,是专门为玩老游戏、运行模拟器开发的一款专用掌机;这个是GameShell,也是由国内的团队开发的一款Linux游戏机;然后还有我们这次的主角Fantasy Console,我只是用了一个图标来代表它,Fantasy Console发展出许多不同的种类,但共同的特点就是希望能够脱离具体的硬件,而还原类似Commodore 64这类老电脑的编程体验;以及Teenage Engineering开发的Pocket Operator合成器,它的出现也是受到了芯片音乐社群的启发,从某种上你可以认为看作是SID Station的精神继承者。

保护和混搭

因此大家可以看到:复古计算社群并不仅限于玩老的硬件,而是开发了许多奇怪而有趣的新产品。如果用最简单的一句话来形容复古计算社群的特点的话,我认为应当是是2013年多伦多大学的一篇论文:《Retrocomputing as preservation and remix》(Takhteyev, Yuri; DuPont, Quinn,2013)即《作为保护和混搭的复古计算》,复古计算社群不仅希望保存哪些我们曾经有过的数字生活元素,而且更多的希望从中抽取一些元素,然后启发人们创作新的东西。

复古计算社群看重的是对数字文化与流行文化的保存和发展,这与通常理解的收藏社群有着迥异的精神追求,相比之下收藏社群追求的物品成色、稀有度,以及拍卖价格在复古计算社群里并不被看重。

跨越代际的乐趣

我接下来会给大家看一段视频,是荷兰的家用电脑博物馆,这个博物馆曾经试图在Kickstarter上众筹,虽然众筹最后没有成功,但是博物馆还成功运营起来。这个博物馆它在相当程度上展现出了国外的复古计算社群的精神面貌。

看过这个视频,大家可以非常清楚的感受到国外的复古计算社群在设计博物馆的时候所表现的与我们在国内看到的大多数博物馆不同的气质。首先是他们的电脑几乎都是可以运行的;其次是所有的这些电脑都会展示不少游戏应用,比如说在视频里我们看到展示的电脑有运行《偷金者》和《吃豆人》,他们会非常的希望孩子们来玩,把80年代卧室程序员的主力军——70后甚至更早的年龄群体的童年的回忆分享给当下的孩子们。

对于我个人来讲,我跟他们一样,我同样相信老游戏的乐趣一定是跨越代际的,不仅属于当时的玩家,也属于现在的参与者。这种认知是不同于国内老电脑收藏社群的一般认知的,在收藏社群中许多人仍然坚持认为老电脑只是属于特定代际的乐趣,是建立在已有的回忆上的,而我并不赞同这一点。

开发新外设

接下来是一个为老电脑开发新的外设和配件的例子叫做FujiNet,这个项目最开始的目的是为世界上第一款游戏家用电脑Atari 800开发一个WiFi网卡,最初它设计的功能与我们前面提到的Wifi 232类似,是为了让Atari 800能够通过现代的无线局域网连接和访问老式的文字的BBS。在开发的过程中,开发者逐渐为它加入了很多新功能,比如说虚拟软驱和打印机,虚拟软驱的功能与仿真软驱类似,可以将储存卡里的软盘镜像文件模拟成软盘,而打印机的模拟功能可以将老电脑的打印输出转换为PDF文件并保存在储存卡中。

FujiNet官网:What is #FujiNet ? - #FujiNet 在推特上搜索#FujiNet话题同样可以找到许多关于这款硬件的信息。

特别值得一提的是,FujiNet的开发者的同时也开发了 IRATA.ONLINE,同时也是LinuxMCE的开发者之一,这也体现出复古计算社群和开源社群的联系。IRATA.ONLINE是老式图形终端系统,也是最早的计算机辅助教育系统PLATO系统的现代复刻版本。

复原历史的碎片

接下来的一段视频,我们会看到安迪沃霍尔博物馆和卡内基梅隆大学这样的艺术和研究机构是如何使用复古计算的手段恢复数字媒体艺术历史上重要的创作的。

从安迪·沃霍尔的电脑中恢复消失30年的艺术作品_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

这段视频大概拍摄于2014年,展示了人们从安迪沃霍尔曾经使用过的Amiga电脑软盘里面恢复了被遗忘了30年的数码绘画的过程,Amiga电脑是第一款现代意义上的多媒体个人电脑,在数字媒体历史上有很重要的地位。

在1980年代中,安迪·沃霍尔在当代艺术中的影响力让许多科技公司都试图拉拢他,包括苹果公司在开发出Macintosh之后也曾经送给安迪沃霍尔一台Mac,但当时的Mac电脑只有黑白显示器,这让擅长使用鲜明的色彩进行创作的安迪·沃霍尔并不满意,而Amiga电脑它能够显示非常丰富的色彩,这让安迪·沃霍尔有机会亲自站台1985年的Amiga电脑发布会,并成为当年流行文化中一个很有影响力的事件。

关于安迪·沃霍尔与Macintosh和Amiga电脑的故事:When Steve Jobs Gave Andy Warhol a Computer Lesson

那么视频中的研究人员是怎样从当时软盘里恢复数据的呢?这其中的关键就是视频中出现的KyroFlux,它是一个特制的软驱控制器,能够使用今天较为常见的IBM PC标准软驱读取较为罕见格式的软盘并制作镜像,从而把里面的数据还原出来。

视频中也使用了模拟器软件,用来执行当时软盘上的程序,以及查看其中保存的数据,在这一系列的技术手段的帮助下,研究人员得以重现了新媒体艺术历史中被人们忘记多年的一个片段。

电音Remix

如果说上面的故事成功的展现了复古计算社群的“preservation”,也就是“保护”的那一面,那么下面这个事情则是“remix”混搭的代表,爱好者们为Amiga电脑开发了一款“打碟”软件PT-1210 Mk1,但这里的“碟”既不是黑胶唱片也不是CD,而是软盘,它能够播放的音乐都是以Tracker格式存储的,也就是音轨序列格式。

PT-1210 Mk1 Protracker Amiga电脑虚拟转盘_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

Amiga电脑所使用的Tracker格式要比8-bit电脑和游戏机里的更强大,因为它是可以支持采样的,Amiga Tracker的制作者可以把黑胶唱片里面的一小段录下来,保存成一个“pattern”也就是一个音乐片段,并对一系列这样片段进行重新排列组合形成新的乐曲。大多数注册机音乐也是利用Tracker制作的,制作这种音乐并不使用MIDI指令和波表,因此一些地方把这类音乐描述为“MIDI”是一种误解。

PT-1210 Mk1软件界面

在软件的截图里我们可以看到Amiga电脑的硬件支持四个音轨,而Pico-8里面的的音乐的制作程序也是4个音轨,这种设计也是受到Amiga电脑的影响,因为最初的Tracker软件Ultimate Soundtracker(1987)就是诞生于Amiga电脑上的,Fantasy Console社群在方方面面都深刻地体现出复古计算社群的印记。

这个名叫PT-1020Mk I的软件虽然运行在老电脑上,界面也比较“古风”但它却是18年~19年间开发完成的新软件,这是复古计算社群中很有代表性的做法——即将老式电脑融入到当下的诸多文化场景里;对于爱好者们而言老电脑不是死去的、停滞的,而是仍然在不断发展,并与其他流行文化紧密联系的。

电脑迷的新节庆

国外的复古计算爱好者也会通过线上或线下的方式相互联系,并定期组织一系列活动,其中最著名的活动叫做Vintage computer festival,古董电脑节,爱好者们会像参加音乐节那样从不同的地方聚集在一起,这个视频里面我们可以看到每个展台都是爱好者们自己去申请的,他们会摆出自己收集的老电脑和开发、制作的作品。此外爱好者在参展的时候,通常会给自己的展台一个特定的主题,展示的内容都会与这个主题相关。

接下来的视频,是在美国亚特兰大CoMA美国计算机博物馆(Computer Museum of America)举办的东南复古电脑节:youtube.com/watch?

Demoscene(演示场景)也是与复古计算紧密相关的一个数字文化社群,这一科技文化社群已经在芬兰和德国被认定为非物质文化遗产,在Pico-8社区里,大家也能看到许多的作品它是非交互式的,开发者制作它们通常是为了展示某方面的编程的技巧,这类作品就叫做Demo,Demoscene社群中的发烧友们几乎会利用到所有可以生成图像或声音的电脑设备,为了交流技术成果和相互比赛,他们也会定期举办社群聚会,这种社群聚会叫做Demoparty,演示聚会。

演示聚会的场景看起来跟游戏爱好者组织的的Lan Party或电竞比赛很类似,通常每个参与者都会带自己的电脑参加聚会,这些电脑可能会非常新,安装了代表当代个人电脑性能的高档CPU和显卡,也会有很多人带比较老式的电脑参会。无论是新电脑还是旧电脑,对于Demo爱好者来说的一大目标就是要将其性能发挥到硬件的极限,来实现之前从未有过的图像效果。

为何家用电脑如此重要?

大家会发国外现复古计算社区会特别偏爱家用电脑,即Home computer,许多时候国内罕见的Commodore 64或者Atari 8-bit系列的曝光率甚至堪比红白机;相比之下UNIX和小型机等电脑设备对于国内的用户来说也是陌生的,但他们在国内被讨论的还是要比家用电脑多,为什么会有这种反差呢?

我们回到1980年代的时代背景来看,在发达国家电脑爱好者能够接触到的设备主要有三大类,第一类就是游戏机,它的特点是游戏内容很丰富好玩,但是希望在上面做二次开发的爱好者来说,游戏机却是一个非常不友好的设备。因为以任天堂为代表的硬件厂商会设法阻止自行开发的做法,比如红白机卡带里面就设计一个加密芯片来阻止自制卡带运行。

当然,后来雅达利的工程师们成立的Tengen,以及英国游戏开发商Codemasters破解了红白机的加密芯片,但是针对游戏机开发自制游戏在相当长的一段时间里仍然是一件相当困难的事情。

在电脑爱好者光谱的另一端则是小型机、工作站、Unix操作系统为代表的学术计算社群,当时发达国家的大学中往往安装有这类电脑,有些时候也会有针对公众开放的社区性的计算中心。但是这种计算机他们往往只有文字终端,或黑白屏幕的图形终端,也没有声音效果,因此并不适合于游戏。这限制了个人爱好者在上面的发挥。

Atari 400电脑

1979年的Atari 8-bit系列是第一款为游戏设计的的家用电脑,在此之后ZX Spectrum和Commodore 64的出现推动了1980年代家用电脑的普及,而这些开发容易又适合游戏的电脑就成为了自制游戏和Demoscene的乐园,那个年代很多的青少年都会花许多时间围在这样的电脑跟前,尝试自制游戏或者改编已有的游戏。

同时,家用电脑上的游戏很多时候是“开源”的,当时网络还不普及,所以代码也并不是在网上传播,而是电脑杂志会直接在内容中刊载游戏源代码;此外通过磁带和软盘分发的软件很多时候也是以源代码形式存储的,可以直接读取和修改。

1985年12月《COMPUTE!》杂志刊登的BASIC游戏源代码

由于个人爱好者可以非常容易的接触游戏编程、修改游戏内容,这种“卧室程序员”文化为欧洲的游戏行业提供了良好的群众基础。许多卧室程序员后来称为游戏制作人、软件工程师、电子音乐人和新媒体艺术家。对于他们而言,家用电脑启蒙的意义远超过今日的个人电脑和移动设备。

现代PC游戏夺走的乐趣

由于历史的原因,8位家用电脑在中国流行范围和受众群体都很有限,中国大陆的语境中往往将其视为游戏机改装的“学习机”或买不起IBM PC的权宜之计。因此对于国内的爱好者来说,理解这些内容就会有一定“代沟”存在。

90年代中期多能奔腾和Voodoo加速卡带来了PC 3D游戏的爆发

在90年代之后,声霸卡和3Dfx Voodoo三维加速卡的出现让IBM PC的游戏性能大幅提升,接管了在游戏机和商用电脑之间属于家用电脑的市场份额。但对于个人爱好者来说,90年代的PC相比8位家用电脑却有一些难以规避的短板,IBM PC虽然是开放系统,用户可以对它进行编程,但是PC上的开发工具的工程化、专业化让上手开发需要很多的前置知识,无论是安装和配置IDE和各类工具链,还是OpenGL或DirectX这样的绘图API,它们在设计上都会更倾向商业大团队和专业开发者,而对于个人开发者不是那么友善。

一部分爱好者在接触Pico-8的时候可能已经系统的学习过软件开发的知识,甚至做过职业的开发工程师,它们对于Pico-8中简陋的代码编辑器、精灵编辑器和Tracker等跟我们现在的软件开发流程非常不一样的元素感到不适应。

但是我们设想一下哪些没有编程基础的人群,比如说和当年“卧室程序员”同龄的孩子们,他们没有太多前置知识:他们不知道操作系统、编译器是什么,也没有数据结构知识,但仅仅让自己绘制的图形精灵在地图上跑起来这件事情,其中的乐趣就足以吸引他们深入其中了。如果我们要求他们事先掌握数据结构和配置IDE的知识,可能就会在开始之前就将他们吓跑。

时至今日,我们看到的个人电脑,无论是Windows电脑,还是苹果Mac都存在着对个人开发者门槛高,不够友善的问题。

把可编程的电脑还给大众

在2000年代的时候一些电脑教育专家就认识到了这个问题,这其中最知名的就是剑桥大学教授Eben Upton及其成立的树莓派派基金会。树莓派基金会发现的问题就是今天的青少年的“电脑素养”教育实际上是绕着商业软件展开的,孩子们会学怎么样写一个网页、怎么样操作Office办公软件、怎么用Adobe Flash或者FinalCut Pro去制作数字内容,而越来越远离编程了。

而远离编程之后造成的是新一代青少年在进入大学时候,他们的计算机科学知识基础相比他们在90年代进入大学师哥师姐们是退步的,因为在90年代英国的大学新生,许多是经历过8-bit电脑的洗礼的,他们玩过BBC Micro或ZX Spectrum,对电脑怎么操作内存、怎么控制屏幕显示有着更直观的认识,但是对于2000年后进入大学英国青少年,这种由接触编程而学会的知识却大幅退化了,他们对电脑的认识变成了使用商业软件的知识。

而树莓派出现的目标就是希望开发一款能够补足这一缺陷的设备:它足够便宜,普通人都能买得起,Arduino是一个稍微不大一样的故事——它是一款为非工程技术背景的学生和爱好者设计的单板机,但也起到了相似的效果:即把编程的能力又还给了大众。这些体现出来的,都是对商业软件和更倾向于大公司的当代PC生态的一种反抗。

让(老式)游戏机更容易编程

另外的一些“反抗者”,则致力于打破老式游戏机身上的枷锁,让它们变得更容易编程,比如说红白机的加密增加了自制游戏开发和运行的难度,后来烧录卡等外设的出现让运行自制游戏变得容易了,但开发这种自制游戏的门槛仍然不低。

可能有一些朋友会想到一些将游戏机“电脑化”的外设,比如红白机的Family BASIC套件,但原厂Family BASIC已经停产多年,而“学习机”类的产品中的BASIC解释器等开发工具已经多年没有改进。

8-Bit Workshop的雅达利游戏机IDE

因此爱好者们开发了一系列对老式游戏平台的开发环境,比如说GB Studio、8-Bit Workshop等等。这些开发工具可以运行在现代的电脑上,让老式游戏机拥有类似“手机App”的开发体验。这同样是一种把游戏开发的能力还给大众,而不让它成为少数大企业的一种专利的一种路径。

容易编程的(新)游戏机

此外还有一类产品,比如说GameShell或者是像更早一些的Pocket CHIP,这些创业团队希望能开发一些更加容易编程的游戏设备,爱好者们可以轻易的在上面开发游戏,而不受到硬件厂商的限制,硬件厂商对开发者的控制在iOS上最表现得最为明显,开发者需要注册开发者账户、还要给开发者费用给厂商、甚至开发使用的编程语言也会受到硬件厂商限制。

GameShell和Pocket CHIP

而在GameShell这样的设备上,连硬件设计都是开源的,开发者可以选择你任它们喜欢的框架和技术栈,同时也可以利用开放的硬件技术资料设计自己的配件和外设。

虚拟/幻想游戏机:构建体验,而不限制硬件

最后我提到的一个话题就是幻想游戏机,如果说前面提到的种种实践和文化现象,最终都会往往会关联到某一类特定的硬件设备,或者以特定硬件产品的形态落地。而幻想游戏机则是独立于硬件实现的。

在幻想主机上集合了来自整个复古计算社群的不同元素,它们通常有着类似老式家用电脑的编辑器,有着受到老式游戏机启发的图形精灵设计器,以及收到Tracker音乐社群启发的音轨序列编辑器。在幻想主机中,复古计算的元素被抽取出来并重新组合,并放入了一个虚构的硬件里,这让幻想主机作为一个新生的事物,带上了来自复古计算社群的老灵魂。