{
  "added_at": "2026-11-10",
  "additional_evidence_urls": [
    "https://git.sr.ht/~benoitren/shadowheartsdecompilation/tree/a757b59f228f4dd382688a5fee2946ea4cb4f31c/item/README.md",
    "https://git.sr.ht/~benoitren/shadowheartsdecompilation/tree/a757b59f228f4dd382688a5fee2946ea4cb4f31c/item/src/ctimer.cpp",
    "https://git.sr.ht/~benoitren/shadowheartsdecompilation/tree/a757b59f228f4dd382688a5fee2946ea4cb4f31c/item/src/eekernel.h"
  ],
  "category": "reconstruction-cases",
  "class": "game",
  "description_en": "shadowheartsdecompilation reconstructs C++ source for the core runtime classes of the PS2 game Shadow Hearts. It covers CThread, CTimer, CPoller, CPolling, CPolObj, CDrawObj, CDrawPolling, CDraw, CApp, CPause, FVector and Matrix, with each method annotated with its address in the original executable and written against Emotion Engine kernel calls and hardware timer registers.",
  "description_zh": "shadowheartsdecompilation 为 PS2 游戏 Shadow Hearts 的核心运行时类重建 C++ 源码，涵盖 CThread、CTimer、CPoller、CPolling、CPolObj、CDrawObj、CDrawPolling、CDraw、CApp、CPause、FVector 和 Matrix。每个方法都注明其在原可执行文件中的地址，代码直接调用 Emotion Engine 内核接口和硬件定时器寄存器。",
  "entry_url": "https://awesomerea.org/resources/shadow-hearts-decompilation-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/shadow-hearts-decompilation-case/",
  "evidence_class": 3,
  "evidence_status": "observed",
  "evidence_url": "https://git.sr.ht/~benoitren/shadowheartsdecompilation/tree/a757b59f228f4dd382688a5fee2946ea4cb4f31c/item/src/ctimer.h",
  "group": "cases",
  "id": "shadow-hearts-decompilation-case",
  "json_url": "https://awesomerea.org/resources/shadow-hearts-decompilation-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/shadow-hearts-decompilation-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/shadow-hearts-decompilation-case/index.md",
  "name": "shadowheartsdecompilation: Shadow Hearts PS2 runtime classes decompiled to C++",
  "name_zh": "shadowheartsdecompilation：Shadow Hearts PS2 运行时类的 C++ 反编译",
  "reconstruction_method": "decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "limits",
    "license"
  ],
  "requirements": [
    "Covers twelve runtime classes; CApp is decompiled except for its Run method.",
    "The repository contains C++ sources and headers without build scripts.",
    "CC0 1.0 Universal."
  ],
  "requirements_zh": [
    "涵盖十二个运行时类，其中 CApp 的 Run 方法尚未反编译。",
    "仓库只有 C++ 源文件和头文件，没有构建脚本。",
    "CC0 1.0 Universal。"
  ],
  "scope": "notes",
  "targets": [
    "game"
  ],
  "url": "https://git.sr.ht/~benoitren/shadowheartsdecompilation",
  "verification": "source-reviewed",
  "verified_at": "2026-11-09"
}
