Last updated: 29/1/2005

Here is where you'll find all the info I've discovered on the formats of the data files used by the System 3 game Constructor. The same may also apply to Street Wars (Mob Rule in the US), but I could care less (From what I've played of it, it's crap in comparison).
.FIL
.DAT
.INI
TEXT.*
.SPR (UPDATED)
.SHD
.CEL, .FLC
.EBP
.WAV
HELP!
These files are to Constructor what WADs are to Doom: they are the containers of most of all of the other data files used by the game. I've made a little editor that will allow you to look inside the files and extract the data contained within. It now includes the ability to save and make new files as well, although this feature hasn't been tested much, so be careful.
*BUGFIX* This version fixes a "minor" saving bug that could wreck an archive completely. Whoops... :x
Click here to download FilEdit 0.61.
These files seem to be in the Interchange File Format (IFF) - look it up on Wotsit's Format for more info. However, they "break" the format within the first few bytes by having 2 chunk markers stuck to each other, e.g.
MAPSCMAP
There should be 4 bytes inbetween those 8 indicating the size of the "MAPS" chunk, but for some reason it was omitted. Aside from that, the other chunks do follow the rules.
The colour map of the level, 256 colours, 8 bits per channel. From what I've seen these are all the same throughout the levels, as Constructor runs in 256 colour depth changing the colours would probably mess up the interface.
This chunk contains the bitmap graphics of the tiles used in the level. Each tile is 32x15 and is isometrically drawn. This means that there are 256 bytes per tile.
I haven't been able to work out what this one does yet. Any ideas? I think it's got something to do with sets of tiles for drawing gardens, yards, flooded estates, etc.
The actual map for the level is contained in this chunk. The first 4 bytes indicate the width and height of the map. Every 2 bytes after that is a map tile. I've been able to display the map using what looks like the correct graphics by shifting the values here to the left 8 times (Making them multiples of 256), but there are values stored in the higher bits. I dunno what they're for.
Similar to the previous chunk, this chunk also has a map (of sorts) in it, only this time 1 byte is used per map tile. This one appears to indicate where the estates and roads are on the map.
Here's a funny one. Took a while to figure the format of this out, but it appears to be of the form:-
2 bytes X position on the map
(Variable number of these)
2 bytes Y position on the map
2 bytes Value
...
2 bytes Terminator (FFFFh)
The values can mean lots of things, but I know that 0830h is the start of a team's HQ. It must be followed by a value on the same tile for the team number, which can be:-
0 Council team
1 Green team
2 Red team
3 Blue team
4 Yellow team
It must also be followed by a value indicating (I think) what skill level that HQ start applies to, but I haven't tested it (It's usually 0).
I'm working on a level editor at the moment. Here's a screenshot (Click to enlarge).
There's Concrete City, seems to look OK, but Greenfields has a few tiles with "odd" graphics in them. As soon as I can track that bug down I'll release it.
As I had originally suspected, this is a text file that controls some of the parameters of the game, such as the type and number of people you begin a game with, costs, damage and health. It's like the RULES.INI file from various Command & Conquer games. You can't control everything with it (unfortunately), but it will allow you to significantly alter how each game progresses. You can use the latest version of FilEdit to decrypt this file, edit it, and then encrypt it again back into its original archive.
I know that these files contain the localized text for the game. There are 7 languages supported, thus there are 7 of these. What I don't know is how they are encrypted.
These files contain the sprites that the game uses, such as houses, fences, people, mouse pointers and other graphics. They appear to be of the following format:-
4 bytes Number of frames in file
n * 4 bytes Offsets to each sprite
Each frame also has a small header of 8 bytes at the beginning, all seemingly 2 byte integers:-
2 bytes Unknown
2 bytes Unknown
2 bytes Width
2 bytes Height
I figured out that the sprites do use run-length encoding for transparency. Any bytes with a value of zero are followed by a byte giving the length of the transparent run. Note that this doesn't apply to FONTS.SPR.
I believe these files contain the shadows for objects that cast them (Houses, subways, etc.). Haven't really looked at them to determine their format. They seem to be similar to .SPR files though.
These are animations in the good ol' Autodesk Animator format. You can play them with Quicktime if you haven't got anything else.
EBP is the video format of DOS Constructor, used for the intro, loss and win sequences. No idea how these work, some sort of vector-based video compression. The Windows version uses .AVI files from the WINDATA folder.
Wave files. 8 bit, 11025 Hz, mono. Need I say more?
If you have any useful info to contribute on the above formats, or can see errors in what I've written here, please e-mail me.