Skip to content

Releases: nautilusbits/retrokit

retro-kit 0.2.0

Choose a tag to compare

@nautilusbits nautilusbits released this 14 Oct 00:43

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.

retro-kit 0.1.0

Choose a tag to compare

@nautilusbits nautilusbits released this 13 Oct 22:33

First public release of retro-kit, a headless-Ghidra toolkit for reverse engineering 32-bit DOS (LE/LX, Watcom C/C++) and Win32 games of about 1993-2010.

pipx install git+https://github.com/nemo22/retrokit@v0.1.0
retrokit doctor && retrokit install-loader
retrokit analyze GAME.EXE

Highlights:

  • Own LE/LX loader for Ghidra 12 (DOS/4GW, DOS/32A, PMODE/W, CauseWay, DOS/4G bind, OS/2 LX, VxD) and Watcom compiler specs for both calling conventions, detected automatically.
  • Pipeline tuned on a synthetic test corpus: functions from fixups and pointer tables, switch tables kept together, parameter counts from call-site cleanup, prototypes callees-first, string literals.
  • Library signatures: Open Watcom C/C++ run-time, math and C++ libraries, zlib 1.0.4-1.2.3, libjpeg 6b - exact and fuzzy matching (other compiler versions and switches), typed from C headers. Build your own from libraries you own (retrokit sigs build) or learn them from an analysed game (retrokit sigs learn).
  • Library catalog (retrokit libs): Miles/AIL, HMI SOS, DIGPAK, Smacker, Bink, FMOD, BASS, DirectX, zlib, libjpeg, libpng, PKWARE DCL, Lua and more, with notes on formats and porting.
  • Data formats (retrokit convert): XMIDI, HMI, HMP -> MIDI; VOC -> WAV; Smacker / Bink / FLIC -> MP4 via FFmpeg.
  • MCP server for AI agents (retrokit mcp): functions, decompiled code, xrefs, pointer tables, disassembly, name proposals, notes and re-export - see docs/MCP.md and AGENTS.md.
  • Tested on Windows and Linux.

Full list and known limitations: CHANGELOG.md.

retro-kit contains no game files and no decompiled game code; use it on software you own.