{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/LinuxJessi/decomp-compat-kit/blob/d9bb53dac364ecfaff4f8b00ea44baec60a27abf/tools/verify_decomp.py",
    "https://github.com/LinuxJessi/decomp-compat-kit/blob/d9bb53dac364ecfaff4f8b00ea44baec60a27abf/tools/dump_symbols.py",
    "https://github.com/LinuxJessi/decomp-compat-kit/blob/d9bb53dac364ecfaff4f8b00ea44baec60a27abf/tools/symbols_to_splat.py",
    "https://github.com/LinuxJessi/decomp-compat-kit/blob/d9bb53dac364ecfaff4f8b00ea44baec60a27abf/symbols/symbols.csv",
    "https://github.com/LinuxJessi/decomp-compat-kit/blob/d9bb53dac364ecfaff4f8b00ea44baec60a27abf/LICENSE"
  ],
  "category": "game-analysis",
  "description_en": "Checks a PS2 matching decompilation from outside its own build: the C is recompiled with a stock, unpatched ee-gcc 2.96 and assembler, then each function is byte-compared against the original and every difference is classified by its likely toolchain cause. Companion scripts export ELF symbol tables to CSV and convert them to splat symbol files. Defaults target Xenosaga Episode I; the README says the method generalises but the defaults do not.",
  "description_zh": "在匹配反编译项目自身的构建之外进行检查：用未打补丁的原版 ee-gcc 2.96 及汇编器重新编译其 C 代码，再逐函数与原程序逐字节比较，并按可能的工具链原因对每处差异分类。配套脚本可将 ELF 符号表导出为 CSV，并转换为 splat 符号文件。默认配置针对 Xenosaga Episode I；README 称方法可推广，默认配置则不能。",
  "entry_url": "https://awesomerea.org/resources/decomp-compat-kit/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/decomp-compat-kit/",
  "evidence_url": "https://github.com/LinuxJessi/decomp-compat-kit/blob/d9bb53dac364ecfaff4f8b00ea44baec60a27abf/README.md",
  "group": "tools",
  "id": "decomp-compat-kit",
  "json_url": "https://awesomerea.org/resources/decomp-compat-kit/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/decomp-compat-kit/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/decomp-compat-kit/index.md",
  "name": "Xenosaga I Decomp Compatibility Kit",
  "name_zh": "Xenosaga I 反编译兼容性工具包",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "The reviewed commit d9bb53d is the second of two commits, both made on 2026-09-25; there are no releases or tests. It holds three Python tools and symbol data for the NTSC-U Xenosaga Episode I executable SLUS_204.69 and its five overlays, built with SCE ee-gcc 2.96. Tool docstrings still refer to out/ paths and a TOOLCHAIN.md that are not in the repository.",
    "verify_decomp.py needs a checkout of the decompilation under test, your own SLUS_204.69 and extracted originals (located through DECOMP_GAME_DIR), and an i386 root filesystem with stock ee-gcc 2.96 and ee-as run through Docker under linux/386 emulation, plus clang for preprocessing. The README points to decompme/compilers for the compiler, which is not vendored, and documents a colima and binfmt route for Apple-silicon Macs.",
    "It compiles each C translation unit with -DSKIP_ASM, compares every defined function against the original bytes, labels differences hazard-nop, reorder, mixed, immediate or unexplained, and exits nonzero only for unexplained ones. The README warns that the mixed class masks branch and call targets, so a wrong target there is not flagged; functions whose relocations need the tested project's data layout are reported as unverifiable.",
    "The README's case study against an anonymised PS2 matching decompilation reports 817 of 857 functions identical, 40 differences all in toolchain classes, 195 unverifiable and one compiler crash. It also reports 5,927 shared names with no address disagreements against another decompilation's symbol file. Neither result is published with its inputs.",
    "MIT-licensed. The repository includes a 15,132-entry symbol table that its README says comes from the unstripped retail executables, but no game binaries, extracted assets or decompiled game code; the game remains its rights holders' property."
  ],
  "requirements_zh": [
    "所审阅的提交 d9bb53d 是仓库仅有的两个提交中的第二个，二者均提交于 2026-09-25；没有发布版本或测试。仓库包含三个 Python 工具，以及北美版 Xenosaga Episode I 可执行文件 SLUS_204.69 及其五个 overlay 的符号数据，这些程序由 SCE ee-gcc 2.96 编译。工具的文档字符串仍提到仓库中不存在的 out/ 路径和 TOOLCHAIN.md。",
    "verify_decomp.py 需要待检验的反编译项目检出、使用者自有的 SLUS_204.69 及提取出的原始文件（通过 DECOMP_GAME_DIR 指定），以及含原版 ee-gcc 2.96 和 ee-as 的 i386 根文件系统，并通过 Docker 在 linux/386 仿真下运行，另需 clang 进行预处理。README 指引从 decompme/compilers 获取编译器（工具包不附带），并说明在 Apple 芯片 Mac 上借助 colima 和 binfmt 的运行方法。",
    "它用 -DSKIP_ASM 编译每个 C 翻译单元，将其中定义的每个函数与原始字节比较，把差异标记为 hazard-nop、reorder、mixed、immediate 或 unexplained，仅在存在 unexplained 时返回非零退出码。README 提醒，mixed 类会屏蔽分支与调用目标，因此其中错误的目标不会被标出；重定位依赖被测项目数据布局的函数记为无法验证。",
    "README 中针对一个匿名 PS2 匹配反编译项目的案例报告：857 个函数中 817 个完全一致，40 处差异均属工具链类别，195 个无法验证，另有一次编译器崩溃。README 还报告与另一反编译项目的符号文件相比，有 5,927 个共同名称且地址无一不符。两项结果均未连同输入一并公开。",
    "采用 MIT 许可。仓库包含一份 15,132 条的符号表，README 称其来自未剥离符号的零售版可执行文件；仓库不含游戏二进制、提取的素材或反编译的游戏代码，游戏本身仍归权利人所有。"
  ],
  "targets": [
    "binary",
    "game"
  ],
  "url": "https://github.com/LinuxJessi/decomp-compat-kit",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
