Skip to content

retro-kit 0.2.0

Latest

Choose a tag to compare

@nautilusbits nautilusbits released this 14 Oct 00:43
· 2 commits to main since this release

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 and decomp/classes.txt) lists classes, base classes and vtables; unnamed virtual methods become Class_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.LIB reads COFF libraries directly; retrokit sigs learn now works for PE workspaces too.
  • Fixed: fuzzy signature matching gives the same result on every run.

Full list: CHANGELOG.md.