
开发者用SQL Server 2025模拟运行ZX Spectrum及经典游戏
来源标题:ZX Spectrum in SQL and Daley Thompson's Decathlon
一名开发者成功在SQL Server 2025中模拟了48k Sinclair ZX Spectrum,并加载运行了1984年的游戏《Daley Thompson's Decathlon》。该项目将数据库视为机器、内存视为表、CPU视为存储过程、显示视为Join操作,开发者称达到这一成果付出了巨大努力。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
数据库就是机器。内存是一张表。CPU 是一个存储过程。显示则是一个 Join。
我本来没打算自己写反汇编器。
一台 48k 的 Sinclair ZX Spectrum 运行在 SQL Server 2025 里面。然后从它原装的 Micro-drive 卡带上加载《Daley Thompson's Decathlon》(Ocean,1984)。
走到这一步费了巨大的功夫。
这是一台我从未拥有过的电脑——我在其他文章里已经交代过,我有一台 Commodore 16,所以这台机器我也只是见过几次而已,但它已经是最接近 Konami《Track & Field》的存在了,一款经典的摇杆杀手,总是出现在当地的青年中心或炸鱼薯条店里。
后来它终究还是出了 Commodore 16 版,但项目从十项被砍到了六项,而 Decathlon 字面意思就是十项,于是游戏被改名为《Daley Thompson's Star Events》。
史上最伟大的游戏之一,它一定为摇杆厂商赚了太多钱。被这款游戏弄坏的摇杆,我想比任何其他游戏都多。
Sinclair 48k ZX Spectrum 电脑(1982)——摄影:Bill Bertram
我最初的想法是基于 Commodore 64 来模拟这款游戏,但很快我就改变了主意,决定模拟 ZX Spectrum 的硬件,让它在 Microsoft SQL Server 2025 里运行。这样一来,我就能加载存储在 micro-drive 上的无拷贝保护版本的游戏了。
在我这一生中,毫无疑问,全世界数百万中年人、几只黑猩猩,事实上任何记得那个计算时代的人,都熟知电脑游戏从磁带上加载时的那种确切声音。它听起来就像老式调制解调器。
而且不只是那个时代的人,他们的父母知道那个声音,他们的邻居也知道那个声音。除了一个非常特定的群体——兄弟姐妹——之外,所有人都讨厌那个声音。他们能在还在学校时就隔着一英里听到你在加载游戏,然后冲回家,就为了用错误的方式推开前门。
取决于你和兄弟姐妹的关系,接下来会发生两件事之一。如果你们相处得好,他们会坐下来看“你”玩上几个小时,全程都盼着“轮到他们”的时刻。
但如果你们的关系没有家里人以为的那么融洽,那他们可就知道该在哪个精确时刻“怪声怪气地呼吸”或者“在楼梯上跳舞”,让游戏加载失败。
仅仅是在这个世界上存在,他们就能引发某种程度的量子涨落,并且百分之百会让那盘磁带的加载失败,次数多到无法形容。
我在此前 Medium 上的一篇文章里说那些年我很无聊,这不太属实——我要把 1980 年代,尤其是当时往任何电脑上加载任何软件这件事再往前推一步来说:木乃伊化都比那种感觉更接近,而这些磁带加载器一点忙都没帮上。
它们用古怪的声音给你催眠,而你妹妹还故意在屋子的另一头扑腾胳膊,“希望”制造“蝴蝶效应”,让我第 100 次“从头再来”。
我̶̶现̶̶在̶̶知̶̶道̶̶了̶̶,̶̶这̶̶其̶̶实̶̶是̶̶为̶̶结̶̶婚̶̶做̶̶的̶̶准̶̶备̶̶。̶̶就̶̶在̶̶你̶̶开̶̶始̶̶为̶̶自̶̶己̶̶做̶̶点̶̶事̶̶、̶̶搞̶̶个̶̶爱̶̶好̶̶,̶̶甚̶̶至̶̶只̶̶是̶̶好̶̶奇̶̶的̶̶爱̶̶人̶̶问̶̶你̶̶“̶̶在̶̶忙̶̶什̶̶么̶̶呢̶̶?̶̶”̶̶的̶̶那̶̶一̶̶刻̶̶。̶̶ (这就是为什么男人比女人死得早——他们放弃了 :)
但这次会容易得多。为什么?
因为我要用的是 Micro-drive,不是磁带。Micro-drive 和 Amstrad PCW8256 机器上用的 3 英寸软盘一样稀有。(世界标准是 3.5 英寸软盘)但好心的 Alan Sugar 爵士一定是从货车后面搞到了一批尾货,然后围绕这些磁盘打造了他那台确实了不起的机器。
Micro-drive 没有那个年代许多游戏磁带里内嵌的粗暴拷贝保护软件。
旁注:我 53 岁了,在这个项目之前从没听说过磁带上的拷贝保护。人们那时候一直都在翻录音乐。但现在想想就合理多了,也许这些加载失败并不是这个世界上的噩梦级兄弟姐妹造成的,也许是拷贝保护因为你用了“朋友的游戏副本”而启动了。
我差点就用“从来没有人做过这件事”来开篇。然后我查了一下——我建议你在网上放出这种说法之前也先查一查。
Peter Negenborn 用 T-SQL 写了一个 Intel 8080 模拟器,并在上面运行了 CP/M。他把 Altair 8800 的处理器模拟成存储过程,模拟了串口,运行了 Altair BASIC——微软的第一个产品——然后模拟了软盘控制器,磁盘镜像就放在一张表里,从而能启动一个真正的操作系统。 在 SQL Server 上运行 8080 模拟器(以及 CP/M)
这和我做的事情是同一个形状,而 8080 正是 Z80 的直系祖先。所以,不,这不是首创,我很高兴能身处这样的行列,而不是孤身一人站在一片旷野里。
据我所知,还没有人用这种方式做过 ZX Spectrum,也没有人从原装 Micro-drive 卡带上把一款商业游戏加载进数据库并玩起来。但搜不到结果并不等于证明,说不定有人在 2009 年就用 PL/SQL 做过一个 6502,然后从没告诉过任何人。
Clive Sinclair 在 1972 年造出了世界上第一台超薄袖珍计算器,随后在八十年代初致力于把电脑做得足够便宜,让普通家庭都买得起。ZX80 是英国第一台售价低于 100 英镑的大众市场家用电脑。ZX Spectrum 紧随其后于 1982 年问世——48K 内存,一颗 3.5MHz 的 Z80,还有那些橡胶按键。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。