The Linux release of Psychonauts by Icculus was built in debug mode and includes a ton of asserts which reveal some tidbits like local variables & code filepaths. By pulling the paths out and processing 'em I was able to partially approximate Psychonauts' source code structure.

This is kind of a "hollow" recreation. For one it's incomplete because we only know the paths of stuff that's referenced in asserts and errors. Second, none of the actual files have any contents in them. They're just dummy files. We know they exist, we don't know what was in them. While this is of little value outside of novelty for nerds, I think it's cool. Obviously this isn't the complete structure, just the paths of the files that had assertions and error logging inside them.
Icculus kept Psychonauts in /home/icculus/projects/psychonauts
In that folder is a Source directory containing the meat of the game. From what structure we know, the tree diverges here - we have two folders, game and CommonLibs. game is... the game, and CommonLibs are various shared libraries.

I suspect that in the original tree, the "Source" directory is home to various tools and other things besides the game, and that CommonLibs exists so all these things have access to these libraries. No paths to those in the game binary though, so we don't have them.
The NonDF folder in CommonLibs contains third party libraries - all we have in our recreated tree though are a couple pieces of ISACT as well as Icculus' MojoShader (nice that he stuck to the original hierarchy when adding files!). Bit strange that DirectX doesn't live here.

Over in the game folder we have a single folder, luatest. Not surprising. Inside that folder is where the game code lives and I suspect that what we have in our recreation is a mere fraction of the actual number of folders from the actual source tree.

To emphasise again, none of the CPP or H files in this tree have anything in them. This is solely a partial recreation of the structure of the game's source tree. I don't have any of the actual source code as much as I wish I did.
The biggest folder here in our reconstruction with 55 files is RTEngine, probably meaning "RealTime Engine". This folder contains a lot of generic engine stuff.

The second biggest folder is, of course, Game with 34 items in it. This seems to contain all the non-engine game stuff as you might expect. Code for specific parts of the UI, movement, and so on. There's a nice separation between game and engine in this codebase, it seems.

The rest of the folders are unfortunately very sparse in our reconstruction having only a handful of files each that we know of. Oh well, it's still very interesting.
So, what does having this do for us? Er... um... well... nothing, really...? I just kinda thought it'd be fun. It's neat to get a small glimpse into the outline of the game's codebase in a tangible form, I think. That's pretty much it.
This is also literally the only peek we'll probably ever get at the actual ISACT code which seems to have been completely lost to time leaving us with only the public SDK consisting of ISACT Production Studio, 2 headers and the libraries.
So we get small peeks into the contents of ISACTEng and AudioDrv, I suppose.


I do have a use case for the ISACT stuff in here, I've got something of a plan brewing, but I don't know if that will ever come to fruition. You'll surely hear about it if it does. Might also end up being the first step to an even bigger plan, who knows.