Raymond Chen 揭示了为何一个 64 位 bug 让 Pinball 永久被 Windows 删掉。 Windows XP 是最后一个随 3D Pinball 一起发布的 Windows 版本。这款太空主题游戏自 1995 年起就一直内置在 Windows 中,直到 Windows Vista 才消失。多年来,我们都以为它是因为法律问题被干掉的。真正的原因更像是一个人情故事。简单说,就是在紧迫截止日期前,没人能看懂没人能找出的代码里出了个 bug。
这个故事来自 Raymond Chen,他是微软工程师,在 Windows 上工作了三十多年,并在自己的博客 The Old New Thing 上撰写其历史。Chen 曾参与将 Windows XP 移植到 64 位的团队,也亲历了 Pinball 被砍掉的时刻。
3D Pinball 在 Windows 11 中运行。图片来源:Windows Latest我第一次在家里的 Windows XP 机器上玩 3D Pinball,大概是 20 多年前了,我还记得自己整整几个下午都沉迷其中。它是那种每台电脑上都有的游戏,等着你写作业写腻了去玩。也正因如此,几十年后还有那么多人谈论它,想知道它到底发生了什么。
2012 年,微软老将 Raymond Chen 解释说,Pinball 被移除与法律纠纷毫无关系,尽管很多人都是这么想的。问题出在他的团队把 Windows XP 64 位版中数百万行 Windows 代码从 32 位移植到 64 位时。
Windows XP 64 位版。图片:Microsoft在 64 位版本里,出于某种奇怪的原因,Pinball 的球在游戏开始时会掉进发射器,然后直接穿过击球杆,从桌子底部掉出去,就像幽灵穿过路径上的每个物体一样。
更离谱的是,这让游戏“变得很短”,因为球直接穿地板下去了,根本没法玩!
Chen 和一位同事试着修复它。代码是很多年前由外部公司编写的;微软内部没人真正完全懂它是怎么工作的,而且大部分都没有注释。他们甚至找不到负责让球留在桌面上的碰撞检测器,更别说修复导致它失效的浮点舍入错误了。
在仍有数百万行代码等待移植、而且所有工作都绑着发布截止日期的情况下,Chen 团队做出了决定。用他的话说,他们 “没法花几天时间去研究代码,试图找出到底是哪个晦涩的浮点舍入错误导致碰撞检测失效。”
https://www.windowslatest.com/wp-content/uploads/2026/08/Playing-3D-Pinball-in-Windows-11-PC.mp4Pinball 被砍掉,是因为制作这款游戏的人懒得加注释;当然,微软工程团队也选择不为了一款坏掉的游戏耗上好几天,而彼时还有更大的截止日期压在头上。我不敢批评 Chen 或他的团队,因为他们大概是那个时代最出色的软件工程师。
而且他也不是完全不在意。Chen 说,这是他在 Windows XP 年代做出的少数几个决定之一,至今仍让他有点难过。他在这个系统里最引以为豪的工作之一,就是在 Pinball 里把游戏用 100% CPU 修好了。
原始代码根本没有帧率限制,所以在当时的现代硬件上,Chen 发现它每秒渲染超过一百万帧,并把 CPU 占用锁死到 100%。加上每秒 120 帧的上限后,CPU 占用降到 1%,让人们既能玩 Pinball,又不会拖慢电脑。
这款游戏最初只是 Full Tilt! Pinball 中的一张桌台,这是开发商 Cinematronics 于 1995 年推出、由 Maxis 发行的作品。微软只为 Microsoft Plus! 套件授权了 Space Cadet 这张桌台,该套件于 1995 年 8 月 24 日发布,也就是 Windows 95 上市的同一天。
Full Tilt! Pinball。图片来源:Windows Latest许可条款阻止了 Pinball 的回归。Chen 在 2018 年谈到过这一点,当时微软 Garage 团队曾悄悄尝试通过重新打包可运行的 32 位版本来复活这款游戏。对原始协议的法律审查发现,微软只拥有将游戏捆绑进 Windows 和 Plus! 套件及其后续产品中的权利,除此之外什么都没有。单独发行这款游戏,或者交出它的源代码,都不在协议范围内。
2022 年,Chen 又补充说,他测试 Pinball 的那个出问题的版本并不是 Itanium(Windows XP 64 位版最终搭载的处理器),而是 Alpha AXP。这是微软内部更早使用的一款 64 位芯片,在 Itanium 硬件出现之前,他们就是靠它先把 64 位 Windows 跑起来的。
Windows XP 64 位。图片:AmazonChen 认为,Alpha 上严重崩溃的原因是 C 运行时库里的舍入模式 bug,而这个 bug 之后已经因与 Pinball 无关的原因被修复了,修得悄无声息,以至于没人想到告诉他游戏已经能正常运行了!
Cinematronics 和 Maxis 最终都被并入了 Electronic Arts,而当年让微软能发布 Space Cadet Pinball 的授权,如今也被纠缠在一家与原始协议无关的公司之中。
有粉丝自制的重制版,为了绕开 Chen 团队当年遇到的法律障碍,它们从零开始制作,但将近二十年过去了,仍然没有任何官方替代品。这里说的不是 Pinball 本身,而是 Windows 11 有没有一款游戏,能让这个系统在 20 年后依然令人怀旧?
我卸载了 Solitaire,因为我觉得 Windows 11 配不上它。图片来源:Windows Latest微软把重心转向了别处。如今 Windows 11 里的那些预装内容,让它成了口碑最差的操作系统版本之一。
已经 10 年的 Windows 10 如今仍能让人怀有好感。就在本月早些时候,Windows Latest 率先报道,其锁屏照片——新西兰的 Wharariki 海滩——又一次走红,因为游客真的去打卡了照片中的地点,让这个系统显得更“有人情味”。
Windows 11 没有类似的时刻。它没有 Pinball,没有让人跑去现实中寻找的壁纸或锁屏,也没有任何能留下这种记忆的东西!