Star on GitHubStar1.1k stars

Case study

TH095: function-level reconstruction of Shoot the Bullet 1.02a

Reconstructs source for the original Japanese Touhou 9.5: Shoot the Bullet 1.02a executable, accepting function exactness only through reproducible byte comparison of pinned Visual C++ .NET 2003 builds against one hash-attested target. The whole program also compiles and links into a playable Windows i386 executable, while README keeps playability, function matching and whole-executable identity as separate statuses.

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

Requirements & limits

  • Prerequisites: Supply your own original Japanese 1.02a th095.exe matching the size, SHA-256 and MD5 in README, imported as resources/th095.exe; playing also needs the game’s data. README says copyrighted executables, game data and private analysis databases are not included, and public CI runs only target-independent checks.
  • Prerequisites: scripts/bootstrap-tools.sh needs curl, git, sha256sum, tar, unzip, uv and Wine, then fetches checksum-pinned Ghidra 12.1.3, Temurin JDK 21, objdiff 3.8.0 and Microsoft Visual C++ .NET 2003 (13.10.3077) binaries from a third-party archive repository; reccmp 0.1.6 is also pinned. scripts/build-whole.py cold-compiles and links the production graph and refuses stubbed or force-linked images.
  • Testing evidence: Generated PROGRESS.md reports 697 confirmed authored functions among 1,880 candidates, all with source, and 696 canonically exact, covering 99.22% of confirmed authored bytes; Controller::GetInput keeps one differing byte. README lists semantic reconstruction as active and Windows x86-64, Linux and Web ports as planned, and tags the playable baseline v0.1.0-windows-i386 without release binaries.
  • Testing evidence: Exact credit requires a zero-difference COFF function comparison recorded in the match ledgers; Ghidra, IDA MCP and runtime observation count only as supporting evidence. README cites a full-game runtime video using a test-only no-death launcher plus separate normal-build tests, and RUNTIME_ISSUES.md notes those checks used 2026-09-10 source, with later semantic changes only compile- and link-validated.
  • License: MIT covers repository code and documentation, not the game or its assets; the downloaded compiler and tools keep their own terms. The repository carries coding-agent rules and skills and a GPT web Ghidra bridge; REA’s separately published Touhou essay discusses this project.

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/th095 · Revision 6084b36
  2. docs/PROGRESS.md GitHub · N0zoM1z0/th095 · Revision 6084b36
  3. docs/ORACLES.md GitHub · N0zoM1z0/th095 · Revision 6084b36
  4. docs/RUNTIME_ISSUES.md GitHub · N0zoM1z0/th095 · Revision 6084b36
  5. docs/TOOLS.md GitHub · N0zoM1z0/th095 · Revision 6084b36
  6. config/tools.lock.toml GitHub · N0zoM1z0/th095 · Revision 6084b36
  7. scripts/bootstrap-tools.sh GitHub · N0zoM1z0/th095 · Revision 6084b36
  8. .github/workflows/ci.yml GitHub · N0zoM1z0/th095 · Revision 6084b36
  9. LICENSE GitHub · N0zoM1z0/th095 · Revision 6084b36

More in Games

All 318 entries in GamesGames case studies (239)

↑↓ move↵ open⌘↵ new tab