老游戏双机移植台

移植老游戏时同步运行原版与新版,自动定位手感或逻辑首次偏离的代码位置。

老游戏作者准备把一套 68000 汇编逻辑移到 Godot 时,最难的往往不是让新版跑起来,而是确认它还保留了原作的手感。开发者把原版接入模拟器,再上传现代移植版的可运行构建,并录下一段按键或手柄操作。产品让两个版本吃进完全相同的输入,逐帧记录画面、碰撞、音频时序和关键内存状态。

一旦两边开始分叉,界面不会只说“测试失败”。它会停在最早偏离的一帧,提供前后几秒的双画面对照,并把这一段相关的汇编、现代代码和运行轨迹放在一起。模型只围绕这小段上下文解释可能的行为差异,开发者可一键导出最小复现包交给协作者。

首版优先支持确定性较强的 2D 游戏,以及键盘和常见手柄输入。它不自动把整套汇编翻译成新引擎代码,也不替作者决定哪些旧缺陷该保留。它负责把“感觉不一样”缩成一处可以重放、讨论和修复的偏差。

为什么是现在

9月1日,一位作者公开了用 LLM 将 68000 汇编游戏移到 Godot 的过程,却仍靠人工判断新版手感。S1 9月4日抓取时,相关 Hacker News 讨论位列第10,获177 points和57条评论,并有人直接追问能否让移植版与 UAE 使用相同输入。S2

目标用户

用户是握有原始源码、磁盘镜像或旧构建的独立作者。关键时刻是新版已能通关,却总有跳跃、碰撞或音效不对劲。此时普通单元测试只能证明新代码自洽,不能证明它忠于原作。协作者又未必理解旧汇编,定位偏差常退化为反复试玩和凭感觉调参。

最小切入点

先做桌面端本地运行器,限定 FS-UAE 与 Godot 4。原版侧注入逐帧输入,并读取指定内存区。Godot 侧通过 Input.parse_input_event() 重放按键与手柄事件。S3 两边统一产出帧号、画面哈希和用户声明的状态字段。首个版本不猜测全部内存含义,只比较作者标注的地址与变量。发现分叉后保留前后短片、输入序列和双方日志。代码关联先依赖地址映射、符号表和用户选定文件,不承诺自动理解整套汇编。

以小博大

第一批用户可从 Amiga、Atari ST 和复古游戏移植社区触达。用一个开源示例仓库展示跳跃弧线首次偏离的完整过程。随后把运行器接入 Godot 插件目录,并发布可复用的测试夹具。每个公开复现包都应保留原作者项目链接,让工具借真实移植案例传播,而不是依赖泛化的 AI 编程宣传。

竞品与缝隙

GameDriver Test AssistantGoogle
GameDriver 已能连接运行中的游戏,查询对象、记录输入并回放步骤。它还可查看引擎日志,并导出到 .NET 测试框架。S4 这套能力适合现代游戏的自动化回归,也覆盖 Unity 与 Unreal。其录制步骤仍可能因游戏的非确定性而需要调整。当前材料没有显示它能把原版模拟器与现代移植版锁到同一输入序列。也没有显示它会定位两个实现首次分叉的帧。汇编地址、模拟器内存和 Godot 节点状态之间的对应关系,仍需团队自己搭建。老游戏双机移植台的缝隙,是把跨运行时对照做成主流程,而非再提供一套通用测试录制器。
FS-UAE、命令行探针与自建对照脚本Google
作者已经用命令行参数完成逐帧按键驱动、状态探针和截图。他还让 FS-UAE 启动原版,并用 vasm 重建二进制。S1 这说明熟悉工具链的作者可以自建一部分验证设施。像素对照也能用普通图像工具拼出,关键变量可通过双方日志人工比对。缺口在于这些脚本散落于单个项目,状态字段需要作者逐项埋点。原版与新版的时钟不同,输入采样点也未必天然对齐。偏差出现后,开发者仍要手工回退并搜索相关代码。产品需要把时钟校准、首帧定位和最小复现打包连成稳定流程。若无法显著减少这段胶水工程,自建脚本会是更便宜且更可控的做法。

怎么赚钱

按项目订阅收费,包含本地运行器、固定数量的协作者席位和测试历史。模拟器镜像、ROM 与游戏素材由客户自行提供。团队需要长期保存构建和回归记录时,再升级到更高存储档。

反方视角

双端确定性会先吞掉大量工程时间。原版可能按 50 Hz 更新,新版却按另一频率处理物理与输入。音频缓冲、浮点误差和画面特效都会制造无意义差异。模拟器每帧输入也未必对应原作实际读取手柄的时点。若没有作者提供内存地址和现代状态字段,系统只能看到像素分叉,无法可靠指向代码。ROM、Kickstart 和商业素材还涉及授权边界,云端托管会增加合规负担。错误归因若频繁把视觉噪声当成手感问题,作者很快会回到人工试玩。

依据与来源

共引用 4 条可核验来源
讨论快照· Hacker News
Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly
热度
177 分
评论
57 条
抓取时名次
第 10 位
发帖时间
快照时间
截至 抓取
查看 Hacker News 讨论阅读原文
来源核对
Telegram 频道