this escalated quickly. there is a game that i have been trying to decompile for the last 10 years. not like i was doing any efforts, it was more like sudoku. i've started in ida, later moved to binary ninja, and it was some meditative sessions before going to sleep.
now, in times of llm, i decided that i want to finish things up. I've got inspired by this article. so I loaded ghidra, with no previous data (everything is in bin ninja). i use info from binninja to map functions to corresponding source (there are left overs of debug code in the game). but after that i bought codex subscription and I ask it to reconstruct names of functions as i did manually before. and it did, then i ask it to try to extract rtti info and it did. so i was up to speed in ghidra in a day to the same degree as i was in bin ninja after years. one of the biggest things is ghidra-mcp which allows this magic to happen. initially i tried to use additional tools to keep track of what is reconstructed but it didn't play well.
then i decided okay, let's start implementing. so i setup wine and msvc 4.2 as dev env. and ask codex to build everything to go to the main menu. and it did! like in 20 minutes. that's impressive. then i ask to show briefing menu with some 3d (which includes init 3d engine) and it did! also models can do screenshots and compare them so they can actually iterate on visuals too (to some degree at least)
I'm very impressed. yes, you definitely need to prepare and ask specific questions, or guide it to specific code path, but after that it can produce code on its own. and because it has access to orig code in ghidra it does a better code than just hallucinating stuff. it loops, finds errors and continues. and now i wonder if i can do that without much preparation and thinking, what possibilities are achievable by serious guys.
i'm pretty sure c-style code can be easily reconstructed (with some inline asm exceptions). but I'm not sure about cpp classes. but because game is from msvc 4.x era the code is pretty straightforward so it shouldn't be hard.
for now i will continue to rebuild part of the game, but in long run i need a better workflow (harness) so i can actually reconstruct game and compare results to orig code. we will see how it goes.