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

  1. benchmarks/native-windows-ports/reports/targets/tictactoe.md GitHub · heaven-hm/re-agent · Revision a84c61e
  2. benchmarks/README.md GitHub · heaven-hm/re-agent · Revision a84c61e
  3. docs/verification/rea-engine/game-report-current-2026-10-14.json GitHub · heaven-hm/re-agent · Revision a84c61e
  4. scripts/recover-tictactoe-replica.mjs GitHub · heaven-hm/re-agent · Revision a84c61e
  5. scripts/verify-tictactoe-reconstruction.mjs GitHub · heaven-hm/re-agent · Revision a84c61e
  6. scripts/benchmarks/TicTacToeProbe.cs GitHub · heaven-hm/re-agent · Revision a84c61e
  7. benchmarks/tictactoe/LICENSE GitHub · heaven-hm/re-agent · Revision a84c61e
  8. README.md GitHub · heaven-hm/re-agent · Revision a84c61e
  9. THIRD_PARTY_NOTICES.md GitHub · heaven-hm/re-agent · Revision a84c61e
  10. LICENSE GitHub · heaven-hm/re-agent · Revision a84c61e
  11. package.json GitHub · heaven-hm/re-agent · Revision a84c61e
  12. https://github.com/tatlead/TicTacToe-AI/tree/ce0f81b05e190dcfb72ea68c5fbb1114fa994a5a