Repository navigation
The Win32 release: DirectX and C++ games of the late 1990s and 2000s decompile with method names, typed library calls and class information.
pipx install git+https://github.com/nemo22/retrokit@v0.2.0
- DirectX through COM vtables: DirectDraw 1-7, DirectSound, DirectInput 1-8, Direct3D 3-9 (104 interfaces). Interface pointers are typed from the creation functions and from methods that return interfaces, and every call through a typed vtable gets its prototype, so the decompiled C reads
(*g_dd->lpVtbl->CreateSurface)(g_dd,&desc,&g_primary,0)instead of(**(code **)(*g_dd + 0x18))(...). - Library imports typed: Miles Sound System (MSS32), Smacker, Bink, FMOD 3, BASS - the argument size in decorated imports (
_SmackOpen@12) is checked against the prototype, and the imports lose their decoration. - MSVC C++ classes from RTTI:
retrokit classes(also an MCP tool anddecomp/classes.txt) lists classes, base classes and vtables; unnamed virtual methods becomeClass_vfunc_N. - Compiler version from the Rich header in
retrokit info(e.g. VC++ 6.0, VS 2005). - MSVC run-time signatures you can build yourself:
retrokit sigs build --coff --lib LIBC.LIBreads COFF libraries directly;retrokit sigs learnnow works for PE workspaces too. - Fixed: fuzzy signature matching gives the same result on every run.
Full list: CHANGELOG.md.