Patrick Hulin used LLM-driven static and dynamic analysis plus a Unicorn-based emulator to clone SimTower as a live collaborative web game at towers.world.
Key Takeaways
Static analysis via reaper (Ghidra + coding agent) failed to produce a playable sim; LLMs made premature conclusions, used vague terminology, and forgot details as context compacted.
The breakthrough was dynamic analysis: Claude Code built a Unicorn emulator mocking 195 Windows 3.1 API calls in ~30 minutes, enabling state-trace comparison against the original binary.
RNG parity was the hardest constraint: sim iteration order and slab-allocator patterns had to match exactly or state diverged in cascading failures.
Claude Code ran autonomously for 8-hour sessions, fixing 5 parity bugs and committing changes without prompting, but required the $200/month plan and off-peak scheduling.
Core pattern: high-level coordination agent + low-level subagents + closed-loop dynamic verification. “Make it better” loops without a verification target do not converge.
Hacker News Comment Review
Commenters flagged the copyright reasoning as shaky: Google v. Oracle was cited as evidence that APIs are not copyrightable, undercutting the author’s rationale for avoiding a function-for-function port.
The token cost ($200/month Claude Code plan, avoiding 8 AM-2 PM 2x peak window) was noted as surprisingly manageable for the scope of work, though not trivial.
Several comments reflected nostalgia and interest in applying the same approach to other abandonware titles (SimCopter, Yoot Tower), suggesting broad applicability of the pipeline.
Notable Comments
@MrPowerGamerBR: Yoot Tower’s source code was permission-granted for open source by Yoot Saito via Don Hopkins, but the repo remains empty as of writing.
@MrDOS: Directly challenges the copyright claim: “Didn’t Google v. Oracle disprove this?” regarding API copyrightability.