Case study

Kingdom Hearts 358/2 Days: native PC port built on a matching decompilation

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.

Requirements and limitations

  • 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; this collection ran none of these checks.
  • 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; no REA connection is established.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  2. docs/BUILD.md GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  3. THIRD_PARTY_NOTICES.md GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  4. LICENSE GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  5. .gitmodules GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  6. tools/supported_roms.json GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  7. installer/README.md GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  8. .github/workflows/build.yml GitHub · Yokimitsuro/khdays-port · Revision 8e0ad0b
  9. README.md GitHub · Yokimitsuro/khdays-decomp · Revision a2b0478