返回首页

ZX Spectrum 控制 KSP 中的月球着陆

Scott Manley 使用 ZX Spectrum 通过 Fuse 仿真器、Interface 1 和 kRPC 控制 Kerbal Space Program 中的月球着陆。该系统处理了 2 秒延迟,类似于 Apollo AGC。此外,使用 AI Gemini 3 Pro 创建了 Z80 仿真器。

ZX Spectrum 在 KSP 中的月球着陆:复古技术
Advertisement 728x90

# 通过 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 拥有更强的计算能力,但这台复古机器仍需仔细优化。他不得不将计算姿态、加速度和轨迹的变量打包到有限内存中,以实现机动和着陆。

Google AdInline article slot

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

这个循环提供了基本的飞船控制。

Google AdInline article slot

着陆过程与性能

发射后,程序启动模块向月球降落。系统以约 2 秒延迟处理数据——这与 AGC 的循环相同,后者以相同间隔计算导航参数,并成功让阿波罗 11 着陆。

Manley 此前已设置好连接用于监控和控制。完整技术栈:Fuse + Interface 1 + Python + kRPC。延迟并未妨碍轨迹修正和软着陆。

额外项目:C++ 实现的 ZX Spectrum 模拟器

Manley 复活了一个用 C++ 编写的废弃 ZX Spectrum 模拟器。该项目因 Z80 的 158 条基本指令(结合前缀和寻址模式扩展到 800+ 个操作码)而停滞,手动实现过于繁琐。

Google AdInline article slot

使用 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

Advertisement 728x90

继续阅读