Having the same compiler helps, and I also have a binary matching workflow, but matching functions 100% is a huge token sink due to compiler optimizations, so I just had agents review functions one by one for differences, clean up decompiler artifacts and possible semantic bugs, and mark functions as reviewed. So the raw matching % is really low even though the game already works.
It does help that the game's native part is quite small, only 1.5k pure C functions in 700KB of code. Although with LLMs as long as you have enough usage, it's only a matter of time even for huge codebases.
As the LLM I used GPT 5.5, then 5.6 Sol, I trust GPT models the most for reverse engineering, they're very thorough.
It's nice that these people started using LLMs (mentioned in https://lwss.github.io/Kisak-Black/), although IDA MCPs are worse than CLI-based options, and I wouldn't trust Claude models that much for this work. It seems like the work started in 2025 when those models weren't good enough for that, but they absolutely are now.
Decomps are one of those repetitive, mostly non creative tasks that I think humans shouldn't spend their valuable time on, maybe only to guide or clean up. If you have an older favorite game, chances are, you can fully decompile and reimplement it with enough tokens :)
- https://lwss.github.io/Duty-Of-Kisak/
- https://lwss.github.io/Kisak-Black/