最新动态

AI三天逆转三十年老游戏,72,758行汇编代码移植成功

2026-09-05
6128次

1993年,在巴格达的制裁下,一位开发者利用Amiga 500手工编写了72,758行68000汇编代码,创作了游戏《Babylonian Twins》。三十三年后,Claude Fable 5仅用三天的时间,将这款游戏及其C++引擎无须人工干预地移植到了Godot引擎。这一过程不仅是简单的代码搬迁,更是对大语言模型推理能力的深度考验:在训练数据中几乎没有Amiga汇编代码的情况下,模型是否真正理解了这些复杂指令,还是在凭借记忆输出结果?

移植过程分为三个阶段。首先,34,000行的C++引擎在一夜间完成转移,可玩角色在21分钟内跑通。其次,将72,758行的68000汇编代码重构为可在Godot运行的代码,使用vasm重新构建字节级一致的二进制文件,耗时仅十五分钟并通过diff验证。最后,将两部分合并,玩家在购买现代版本时能够一并启动1993年的原版游戏。

作者曾用较旧模型尝试类似任务,需经过多轮对话和大量提示,而这次的Claude Fable 5则一次性输出了正确结果。原因在于模型具有对陌生代码进行真实推理的能力,而不仅仅是简单回忆。 龙8头号玩家

游戏内有几种数据格式并未公开文档,包括关卡瓦片、地图属性、对象表和加密数据头。模型通过分析68000汇编中的例程,逆向追踪这些格式的结构,最终重建了精准的关卡图像和一致的二进制文件。意外的是,发布的二进制文件是运行时内存的快照,其中包含了未初始化变量的内容。模型在重建源码时发现了108字节的差异,准确定位到未初始化变量。这一细节是作者起初未能留意的重要发现。

原版游戏以50 Hz运行,2010年的iOS版为60 Hz,固定时钟的物理特性在不同帧率下会产生兼容性问题。模型成功保留了这两种时钟频率,1993年的重建版以50 Hz运行,而现代版则为60 Hz。这些兼容性问题几乎无法通过简单的diff发现,这也解释了导致关卡数据移植出现问题的原因。

这次实验提供了一种客观的验证方法:字节比较。每个关于游戏的声明均可通过重建源码与原始二进制的对比来验证,模型对每种数据格式的逆向工程结果经过了图像重建和字节一致性检查。 龙8头号玩家

作者指出,文件格式和汇编分析是AI的任务,而如何处理三十年前的代码则是AI迅速做出的决策。这项测试旨在展示模型在推理方面的能力,若其能推理而非回忆,将会为依赖特定硬件和汇编语言的老游戏迁移开辟可行的路径。这一进展可能标志着软件保存领域的一个重要转折点。

本文网址: asia-long8.com/detail/370744.html

销售热线

营销一部(传统产品):王部长 15371160678
营销二部(光伏焊带):曹部长 13921871003

电子邮箱

shuddering@msn.com

公司地址

武夷山市争攀坝230号

 Copyright © 头号玩家(龙8)唯一官网 2024 版权所有 All rights reserved 头号玩家(龙8)唯一官网