This project reconstructs the original Japanese TH095 version 1.02a executable. Reproducible byte comparison against one hash-attested target is the acceptance criterion.
Supply your own legal copy as resources/th095.exe:
| Property | Required value |
|---|---|
| Version | original Japanese 1.02a |
| Size | 696,832 bytes |
| SHA-256 | bb54f6fc54f0eeffaec416ca9f64aef32b5f59b7427fa5a6579f6538e0eddc07 |
| MD5 | 8de95bc7651419201fc1a4ea49bc0697 |
| Image base | 0x00400000 |
| Entry point | 0x00486A9D |
The target identifies itself as Shoot the Bullet. ver 1.02a. The
official 1.02a update post links the
th095_ver102a.exe updater used to produce the final Japanese version.
scripts/import-target.sh /path/to/th095.exe
python3 scripts/verify-target.pyCopyrighted executables, game data, and private analysis databases are not included.
TH095 is in active reconstruction. The historical attested Ghidra 12.1.3
import supplied 1,830 provisional function candidates; IDA Pro MCP is now the
primary semantic-analysis backend. The generated progress badge
and report are the canonical live totals. Exact units include the complete
17,018-byte AnmManager::ExecuteScript, 27,091-byte EclManager::RunEcl, the
target-specific asynchronous SoundPlayer core, and the Main/D3D runtime
family. The TH095-specific replay stream, disk/archive loader, compressed
writer, result-screen dependencies, scene-selection helpers, photography
camera helpers, the five-function WinMM/DirectInput controller chain, keyboard
reset, and the shared FileSystem codec/archive-or-disk loader are also exact.
The complete dual-device and aggregate Controller::GetInput path is
source-present. The complete TH095 Music Room is source-present, with both
music-comment parsing helpers exact. The complete nine-page Help viewer is
also source-present, and its asynchronous archive-or-disk loading callback is
exact. The shared TH095 scene-score/replay-browser text renderer is
source-present as well, with exact update/draw chain ownership wrappers.
The owning ten-state front-end coordinator is source-present with its complete
main/scene/replay/options/music/Help and game-transition routing. Its complete
six-row title menu is source-present as well, including idle-demo playback and
queue cleanup; both of its high-fan-out VM interrupt helpers are exact. The
complete TH095 group/scene selection hub is source-present with all three
asynchronous preview pipelines and its exact 275-call topology; its shared
D3D texture clear helper is exact. The selector's asynchronous mission/face
asset worker is source-present with its complete queue protocol and exact
38-call topology. The selected-scene best-shot loader and shared 8 KiB-ring
decompressor are source-present, and their aligned checksum dependency is exact.
The selector/Help ANM texture pipeline is source-present through full and
regional uploads and three-format alpha bleed; the full upload, format selector,
and all three pixel-neighbor helpers are exact.
A target-local audit continues to admit photography/camera, replay/menu, scene-selection, options, and gameplay/resource functions as their authored origins are proved. Mapping, source presence, semantic validation, and exact matches are deliberately tracked as independent states, so the denominator can grow and difficult compiler-shape residuals remain uncredited. The aspirational reconstruction target is 99.5% of that conservative authored denominator, but difficult units remain uncredited rather than weakening the exact-match standard.
The pinned compiler is Microsoft Visual C++ .NET 2003
13.10.3077, matching the target's PE/Rich-header evidence. The
/Od /Ob1 /Oi /Gr main translation-unit profile is proven across seventeen
accepted Main/D3D units. The exact ANM and ECL VM units independently prove
the same optimization/inlining shape for their bounded translation units. The
reconstructed SoundPlayer lane also uses /Od /Ob1; profiles elsewhere
remain unclassified.
Start a reconstruction session with:
scripts/bootstrap-tools.sh
python3 scripts/verify-target.py
python3 scripts/report-reconstruction-status.py --summary
python3 scripts/validate-tracking.py --require-targetAttest the active IDA database against config/target.toml before relying on
its analysis; see the IDA guide below.
- Current handoff
- Architecture and exact target
- Reverse-engineering workflow
- Independent oracle policy
- IDA Pro MCP setup and attestation
- Legacy Ghidra workflow
- VC7.1 build and strict matching
- Tool routing
- Verified knowledge base
- Generated progress
- Agent rules
Run public, target-independent checks with python3 scripts/ci.py. Private
target and IDA/Ghidra checks remain separate from public CI.
The control plane follows the conservative in-progress model from N0zoM1z0/th105. The completed N0zoM1z0/th08 project is a secondary source for strict comparison and Ghidra workflow patterns. Neither repository is binary evidence for TH095, and completed port infrastructure is intentionally out of scope during bring-up.
Repository-authored code and documentation are provided under the MIT License. This does not grant rights to the original game or its assets.
