19 KiB
Touhou reconstruction method: evidence notes
Checked on 10 October 2026. This document supports the full English essay
at public/blog/touhou-reconstruction/index.html.
Method sources
The Factory checkpoint is
038b6bed.
Read its agent autonomy,
semantic workflow,
and cross-game knowledge
documents for the underlying method: autonomous investigation, bounded changes,
empirical feedback, durable checkpoints and reusable lessons.
The industrial-age analogy explains that method. The Factory's software architecture also uses the Abstract Factory pattern; the article's analogy should focus on the working process rather than that implementation.
REA supplies analysis evidence to an agent. The historical projects also used project-specific analysis bridges and tooling. The article should attribute historical work to those projects and explain where REA fits in the general workflow, without relabeling every historical tool result as REA output.
Collection and counting
Public history was retrieved with gh api, including all pages of each
repository's default-branch commits, repository metadata and release records.
Pinned progress documents were read from the corresponding Git objects in the
local project checkouts. Every milestone SHA below appears in the public
GitHub history. No local-only revision or uncommitted change supplies a claim.
Elapsed days are the difference between public commit committer timestamps, in UTC, divided by 86,400 and rounded to two decimal places. The article uses rounded calendar intervals. They measure recorded milestone spacing, not compute time, person-hours or a controlled speedup benchmark.
TH08's start is the independent continuation at 001bf3e, not its inherited
2025 initial commit or its hosting creation date. Its imported GensokyoClub
history ends at 7ad3792; preserve that attribution and license. TH095 starts
with zero confirmed authored functions, while using methods and infrastructure
from earlier projects. TH04 uses ReC98 as a credited source of existing work.
The denominators change as candidates are classified and boundaries reviewed. Read each pinned progress document's definitions. Avoid a cross-game function rate or an executable-wide completion percentage.
Public history snapshot
This is the initial 10 October research snapshot. The later TH04 phase update below uses its own pinned checkpoint; it does not change these earlier counts.
| Project | Default-branch commits | Commits whose subject begins gpt-web: |
Public head |
|---|---|---|---|
| TH08 | 1,117 | 400 | d2a00f4acb4a13916e07a00bd13f714961714628 |
| TH095 | 713 | 450 | 6084b36cfa90ac1720f0cba36caec3ee56fc5e1f |
| TH04 | 957 | 623 | 33b80522f03565022dbfe4d5c8a88bdc57f566ae |
TH08 has 696 reachable continuation commits after the imported boundary; its total includes the upstream history. Subject prefixes identify a recorded workflow convention, not the number of sessions, experiments or verified functions. Commit counts remain supporting research rather than article headlines.
Milestone records
TH08
Start: 001bf3e9 at 2026-08-13T02:23:48Z.
| Checkpoint | UTC timestamp | Elapsed days | Recorded milestone |
|---|---|---|---|
| 15caba73 | 2026-08-19T12:19:33Z | 6.41 | Restore clean authored build baseline |
| da07b21c | 2026-08-24T10:43:33Z | 11.35 | Add playable Linux reconstruction port |
| 529eb1a3 | 2026-08-26T05:12:23Z | 13.12 | Link the playable TH08 Web edition |
| 5d314e21 | 2026-08-30T10:30:16Z | 17.34 | docs: publish native Linux 64-bit release |
| bd1bae44 | 2026-08-26T15:59:04Z | 13.57 | semantic: recover GameManager state and exact title registration |
TH095
Start: 8c31e6f8 at 2026-08-29T07:49:20Z.
| Checkpoint | UTC timestamp | Elapsed days | Recorded milestone |
|---|---|---|---|
| 0fa857fb | 2026-09-07T05:23:52Z | 8.90 | gpt-web: match enemy movement exactly |
| 74baddfc | 2026-09-08T09:19:45Z | 10.06 | Match final ANM x87 draw functions |
| 33d46a0e | 2026-09-09T11:15:00Z | 11.14 | build: complete whole-program linkage |
| 3442dcf2 | 2026-09-10T07:07:28Z | 11.97 | Mark the Windows reconstruction playable |
TH04
Start: f402cb30 at 2026-09-06T09:54:05Z.
| Checkpoint | UTC timestamp | Elapsed days | Recorded milestone |
|---|---|---|---|
| 1cd1a257 | 2026-09-26T21:16:40Z | 20.47 | gpt-web: accept MAIN SND_LOAD |
| 4b6a57f8 | 2026-10-02T07:44:53Z | 25.91 | gpt-6.1-sol: build four native products and restore DOS handoff |
What the milestones establish
- TH08: the 19 August progress ledger records 1,107 / 1,107 authored functions with source. The 24 August change introduces a playable Linux reconstruction port; the 30 August GitHub release publishes the 64-bit Linux product. The 26 August exact ledger records 1,106 / 1,107 accepted functions.
- TH095: the initial ledger records zero confirmed/source-present authored
functions. The 7 September ledger records 697 source-present mappings;
8 September records 696 exact functions out of 697 confirmed authored
functions. The 10 September checkpoint marks the Windows i386 reconstruction
playable and documents the exercised startup, gameplay and transition paths.
The remaining
Controller::GetInputcomparison is separate from playability. - TH04: the 26 September ledger records 661 exact functions out of 663 reviewed authored candidates across OP, MAIN, MAINE and ZUN. MAIN's byte denominator covers its reviewed authored extents; other artifacts use decoded comparisons. The 2 October checkpoint builds four standalone DOS products. Runtime work and a modern x64 product have their own milestones; a four-product build is not a whole-game runtime result.
TH08's playable ports preceded later historical-platform runtime audits. The Factory's current recommended order reflects lessons learned across those projects; do not present that later recommendation as a process applied perfectly from the beginning.
Editorial scope
The article follows the author's change in perspective: previous manual RE, starting agent-driven work in August 2026, TH08's continuation, TH095's reuse of experience, and TH04's application of the method to another architecture. The manual-RE background and August starting point are author-provided experience. The industrial-era conclusion and the interpretation of the two contribution models are the author's argument, supported by the described project record. They are not a measured agent-versus-human performance ratio.
Engine APIs, compiler flags, addresses and ledger schemas remain in references.
The full essay replaces the outline and removes its noindex directive; the
generated sitemap includes the article. The author approved publication on
10 October 2026, and the review labels were removed from the article and Blog hub.
GensokyoClub quotation and policy
The public README was read with gh api on 10 October 2026. Its latest
README-changing commit is
e874b98e,
dated 6 September. The notice announces a decision effective 5 September and
describes concerns about AI decompilations, ports, attribution and their effect
on the maintainers. Its stated plan is private development until completion.
The article quotes 23 words from the passage's opening clause, followed by an ellipsis; it paraphrases the remaining point about the psychological toll. The excerpt was checked against the retrieved original, with whitespace normalized for display. The linked notice supplies its context.
The current public head is
f345c7de.
Its contribution policy
excludes PRs created primarily using AI. The article paraphrases this policy
and discusses the different contribution models. It preserves GensokyoClub's
credit, describes the author's own manual and agent workflows, and does not
assign motives beyond what the public notice states.
TH04's current DOS and 64-bit phases
The latest public main checkpoint checked for this revision is
bb9faca5,
dated 10 October 2026. Its handoff records the standalone DOS products,
repaired normal and invincible variants, and the user's manual Windows
observations of complete Normal routes, endings and saves. It identifies
resumed x64 work as the current phase on the separate port/modern-64 branch.
That branch was publicly present at 1ffc53a61e1e82409adb40c7658d4ee2f3a21916
when inspected with gh.
The essay's first-person DOS testing statement describes those maintainer observations, also confirmed by the author in this revision request. It is not attributed to a new automated website test or a fresh runtime replay. The 64-bit port is described as in development. The earlier four-product build and function-count milestones retain their historical scopes.
Autonomy, oracles and the compounding flywheel
The author's requested revision emphasizes two principles: agents have broad autonomy to investigate, and their hypotheses are tested by oracles with concrete references and explicit acceptance conditions. These ideas are developed in the Factory's agent-autonomy and semantic-reconstruction documents listed above. An oracle result supports the property and inputs actually checked; the essay retains human responsibility for project milestones and release decisions.
The flywheel is an explanatory model of this relationship. Its passing branch retains a checked result and its evidence; a mismatch returns to investigation. Code, checks and recorded lessons improve the next starting point, with TH08, TH095 and TH04 illustrating knowledge carried between projects. It does not depict a measured performance ratio or give REA sole credit for reconstruction.
The first inline reference to GensokyoClub's public README links to the author's selected Internet Archive capture. The pinned source caption and 23-word excerpt retain their original provenance. The author approved this revision for publication on 10 October 2026.
TH08's floating-literal oracle failure
The author recalled a floating-point comparison bug. The source history and
public GitHub record identify it as a reference-data verification gap, rather
than a rounding-tolerance problem. The original Japanese TH08 1.00d executable
uses double 128.0 in the power arm of ItemManager::OnUpdate's item-attraction
condition. The reconstructed source used 0.0.
- Issue #10, opened on 2 September 2026, records the downstream Switch-port report, the target instructions and the constant bytes. Normal power is non-negative, so the erroneous power arm was effectively unconditional after crossing the collection line. Focus and shot-type exceptions were separate, correct arms of the condition.
- PR #11, merged on 2 September,
contains commit
7148a76b. It changes the threshold from0.0to128.0, fixes the manifest literal identity, and adds source-symbol/declared-data/target-data checks for explicitly recorded floating literals. - PR #13, merged the same day,
contains commit
a393f400. It audits 1,548 configured floating-literal references, corrects twelve more stale references across five accepted functions, and makes verification automatic for every 32-bit or 64-bit__real@...relocation. Its tests include deliberately invalid literal declarations and representations.
The older comparison replayed the target address into the instruction's
relocation field, then compared instruction bytes without checking the
floating-literal data at that address. Source 0.0 could therefore appear
exact against target 128.0. The essay explains this mechanism in ordinary
language and keeps implementation details in the linked record. The count is
of references, not distinct values or new functions.
The website work reexamined the historical diffs and retrieved the issue and
PR metadata with gh; it did not rerun the game's historical compiler or
runtime. The author supplies the first-person lesson about working as one
human with agents and about responsibility for oracle quality.
Readability and the learned phase order
The semantic discussion is based on the author's requested explanation,
TH08's semantic playbook,
and the Factory's
semantic-reconstruction workflow.
The workflow's latest public change was checked using gh on 10 October.
The recommended order is an exact baseline, a working historical-platform product, semantic reconstruction with both validation paths, then portable products. The original target/compiler comparisons and the historical build/runtime checks answer different questions. Both are preserved during semantic work. Names, ownership and protocol interpretations also need producer/consumer evidence; a passing check does not establish their English meaning. Modern ports compare behavior with the established historical build without requiring the new architecture's machine code to match the old one.
This is a method learned from the projects. TH08's earlier portable releases preceded some later historical-platform audits. The essay states that history explicitly rather than presenting the current order as the original chronology. The game-RE background and the assembly/raw-offset aside are author-provided perspective. Transfer to other fields is a proposal to carry the principles while choosing references appropriate to the new domain.
Industrial analogy: instruments develop with machines
The Science Museum Group's steam-engine indicator record, read on 10 October 2026, describes Boulton and Watt's introduction of the instrument in 1796 to assist with valve adjustment. It also explains how adding a pencil and moving paper made cylinder pressure through the stroke recordable. The essay paraphrases this description and links it directly. It does not use the record's images, quote its text, or date the displayed object or pressure diagram to 1796.
The connection to reconstruction tools is the author's analogy: rapid execution needs measurement, and the instruments themselves require improvement. The claim that this is an early industrial stage is the essay's interpretation of the project experience. The historical example supports the measurement comparison rather than a measured prediction about AI productivity.
Prose revision
The later prose pass reduces repeated enumerations and develops each lesson through its project example. It preserves the milestone figures, quotation, source links and four-stage method. The two author-selected emphasized sentences retain their wording.
The opening takeaway now uses five bullets: agent autonomy, repository/Git memory, evidence and explicit unknowns, testing the oracle, and the early stage of the industrial shift. Each has a direct lead and a short explanation. The historical-build/semantic/port sequence remains in the body rather than becoming another takeaway item.