{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/docs/BUILD.md",
    "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/THIRD_PARTY_NOTICES.md",
    "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/LICENSE",
    "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/.gitmodules",
    "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/tools/supported_roms.json",
    "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/installer/README.md",
    "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/.github/workflows/build.yml",
    "https://github.com/Yokimitsuro/khdays-decomp/blob/a2b0478b87e3102732094c34f6ca89595f98ab93/README.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "Compiles the C of the khdays-decomp matching decompilation for Windows x64 and supplies a native platform layer for the Nintendo DS hardware, SDK services and sound driver. README reports the whole game running without an ARM interpreter; its rendering, controls, mod support and network multiplayer are the port’s own additions. This is a decompilation-based port, distinct from the byte-matching DS reconstruction it builds on.",
  "description_zh": "将 khdays-decomp 一致性反编译的 C 代码编译为 Windows x64 程序，并以原生平台层替代 Nintendo DS 硬件、SDK 服务及声音驱动。README 报告整款游戏无需 ARM 解释器即可运行；渲染、操作、模组支持与网络联机均为移植自身新增。这是基于反编译的移植，与其所依托的逐字节一致 DS 重建并非同一产物。",
  "entry_url": "https://awesomerea.org/resources/khdays-native-pc-port-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/khdays-native-pc-port-case/",
  "evidence_url": "https://github.com/Yokimitsuro/khdays-port/blob/8e0ad0b04d97d869c53f301bc40987f0ab929799/README.md",
  "group": "cases",
  "id": "khdays-native-pc-port-case",
  "json_url": "https://awesomerea.org/resources/khdays-native-pc-port-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/khdays-native-pc-port-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/khdays-native-pc-port-case/index.md",
  "name": "Kingdom Hearts 358/2 Days: native PC port built on a matching decompilation",
  "name_zh": "Kingdom Hearts 358/2 Days：基于一致性反编译的原生 PC 移植",
  "reconstruction_method": "port",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "Reviewed version 0.1.2 is labelled work in progress. README reports the title, Story Mode, Mission Mode, combat, the shop and save round-trips running natively; builds exist only for Windows x64, with Linux, macOS, Windows on ARM and Switch listed as planned. The pinned khdays-decomp submodule (a2b0478) reports all 306 EU YKGP modules byte-identical; the port compiles that C after build-time rewriting and does not reproduce the DS binary.",
    "Supply your own European Kingdom Hearts 358/2 Days ROM (game code YKGP); the tools check it against a single supported-ROM entry before preparing local game data. Optional HD screens, videos and menus are generated from the player’s own KINGDOM HEARTS HD 1.5+2.5 ReMIX and HD 2.8 Final Chapter Prologue copies. The repository includes no ROM, assets, SDK files or game binaries.",
    "Building needs Windows, Visual Studio 2026 with the C++ workload, CMake, Ninja, Python 3.11+ and pycparser; running needs a Direct3D 12 or Vulkan GPU. Build preparation rewrites game pointers as DS-address references and repairs ARM calling-convention gaps from a ROM-derived Ghidra ABI table; cases it cannot repair mechanically stop at named KHDAYS_ABI_GAP points.",
    "Reported checks are ctest suites (MSVC static analysis, short libFuzzer runs, GPU renders compared with the port’s software DS engines, a DeSmuME savestate comparison) and scripted regression walks through Mission Mode, Story Mode, saving and multiplayer. Tests needing player data are skipped without it, and CI builds only the format library on Windows and Linux. Internet play is reported tried through the maintainer’s server, local-network play between two PCs not yet.",
    "The port declares MIT; its third-party notices record the decompilation as CC0 1.0 and list SDL3 (zlib), Lua, Dear ImGui and other components under their own terms. No repository license applies to the original game or material extracted from it. README states that AI-assisted coding tools were used."
  ],
  "requirements_zh": [
    "所审阅的 0.1.2 版标注为开发中。README 报告标题画面、Story Mode、Mission Mode、战斗、商店及存档读写均可原生运行；目前仅有 Windows x64 构建，Linux、macOS、Windows on ARM 和 Switch 列为计划。固定版本的 khdays-decomp 子模块（a2b0478）报告欧版 YKGP 全部 306 个模块逐字节一致；移植是在构建时改写这些 C 代码后编译，并不复现 DS 二进制。",
    "需自备欧版 Kingdom Hearts 358/2 Days ROM（游戏代码 YKGP）；工具会先将其与唯一一条受支持 ROM 记录比对，再在本地准备游戏数据。可选的高清画面、视频和菜单由玩家自有的 KINGDOM HEARTS HD 1.5+2.5 ReMIX 与 HD 2.8 Final Chapter Prologue 生成。仓库不含 ROM、素材、SDK 文件或游戏二进制。",
    "构建需要 Windows、带 C++ 工作负载的 Visual Studio 2026、CMake、Ninja、Python 3.11+ 及 pycparser；运行需要支持 Direct3D 12 或 Vulkan 的显卡。构建准备阶段把游戏指针改写为 DS 地址引用，并依据从 ROM 得出的 Ghidra ABI 表修补 ARM 调用约定缺口；无法机械修补之处会停在具名的 KHDAYS_ABI_GAP 位置。",
    "项目报告的检查包括 ctest 套件（MSVC 静态分析、短时 libFuzzer 运行、GPU 渲染与移植自身软件 DS 引擎的对照、DeSmuME 存档状态对照），以及覆盖 Mission Mode、Story Mode、存档和联机的脚本化回归流程。需要玩家数据的测试在缺少数据时跳过，CI 仅在 Windows 和 Linux 上构建格式库。报告称已通过维护者服务器试过互联网联机，两台 PC 间的局域网联机尚未试过。",
    "移植声明采用 MIT；第三方声明记录反编译部分为 CC0 1.0，并列出 SDL3（zlib）、Lua、Dear ImGui 等各按自身条款授权的组件。仓库中的任何许可均不适用于原游戏或从中提取的材料。README 说明使用了 AI 辅助编码工具。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/Yokimitsuro/khdays-port",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
