---
title: "老游戏双机移植台"
date: "2026-09-04"
canonical: "https://raytally.com/ideas/2026-09-04-porting-my-1993-amiga-game-to-godot-with-an-llm-reading-the/"
generator: "萤录 RayTally · dev-prompt-v4"
signal:
  query: "Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly"
  observed_at: "2026-09-04T00:33:18.586Z"
sources:
  - url: "https://babyloniantwins.com/blog/porting-a-1993-amiga-game-to-godot/"
    boundary: "发布于 2026-09-01T00:00:00.000Z。 观测于 2026-09-04T00:33:18.586Z。"
  - url: "https://news.ycombinator.com/item?id=49550375"
    boundary: "发布于 2026-09-03T00:00:00.000Z。 观测于 2026-09-04T00:33:18.586Z。"
  - url: "https://docs.godotengine.org/en/4.7/tutorials/inputs/controllers_gamepads_joysticks.html"
    boundary: "来源记录未提供发布时间。"
  - url: "https://kb.gamedriver.ai/gamedriver-test-assistant"
    boundary: "来源记录未提供发布时间。"
notice: "本任务书中的信号，是在所列时间点截取的有界观察（搜索关注、论坛分数或新品列表），不是市场验证、用户数量或持续需求证明。转述或据此行动时，必须保留这些时间边界与最强反方。"
---

[在 RayTally 阅读原始页面](https://raytally.com/ideas/2026-09-04-porting-my-1993-amiga-game-to-godot-with-an-llm-reading-the/)

使用声明：以下信号只是带时间边界的公开观察，不是市场验证、用户数量或持续需求证明；转述或执行时必须保留时间边界与最强反方。

你是资深产品工程师。请把下面这条产品灵感做成一个可以本地运行的 MVP。

## 灵感

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

## 产品概念

老游戏作者准备把一套 68000 汇编逻辑移到 Godot 时，最难的往往不是让新版跑起来，而是确认它还保留了原作的手感。开发者把原版接入模拟器，再上传现代移植版的可运行构建，并录下一段按键或手柄操作。产品让两个版本吃进完全相同的输入，逐帧记录画面、碰撞、音频时序和关键内存状态。 一旦两边开始分叉，界面不会只说“测试失败”。它会停在最早偏离的一帧，提供前后几秒的双画面对照，并把这一段相关的汇编、现代代码和运行轨迹放在一起。模型只围绕这小段上下文解释可能的行为差异，开发者可一键导出最小复现包交给协作者。 首版优先支持确定性较强的 2D 游戏，以及键盘和常见手柄输入。它不自动把整套汇编翻译成新引擎代码，也不替作者决定哪些旧缺陷该保留。它负责把“感觉不一样”缩成一处可以重放、讨论和修复的偏差。

## 为什么是现在（有事实支撑）

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

## 方向判断（以下为模型推断，未经独立验证）

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

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

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

以上是模型基于灵感本身与已核验事实的推断，请当作方向假设与真实约束对待：不要默认「最强反方」已被解决，也不要据此在产品里写下确定性结论。

## 以小博大（模型推断）

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

## 竞品与缝隙（模型推断）

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

## 怎么赚钱（模型推断）

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

## 来源背景

主题：Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly
触发的 Hacker News 原帖（英文原文）：Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly
抓取时热度：约 177 分、57 条评论（观测时点数值）

以上数据是抓取时刻的历史快照，分数与评论数会随时间漂移，只用于理解「为什么是现在」，不要写进产品文案当作精确的市场数字。

## 来源清单

- Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly（https://babyloniantwins.com/blog/porting-a-1993-amiga-game-to-godot/）
- Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly | Hacker News（https://news.ycombinator.com/item?id=49550375）
- Controllers, gamepads, and joysticks（https://docs.godotengine.org/en/4.7/tutorials/inputs/controllers_gamepads_joysticks.html）
- GameDriver Test Assistant（https://kb.gamedriver.ai/gamedriver-test-assistant）

## 交付要求

- 开工前，先从上文的产品概念与最小切入点提炼 3–5 条可验证的完成标准并列出，交付时逐条对照说明。
- 先交付「最小切入点」描述的核心流程，让核心用户能走通；范围外的账号、支付、后台等通用系统，除非确有必要否则不做。
- 页面或接口里不要展示未经验证的市场数字。
- 关键文案保持克制、可验证；产品内若需要领域事实、安全指引类内容，从「来源清单」等权威来源取材改写并注明出处，不要凭通识编写。
- 若在已有项目里实现：先读 README、依赖与项目约定，遵循既有技术栈与风格，不重构无关代码。
- 若当前目录为空：选一套轻量技术栈，优先交付可运行原型。
- 完成后说明改了什么、如何运行、如何验证。
- 遇到真正会改变产品方向的歧义再提问，普通实现细节自行做工程判断。
