# 通过 ZX Spectrum 在 Kerbal Space Program 中实现登月:技术细节
爱好者 Scott Manley 使用 1982 年的 ZX Spectrum 实现了对 Kerbal Space Program 模拟器中月球着陆器的控制。这台 8 位电脑——配备 3.5 MHz Z80A 处理器和最多 128 KB 内存——尽管存在两秒延迟,仍完成了这项任务。集成依赖于 Fuse 模拟器、Interface 1 和 kRPC 模组。
ZX Spectrum 的硬件限制与 AGC 的比较
ZX Spectrum 配备 Z80A 处理器(3.5 MHz)、Sinclair BASIC 和 16–128 KB 内存。这超越了阿波罗 11 任务中的 Apollo Guidance Computer (AGC):2.048 MHz、15 位架构,以及 2048 字内存(带 1 位奇偶校验)。AGC 程序员为最小化资源消耗而优化代码,需要极大的创造力。
Manley 指出,现代智能手机充电器比 ZX Spectrum 拥有更强的计算能力,但这台复古机器仍需仔细优化。他不得不将计算姿态、加速度和轨迹的变量打包到有限内存中,以实现机动和着陆。
ZX Spectrum 与 Kerbal Space Program 的集成
由于缺少 USB,无法直接连接。解决方案如下:
- Fuse 模拟器用于 ZX Spectrum。
- 虚拟 Interface 1,带有 RS232 端口。
- Python 脚本通过串口进行数据交换。
- Kerbal RPC 模组(kRPC),用于通过 Python 或其他语言对外控制 KSP。
BASIC 程序读取遥测数据并发送命令。Python 脚本充当 RS232 和 kRPC 之间的中介,实时将数据中继到模拟器中。
10 REM Chtenie data with RS232
20 INPUT #1, a$,b$,c$
30 PRINT "Telemetry: ";a$;" ";b$
40 REM Sending komand
50 PRINT #1, "THROTTLE 0.5"
60 GOTO 10
这个循环提供了基本的飞船控制。
着陆过程与性能
发射后,程序启动模块向月球降落。系统以约 2 秒延迟处理数据——这与 AGC 的循环相同,后者以相同间隔计算导航参数,并成功让阿波罗 11 着陆。
Manley 此前已设置好连接用于监控和控制。完整技术栈:Fuse + Interface 1 + Python + kRPC。延迟并未妨碍轨迹修正和软着陆。
额外项目:C++ 实现的 ZX Spectrum 模拟器
Manley 复活了一个用 C++ 编写的废弃 ZX Spectrum 模拟器。该项目因 Z80 的 158 条基本指令(结合前缀和寻址模式扩展到 800+ 个操作码)而停滞,手动实现过于繁琐。
使用 Gemini 3 Pro 和 Google Antigravity IDE,他在一天晚上完成了开发。AI 生成操作码处理逻辑,使模拟器能够运行游戏。
- AI 优势:自动化繁琐工作,提供准确的 Z80 模拟。
- 结果:在基本场景下无 bug 的工作模拟器。
关键要点
- ZX Spectrum(1982)性能超过 AGC(1969),但实时任务仍需优化。
- Fuse + Interface 1 + kRPC 技术栈可将 8 位系统与现代模拟器集成。
- 两秒循环与 AGC 匹配,足以实现着陆。
- AI(Gemini 3 Pro)可在数小时内生成 800+ 个操作码,加速 Z80 模拟开发。
— Editorial Team
暂无评论。