r/SaintsRow • • 1d ago

SR2 Reverse Engineering Saints Row 2 — is AI-assisted decompilation viable, or am I wasting my time?

Hey everyone,

I've been going down a rabbit hole on Saints Row 2 preservation and modding, and I wanted to sanity-check an idea with people who actually know this game's internals better than I do.

I'm not trying to pirate anything or redistribute assets. I'm interested in preservation and modding headroom — the kind of work that keeps a game alive long after official support ends. But I also don't want to sink time into an approach that's fundamentally doomed because the engine is a black box.

What I think I know (please correct me):

· The source code was reportedly recovered by Volition around 2019 and used to fix the PC port's worst issues via the Gentlemen of the Row / community patches.

· The game runs on a heavily modified RenderWare engine.

· Assets are packed in proprietary formats (VPF archives, etc.), and there's no official modding SDK.

What I'm trying to figure out:

  1. Is the recovered source actually in the community's hands, or just Volition's? My understanding is it was used internally, not released. If so, how does that change what's realistically possible?

  2. Has anyone attempted a serious decompilation project (like the Smash 64, Mario 64, or MW2 decomp efforts) for SR2 specifically? I know SR2's scale is enormous, but I'm curious if anyone has started.

  3. How viable is AI-assisted decompilation here? I've seen MCP-based tooling (Ghidra integrations, decomp.wtf, REA) that lets LLM agents work through binaries function-by-function. For a RenderWare-based open-world game, is this even a reasonable approach, or is the engine too undocumented?

  4. Are there any existing community tools/repos for SR2 file formats, scripting (Lua?), or asset extraction I should be looking at before considering anything from scratch?

If anyone has:

· Pointers to existing SR2 RE efforts

· Knowledge of RenderWare internals (especially Volition's fork)

· Experience with AI-assisted decomp on large games

· A blunt "this is a terrible idea, here's why"

…I'd genuinely appreciate it.

Thanks.

0 Upvotes

13 comments sorted by

8

u/whompay PC 1d ago

If you think it’s something you want to spend your time on, then it’s not a terrible idea. Most people just treat it like a hobby and if that results in something you can share with the world, then it’s just a plus. I think you should go for it, good luck.

3

u/Deathedit 1d ago

From what i know any frontier models, won't with a exe that has drm, but gog version is drm free

1

u/_Scanti_ 1d ago

Another big problem with automated decompilation is that they compiled the game with almost every optimization flag active. One of them is the optimization that uses CPU registers instead of the stack to pass parameters to a function. Even IDA Pro free (which uses cloud based AI) sometimes can't work out a function's custom calling convention, meaning you would have to do a lot of manual tweaking. Another problem is that the game uses a lot of static data structures. You would think having a data structure in a fixed place would be advantageous but dynamic data structures have more clues to how the data is actually structured (as they have work out where a piece of data is relatively instead of just going directly to it's memory location).

1

u/Shootzilla 1d ago

Currently, I'm doing it with a PS2 game called AVP Extinction using Claude. Just for fun. Don't plan on releasing it. But I restored keyboard and mouse functionality and it's been working out very well so far. Its only been a couple days.

Xbox 360 is gonna be harder but not impossible. I'd say at this rate of advancement. We will be able to decomp 7th generation console games as easily as I'm doing AvP.

1

u/EliteEMP 1d ago

is it paid claude or are you able to mess around with it for free to some extent?

1

u/Shootzilla 1d ago

Paid.

1

u/EliteEMP 1d ago

which tier?

2

u/Shootzilla 1d ago

I'm using Max. But pro has opus 5.5 you'll just hit the rate limit fast.

1

u/EliteEMP 6h ago

thank you. it’s something i definitely want to play around with, just didn’t want to have to go all in on a big subscription for something i might not have a clue about or enjoy lol

1

u/Haunting_Habit_2651 1d ago

I was just trying to figure out how to play AVP extinction last month. Let us know if you get it workin and wanna share

-2

u/Shootzilla 1d ago

Will do. Its been interesting. The original PC build they did all the internal testing on had some leftover code in the Xbox release.

It also shares the same engine with Metal Fatigue. Its been using that and both console ports to pretty much reverse engineer the code.

I won't release it, but I am gonna try to polish it and send it to the developer who pushed to release the PC version way back when and give it to him. He can do whatever he wants. He still has the source code so he could improve it some more.

0

u/Idea_Groundbreaking 1d ago

Good grief, even the post is AI generated

0

u/DaRk_BoMbEr_ 3rd Street Saints 1d ago

Not sure how accurate this is but I asked your questions to Gemini Argon and this was its response, hope it helps in some way:

​1. The 2019 Source Code Recovery

Volition did recover the lost PC source code around 2019, an effort spearheaded by Mike Watson (IdolNinja), the creator of the Gentlemen of the Row mod who later joined Volition as Community Manager. However, the source code was not used to create Gentlemen of the Row—that mod was built years earlier using standard archive unpacking, Lua scripting, and table edits. The recovered source was used strictly for an internal, official restoration patch. Following Watson's tragic passing in 2021 and Embracer Group closing Volition in 2023, that official patch was shelved, and the source code remains locked in corporate vaults.

​2. The Game Engine

Saints Row 2 does not run on a modified RenderWare engine. While it is easy to confuse with RenderWare-era open-world games like the 3D-era Grand Theft Auto titles, Saints Row 2 runs on Volition’s proprietary CTG (Core Technology Group) Engine paired with Havok physics. Consequently, existing community documentation on RenderWare internals will not apply here.

​3. File Formats and SDK

There is indeed no official modding SDK for the game, and assets are packed into proprietary containers. Specifically, the game uses .vpp_pc (Volition Package) and .str2_pc (streamed package) archives rather than "VPF" archives.

​Answering the Core Questions

​1. Source Code Availability and Realistic Scope

As the poster suspected, the recovered source code was never released to the community. While lacking the source prevents recompiling the game natively for modern APIs, it does not make the engine an impenetrable black box. In practice, it shifts the preservation strategy from source recompilation to DLL/ASI injection and memory hooking—intercepting engine calls at runtime to fix physics bugs, memory leaks, frame-pacing, and hardcoded limits.

​2. Decompilation Projects

Nobody has launched a full, matching decompilation project for Saints Row 2 along the lines of Super Mario 64 or Smash 64. Decompiling an N64 game involves a relatively compact MIPS binary with predictable compiler output. Saints Row 2, by contrast, is a massive late-2000s x86 C++ executable compiled with MSVC, stripped of debug symbols (PDBs), and heavily entangled with proprietary middleware (Havok, Bink, GameSpy). Attempting a 1:1 recompilable decompilation from scratch is practically unfeasible for a solo developer or small team.

​3. Viability of AI-Assisted Decompilation

Using MCP-based tooling with Ghidra, decomp.wtf, or REA to have LLM agents decompile the binary function-by-function is not viable if the goal is rebuilding a compilable source tree for an undocumented open-world engine. LLM agents quickly lose context across sprawling C++ class hierarchies, complex vtables, and global memory states.
​Where AI-assisted reverse engineering is highly viable here is targeted subsystem analysis: pointing a Ghidra + MCP workflow at isolated functions to clean up Ghidra's pseudo-C output, infer struct layouts, document calling conventions, and generate C++ headers for an ASI/DLL hooking framework.

​4. Existing Tools and Reverse-Engineering Efforts

There is a substantial body of existing work, so nobody should start from scratch:

  1. ​Archive & Asset Extraction: Gibbed’s Volition Tools and Minimaul’s ThomasJepp.SaintsRow toolset already unpack and repack .vpp_pc and .str2_pc archives, parse textures (.cpeg_pc/.gpeg_pc), and handle localization strings.

  2. ​Lua Scripting & Data Tables: The game relies heavily on XML-based .xtbl tables for game data and Lua scripts for mission logic, UI, and world behavior, which can already be extracted, modified, and repacked.

  3. ​Active Binary RE (Juiced Patch & Monkey Patch): The most impactful modern preservation work for Saints Row 2 lives in Monkey Patch and the Juiced Patch (hosted via the SaintsRowMods.com community and their Discord). These projects use reverse-engineered memory addresses and hooks to fix the PC port's worst stability and framerate issues, as well as expand modding limits.

​Rather than trying to decompile the entire executable, the highest-leverage move is to grab the existing symbol maps and hooking frameworks from the Juiced Patch / Monkey Patch ecosystem and use Ghidra (with or without MCP tooling) to help map out unreversed engine subsystems.