{
  "added_at": "2026-10-28",
  "additional_evidence_urls": [
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/kb.json",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/CMakeLists.txt",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/tools/patch.py",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/tools/knowledge.py",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/tools/gen-struct-checks.py",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/.github/workflows/main.yml",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/Dockerfile",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/requirements.txt",
    "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/src/xboxkrnl.exe.def",
    "https://blam.info/progress/"
  ],
  "category": "reconstruction-cases",
  "description_en": "A research project re-implementing the original Xbox Halo: Combat Evolved in C, one function at a time. Rewritten functions are compiled into a separate image and patched into the user’s original executable with redirects from the original implementations, so the hybrid game can be run and debugged in xemu or on an Xbox as work progresses. The project reports an early stage, and its sources document no byte-for-byte comparison with the original code.",
  "description_zh": "一个以 C 语言逐个函数重新实现初代 Xbox 版 Halo: Combat Evolved 的研究项目。重写的函数编译为独立映像，再修补进使用者自备的原版可执行文件，并从原有实现重定向过去，使这一混合版本能在开发过程中于 xemu 或 Xbox 上运行和调试。项目自述仍处于早期阶段，其来源也未记录与原代码的逐字节比较。",
  "entry_url": "https://awesomerea.org/resources/halo-ce-xbox-reimplementation-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/halo-ce-xbox-reimplementation-case/",
  "evidence_url": "https://github.com/halo-re/halo/blob/21bc641df6b8bdd730c23885ff643545423dcc82/README.md",
  "group": "cases",
  "id": "halo-ce-xbox-reimplementation-case",
  "json_url": "https://awesomerea.org/resources/halo-ce-xbox-reimplementation-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/halo-ce-xbox-reimplementation-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/halo-ce-xbox-reimplementation-case/index.md",
  "name": "Halo: Combat Evolved: an incremental re-implementation patched into the original Xbox executable",
  "name_zh": "Halo: Combat Evolved：逐步重新实现并修补进原版 Xbox 可执行文件",
  "reconstruction_method": "decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "README describes studying and creating a free, open-source re-implementation of the Xbox launch title; its current-state list reports that the patched game runs, the main loop and several more functions are re-implemented, and there is a long way to go. The linked progress page, whose data file was last modified in November 2022, reports 0.37% of the .text section’s game code across 40 functions. The last default-branch commit is dated 2023-07-07.",
    "Supply the retail disc’s game files and the original executable version 01.10.12.2276, identified by MD5 in README and kb.json and placed as cachebeta.xbe in a halo-patched directory; tools/patch.py checks that hash. The repository includes no game executable or assets, and README says they must come from your own copy. The build writes a patched default.xbe beside them as the user’s local modified copy; the project distributes no game build.",
    "Builds use CMake 3.16+, Python 3 with libclang, pefile and pyxbe, and either 32-bit MSVC on Windows or Clang and LLD targeting i386-pc-win32 on Linux and macOS; a Dockerfile provides an Ubuntu 22.04 build image. The result targets the original Xbox and runs in the xemu emulator or on console hardware, and the build generates a .gdbinit for debugging with GDB through xemu’s GDB server.",
    "kb.json declares 323 original functions and 71 data items with addresses, grouped by original object file; tools/knowledge.py generates headers, thunks and an import library from it, and gen-struct-checks.py emits static size checks for types.h. CI builds only the re-implementation image (Debug and Release on Ubuntu, Windows and macOS) without original files, so it checks compilation, not behaviour.",
    "The repository has no license file and GitHub detects none, so reuse terms for the project’s code are not stated; src/xboxkrnl.exe.def carries a CC0-1.0 notice (2017, Stefan Schmidt). README presents the work as educational research, the progress page says it is not affiliated with Microsoft or Bungie, and the game keeps its rights holders’ terms."
  ],
  "requirements_zh": [
    "README 介绍项目旨在研究并为这款 Xbox 首发游戏打造自由、开源的重新实现；其“当前状态”列表报告修补后的游戏可以运行，主循环和另外若干函数已重新实现，但仍有很长的路要走。README 链接的进度页面（其数据文件最后修改于 2022 年 11 月）报告 .text 段游戏代码已重新实现 0.37%，共 40 个函数。默认分支最后一次提交日期为 2023-07-07。",
    "需自备零售光盘的游戏文件，以及版本为 01.10.12.2276 的原版可执行文件（README 和 kb.json 以 MD5 标识），并以 cachebeta.xbe 为名放入 halo-patched 目录；tools/patch.py 会校验该哈希。仓库不含游戏可执行文件或素材，README 说明须来自使用者自己的副本。构建会在同一目录写出修补后的 default.xbe，作为使用者本地的修改副本；项目不分发任何游戏构建。",
    "构建需要 CMake 3.16 及以上、带 libclang、pefile 与 pyxbe 的 Python 3，以及 Windows 上的 32 位 MSVC，或 Linux 和 macOS 上以 i386-pc-win32 为目标的 Clang 与 LLD；Dockerfile 提供 Ubuntu 22.04 构建镜像。产物面向初代 Xbox，可在 xemu 模拟器或主机硬件上运行；构建过程会生成 .gdbinit，便于通过 xemu 的 GDB 服务器用 GDB 调试。",
    "kb.json 按原始目标文件分组，声明了 323 个原有函数和 71 个数据项及其地址；tools/knowledge.py 据此生成头文件、跳转桩和导入库，gen-struct-checks.py 为 types.h 生成静态大小检查。CI 只构建重新实现的映像（在 Ubuntu、Windows 和 macOS 上分别构建 Debug 与 Release），不使用原版文件，因此只检验能否编译，不检验行为。",
    "仓库没有许可证文件，GitHub 也未检测到许可证，因此项目代码的再利用条款未作说明；src/xboxkrnl.exe.def 带有 CC0-1.0 声明（2017，Stefan Schmidt）。README 将该工作定位为教育研究，进度页面说明项目与 Microsoft 或 Bungie 无关，游戏本身仍受其权利人的条款约束。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/halo-re/halo",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
