41年前BBC桥牌机破解:用Hello World级别汇编跑起方块

41年前BBC桥牌机破解:用Hello World级别汇编跑起方块

复古计算逆向工程Z80游戏开发

数据源:Hackaday + Leaded Solder

被桥牌困住的 ColecoVision 级硬件

1985 年,英国广播公司(BBC)商业部门推出了专门教玩家打桥牌的 8 位游戏机 BBC Bridge Companion。这台机器当时的零售价高达 199.99 英镑,折合 2025 年的币值约为 619 英镑,甚至比当时主流的 48k ZX Spectrum 个人电脑还要昂贵。厂商为其配套了电视节目《BBC Bridge Club》,但整个生命周期内仅发行了 9 款教学卡带。

拆开机器机壳,内部的硬件架构远比其单一的软件用途强大。它搭载了经典的 Z80 CPU 与德州仪器 TMS9129 视频显示处理器,并配备了 16kB 的视频随机存取内存(VRAM)。这套配置在当时已接近主流游戏机 ColecoVision 的水准,用来渲染简单的二维桥牌牌面无疑是严重的资源浪费。高规格硬件被死死锁在极窄的专业教学场景,直接导致了它在商业市场上的惨败,却也为四十多年后的逆向工程留下了充足的性能余量。

硬件代工厂商 Heber 在设计时采用了标准的模块化电路布局。从包装和内部板卡细节可以看到,其走线规范且扩展槽位明确。即使由于商业定价失误导致销量惨淡,这台机器在物理层面上依然展现了 1980 年代英国电子工业的扎实工底。

反汇编 BIOS:突破官方系统的身份校验

开发者 Leaded Solder 在没有拿到实体机器的情况下,发起了让该平台运行自定义代码的挑战。机器在启动时,位于内存起始地址 $0000 的 BIOS 会优先加载,对插槽中的卡带进行合法性校验。如果卡带头的指令与预期不符,屏幕会直接弹出关机并重新插卡的警告,阻断任何未经授权的代码运行。

为了突破这一限制,开发者借助 MAME 调试器对 BIOS 进行了逐行反汇编分析。通过对比官方正版卡带《Bridge Builder》与自制空白镜像的二进制数据,他终于定位到了 BIOS 检查的特定 Header 标志位与校验逻辑。开发者通过剥离 BIOS 的指令执行流程,成功构造出符合规范的卡带头部信息,打通了自定义代码在裸机上运行的第一步。

这一攻防过程揭示了早期微型计算机系统安全机制的特征。厂商寄希望于硬件层面的校验来维护封闭的软件生态,但在拥有调试工具的逆向工程师面前,固化的逻辑反而成为了清晰的破解突破口。

BBC Bridge Companion 主机实物 图:BBC Bridge Companion 主机实物。来源:Leaded Solder

从 Rust 原型到 8 位 Z80 汇编落地

在成功绕过 BIOS 校验后,开发者决定为这台机器编写一款《俄罗斯方块》克隆游戏。他上次编写 Z80 汇编程序还是在高中时代,当时仅在 TI-83 Plus 计算器上跑过简单的输出语句。直接在资源受限的 8 位机器上从零构建游戏逻辑,面临着极高的调试成本。

为了降低开发风险,他首先使用 Rust 语言编写了一个桌面版的方块游戏原型。在开发过程中,他发现方块的旋转算法本质上可以通过硬编码锚点(pivot point)来实现,无需在运行时进行复杂的矩阵变换。搞清楚数据结构后,他将逻辑手动翻译为 Z80 汇编代码,并命名为 Bridgetris 以规避潜在的版权纠纷。先用高级语言在现代环境验证核心算法,再降维翻译至微控制器汇编,大幅降低了极低算力平台上的软件开发难度。

TMS9129 视频芯片提供的图形绘制能力在此时得到了充分释放。16kB VRAM 允许游戏在保证画质流畅的同时,处理方块下落、碰撞检测与消除动画。曾经只能显示静态扑克牌的屏幕,终于呈现出了动态的方块消除画面。

Bridgetris 在真机与模拟器上跑起来的画面 图:Bridgetris 在真机与模拟器上跑起来的画面。来源:Leaded Solder

从 eBay 堆料到物理设备的复活

虚拟模拟器的成功只是第一步,开发者在 eBay 上购入了一台带有原装包装盒的 BBC Bridge Companion 实体机。由于年代久远,这台老机器的卡带插槽针脚已经严重腐蚀断裂,无法正常读取数据。

开发者从速卖通(AliExpress)采购了同规格的电子替代件,重新焊接修理了卡带槽。同时,他利用通用 PCB 板与闪存芯片自制了可重写卡带,将编译好的 Bridgetris 烧录进去。当自制卡带插入修好的机身并成功点亮电视屏幕时,这台沉寂了四十年的硬件重新焕发了活力。老硬件的物理组件终究会老化损耗,但通用的电子工业标准与社区供应的替换零件,让古董设备的修复与二次开发成为可能。

有趣的是,开发者从产品包装上发现了代工厂商 Heber 的标志。这一线索恰好与复古计算频道 RMC Retro 探访 Heber 旧址的视频产生了联动,让一段几乎被历史淹没的英国电子工程往事重新浮出水面。

硬件的寿命由社区与探索者决定

BBC Bridge Companion 是一台在商业上极其失败的产品。它昂贵的定价与过于狭隘的功能定位,使其在发售后迅速淡出了大众视野。官方只为它发行了 9 款软件,随后便彻底放弃了该平台的维护。

然而,四十多年后发生在它身上的事情证明,硬件的生命周期并不完全取决于制造厂商的商业规划。只要芯片里依然有电流流过,只要外部暴露了数据接口,业余爱好者就能通过反汇编与自制硬件赋予其全新的功能。当一位爱好者愿意为了让冷门设备跑起新游戏而与 BIOS 死磕时,技术遗产便超越了原本的工具属性,在极客社区中获得持久的生命力。

参考链接:

  • Hackaday 报道
  • Leaded Solder 博客文章