Case study
TicTacToe-AI: a bounded REA-fork reconstruction of one game method
The author’s REA fork, posted as rea-engine and since renamed RE-Agent, decompiles the shipped .NET executable of the GPL-licensed TicTacToe-AI game, recompiles the recovered C# and resources, and repairs one decompiler error against the original IL. A differential probe runs original and rebuilt code on all 19,683 board assignments for one status method and compares six form renders. The report passes only that method; the whole game remains partial.
Requirements and limitations
- The reviewed develop commit (2026-10-15) reports Feature PASS for CheckGameStatus over its declared 3^9 board domain and PARTIAL for the whole game. AI move selection and RNG, menus, timing and sound are unverified, the executables are not byte-identical, and raw terminal captures differ by one carriage return. The posts’ “byte for byte” wording therefore applies to structured board records and six render PNGs, not to the program.
- The input is the published TicTacToe-AI executable from tatlead’s GPL-3.0 repository, identified by SHA-256 in the report. The repository redistributes it with the GPL text and a source archive kept for license compliance; the statement that this source was not consulted during reconstruction is author-reported.
- The fork needs Node.js 22.19+ or 24.11+; recovery uses ilspycmd plus a host Roslyn compiler and Mono references, with script defaults pointing at Homebrew paths on macOS. Verification needs a local X11 display and Mono/libgdiplus. The recorded run used macOS 15.3.1 on ARM64 with Xvfb, so both renders come from the same Mono runtime rather than native Windows.
- Scripts recover a fresh replica, then a probe executes the original and rebuilt assemblies, compares return values and indicator bytes for every board, and captures Form.DrawToBitmap images after button sequences. The current result JSON records zero board-record mismatches and terminalBytesEqual false. This collection read the reports and scripts without running the executables, tools or probe.
- The fork is MIT with morluto’s REA copyright retained and lists optional engines such as Ghidra and Frida under their own licenses; the game and its reconstruction carry GPL-3.0 obligations. Fork-specific code is not part of upstream REA releases, and the repository was renamed after the posts, whose rea-engine link now redirects to RE-Agent.
About this entry
- Type
- Case study
- Category
- Community REA investigations
- Relationship
- Author-reported mixed workflow
- Targets
- Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- benchmarks/native-windows-ports/reports/targets/tictactoe.md GitHub · heaven-hm/re-agent · Revision a84c61e
- benchmarks/README.md GitHub · heaven-hm/re-agent · Revision a84c61e
- docs/verification/rea-engine/game-report-current-2026-10-14.json GitHub · heaven-hm/re-agent · Revision a84c61e
- scripts/recover-tictactoe-replica.mjs GitHub · heaven-hm/re-agent · Revision a84c61e
- scripts/verify-tictactoe-reconstruction.mjs GitHub · heaven-hm/re-agent · Revision a84c61e
- scripts/benchmarks/TicTacToeProbe.cs GitHub · heaven-hm/re-agent · Revision a84c61e
- benchmarks/tictactoe/LICENSE GitHub · heaven-hm/re-agent · Revision a84c61e
- README.md GitHub · heaven-hm/re-agent · Revision a84c61e
- THIRD_PARTY_NOTICES.md GitHub · heaven-hm/re-agent · Revision a84c61e
- LICENSE GitHub · heaven-hm/re-agent · Revision a84c61e
- package.json GitHub · heaven-hm/re-agent · Revision a84c61e
- https://github.com/tatlead/TicTacToe-AI/tree/ce0f81b05e190dcfb72ea68c5fbb1114fa994a5a