← 返回信息流
AI 资讯Hacker News·1 小时前

经典DOS游戏F-15 Strike Eagle II逆向工程招募测试员

原标题:DOS Game "F-15 Strike Eagle II" reversing project needs DOS test pilots

速览

经典DOS飞行模拟游戏《F-15 Strike Eagle II》的逆向工程项目正在招募志愿者担任测试员。该项目旨在通过社区力量还原并运行这款老游戏,需要用户在DOS环境下协助测试。此举有助于保护经典软件遗产并让老玩家重温旧作。

AI 深度解读

DOS 经典游戏《F-15 Strike Eagle II》逆向工程重建项目招募测试员

背景

《F-15 Strike Eagle II》(F-15 鹰击长空 II)是一款由 MicroProse 于 1989 年发布的经典 DOS 飞行模拟游戏。该项目目前正在进行一项极具野心的业余爱好计划:通过逆向工程原始二进制文件,重新构建该游戏的 C 语言源代码。

作者此前曾发布过一系列关于该项目的进展报告。就在一个多月前,团队预计还需要数年时间,才能将汇编代码艰难地重写为 C 代码,且当时仅完成了第二个可执行文件(egame)的初步重构,第三个文件(end)尚待处理。然而,项目的进展速度远超预期。

核心内容

随着项目进入新阶段,作者正式宣布招募“试飞员”(测试用户)来协助验证重建后的游戏代码。以下是项目的最新状态及测试指南:

1. 惊人的进展 截至撰写本文时,项目已取得突破性进展:

  • 所有可执行文件的 C 代码均已重构完成。
  • 所有数据已从汇编语言迁移至 C 语言。
  • 大部分仅存在于汇编中的代码已有了功能性的 C 语言替代方案。
  • 大部分例程和数据结构已被赋予有意义的名称。
  • 团队计划不久后将代码库分支(fork),用于启动移植项目。

2. 测试需求与工具局限 随着完整性和能力的爆炸式增长,项目已不再局限于检查重构后的机器码(opcodes)是否匹配。现在需要维持游戏的实际运行状态。虽然工具链能确保在修改过程中机器码忠实于原版,但它无法捕捉所有错误,特别是与数据布局相关的 bug。

3. 测试指南(v0.9.1 版本)

  • 兼容性:最新版本 v0.9.1 应与原版游戏的 451.03 版本及“沙漠风暴”(Desert Storm)扩展包配合使用。
  • 安装方式:将新的可执行文件放入游戏文件夹,替换原始文件(务必先备份)。可能需要删除原始的 f15.com,以确保不会意外启动旧版本而非新的 f15.exe
  • 运行环境:游戏不会进入设置屏幕,而是默认假设使用 MCGA/VGA 显示模式,无声音,无操纵杆。
  • 功能范围:游戏的三个部分(任务简报、飞行、任务后汇报)应均可正常工作。

4. 反馈要求 作者希望测试者报告任何故障,包括崩溃、图形故障、按键失灵等。

  • 截图:如果有帮助,请附上截图(在 DOSBox 中按 Ctrl+F5 截图)。
  • 复现步骤:请描述问题发生前的操作,以便团队复现并修复问题。

5. “Bug-for-Bug” 重建原则 这是一个“逐 bug 重建”的项目。这意味着原版游戏中存在的任何行为,目前都必须保留原样。

  • 已知原版缺陷:原版游戏存在 3D 物体消失、飞机倒飞时坠向天空、燃料耗尽时行为异常等问题。
  • 测试建议:在报告问题前,请务必确认该问题在原版游戏中是否存在。保留一份原版副本作为参考是非常必要的。

关键要点

  • 技术突破:项目已从单纯的汇编逆向分析,转变为全量 C 语言代码重构,且进度远超最初预估的“数年工期”。
  • 社区驱动:项目的繁荣得益于社区参与,当前阶段急需外部用户进行实际运行测试。
  • 测试门槛低:用户只需替换原版游戏文件夹中的可执行文件即可测试,但需注意备份和文件冲突(f15.com vs f15.exe)。
  • 严格的行为一致性:测试标准是“忠实还原原版行为”。如果原版有 bug,重建版有同样的 bug 不算错误;只有原版正常而重建版出错,才需报告。
  • 未来展望:代码库即将分支以支持移植项目,标志着该项目从“逆向工程研究”向“可运行软件维护”转变。

意义与影响

这一项目不仅是技术上的壮举,也是开源社区和数字遗产保护的一个典型案例。

  1. 代码恢复的价值:通过逆向工程将封闭的二进制文件转化为可读、可维护的 C 源代码,使得这款 30 多年前的经典游戏得以在现代环境中长期保存和运行。这为其他老旧软件的数字化保存提供了方法论参考。
  2. 逆向工程与开源协作:作者通过 Hacker News 等平台公开进展并招募测试者,展示了业余爱好者如何通过协作完成复杂的技术重构。这种透明化的开发模式加速了问题的发现和修复。
  3. 对模拟游戏历史的尊重:项目强调“Bug-for-Bug”的重建原则,体现了对原始游戏体验的尊重。在追求兼容性的同时,保留了原版的独特(甚至是不完美)的行为特征,这对于历史模拟游戏爱好者而言至关重要。
  4. 技术栈的现代化潜力:随着代码被重构为 C 语言并计划进行移植,这款经典游戏有望摆脱对 DOSBox 等模拟器的依赖,原生运行于现代操作系统,极大地提升了可访问性。
查看原文 →neuviemeporte.github.io