Author Topic: Presentation: Outpost 2 - file format documentation  (Read 5110 times)

Offline pm

  • Newbie
  • *
  • Posts: 4
Presentation: Outpost 2 - file format documentation
« on: November 22, 2015, 07:33:12 PM »
Greetings,

I just wanted to deliver some result on my work of the recent weeks.

My (original) plan was to create some sort of reimplementation of Outpost 2 and I noticed soon, that it might be a good idea to use the original data files of the game.

Some weeks after I started work on this, I noticed this forum and - well, some of the projects in here confirmed my suggestions I did until then. But as most developers seem to post only screenshots but no sourcecode, it doesn't take the community any further, I bet. Our wiki seems to be orphaned and there seems to be a lot of knowledge out there, but nobody cares. I wonder why its that way?

Nevertheless, as I am forced to focus on other tasks, I tried to write down at least my current state of knowledge. Most of you might not understand any of the text, as it is written in german - but probably there are some german-speakers in here as well, who are able and kind enough to translate. Beyond this, there are many tables and illustrations, so it might worth a look. I don't know how good Google might translate a technical document like this.

So, here it is:
http://www.xi-intersection.de/article/20151119-datenformate-outpost2

I examined the volume file format, palettes, tilesets (wells), bitmaps and animation formats.

I still have several questions for things that are unclear to me:

If you have any further information about the "unknown"-Fields or what the section after the animation data in op2_art.prt is used for, I would be happy to get information about that and add it to the article.

Also, I wonder, how the game does the assignment about which animations belong to which unit in game.
For example, Animation 0 to 7 belong to a robodozer, which is driving in different angles; way later, at 1665 till 1672, there are animations of a robodozer which is bulldozing some area. And for the explosion on destruction, there might be - i think - a generic animation like
Are such informations hardcoded, or is there some kind of mapping table anywhere?

Where does the game take the player colors from - beyond player 1?

And where are the Santa Clause and Coyote (well, it might be Dan's "Dog")  are used, despite being eastereggs for game hackers? :D

And what unit is this: - as it exists for both eden and plymouth. From what it looks like, i guess it might be something like a aerial unit - commandship or evacuation vehicle?

Probably I will provide an english version of the documentation as well (which might be included into the wiki) if I get some time for it (probably 2016? dont know), but I am not sure if a native english speaker wouldn't be better for that job.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4954
Re: Presentation: Outpost 2 - file format documentation
« Reply #1 on: November 23, 2015, 09:42:52 AM »
Nice work. I can't read your webpage, but the animations were neat.

There are some projects posted on the forums that include source code. I just realized they've never been checked in to SVN though. That should probably change. The following threads may be of interest:
op2art Viewer (Tool author is German)
Op2Graphics (VB source code included with executable)
Animation Indexes (See attachment to first post, it's a partial dump of animation tables included in the EXE)
Virmask (Blight and darkness overlay)
Tile Group Viewer (Loading and grouping tile set data)
Slightly off topic, but possibly still interesting is:
Auto Map Maker (Experimental toy, that never produced very good results)

The strange vehicle is probably the SCAT (Small Capacity Air Transport). It never made it into the game, but you can find trace references to it in the code.

Santa was never found in game. I did an extensive search trying to find references to that image, but came up empty. I once read a rumor about seeing Santa walking along tubes between buildings, but I don't know if there's any truth to it. I've long suspected it's similar to the SCAT, in that the resources were included, but the feature was never finished. Still, I remain hopeful we'll someday discover Santa.

As for Dan's Dog, that can be found in game under very rare circumstances, as detailed here:
Dan's Dog (Demo level attached)

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2350
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Presentation: Outpost 2 - file format documentation
« Reply #2 on: November 23, 2015, 01:20:52 PM »
Looks great!

As for 'not caring', that isn't so much the problem as there was a lack of a good way to centralize everything and most of the information is buried in old forum threads. You're right about source code -- a lot of what has been done never released source code which doesn't help anybody at all. At the very least the project I'm working on now is open-source and is in the SVN so if I ever decide to leave it to the wind someone else would be able to pick it up.

I've personally took it on as a bit of a challenge for myself to update the wiki (well, port it to our new wiki) and try to dig through the forums and find as much of the information as we have on everything and add it to the wiki. Some of it is available on the old wiki but a lot of it isn't. So we're getting there. :D

Offline pm

  • Newbie
  • *
  • Posts: 4
Re: Presentation: Outpost 2 - file format documentation
« Reply #3 on: March 24, 2019, 06:47:51 PM »
Hey, guys, long time no hear.

I've just seen that my article series is now also linked in the Wiki and wanted to give a small update:
Meanwhile I also offer an English translation to the data formats.

You can find it here:
https://www.xi-intersection.de/en/jinhkihx

I hope it's useful to somebody :)

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4954
Re: Presentation: Outpost 2 - file format documentation
« Reply #4 on: April 01, 2019, 10:42:01 AM »
Hi pm, glad to see your update. Sorry it took me a while to get to it.

I checked back with the link from your first post. I was looking at the breakdown of the VOL tags. You mention a uint24 for the block length field. I believe it's actually a uint31. The following field for flags is then a uint1, and represents the padding/alignment setting. The bit means padding bytes are inserted until the alignment is 2 byte aligned, or 4 byte aligned.

In the Palette Header, one of the unknown fields is the remaining tag count. The tags being things like "PPAL", "head", "data", etc., and the associated sizes of those sections. The remaining tag count value relates to how the code internally processes the data and recursively embedded tags.

Looks like you have quite a complete specification of the graphics format.