Repository navigation
Releases: nautilusbits/retrokit
Releases · nautilusbits/retrokit
Release list
retro-kit 0.2.0
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.
retro-kit 0.1.0
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.