{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/docs/REA.md",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/docs/MATCHING.md",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/docs/BUILD.md",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/docs/PROGRESS.md",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/docs/research/ORIGINAL_CAMPAIGN.md",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/config/target.toml",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/config/tools.lock.toml",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/config/rea.lock.json",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/tests/test_boards_differential.py",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/.github/workflows/ci.yml",
    "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/LICENSE"
  ],
  "category": "community-case-studies",
  "description_en": "The author has Codex use REA’s Ghidra tools to inspect the English DX-Ball 1.07 executable and recover it as typed C/C++, then compiles each function with the original-era Visual C++ 4.0 and compares it byte for byte with the original after mapping relocations. The same source also builds a MinGW Windows game and a portable core library. Exact reconstruction is still in progress; REA’s separate sound-pan showcase covers just one function.",
  "description_zh": "作者让 Codex 通过 REA 的 Ghidra 工具检查英文版 DX-Ball 1.07 可执行文件并恢复为带类型的 C/C++，再用同时代的 Visual C++ 4.0 编译每个函数，在映射重定位后与原文件逐字节比较。同一套源码还可构建 MinGW Windows 游戏和可移植核心库。精确重建仍在进行中；REA 另行发布的声像展示只覆盖其中一个函数。",
  "entry_url": "https://awesomerea.org/resources/dx-ball-rea-reconstruction-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/dx-ball-rea-reconstruction-case/",
  "evidence_url": "https://github.com/N0zoM1z0/dx-ball/blob/d1251ea4bd000c7204c895c029194cae1d269731/README.md",
  "group": "rea",
  "id": "dx-ball-rea-reconstruction-case",
  "json_url": "https://awesomerea.org/resources/dx-ball-rea-reconstruction-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/dx-ball-rea-reconstruction-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/dx-ball-rea-reconstruction-case/index.md",
  "name": "DX-Ball: an REA-guided function-level reconstruction with Codex",
  "name_zh": "DX-Ball：借助 REA 并由 Codex 完成的函数级重建",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "community-reported-mixed-workflow",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README marks exact reconstruction as in progress, to be followed by a playable Visual C++ 4.0 build and later platform ports. Generated PROGRESS.md counts 553 provisional function candidates, 475 with source, 395 byte-exact (85,106 exact code bytes) and 249 with scoped semantic acceptance, and says both Windows builds completed recorded original-board campaigns under Wine. A separate 50-board restored-CRT attempt on October 17 ended at its time limit without a full pass.",
    "Supply the English v1.07 Windows archive identified in config/target.toml; the importer verifies the archive and DXBALL.EXE hashes and puts the executable and assets in the git-ignored original/ directory. README points to a third-party download site for that archive; the repository does not establish its distribution rights.",
    "The documented host is Linux x86-64 with Git, Python 3.11+, Node.js 22.19.0, 32-bit Wine, Xvfb, CMake, Ninja and GCC or Clang, plus i686 MinGW for Windows cross-builds. Bootstrap scripts fetch a hash-pinned JDK, Ghidra and a Visual C++ 4.0 compiler from a third-party archive repository. The REA lock file pins rea-agents 6.5.0 with Ghidra 12.1.4, while docs/REA.md still names 6.4.0; the Codex goal workflow needs Codex 0.128.0 or newer.",
    "An exact unit has zero differences across the whole function after COFF relocations are mapped to original functions, imports and data, with literal data also checked; match-units.toml records the inputs needed to replay each unit. Differential tests run original x86 routines under Unicorn emulation against the compiled maintained C, and public CI builds the portable source, validates recorded evidence and compiles the Windows adapter without game resources. All results are project-reported.",
    "MIT covers repository code; the original game, credited to Michael P. Welch with 3D graphics by Seumas McNally, is supplied separately and keeps its own rights, as do the downloaded compiler and tools. REA use is documented through saved responses and a worked projectile-list example, but agent effectiveness is not independently measured."
  ],
  "requirements_zh": [
    "README 将精确重建标注为进行中，之后才会推进可游玩的 Visual C++ 4.0 构建及其他平台移植。自动生成的 PROGRESS.md 统计 553 个暂定函数候选，其中 475 个具备源码、395 个逐字节一致（85,106 个一致代码字节）、249 个通过有范围的语义验收，并称两个 Windows 构建都已在 Wine 下完成有记录的原版关卡流程。10 月 17 日另一次 50 关的 restored-CRT 尝试在时限到达时结束，未完成全部流程。",
    "需自备 config/target.toml 所标识的英文版 v1.07 Windows 压缩包；导入程序校验压缩包与 DXBALL.EXE 的哈希，并将可执行文件和素材放入被 git 忽略的 original/ 目录。README 指向一个第三方下载网站获取该压缩包；仓库并未确立其分发权利。",
    "文档说明的宿主为 Linux x86-64，需要 Git、Python 3.11+、Node.js 22.19.0、32 位 Wine、Xvfb、CMake、Ninja 以及 GCC 或 Clang；Windows 交叉构建还需 i686 MinGW。初始化脚本获取以哈希固定的 JDK、Ghidra，以及来自第三方存档仓库的 Visual C++ 4.0 编译器。REA 锁定文件固定 rea-agents 6.5.0 与 Ghidra 12.1.4，而 docs/REA.md 仍写作 6.4.0；Codex goal 工作流需要 Codex 0.128.0 或更新版本。",
    "一个一致单元须在 COFF 重定位映射到原函数、导入项和数据后，整个函数零差异，并同时检查字面量数据；match-units.toml 记录重放每个单元所需的输入。差分测试在 Unicorn 模拟中运行原 x86 例程，与编译后的维护版 C 代码对照；公开 CI 构建可移植源码、校验记录的证据，并在不含游戏资源的情况下编译 Windows 适配层。所有结果均为项目报告。",
    "MIT 许可覆盖仓库代码；原游戏署名为 Michael P. Welch，3D 图形由 Seumas McNally 制作，需另行提供并保留其自身权利，下载的编译器与工具亦各有条款。REA 的使用通过保存的响应和一个弹丸链表的实例说明记录，但智能体的成效未经独立测量。"
  ],
  "targets": [
    "binary",
    "game"
  ],
  "url": "https://github.com/N0zoM1z0/dx-ball",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
