没人用过的那一千字节
The Kilobyte Nobody Used
几年前,Vince Weaver(deater)为 Atari 2600 做过一个 Myst 的“缩制版”(demake)。原版 Myst 是最早一批 CD-ROM 游戏,几百兆预渲染画面;2600 的卡带通常只有 4k,主机内置 RAM 一共 128 字节,还得和栈共用。他的版本只收进了原作的一小部分场景,但速通路线从头到尾走得通。这件事当时已经足够让人惊讶。
这次他要的是另一件事:不在仿真器里跑,也不在现代的 Harmony 卡带上跑——那种卡带里藏着一颗 70MHz 的 32 位 ARM,放在 1977 年简直是超级计算机——而是在真正的八十年代硅片上跑。他选的是 M-Network(美泰)1983 年的 E7“Big Game”映射芯片:16k ROM,理论上还支持 2k RAM,其中有一块可以整体换进地址空间的 1k RAM 银行。用过这颗芯片的商业游戏只有三款,只有 BurgerTime 用到了 RAM,而且只装了 1k,只用了一个 256 字节的小银行。那块 1k 大银行,在他之前,可能从来没有人真正用过。于是他拆了一盘 BurgerTime,换掉 ROM,把 SRAM 从 1k 升到 2k。理论上很简单;实际上是三年左右的时序问题和各种意外。
这里有两层已构。一层是 Myst 本身:九十年代“多媒体”的完成态,几百兆图像把每一个视角都预先算好、定好、命名好。缩制版对它做的是一次凿削——问的是:把所有能删的都删掉之后,Myst 还剩下什么?答案是那条路线,那种孤岛上的寂静,以及几块被压缩到一千字节里的画面。另一层是 2600 这个平台:它的规格、它的游戏库、它的公司历史,都早已封存。M-Network 倒闭了,E7 的设计从此冻结成档案里的一张表。
但冻结的已构里也留着余项。E7 的 1k RAM 银行是设计师写进芯片的一种可能,却从未被兑现——它不是缺陷,也不是彩蛋,它是一段被造出来之后就一直悬着的能力。仿真器把它当作一行规格来处理,永远正确,也就永远不会让它露出真实的样子;只有把代码烧进老芯片,这段悬置了四十年的能力才第一次被逼到台前,连带着所有文档里没写、仿真器里没模拟的时序毛刺一起出现。Weaver 的三年,就是在这块余项上一点一点地凿。
为什么现在看它?因为“缩制版”还没有被艺术界当成一个正经的形式来命名,它仍然住在复古计算论坛和黑客博客里,被当成一种技术炫耀。而它其实在做的,是一种很少有人做的美学动作:不是把旧东西复原,而是让新作品倒灌进旧载体,去激活那些载体在自己时代里都没来得及用上的部分。等哪一天它被收进展览、有了策展语言,这块一千字节就会变成一个漂亮的故事;现在,它还是一块刚被第一次写满的内存。
deater.net ↗ hackaday.com ↗A few years ago Vince Weaver (deater) made a demake of Myst for the Atari 2600. The original Myst was one of the first CD-ROM games, hundreds of megabytes of pre-rendered images; a 2600 cartridge usually held 4k, and the console had 128 bytes of RAM in total, shared with the stack. His version holds only a small subset of the original's scenes, but the full speedrun route plays from start to finish. That alone was surprising enough.
This time he wanted something else: not an emulator, and not a modern Harmony cartridge — which hides a 70MHz 32-bit ARM that would have counted as a supercomputer in 1977 — but real 1980s silicon. He picked M-Network's (Mattel's) 1983 E7 "Big Game" mapper: 16k of ROM and, in theory, 2k of RAM, including a 1k bank that can be switched wholesale into the address space. Only three commercial games ever used the chip; only BurgerTime used its RAM, and it shipped with just 1k and used a single 256-byte bank. The big 1k bank may never have been used by anyone before him. So he took apart a BurgerTime cartridge, swapped the ROMs, and upgraded the SRAM from 1k to 2k. Simple in theory; in practice, roughly three years of timing problems and assorted surprises.
There are two settled constructs here. One is Myst itself: the finished form of nineties "multimedia", every viewpoint pre-computed, fixed and named across hundreds of megabytes. The demake performs a chisel-cut on it, asking: once everything that can go is gone, what is left of Myst? The answer is the route, the silence of the island, and a handful of images compressed into a kilobyte. The other construct is the 2600 platform: its specs, its library, its corporate history, long since sealed. M-Network folded, and the E7 design froze into a row in an archival table.
But even a frozen construct carries a remainder. The E7's 1k RAM bank was a possibility its designers wrote into the chip and nobody ever cashed in — not a bug, not an Easter egg, but a capacity that was built and then left hanging. An emulator treats it as a line of spec: always correct, and therefore never forced to show what it really is. Only when the code is burned onto the old chip does that forty-year suspension get dragged into the open, along with every timing glitch the documentation never mentioned and the emulator never modelled. Weaver's three years were spent chiselling at exactly that remainder.
Why look at it now? Because the demake still hasn't been named by the art world as a serious form; it lives on retrocomputing forums and hacker blogs, filed under technical bravado. What it actually does is an aesthetic move very few people make: not restoring the old thing, but pouring new work back into an old carrier to wake the parts of that carrier its own era never got around to using. Some day it will be in an exhibition with curatorial language around it, and the kilobyte will become a nice story. Right now it is still a block of memory that has just been filled for the first time.
deater.net ↗ hackaday.com ↗