Log in

View Full Version : Archaeological reverse engineering


ggambett
01-16-2004, 06:18 AM
I'm a big fan of the old Dark Sun games, circa 1994 (Dark Sun : Shattered Lands and Dark Sun : Wake of the Ravager). I still play them from time to time.

One of my pet projects, on which I've worked a couple of weeks in the past years, is reverse-engineering the DS file formats. It's for fun, although the ultimate goal is to do something like the ScummVM (http://scummvm.sourceforge.net) guys have done for the old Lucas Arts games.

I've been able to reverse engineer the general packing format, which was trivial, as well as some other formats (the map format, parts of the player stats), but I couldn't figure out the graphics format (looks like some variation of RLE).

Anyway, do you have any suggestions about how to do this? In particular, how to RE the scripting language! I contacted the ScummVM team but they didn't reply. I tried tracking down the original authors, but I was unsuccessful. Is there a simpler way than disassembling?

Oh, by any chance any of you is or knows the original developers?

Since I don't actively work on this, I'm also considering setting a project at SourceForge and try to make it the Dark Sun Reverse Engineering site on the net, so if anyone is doing this besides me (somebody else in the world must be!), we could share our discoveries.

Opinions? Suggestions?

Terin
01-16-2004, 08:21 AM
I may be wrong, but wasn't the darksun series set in the SSI D&D engine?

If so, this company still exists under the guise of some parent company (some educational software company).

Perhaps it would be best to contact them...

Joe

RTF
01-18-2004, 05:38 PM
The Dark Sun series has it's own engine(one that I really like too - love the first, still haven't played the second though - I intend to sometime even with the bugs I hear about).

I wish I knew something about it, but no. I'm just a player.

I do have two bits of advice that might help your quest:

1. Look for a common file format among both DS and other period SSI games. You may be able to find someone who knows something, or at least get a better clue as to the nature of the format, by doing so. Plus if the format comes in different versions(EGA/VGA etc.) you could start with the simpler one and work your way up. Even looking at other games from the period might be helpful(I know that you can, for example, easily find information about the formats in Unlimited Adventures and Prince of Persia).

2. Spend a long time with the hexeditor; try messing around with the files in points that look important and looking for changes during play. You'll get a lot of crashes, but if you do enough you'll figure out what works and eventually get a clue. I'm not particularly good at RE myself, but I've hacked a few savefiles before and doing that is always a matter of trial and error, finding out what happens if the offset that looks like your HP really DOES change to 32767 once you load the game up. The save files may give you a clue as to the nature of the game's scripting - you could compare one from before and after a major event, try to filter out the changes you know about and don't want(movements and statistics), and see what's left. A good understanding of the object data will help for this a LOT since DS does so many changes in object position/existence.