This topic caught my eye because I’ve been looking at the reverse-engineered file format documentation for UW and writing file viewers/converters for a lot of the formats.
I’ve been looking at the game’s structure as a Model-View-Controller pattern. “Model” is the computer’s internal understanding of the current state of the game world (player+item locations, statuses, HP/MP, etc). “View” is how the information in the Model is rendered onto the screen (graphics, audio, music), and “Controller” is the actual game logic, which decides how the Model (i.e. the game state) gets modified when the player does things, AI moves an NPC, music changes when you get attacked, all that stuff.
So, the Model is mostly stored in the map and some files that store game variables. Most of those are mostly documented, so we’ve got a decent idea of the “Model” part, minus some details that would need worked out.
The View is comparatively simple to imitate based on screen shots, since the file formats for textures, sprites, 3D models, cutscenes, and various miscellaneous bitmaps have been mostly documented. For example, I wrote an OpenGL level viewer (extremely inefficiently, and I’m working on rewriting it), so I can walk around the levels (missing doors and some other things), see where items and characters are, etc.
The Controller is almost completely contained in the main game binary, which is a few hundred kilobytes of binary code, with some data structures (like the models) stored in the middle. Things like AI for the NPCs would need to be reverse-engineered from that code (not easy, because disassembled code is nasty and uncommented, and the game uses binary overlays that make it less straightforward to analyze).
Still, if we had documentation of the data structures in the various game files, some info on what data is contained in the binary itself and how it’s represented, that would be cool, because it might give more insight to the “Controller” part of the system. I think that some AI behavioral data is contained in a separate file, for instance. If EA actually owns the source, though…I wouldn’t really expect any kind of release (although I’d still wish for it!)