[sifa] Reverse engineering SET file format Neil Halelamien To: sifa@yahoogroups.com Thu, Jul 8, 2004 at 3:38 AM As I mentioned a few months ago, one of my side-projects is trying to understand the file formats used in Stunt Island. I finally had some time to get started on this project last weekend, and chose as my target the SET format in Stunt Island. Basically, this involved saving a bunch of SET files from Stunt Island with certain parameters changed, and using some unix commands (diff and od, should be available with cygwin) what the corresponding changes were in the resulting saved files. There's still lots left to do, although I was able to discern a lot of the basic elements. I've attached a file containing my results so far to this email. It might be a while until I'll have time to work on this again, so you are more than welcome to take a crack at further reverse engineering yourself. The notation in the file was originally just meant to be read by me, so please let me know if you'd like me to explain anything in more detail. -- Neil ----- Dean Newbury To: sifa@yahoogroups.com Thu, Jul 8, 2004 at 4:53 AM So Neil what do you believe is possible if you actually manage to decode all of this? ----- Neil Halelamien To: sifa@yahoogroups.com Thu, Jul 8, 2004 at 12:26 PM So there's a few reasons I'm doing this: 1. Trying to understand the mechanisms behind Stunt Island, a game I essentially grew up with, is actually pretty fun. 2. It might eventually lead to me creating a way to watch Stunt Island movies using modern 3D hardware. Of course, the big issue there (which I haven't even started with yet) is the prop file format, which seems like it might be particularly difficult. Are any of the 20th Century Frog people still around? I think I remember them creating their own prop editor, which presumably required reverse engineering the prop file format. 3. Understanding the Stunt Island formats gives me some ideas about how I might want to design my own file formats, if I ever get around to creating my own movie-making game. ----- Dean Newbury To: sifa@yahoogroups.com Thu, Jul 8, 2004 at 3:53 PM Dave Palmowski might be able to help you out there, he also created his own prop editor. Dave you still there? Dave? Dean. ----- Neil Halelamien To: sifa@yahoogroups.com Thu, Jul 8, 2004 at 4:48 PM You just inspired me to dig through the SIFA archives, and I actually found a good bit of juicy stuff from 2000-2001. I'd be very interested to know if Dave (or anyone else) has any insights regarding the way props are stored in the BIN files. -- Neil ----- Dave Palmowski To: sifa@yahoogroups.com Thu, Jul 8, 2004 at 4:57 PM Yes, I'm here. I reverse engineered the editor's internal object format to write my editor. I kept a few features out on purpose (like polygons, for instance) and have unfortunately in the years since then forgotten everything and lost all my notes :( I took a few looks at the .SET format, mainly for my program that generated shockwaves, I needed to be able to know how to insert objects in specific spots in the list. It sounds like Neil is trying to do what I was trying to do back at the turn of the century :) I unfortunately do not have time to get back into Stunt Island full bore anymore... But I'll gladly help from the sidelines. ----- Dave Palmowski To: sifa@yahoogroups.com Thu, Jul 8, 2004 at 6:04 PM I didn't decipher the binary object format but I did take a look at it, because my purpose was to write an editor that would allow me to use the old editor, and .BIN is the end of the line as far as prop production. By the by, when Adrian sent me the source code to SI, I was paging through it (btw, it was ALL assembly, unless he withheld some stuff, which is cool and understandable if copyrights are in play) it appears that originally all the props were supposed to be stored in the actual program. This is where the EQU files generated by makeres come into play; they're really superflous but probably essential earlier in the production of the game. Getting back to the subject at hand, if memory serves, I THINK the BIN format was similar to the internal object format for the editor as it was almost a script. A certain byte meant some specific command, followed by a bunch of parameters. It wouldn't be completely unheard of if the objects were actually machine code, calling actual rasterizing functions within the game... But there are many many ways to do it. Speaking of file formats, yeah, making them up is fun if you've got the logic-mindedness behind it. I've had to create a couple for the game I'm writing, including the format for storing maps, scripts for animations, and maybe later, shaders.