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.

Requirements and limitations

  • 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 does not claim whole-executable byte identity, 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.
  • 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.
  • 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.
  • 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. This collection ran nothing.
  • 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 but does not itself document REA use; REA’s separately published Touhou essay discusses this project. No runtime reproduction is claimed here.

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 · 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