Star on GitHubStar1.1k stars

Case study

TH08: exact-source reconstruction and separately tested ports

Reconstructs the original Japanese Touhou 8 version 1.00d against its binary and original compiler, then adapts the recovered code for other platforms. Source presence, strict function matching, whole-executable identity and playable-port checks are recorded as different milestones.

Targets
Game
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Prerequisites: Exact checks require the user’s original Japanese TH08 1.00d executable and Visual C++ .NET 2002 toolchain. Ledgers and analysis helpers need Python 3.11+; Linux/macOS toolchain setup also needs Wine and msiextract. Playable products still need original game data.
  • Scope: The pinned main README reports source for 1,107 authored functions and strict acceptance of 1,106, with whole-executable identity still in progress.
  • Scope: The VC7 i386 runtime checkpoint is distinct from a redistributable modern Windows release; macOS remains in progress. Exact normal-build checks and bugfix playtests have different purposes.
  • Testing evidence: A historical oracle accepted instruction bytes while missing wrong floating-literal data. The linked issue/PR records later data-reference checks.
  • License: MIT covers repository code/docs, not the original game. Historical source lineage and agent contributions retain their attribution.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · N0zoM1z0/th08 · Revision 08c7f00
  2. docs/BUILD_MATCHING.md GitHub · N0zoM1z0/th08 · Revision 08c7f00
  3. docs/REPLAY_RESULTS.md GitHub · N0zoM1z0/th08 · Revision 08c7f00
  4. LICENSE GitHub · N0zoM1z0/th08 · Revision 08c7f00
  5. https://github.com/N0zoM1z0/th08/issues/10
  6. https://github.com/N0zoM1z0/th08/pull/13

More in Games

All 318 entries in GamesGames case studies (239)

↑↓ move↵ open⌘↵ new tab