If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Notes:Syndicate Wars (DOS)

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Syndicate Wars (DOS).

Hmmm...
To do:
Rewrite loads of below now symbols show the exact data structures and start positions

Level Files

Level File Naming Convention

Levels in the game are stored with the following key to their filenames:

c0mml0LL.dat

Where m = Map number and
L = unique level number for this map

e.g. c030l001.dat, which would be the first level defined for map 30 (London).

Level numbers do not correspond to the index of missions defined in the ALL000.MIS files, they're just arbitrary numbers to make each level file unique. Where it gets complicated is that many levels are defined with the same level number but a different file extension, e.g:

c030l001.d1
c030l001.d2

These are often in addition to a corresponding level with a .dat file extension. Presumably they were intended for different revisions of the same map, but this is not conclusively borne out by the files included with the game, as some in the same "set" are often very different from each other.

While not without exception (there is one campaign map with this number), overwhelmingly levels ending in l005.dat are multiplayer levels.

Level File Format Versions

Game levels self-report the file format version via the first byte of the level file. The following different level file versions have been observed. If levels are examined based on their filestamp, there is clear pattern where new versions of the level format appear and superceded old versions are no longer used over time.

Version 4 appears to the earliest known version of the data structure, as this is what is used by the pre-alpha demo and is present if a level is saved from the editor. However, it's not clear if this version is actually complete/working as very little seems to actually be saved in the files. Version 9 onwards is used by the actual game, but this is still from an early pre-alpha version of the game. Checking the actual levels used by the game, it seems nothing pre-version 12 is part of the final game. Older levels can be loaded, but there is very mixed compatibility. Despite data structures from the Pre-Alpha demo matching that of these levels, there seems to be no values for the WeaponsCarried and Group membership attributes in any of the files, which suggests these are stored elsewhere. What contradicts this hypothesis is the levels that do load also have characters with no weapons as well when in-game. The final game itself doesn't seem to understand these very well, hence why so many early cut levels have no NPCs/glitches. Presumably they would actually work correctly in the corresponding pre-alpha/alpha builds of the game from that period.

Level file formats 9 - 12 have an extra 48 bytes of data at the at the end of each character definition, unlike the later level formats. It's not known what is in this yet.

Version Start Date
4 October 1995?
9 January 1996
11 Early February 1996
12 Late February 1996
15 Late March 1996
16 April 1996
17 Late May 1996

Most levels present in the game files use the final version 17 file structure.

Level File Data Structures

Broadly speaking level files contain information on

  • Character placement in a level (Player and NPCs)
  • Character Armaments
  • Items placed in levels
  • Vehicles and stationary guns in level
  • Behaviour of characters in levels (i.e. patrol paths, group membership, etc)

Confusingly, the mission objectives are not in here, the final logic that binds behaviours configured to happen in the level file (e.g. enemies set to kill a target the player must protect) to an objective completing or failing are actually set in the allxxx.miss files.

The recent work to reverse engineer data structures from the debug code left in the early demos and PlayStation symbols reveals the structure for characters stored in the levels.

Level files have several different blocks of data one after another, as follows:

  • File version header (1 byte data, 3 more bytes blank)
  • Character data header (2 bytes) - lists how many characters are defined below.
  • Character data - who and what is found where in the level. These use the "Thing" data structure, and its sub-structures "ThingUnion", "TngUVehicle", and "TngUPerson", etc, as defined here. Each entry is 168 bytes in length, but vehicles have another extra 36 bytes of data in their definition.
  • Command data header (2 bytes) - lists how many commands are defined below.
  • Command data - behaviour for all NPCs in a level, where they should walk, who they should be killing or defending, what vehicles to get in, etc. This uses the "Command" data structure, as defined here. This is the bulk of the file. Each entry is 32 bytes long.
  • Groups header (7 bytes). There are at least two known variants of this, but some files don't seem to have any obvious header to show the start of group info, it's simply straight after the command data.
  • Group names - ASCII text names for each group used in the level in order of the group numbers from 0. Each entry is 40 bytes long
  • Two more short blocks of data. It's not known what these are yet. It's likely one is things like items found on the ground in a level.

The tool SWLevelEd also has helpful information on these structures in its source code.

A newer tool SWLevelReader has a similar feature set, but can output more information, including unit weapons carried and group membership.

There are multiple level filetypes/versions. They begin with a single byte that declares the type of the file opened. Known values are listed in the table above. The types 09 - 12 have an extra 48 bytes of data immediately after the number of characters. The first byte of the file is the file type, the next 3 always seem to be 00. Then the next two bytes are used to list the number of characters defined in the file. Depending on the file type, the character data definitions are either directly after this pair of bytes, or after another 48 bytes of unknown data, as explained above. Each character entry is 168 bytes long. However, if a character has a state value of 33, 61, or 64, this character has another 36 bytes of extra data compared to the baseline definitions. Again it's been understood what this data is for yet.

Most characters have a Group assigned. The definitions for these start at 0. Most level files (but not all) have a series of ASCII text entries that name all the groups in the level. Naturally this doesn't have a fixed location as it depends on how many characters are defined, but it found is towards the end of the file and can usually be identified by the preceeding header of 01020304050607. Another observed header format for groups is 090A0B0C0D0E1F - there doesn't seem to be any real rhyme or reason as to which are used (files across all versions have or do not have headers of different types, or none at all but still contain group data). There is then a space of 36 empty bytes and the group names begin. Each definition is fixed at 40 characters long. There doesn't seem to be a end marker after these. The first group listed corresponds to group 0 set on NPCs, with the second one corresponding to group 1, and so on.

Most levels have a unique set of groups just for that level, but some use what were clearly a template used by some of the designers as they reuse an identical wide selection of both common but also rarer enemy types not necessarily present in the level (e.g. The Nine and Lucy De Saxo).

Thing Subtypes

The game names objects in it as "Things". Most notably, all vehicles and people are Things. The Subtype value of a Thing when it's a person (and actually even if it's a vehicle) has the following known values:

Value Character
1 Agent
2 Zealot
3 Unguided woman
4 Civil. suitcase man
5 Civil. White dress woman
6 Soldier
7 Mechanic spider
8 Police
9 Unguided man
10 Scientist
11 Shady Guy
12 Church high priest
13 Civ. blonde woman 1
14 Civ. blonde woman 2
15 Civilian jeans man
40 Ground Car
50 Flying Vehicle
51 Tank
54 Ship
59 Mech

The following Type value determines the type of the Thing. The only ones that seem to be defined here are 2 - Vehicle, and 3 - Person. The vehicles above (thing types 40 - 59) also have the corresponding Thing type set to 2. Note that the subtype value only seems to determine the type of vehicle (ground only, flying, ship, etc), not which specific model it uses (APC, motorbike, taxi, etc). How this is determined is not figured out yet.

Oddly trains don't seem to have a Thing value, they presumably must be pre-set via the map editor once a train track is setup.

Vehicle Types

While the base type of a vehicle is determined by the Thing Type (e.g. flying, ground car, ship, etc), the actual appearance of the vehicle is determined by the StartFrame value. These are as follows:

Value Vehicle Type
0 Civilian car (grey)
1 Delorean (grey)
2 Bike
3 Brown flyer
4 Train engine
5 Train carriage
6 APC
7 Large APC
8 Police car
9 Police Truck
10 Small industrial vehicle
11 Bullfrog truck
12 Fire truck
13 Ambulance
14 Taxi (Yellow)
15 Barge
16 Missile Frigate
17 Luxury Yacht
18 Tank
19 Tank missile battery
20 Missile (small)
21 Civilian car (Red)
22 Delorean (Yellow)
23 Zealot imperial jet
24 Taxi (Red)
25 Missile (Large)
26 Head of moon Mech
27 Chest of mech?
28 Bike (Metallic)
29 Claw Mech (black)
30 Claw Mech (Red)
31 2000AD/Manga Truck
32 Moon Mech leg
33 Moon Mech leg
34 Moon Mech leg
35 Moon Mech leg
36 Moon Mech Arm
37 Moon Mech Arm
38 Moon Mech Gun
39 Moon Mech Gun

Note these are not needed for the Moon Mech, it's determined by other values (Thing Type, etc). If it's called by the values here on StartFrame, only parts of its body will be rendered (the actual Moon mech only uses a startframe of 0).

WeaponsCarried DWORD

The weapon loadouts for each character (including the preset ones for player characters, used only for debugging when the level is loaded from commandline) are stored as follows in the WeaponsCarried DWORD for that character:

Weapon Hex
Uzi 1
Minigun 2
Pulse Laser 4
Electron Mace 8
Launcher 10
Nuclear Grenade 20
Persuadertron 40
Flamer 80
Disrupter 100
Psychogas 200
Knockout Gas 400
Ion Mine 800
High Explosive 1000
Napalm Mine 2000
LR Rifle 4000
Satellite Rain 8000
Plasma Lance 10000
Razor Wire 20000
Sonic Blast 40000
Graviton Gun 80000
Persuadertron 2 100000
Stasis Field 200000
Nothing (Energy Shield) 400000
Chromotap 800000
Displacertron 1000000
Cerberus IFF 2000000
Medikit 4000000
Automedikit 8000000
Trigger Wire 10000000
Clone Shield 20000000
Nothing/Uzi 40000000
Nothing/Minigun 80000000

Essentially the game loads the value set for the character, and divides the number by the highest of those in the table above until it finds a number that it is divisible by. This then adds that weapon to the character's inventory, and repreats the process going down the list to the next highest with the remainder. This continues until zero is hit. Therefore if this is edited by hand to FFFFFFFF, that character will have all weapons in the game, including cut ones.


Level File Compatibility

Levels that use the version 12 or lower format do not work in the final game. They can actually be converted, but the following problems must be fixed:

  • The final game does not understand the extra 48 bytes for each character. These must be removed. This data causes the main issue with loading pre v15 files - the game assumes the character definition is still only 168 bytes long and starts reading the next character at the wrong point. At best the end result is most characters are skipped and only those where the format eventually falls back into sync appear. At worst it also results in illegal values for attributes that crash the game.
  • Group membership is not stored in the same place. The end result is the game sees all characters as being in group 0, which is always reserved for the player's characters. This is why old levels have all kinds of random characters playable - the few that align with the 168 byte lengths are all in the player group so are deemed playable. If more than four characters are in the group, then later group 0 characters simply disappear. Therefore group membership must be restored to see other characters. In fact group membership is stored at position 87 (what is used for the attribute "SpecialTimer" in the final game TngUPerson data structure).
  • Vehicles appear corrupt. They do not have orientation values entered which oddly makes them use parts of the scenery as their initial model, resulting in a corrupt mess that kills the game's frame rate. Once boarded and driven they revert to the correct model. The correct X and Y values need restoring in the extra 36 bytes of vehicle data.
  • Some units appear corrupt with body parts missing. This is not figured out yet, usually only player characters affected.
  • ComHead is not populated. This attribute directs an NPC to its starting command in the commandlist. Without this, enemies essentially have no AI and simply do not move. In fact this data is stored at position 93 in the old files (what is used for the attribute "BumpMode" in the final game TngUPerson data structure).
  • Uniqueids are... well, not unique. Not clear what effect this actually has, but it obviously wrong. These seem to be stored at position 129 (which is used for the attribute "Flag3" in the final game TngUPerson data structure).


Level File Versions

The below is a table listing each level file in the game, when it was last written to, and what level file format version it uses. Files using pre-version 15 formats will not work with the final game, but can be converted to be playable.

File Version Timestamp
C010L001.D1 9 01/25/1996 15:14:10
C003L001.D1 9 01/25/1996 16:53:30
C006L001.D1 9 01/26/1996 12:06:24
C006L001.D2 9 01/31/1996 10:42:54
C047L001.D1 9 02/01/1996 16:36:16
C000L001.D3 9 02/01/1996 17:14:36
C010L001.D3 9 02/02/1996 11:13:38
C044L001.D2 11 02/07/1996 14:59:32
C044L001.D1 11 02/07/1996 17:18:04
C044L001.D3 11 02/07/1996 17:30:20
C010L001.D2 11 02/07/1996 17:37:08
C032L002.D1 11 02/09/1996 12:37:34
C050L001.D1 11 02/12/1996 12:27:20
C050L001.D2 11 02/12/1996 16:04:14
C050L001.D3 11 02/12/1996 17:55:04
C001L001.D3 11 02/13/1996 11:28:26
C001L001.D1 11 02/13/1996 11:28:34
C050L002.D1 11 02/14/1996 11:52:30
C041L001.D2 11 02/14/1996 15:48:04
C002L001.D1 11 02/15/1996 16:43:20
C002L001.D2 11 02/15/1996 16:58:40
C002L001.D3 11 02/16/1996 14:47:16
C007L003.D2 11 02/16/1996 17:00:24
C007L003.D3 11 02/16/1996 17:01:36
C046L001.DAT 11 02/17/1996 14:19:24
C046L001.D1 11 02/17/1996 14:27:34
C046L001.D2 11 02/17/1996 14:44:36
C002L003.D1 11 02/17/1996 16:12:50
C002L003.DAT 11 02/17/1996 16:38:30
C041L002.D1 11 02/17/1996 17:05:58
C041L002.D2 11 02/17/1996 17:58:58
C008L003.D1 11 02/18/1996 14:15:48
C046L001.D3 11 02/18/1996 15:24:28
C044L002.D1 11 02/18/1996 19:48:50
C046L015.D1 11 02/18/1996 23:47:10
C046L015.D3 11 02/19/1996 13:54:24
C009L001.D1 12 02/19/1996 14:14:40
C009L001.D2 12 02/19/1996 14:43:54
C005L001.D1 12 02/20/1996 10:59:52
C047L001.D3 11 02/20/1996 11:02:44
C005L001.D2 12 02/20/1996 17:15:02
C046L014.DAT 12 02/21/1996 10:19:40
C040L001.D1 12 02/22/1996 12:03:42
C007L001.D1 12 02/27/1996 12:16:06
C007L001.D2 12 02/27/1996 12:21:16
C001L003.D2 12 02/27/1996 15:05:46
C020L002.DAT 12 02/28/1996 16:51:50
C007L003.D1 12 02/29/1996 11:48:38
C040L015.D1 12 02/29/1996 12:32:08
C002L007.D1 12 02/29/1996 15:36:44
C040L015.D2 12 03/01/1996 11:15:02
C044L015.DAT 12 03/01/1996 12:03:42
C004L007.D1 12 03/01/1996 12:06:28
C004L007.DAT 12 03/01/1996 12:34:54
C006L015.D3 12 03/01/1996 14:56:18
C044L015.D1 12 03/01/1996 15:52:26
C026L004.DAT 12 03/04/1996 10:24:08
C035L004.DAT 12 03/04/1996 17:33:08
C001L003.D1 12 03/05/1996 11:48:08
C008L003.D2 12 03/06/1996 15:48:32
C006L007.DAT 12 03/06/1996 16:43:58
C036L004.DAT 12 03/06/1996 17:43:26
C006L003.D1 12 03/08/1996 11:16:48
C006L003.D2 12 03/08/1996 14:31:08
C003L007.D2 12 03/08/1996 15:28:04
C003L007.DAT 12 03/08/1996 15:51:26
C045L015.D3 12 03/12/1996 10:04:16
C001L007.DAT 12 03/14/1996 13:52:48
C052L001.DAT 12 03/20/1996 14:58:54
C047L015.D1 12 03/20/1996 17:08:08
C041L001.D3 12 03/20/1996 17:42:22
C041L001.D1 12 03/21/1996 15:48:20
C044L002.D2 15 03/27/1996 12:35:52
C040L001.D3 15 03/28/1996 14:10:04
C030L008.D2 15 03/28/1996 15:07:42
C040L015.DAT 15 03/28/1996 15:11:42
C007L007.D1 15 03/29/1996 10:21:52
C003L007.D1 15 03/29/1996 14:31:44
C052L007.DAT 16 04/04/1996 13:46:46
C035L007.DAT 16 04/09/1996 15:16:24
C030L008.D1 16 04/11/1996 11:17:44
C027L003.DAT 16 04/11/1996 12:20:46
C009L007.DAT 16 04/11/1996 16:23:22
C020L007.DAT 16 04/12/1996 10:28:40
C002L007.DAT 16 04/12/1996 15:28:24
C028L002.DAT 16 04/13/1996 23:31:56
C000L001.DAT 16 04/16/1996 12:36:32
C008L003.DAT 16 04/22/1996 18:20:32
C036L001.D3 16 04/24/1996 17:24:08
C046L008.DAT 16 04/25/1996 21:01:44
C003L015.DAT 16 04/26/1996 13:36:10
C046L009.DAT 16 04/27/1996 05:46:54
C046L010.DAT 16 04/29/1996 13:33:26
C004L015.DAT 16 05/02/1996 01:02:38
C002L015.DAT 16 05/02/1996 12:28:00
C041L002.DAT 16 05/08/1996 15:39:22
C050L002.DAT 16 05/08/1996 17:21:14
C044L007.D1 16 05/10/1996 01:33:52
C044L007.DAT 16 05/14/1996 12:52:44
C036L003.D2 16 05/16/1996 12:18:50
C036L003.DAT 16 05/16/1996 18:22:24
C012L001.DAT 17 05/20/1996 16:37:42
C025L015.D3 17 05/21/1996 15:17:04
C065L001.DAT 17 05/25/1996 18:44:28
C041L001.DAT 17 05/30/1996 01:26:10
C047L015.DAT 17 05/31/1996 16:32:50
C047L001.D2 17 06/01/1996 20:33:10
C049L009.DAT 17 06/10/1996 17:10:28
C027L015.D3 17 06/16/1996 22:51:22
C050L002.D2 17 06/25/1996 16:31:50
C044L002.DAT 17 06/28/1996 10:57:06
C035L001.D1 17 06/28/1996 16:06:06
C079L015.D3 17 07/07/1996 18:02:26
C044L003.DAT 17 07/14/1996 15:04:22
C047L011.DAT 17 07/19/1996 16:54:36
C030L001.D2 17 07/19/1996 17:35:56
C002L002.DAT 17 07/22/1996 15:29:42
C046L015.DAT 17 07/25/1996 11:16:44
C060L015.DAT 17 07/25/1996 12:15:08
C044L001.DAT 17 07/29/1996 11:13:56
C070L011.DAT 17 07/29/1996 13:28:58
C070L011.D1 17 07/29/1996 13:29:44
C005L005.DAT 17 08/02/1996 11:18:38
C040L005.DAT 17 08/02/1996 14:24:22
C065L005.DAT 17 08/02/1996 14:26:54
C041L005.DAT 17 08/04/1996 21:19:16
C009L001.DAT 17 08/05/1996 04:04:28
C004L013.DAT 17 08/05/1996 04:05:20
C022L013.DAT 17 08/05/1996 04:09:34
C040L013.DAT 17 08/05/1996 04:29:40
C022L001.D2 17 08/05/1996 04:37:26
C004L001.D2 17 08/05/1996 04:45:44
C046L015.D2 17 08/05/1996 04:51:50
C046L002.D2 17 08/05/1996 05:11:58
C046L002.DAT 17 08/05/1996 05:13:22
C022L003.DAT 17 08/05/1996 06:27:02
C022L003.D2 17 08/05/1996 06:28:26
C021L001.D3 17 08/05/1996 06:30:00
C001L002.DAT 17 08/05/1996 06:31:16
C022L002.DAT 17 08/05/1996 06:34:10
C022L004.DAT 17 08/05/1996 06:38:54
C009L003.DAT 17 08/05/1996 06:39:34
C027L001.DAT 17 08/05/1996 06:45:28
C004L003.DAT 17 08/05/1996 06:48:44
C001L003.DAT 17 08/05/1996 13:44:48
C003L010.DAT 17 08/08/1996 18:01:52
C035L001.DAT 17 08/09/1996 13:03:48
C008L001.DAT 17 08/11/1996 16:28:30
C027L002.DAT 17 08/11/1996 16:35:02
C005L001.DAT 17 08/11/1996 16:35:46
C011L001.DAT 17 08/11/1996 16:37:34
C050L002.D3 17 08/11/1996 16:50:38
C007L005.DAT 17 08/11/1996 17:03:20
C025L001.D3 17 08/11/1996 17:04:06
C030L002.DAT 17 08/11/1996 17:08:06
C020L001.D1 17 08/11/1996 17:09:14
C079L002.DAT 17 08/11/1996 17:09:36
C006L003.DAT 17 08/11/1996 17:10:00
C050L001.DAT 17 08/12/1996 12:38:12
C001L010.DAT 17 08/12/1996 22:37:52
C065L002.DAT 17 08/13/1996 17:13:22
C065L003.DAT 17 08/13/1996 17:13:52
C003L001.DAT 17 08/13/1996 17:45:28
C001L005.DAT 17 08/13/1996 22:30:10
C002L005.DAT 17 08/13/1996 22:34:12
C003L003.DAT 17 08/13/1996 22:42:04
C004L004.DAT 17 08/13/1996 22:45:04
C005L015.DAT 17 08/13/1996 22:51:24
C050L003.DAT 17 08/13/1996 23:20:10
C047L002.DAT 17 08/13/1996 23:23:18
C026L003.DAT 17 08/14/1996 13:17:00
C036L002.DAT 17 08/14/1996 13:21:02
C041L002.D3 17 08/14/1996 13:23:24
C026L002.DAT 17 08/14/1996 13:28:38
C035L005.DAT 17 08/14/1996 17:13:48
C041L003.DAT 17 08/14/1996 17:26:04
C021L001.D2 17 08/14/1996 17:28:04
C028L001.D3 17 08/14/1996 17:33:20
C010L001.DAT 17 08/14/1996 18:05:20
C001L001.DAT 17 08/14/1996 18:06:44
C079L001.D2 17 08/14/1996 18:11:12
C032L005.DAT 17 08/14/1996 18:21:06
C006L005.DAT 17 08/15/1996 17:05:48
C036L005.DAT 17 08/15/1996 17:11:30
C001L015.DAT 17 08/16/1996 11:35:22
C010L015.DAT 17 08/16/1996 12:30:12
C004L001.DAT 17 08/16/1996 13:08:08
C008L005.DAT 17 08/16/1996 13:17:30
C025L001.D1 17 08/16/1996 13:24:46
C007L003.DAT 17 08/16/1996 13:26:02
C047L001.DAT 17 08/16/1996 13:34:30
C035L015.D3 17 08/18/1996 01:41:32
C007L001.DAT 17 08/18/1996 17:18:36
C036L001.DAT 17 08/18/1996 18:49:12
C002L001.DAT 17 08/19/1996 01:53:30
C032L015.DAT 17 08/19/1996 01:56:00
C026L001.DAT 17 08/19/1996 01:58:52
C045L001.DAT 17 08/19/1996 02:11:46
C003L002.DAT 17 08/19/1996 11:13:10
C060L005.DAT 17 08/19/1996 14:49:00
C030L001.D1 17 08/19/1996 15:11:54
C030L001.D3 17 08/19/1996 16:19:42
C028L001.D2 17 08/20/1996 13:37:22
C032L001.D1 17 08/20/1996 17:12:36
C044L005.DAT 17 08/20/1996 18:22:58
C046L005.DAT 17 08/20/1996 18:24:46
C006L001.DAT 17 08/22/1996 00:28:20
C044L003.D1 17 08/22/1996 15:57:32
C040L001.DAT 17 08/22/1996 16:52:20
C040L001.D2 17 08/22/1996 16:53:16
C035L002.DAT 17 08/22/1996 17:33:10
C022L001.D1 17 08/23/1996 02:10:22
C032L002.DAT 17 08/28/1996 11:39:06
C045L002.DAT 17 08/28/1996 18:03:34
C028L015.DAT 17 09/04/1996 12:20:22

ALL000.MIS File Format

The various ALLXXX.MIS files are basically large WAD style binaries that contain all the information for the game to put a level together with a map to make an actual mission to play. Oddly it seems the data needed to know what the mission objective (e.g. blow up building, kill enemy) is as well as who (e.g. Syndicate Agents, or a civilian) and where that objective is, is stored here. That data is not kept in the levels themselves, which can be freely interchanged between maps and mission objectives, at the cost of the level then no longer making any sense...

The file is structured into what appears to be 3 main parts:

  • Level information. The top of the file has a series of brief notes in ASCII outlining what each level in the file is, usually with the mission name (these are clearly working titles, some are simple descriptions of the kind of level it is, e.g. "Head Hunt"), what campaign the level is for (EuroCorp levels are usually called "Syn" or "Agent", Church of the New Epoch called "CH" or "Zealot", and the abandoned Unguided campaign, generally called "Pu", "punk", or "Ung"), and the map number of the mission. The campaign numbers are not consistent, some seem to use the numbering of the final game (where there are multiple levels with the same number showing branching paths), others give each level a unique number. Also many have simply changed over the course of the development, and even in the file itself there are contradicting numbers. The end of each entry here is delimited by zero bytes in hex.
  • Directly after the last entry of the above is a number in hex that reports how many mission entries are in the file. In practice it seems there is one fewer actual entry than the number, possibly it includes a blank entry at the start. For e.g. the main ALL000.MIS file the value is 6E or 110 in decimal. In practice there are 109 missions defined in the file. After this there is a consistent chunk of zero byte entries.
  • Mission definitions. This is the bulk of the file, and how the game knows what files to load, and - it seems - what the level objective is. There is an initial pair of bytes marking the start of this section, and these seem to be part of the first level. For now it seems levels are defined with a block of data that ends with the actual mission in question - e.g. the first of these is 1E 10. Each level is recorded as the map number (here 1E being 30 in Decimal - i.e. Map 30 London) and then the level number, corresponding to the level file format (e.g. c030l001.dat). Where things get more complex is in how the file extensions are defined. If a level is a .dat extension, then it will simply be that number in Hex - e.g. 05 for a level ending in 05.dat. If a level ends in a .dx format (e.g. .d1) then specific hex values are used to record this. This starts from 10 for 1.d1, then 11 for 2.d1, 12 for 3.d1, etc. The next number up is found simply by adding F to this base number. so e.g. 1.d2 = 1F, 2.d2 = 20, 3.d2 = 21, etc.

Example values include:

  • 10 = 1.d1
  • 1f = 1.d2
  • 2e = 1.d3
  • 2F = 2.d3
  • 3C = 15.d3
  • 1E = 15.d1
  • 17 = 8.D1
  • This format also corresponds to the small intelligence briefs shown at the start of each mission that are stored in ALLTEXT.WAD. They explicitly use the decimal values as above to uniquely identify each set of strings.
  • Each entry seems to be 76 bytes long, and this repeats down for most of the file until all levels are defined. Inside these bytes is other information that is not understood yet. The most basically defined levels in e.g. ALL098.MIS (which contains multiplayer levels so has no objectives or briefings) have nothing inside apart from a single byte, but this is different for each mission entry. It's pretty likely this is the index number for the mission, as in ALL098.MIS these numbers all increase by exactly 8. However, in other files this does not always seem to be the case so there is more at work. This value is always stored 19 bytes before the map/level bytes for each level (although the first mission defined seems to not have one).
  • In missions stored in ALL000.MIS the 31st byte is a pointer to the first objective for that mission. This is single number that relates to the unique mission objective numbers in the dense last block of data in the file where the actual mission objective is stored. Oddly this number seems to be one less than the actual intended objective. The 35th byte is used to store which mission briefing to show for a level. Each mission briefing was originally stored as a separate MISSXXX.TXT file (this is still the case in the PS1 version of the game), and the file ALLTEXT.IDX contains the index bytes for where to find these in ALLTEXT.WAD. The first Eurocorp mission is MISS001.TXT, the Church missions start at MISS019.TXT (value of 13 in hex). There are different amounts of other data stored inside each mission definition, so these don't seem to be mandatory, and again it's not clear what they are. As an example there are often runs of three or more bytes just after the start of each mission definition. Altering them doesn't have a clear effect. Byte 63 seems to just re-iterate what map the mission is set on. Not all missions have this byte set, so it clearly can't be mandatory.
  • Mission Objective Data the final block of data consists of a series of 32 byte long entries, each of which is an individual objective for each mission defined above. These start with an arbitrary incrementing byte that counts up through the file. This does not correspond with anything, it's simply used to define each entry as unique. Some entries deliberately do not have a number here, and in fact objectives without a number at the start are added as extended conditions of a previous objective that had a number. Further investigation is needed, but it seems there are further bytes that determine how this works logically to "And" or "Or" objectives together, etc. The second byte after this is the corresponding level file's map number, and then the next byte is the level number, just as the levels are mapped against missions at the start of the file. However, this is one big difference here - level numbers are not stored in the same format as in the mission definitions. They are only stored as the root level number, the file extension is not stored. so e.g. a level would be stored only as 25l002.dat (1901 in hex), not 1.d1 or 2.d2 etc. This bolsters the theory that similar numbers are supposed to be revisions of the same level, as they will always share mission objectives. The rest of the data in each entry is the actual mission objectives themselves (groups of enemies to kill, coordinates to go to, etc).

Byte 3 after map details is the objective type, which are as follows:

Objective No. Game Code Objective Function Name Default In-Game Text Notes
1 GAME_OBJ_P_DEAD ASSASSINATE Can be used as a fail state, then mission fails if unit dies
2 GAME_OBJ_ALL_G_DEAD ELIMINATE GROUP As Above
3 GAME_OBJ_MEM_G_DEAD KILL GROUP MEM As Above
4 GAME_OBJ_P_NEAR RENDEZVOUS
5 GAME_OBJ_MEM_G_NEAR RENDEZVOUS2
6 GAME_OBJ_P_ARRIVES GOTO LOCATION Often reliant on other conditions such as having an item first
7 GAME_OBJ_MEM_G_ARRIVES GOTO LOCATION As Above
8 GAME_OBJ_ALL_G_ARRIVES ALL GOTO LOCATION As Above. Often used to end missions
9 GAME_OBJ_PERSUADE_P PERSUADE Persuade single target
10 GAME_OBJ_PERSUADE_MEM_G PERSUADE GANG MEM Persuage Group (only used once, seems to work based on coordinates)
11 GAME_OBJ_PERSUADE_ALL_G PERSUADE ALL GANG Persuade Group (based on target type)
12 GAME_OBJ_TIME TIMER Wait until X time has passed
13 GAME_OBJ_GET_ITEM COLLECT ITEM
14 GAME_OBJ_USE_ITEM USE ITEM
15 GAME_OBJ_FUNDS GET BULLION
16 GAME_OBJ_DESTROY_OBJECT DESTROY BUILDING
17 GAME_OBJ_PKILL P NEUTRALISE Kill specific agent (only used by 3 missions)
18 GAME_OBJ_PKILL G NEUTRALISE MEM
19 GAME_OBJ_PKILL ALL G NEUTRALISE G
20 GAME_OBJ_USE_PANET USE P.A.NET Use the cut Public Access Network
21 Unknown
22 GAME_OBJ_PROTECT_G PROTECT GROUP
23 GAME_OBJ_P_PERS_G PEEP PERSUADE ALL
24 GAME_OBJ_ALL_G_USE_V USE VEHICLE

As explained in the notes column above, many of these can have very different functionality depending on how they are setup by the mission objectives in the ALLXXX.MIS file. They can be simple objectives for the player to achieve, pre-requisites for another objective (e.g. go to X but bring item Y with you), fail states (an enemy NPC achieved X), and probably more.

Byte 7 is the types of NPC to kill/do something to, this seems to be just be based on the NPC groups as defined in each individual level file, so has no consistent relation to NPCs across the game as a whole.

Bytes 12 and 13 are coordinates (X axis?) for places needed for Go To objectives. 16 and 17 are second pair of bytes for this. Some entries have six bytes total used up by these, so possibly they include the Z axis as well? Needs investigation.

Byte 26 is the unique mission objective text as per the line number in OBJ.TXT in ALLTEXT.WAD. If this is not set, then the game falls back to the default text for that objective (Eliminate Group, All go to location, etc) At the very end of the file there is some kind of dense final entry of around 32 bytes that is different and not part of the mission objectives, but it's not clear what this is for.

Example Mission Definition

000000000000000000000000000000000000000000000000000000000000CD00D000190000000000000000110A1F000000000000000019000000000000001900001000000000000000001910

The above is the second defined mission, file c025l001.d1. The first highlighted byte is a pointer to the end block of mission objective data in the file, to point to the first mission objective. The second highlight is which mission briefing to display. The third highlight is what seems to be related to the mission index counter. The fourth highlight is the map number for the mission. The fifth highlight is the mission map/level data, 19 for map 25 in decimal and 10 for level file extension 01.d1.

Example Mission Objective Definition

CE00190100000200000006000000000000000000010000000000580000000000

The above is a single mission objective definition, the first of four, for the mission c025l001.d1. Note however that that mission listed is 1901, not 1910, because file extensions are not respected in these definitions, only the base number of the level file.

The first highlight is the arbitrary number for the mission objective in the file, in this 206 in decimal. The next is the level file set to apply this objective to - 1901. The third is the objective type, 02 - kill something. The fourth is what to kill, npc type 06 - Unguided. The fifth and final highlight is the mission objective text. In this case it's number 88 from the list in ALLTEXT.WAD - "VANQUISH THE UNBELIEVERS".

ALLTEXT.WAD

This file contains all the text resources for the game, including the mission briefings, mission names (as visible on the pause screen), City data, mission objectives, etc. There is a corresponding file ALLTEXT.IDX that serves as an index file for this document, showing the offset of where the original constituent text files begin and end. From experiment it's clear that two mechanisms are at work for briefing information - briefings start/end data is stored in the index file against each briefing's original MISSXXX.TXT filename, but the "netscan" data (the small clickable mission objectives at the bottom left of the briefing screen) are picked from the file based on the number code in brackets before them. This scheme corresponds with the level file code, but in decimal rather than hex. An example is [0103].

ALL000.MIS Files

Below are the actual contents of the Allxxx.mis files, using tooling to extract details and make them human readable. "Mission Index" is the unique number used to load the mission from the command line. "Text Summary" is the summary text Bullfrog put into these files to summarise what each level was going to be used for. These contain WIP names and early information on campaign orders. "Briefing Number" is the number of the text file used for this mission (missions without briefing numbers are cut from the game, but there are some cut levels with briefing numbers set).

It's worth noting that overall the actual levels contained here rarely changed from the start until end of development, mostly only new levels were added to end of the file. However, mission objective data does change between files, but this is not yet understood in a way that can be extracted and documented.

ALL000.MIS

The actual final game Mission file

Mission Index Text Summary Level file Briefing Number
1 SYN1 M30 EXECUTIVE ALERT c030l001.d1 1
2 CH2 M25 UNGUIDED c025l001.d1 25
3 SYN3 M32 FUSION c032l001.d1 3
4 SYN4 M21 KNOWLEDGE c021l001.d2 4
5 SYN7 M28 SACK OF ROME c028l001.d3 7
6 CH7 M28 SACK OF ROME c028l001.d2 31
7 SYN13 M79 OUT OF THIS WORLD c079l001.d2 13
8 SYN14 M30 DUPLICITY c030l001.d3 14
9 SYN17 M22 SPECIAL AGENT c022l001.d1 17
10 CH5 M21 LEARNING P1 c021l001.d3 29
11 CH8 M22 SPIES LIKE US c022l002.dat 32
12 CH8 M25 P4 SPIES LIKE US c025l001.d3 32
13 CH12 M30 AUDACITY c030l002.dat 36
14 CH13 M20 SEVERE BLOW c020l001.d1 38
15 CH15 M32 SPLATTERPUNKS P2 c032l002.dat 40
16 CH15 M27 SPLATTERPUNKS P4 c027l001.dat 41
17 CH5 M22 DONATION c022l003.dat 28
18 CH16 M79 FREE PASSAGE P2 c079l002.dat 44
19 CH18 M22 VISSICK HUNT c022l004.dat 46
20 SYN18 M27 ANARCHIC SUBCONT c027l002.dat 19
21 SYN6 M10 PHOENIX IN FLAMES c010l001.dat 6
22 SYN - MISSION 3 - MAP 1 c001l001.dat 3
23 SYN - MISSION 15 - MAP 3 c003l001.dat 15
24 SYN - MISSION 18 - MAP 5 c005l001.dat 19
25 SYN - MISSION 11 - MAP 6 c006l001.dat 11
26 SYN - MISSION 11 - MAP 7 c007l001.dat 11
27 CH4 M7 TEST OF FAITH c007l003.dat 27
28 SYN - MISSION 13 - MAP 8 c008l001.dat 13
29 SYN - MISSION 4 - MAP 2 c002l001.dat 4
30 CHURCH - MISS 5 - MAP 2 c002l003.dat 0
31 CHURCH - MISS 6 - MAP 1 c001l003.dat 30
32 CHURCH - MISS 15 - MAP 8 c008l003.dat 35
33 CHURCH - MISS 8 MAP 7 c007l005.dat 32
34 SYN - MISS 5 - MAP 9 c009l001.dat 5
35 SYN10 M4 TAKEN TO TAKS c004l001.dat 10
36 SYN15A M47 BRING HIM BACK.. c047l001.dat 15
37 SYN4B FRIENDLY PERSUASION c050l001.dat 4
38 SYN11C M44 SCIENCE MAJOR c044l001.dat 11
39 CH 5B M50 THE LEARNING c050l002.d3 29
40 ZEALOT 12. AUDACITY-BAHRAIN c041l001.dat 32
41 AGENT 16. RE-ALIGNMENT HAWAI c040l001.d3 16
42 AGENT 19. SPIDERS..COLUMBO. c046l001.dat 0
43 CH10 M41 DEADLY HARVEST c041l002.d3 34
44 CH9 M45 POWERMONGER c045l001.dat 33
45 CH17 M44 FRIENDLY FIRE c044l002.dat 45
46 AGENT 19. ELEVATOR TEST. c046l015.d3 19
47 ZEALOT 19. ELEVATOR TEST. c046l014.dat 39
48 CH1 M35 HARBINGER c035l002.dat 24
49 SYN2 M35 THE UNGUIDED c035l001.dat 2
50 SYN11B M26 TRAIL OF PROPHET c026l001.dat 11
51 CH3 M26 THE KNOWLEDGE c026l002.dat 26
52 CH8B M26 SPIES LIKE US c026l003.dat 32
53 CH16A M36 FREE PASSAGE c036l002.dat 43
54 CH16C M36 FREE PASSAGE c036l003.dat 0
55 SYN8A M1 HEAD HUNT c001l015.dat 8
56 SYN8B M10 HEAD HUNT c010l015.dat 8
57 SYN8C M28 HEAD HUNT c028l015.dat 9
58 SYN8D M32 HEAD HUNT c032l015.dat 8
59 SYN12 M36 WORD OF GOD c036l001.dat 12
60 PU3 M20 GUNS GUNS GUNS c020l002.dat 0
61 PU4 M52 COMMUNICATIONS c052l001.dat 0
62 PU8 M28 RESCUE c028l002.dat 0
63 PU10 M27 c027l003.dat 0
64 UNGUIDED-MISS 3- MAP 3 c003l007.dat 0
65 UNG14A M40 MASSIVE ASSAULT c040l015.dat 0
66 PUNK 6-CAPETOWN-MAP 44 c044l015.d1 0
67 UNG 16 M26 TALKS AMBUSH c026l004.dat 0
68 UNG2 M35 ZEALOT ATTACK c035l004.dat 0
69 UNG19 M36 TRASH CHURCH c036l004.dat 0
70 UNGUIDED - MISS 5 - MAP1 c001l007.dat 0
71 CH - MISS 19 -MAP6 c006l003.dat 47
72 CH14 M4 DIVINE LIGHT c004l003.dat 37
73 CH - MISS 11 - MAP 9 c009l003.dat 35
74 SYN16 M40 RE-ALIGNMENT c040l001.dat 16
75 PU15 M30 FEROCITY c030l008.D1 0
76 AGENT 17-THE SPECIAL..MAP 45 c047l001.dat 0
77 PU3 M20 GUNS GUNS GUNS c020l007.dat 0
78 PU4 M52 COMMUNICATIONS c052l007.dat 0
79 PUNK 6-CAPETOWN-MAP 44 c044l007.dat 0
80 UNG2 M7 CLEAN-UP c035l007.dat 0
81 UNG 7 - MAP 9 - GODFATHER c009l007.dat 0
82 UNG 9 - MAP 2 - DUMPED c002l007.dat 0
83 SYN17B M45 SLOWDIVE c045l002.dat 18
84 SYN19A M46 COLOMBO CONFRONT. c046l015.dat 21
85 CH15 M3 SPLATTERPUKS c003l002.dat 42
86 CH 13 M4 SEVERE BLOW c004l015.dat 0
87 CH14 M44 FALL AMONG THIEVES c044l003.dat 39
88 SHUTTLE DIPLOMACY -ORBITAL c011l001.dat 22
89 TEST c012l001.dat 0
90 UNG14C M20 MASSIVE ASSAULT c020l015.dat 0
91 UNG14B M35 MASSIVE ASSAULT c035l005.dat 0
92 SYN9 M41 ARAB AGENDA c041l003.dat 20
93 UNG14A M40 MASSIVE ASSAULT c040l015.dat 0
94 UNG14C M20 MASSIVE ASSAULT c020l015.dat 0
95 UNG14B M35 MASSIVE ASSAULT c035l005.dat 0
96 SYN15 M47 TURN JAP c047l001.d2 0
97 SYN15 M47 TURN JAP c047l015.dat 0
98 ZEALOT 5. THE LEARNING GENEV c050l002.dat 0
99 CH17 M44 FRIENDLY FIRE c000l000.dat 0
100 CH20 M46 DELIVER THE NINTH c046l002.dat 48
101 CHURCH OF THE POISONED MIND c065l002.dat 23
102 THE END... c065l003.dat 49
103 TALE OF TWO CITIES c060l015.dat 1
104 DEMO MISSION c070l011.dat 1
105 DEMO MISSION c047l011.dat 0
106 MULTI16 c036l005.dat 0
107 AD'S LEVEL c005l005.dat 0
108 DEMO2 M3 L10 OVERRUN c003l010.dat 2
109 c035l015.d3 2

ALL000.OLD

An older version from the 7th July 1996

Mission Index Text Summary Level file
1 SYN1 EXECUTIVE ALERT c030l001.d1
2 CH2 M25 UNGUIDED c025l001.d1
3 SYN3 M32 FUSION c032l001.d1
4 SYN4 FRIENDLY PERSUASION c021l001.d2
5 SYN7 M28 SACK OF ROME c028l001.d3
6 CH7 M28 SACK OF ROME c028l001.d2
7 SYN13 M79 OUT OF THIS WORLD c079l001.d2
8 SYN14 M30 DUPLICITY c030l001.d3
9 SYN17 M22 SPECIAL AGENT c022l001.d1
10 CH5 M21 LEARNING P1 c021l001.d3
11 CH8 M22 SPIES LIKE US c022l002.dat
12 CH8 M25 P4 SPIES LIKE US c025l001.d3
13 CH12 M30 AUDACITY c030l002.dat
14 CH13 M20 SEVERE BLOW c020l001.d1
15 CH15 M32 SPLATTERPUNKS P2 c032l002.dat
16 CH15 M27 SPLATTERPUNKS P4 c027l001.dat
17 CH 4 M22 DONATION c022l003.dat
18 CH16 M79 FREE PASSAGE P2 c079l002.dat
19 CH18 M22 VISSICK HUNT c022l004.dat
20 SYN18 M27 ANARCHIC SUBCONT c027l002.dat
21 SYN - MISS 6 - MAP 10 c010l001.dat
22 SYN - MISSION 3 - MAP 1 c001l001.dat
23 SYN - MISSION 15 - MAP 3 c003l001.dat
24 SYN - MISSION 18 - MAP 5 c005l001.dat
25 SYN - MISSION 11 - MAP 6 c006l001.dat
26 SYN - MISSION 11 - MAP 7 c007l001.dat
27 CH3B CATASTROPHIC CONVERTER c007l003.dat
28 SYN - MISSION 13 - MAP 8 c008l001.dat
29 SYN - MISSION 4 - MAP 2 c002l001.dat
30 CHURCH - MISS 5 - MAP 2 c002l003.dat
31 CHURCH - MISS 6 - MAP 1 c001l003.dat
32 CHURCH - MISS 15 - MAP 8 c008l003.dat
33 CHURCH - MISS 8 MAP 7 c007l005.dat
34 SYN - MISS 5 - MAP 9 c009l001.dat
35 SYN10 TAKEN TO MARS c004l001.dat
36 SYN15A M47 BRING HIM BACK.. c047l001.dat
37 SYN4B FRIENDLY PERSUASION c050l001.dat
38 SYN11C M44 SCIENCE MAJOR c044l001.dat
39 CH 5B M50 THE LEARNING c050l002.d3
40 ZEALOT 12. AUDACITY-BAHRAIN c041l001.dat
41 AGENT 16. RE-ALIGNMENT HAWAI c040l001.d3
42 AGENT 19. SPIDERS..COLUMBO. c046l001.dat
43 CH10 M41 DEADLY HARVEST c041l002.d3
44 CH9 M45 POWERMONGER c045l001.dat
45 CH17 M44 FRIENDLY FIRE c044l002.dat
46 AGENT 19. ELEVATOR TEST. c046l015.d3
47 ZEALOT 19. ELEVATOR TEST. c046l014.dat
48 CH1 M35 ATTACK BASE c035l002.dat
49 SYN2 M35 THE UNGUIDED c035l001.dat
50 SYN11B M26 TRAIL OF PROPHET c026l001.dat
51 CH3 M26 THE KNOWLEDGE c026l002.dat
52 CH8B M26 SPIES LIKE US c026l003.dat
53 CH16A M36 FREE PASSAGE c036l002.dat
54 CH16C M36 FREE PASSAGE c036l003.dat
55 SYN8A M1 HEAD HUNT c001l015.dat
56 SYN8B M10 HEAD HUNT c010l015.dat
57 SYN8C M28 HEAD HUNT c028l015.dat
58 SYN8D M32 HEAD HUNT c032l015.dat
59 SYN12 M36 WORD OF GOD c036l001.dat
60 PU3 M20 GUNS GUNS GUNS c020l002.dat
61 PU4 M52 COMMUNICATIONS c052l001.dat
62 PU8 M28 RESCUE c028l002.dat
63 PU10 M27 c027l003.dat
64 UNGUIDED-MISS 3- MAP 3 c003l007.dat
65 UNG14A M40 MASSIVE ASSAULT c040l015.dat
66 PUNK 6-CAPETOWN-MAP 44 c044l015.d1
67 UNG 16 M26 TALKS AMBUSH c026l004.dat
68 UNG2 M35 ZEALOT ATTACK c035l004.dat
69 UNG19 M36 TRASH CHURCH c036l004.dat
70 UNGUIDED - MISS 5 - MAP1 c001l007.dat
71 CH - MISS 19 -MAP6 c006l003.dat
72 CH13A ATOMIC WAIT c004l003.dat
73 CH - MISS 11 - MAP 9 c009l003.dat
74 SYN16 M40 RE-ALIGNMENT c040l001.dat
75 PU15 M30 FEROCITY c030l008.D1
76 AGENT 17-THE SPECIAL..MAP 45 c047l001.dat
77 PU3 M20 GUNS GUNS GUNS c020l007.dat
78 PU4 M52 COMMUNICATIONS c052l007.dat
79 PUNK 6-CAPETOWN-MAP 44 c044l007.dat
80 UNG2 M7 CLEAN-UP c035l007.dat
81 UNG 7 - MAP 9 - GODFATHER c009l007.dat
82 UNG 9 - MAP 2 - DUMPED c002l007.dat
83 SYN17B M45 SLOWDIVE c045l002.dat
84 SYN19A M46 COLOMBO CONFRONT. c046l015.dat
85 CH15 M3 SPLATTERPUKS c003l002.dat
86 CH 13 M4 SEVERE BLOW c004l015.dat
87 CH14 M44 FALL AMONG THIEVES c044l003.dat
88 SYN 19B - MAP 11 c011l001.dat
89 TEST c012l001.dat
90 UNG14C M20 MASSIVE ASSAULT c020l015.dat
91 UNG14B M35 MASSIVE ASSAULT c035l005.dat
92 SYN9 M41 ARAB AGENDA c041l003.dat
93 UNG14A M40 MASSIVE ASSAULT c040l015.dat
94 UNG14C M20 MASSIVE ASSAULT c020l015.dat
95 UNG14B M35 MASSIVE ASSAULT c035l005.dat
96 SYN15 M47 TURN JAP c047l001.d2
97 SYN15 M47 TURN JAP c047l015.dat
98 ZEALOT 5. THE LEARNING GENEV c050l002.dat
99 CH17 M44 FRIENDLY FIRE c000l000.dat
100 CH20 M46 DELIVER THE NINE c046l002.dat
101 CHURCH OF THE POISONED MIND c065l002.dat
102 THE END...

ALL000.BEN

The oldest known version of the file, from the 1st of May 1996

Mission Index Text Summary Level file Briefing Number
1 SYN1 M30 FIRST BASE c030l001.d1 1
2 CH2 M25 UNGUIDED c025l001.d1 22
3 SYN3 M32 FRAGMENTATION c032l001.d1 0
4 SYN4 M21 KNOWLEDGE c021l001.d2 4
5 SYN7 M28 SACK OF ROME c028l001.d3 7
6 CH7 M28 SACK OF ROME c028l001.d2 27
7 SYN13 M79 OUT OF THIS WORLD c079l001.d2 13
8 SYN14 M30 DUPLICITY c030l001.d3 14
9 SYN17 M22 SPECIAL AGENT c022l001.d1 17
10 CH5 M21 LEARNING P1 c021l001.d3 25
11 CH8 M22 SPIES LIKE US c022l002.dat 0
12 CH8 M25 P4 SPIES LIKE US c025l001.d3 0
13 CH12 M30 AUDACITY c030l002.dat 0
14 CH13 M20 SEVERE BLOW c020l001.d1 0
15 CH15 M32 SPLATTERPUNKS P2 c032l002.dat 0
16 CH15 M27 SPLATTERPUNKS P4 c027l001.dat 0
17 CH4 M22 MONEY c022l003.dat 24
18 CH16 M79 FREE PASSAGE P2 c079l002.dat 0
19 CH18 M22 VISSICK HUNT c022l004.dat 38
20 SYN18 M27 ANARCHIC SUBCONT c027l002.dat 18
21 SYN - MISS 6 - MAP 10 c010l001.dat 6
22 SYN - MISSION 3 - MAP 1 c001l001.dat 3
23 SYN - MISSION 15 - MAP 3 c003l001.dat 0
24 SYN - MISSION 18 - MAP 5 c005l001.dat 0
25 SYN - MISSION 11 - MAP 6 c006l001.dat 0
26 SYN - MISSION 11 - MAP 7 c007l001.dat 11
27 CHURCH - MISS 3 - MAP 7 c007l003.dat 0
28 SYN - MISSION 13 - MAP 8 c008l001.dat 0
29 SYN - MISSION 4 - MAP 2 c002l001.dat 0
30 CHURCH - MISS 5 - MAP 2 c002l003.dat 0
31 CHURCH - MISS 6 - MAP 1 c001l003.dat 26
32 CHURCH - MISS 15 - MAP 8 c008l003.dat 35
33 CHURCH - MISS 8 MAP 7 c007l005.dat 0
34 SYN - MISS 5 - MAP 9 c009l001.dat 5
35 SYN - MISS 10 - MAP 4 c004l001.dat 10
36 AGENT 15. MOUTH OF..TOKYO 47 c047l001.dat 15
37 AGENT 4B. TE KNOW..M50 GENEV c050l001.dat 0
38 AGENT 11. TRAIL OF..CAPETOWN c044l001.dat 0
39 ZEALOT 5. THE LEARNING GENEV c050l002.d3 0
40 ZEALOT 12. AUDACITY-BAHRAIN c041l001.dat 32
41 AGENT 16. RE-ALIGNMENT HAWAI c040l001.d3 16
42 AGENT 19. SPIDERS..COLUMBO. c046l001.dat 0
43 ZEALOT 10. ASSASSINATION-M41 c041l002.d3 30
44 ZEALOT 9.CRIUSER-MAP 45 c045l001.dat 29
45 ZEALOT 17. FRIENDLY FIRE M44 c044l002.dat 37
46 AGENT 19. ELEVATOR TEST. c046l015.d3 19
47 ZEALOT 19. ELEVATOR TEST. c046l014.dat 39
48 CH1 M35 ATTACK BASE c035l002.dat 21
49 SYN2 M35 THE UNGUIDED c035l001.dat 2
50 SYN11B M26 TRAIL OF PROPHET c026l001.dat 0
51 CH3 M26 THE KNOWLEDGE c026l002.dat 23
52 CH8B M26 SPIES LIKE US c026l003.dat 0
53 CH16A M36 FREE PASSAGE c036l002.dat 36
54 CH16C M36 FREE PASSAGE c036l003.dat 0
55 SYN8A M1 HEAD HUNT c001l015.dat 8
56 SYN8B M10 HEAD HUNT c010l015.dat 0
57 SYN8C M28 HEAD HUNT c028l015.dat 0
58 SYN8D M32 HEAD HUNT c032l015.dat 0
59 SYN12 M36 WORD OF GOD c036l001.dat 12
60 PU3 M20 GUNS GUNS GUNS c020l002.dat 0
61 PU4 M52 COMMUNICATIONS c052l001.dat 0
62 PU8 M28 RESCUE c028l002.dat 0
63 PU10 M27 c027l003.dat 0
64 UNGUIDED-MISS 3- MAP 3 c003l007.dat 0
65 PUNK 1 c040l015.dat 0
66 PUNK 6-CAPETOWN-MAP 44 c044l015.d1 0
67 UNG 16 M26 TALKS AMBUSH c026l004.dat 0
68 UNG2 M7 CLEAN-UP c035l004.dat 0
69 UNG19 M36 TRASH CHURCH c036l004.dat 0
70 UNGUIDED - MISS 5 - MAP1 c001l007.dat 0
71 CH - MISS 15 - MAP 6 c006l003.dat 0
72 CHURCH - MISS 13 - MAP 4 c004l003.dat 33
73 CH - MISS 11 - MAP 9 c009l003.dat 0
74 AGENT 16. RE-ALIGNMENT HAWAI c040l001.dat 0
75 PU15 M30 FEROCITY c030l008.D1 0
76 BOLLOX c000l000.dat 0
77 PU3 M20 GUNS GUNS GUNS c020l007.dat 0
78 PU4 M52 COMMUNICATIONS c052l007.dat 0
79 PUNK 6-CAPETOWN-MAP 44 c044l007.dat 0
80 UNG2 M7 CLEAN-UP c035l007.dat 0
81 UNG 7 - MAP 9 - GODFATHER c009l007.dat 0
82 UNG 9 - MAP 2 - DUMPED c002l007.dat 0
83 AGENT 17-PT.2 THESPECIALAGEN c045l002.dat 0
84 AGENT 19. ELEVATOR TEST. c046l015.dat 0
85 CH15 M3 SPLATTERPUKS c003l002.dat 0

ALL099.MIS

This is exactly the same as ALL000.MIS in terms of text and level files, so not reproduced here.

All001.MIS

These are the multiplayer levels used by the final game. I'ts not clear if there is any way to directly load these using the Mission Index.

Mission Text Summary Level
1 SALZBURG c002l005.dat
2 BANGKOK c003l003.dat
3 NEW YORK c004l004.dat
4 SEVASTOPOL c005l015.dat
5 GENEVA c050l003.dat
6 TOKYO c047l002.dat
7 COLOMBO c046l005.dat
8 CAPE TOWN c044l005.dat
9 ANCHORAGE c060l005.dat
10 DETROIT c035l005.dat
11 ADELAIDE c006l005.dat
12 CHRISTCHURCH c036l005.dat
13 BEIJING c032l005.dat
14 NUUK c008l005.dat
15 HONG KONG c001l005.dat

ALL098.MIS

These are more multiplayer levels. They are cut from the final game.

Mission Text Summary Level
1 MULTI 1 c001l002.dat
2 MULTI 2 c002l002.dat
3 MULTI 3 c003l003.dat
4 MULTI 4 c004l004.dat
5 MULTI 5 c005l015.dat
6 MULTI 6 c050l003.dat
7 MULTI 7 c047l002.dat
8 MULTI 8 c046l005.dat
9 MULTI 9 c044l005.dat
10 MULTI 10 c041l005.dat
11 MULTI 11 c040l005.dat
12 MULTI 12 c060l005.dat
13 MULTI 13 c065l005.dat
14 MULTI 14 c035l005.dat
15 MULTI 15 c006l005.dat

PlayStation version

CALL000.MIS from the PS1 version of the game. The PlayStation version has a slightly different file format; level entries are now 72 bytes instead of 76. There also seems to be less data in each level defintion, but the mission briefing and associated bytes are the same format. While mission objectives are still present here, levels also now seem to store the mission objective in them as well or have some other kind of unique way of matching as renaming a file to another still preserves the renamed files' objectives, something not possible in the PC version (the initial objective listed on screen is still wrong, however).

Mission Index Text Summary PC level PS1 Filename Briefing Number
1 SYN1 M30 EXECUTIVE ALERT c050l001.dat MAP50L01.MUL 1
2 CH2 M25 UNGUIDED c025l001.d1 MAP25L16.MUL 25
3 CH2 M10 UNREST c010l002.dat MAP10L02.MUL 21
4 SYN4 M21 KNOWLEDGE c021l001.d2 MAP21L31.MUL 4
5 SYN7 M28 SACK OF ROME c028l001.d3 MAP28L46.MUL 7
6 CH7 M28 SACK OF ROME c028l001.d2 MAP28L31.MUL 25
7 SYN13 M79 OUT OF THIS WORLD c079l001.d2 MAP79L31.MUL 13
8 SYN14 M30 DUPLICITY c030l001.d3 MAP30L46.MUL 14
9 SYN17 M22 SPECIAL AGENT c022l001.d1 MAP22L16.MUL 16
10 CH5 M21 LEARNING P1 c021l001.d3 MAP21L46.MUL 29
11 CH8 M22 SPIES LIKE US c022l002.dat MAP22L02.MUL 32
12 CH8 M25 P4 SPIES LIKE US c025l001.d3 MAP25L46.MUL 32
13 CH12 M30 AUDACITY c030l002.dat MAP30L02.MUL 36
14 CH13 M20 SEVERE BLOW c020l001.d1 MAP20L16.MUL 38
15 CH15 M32 SPLATTERPUNKS P2 c032l002.dat MAP32L02.MUL 40
16 CH15 M27 SPLATTERPUNKS P4 c027l001.dat MAP27L01.MUL 41
17 CH5 M22 DONATION c022l003.dat MAP22L03.MUL 23
18 CH16 M79 FREE PASSAGE P2 c079l002.dat MAP79L02.MUL 44
19 CH18 M22 VISSICK HUNT c022l004.dat MAP22L04.MUL 34
20 SYN18 M27 ANARCHIC SUBCONT c027l002.dat MAP27L02.MUL 19
21 SYN6 M10 PHOENIX IN FLAMES c010l001.dat MAP10L01.MUL 6
22 SYN - MISSION 3 - MAP 1 c001l001.dat MAP01L01.MUL 3
23 SYN - MISSION 15 - MAP 3 c003l001.dat MAP03L01.MUL 14
24 SYN - MISSION 18 - MAP 5 c005l001.dat MAP05L01.MUL 19
25 SYN - MISSION 11 - MAP 6 c006l001.dat MAP06L01.MUL 11
26 SYN - MISSION 11 - MAP 7 c007l001.dat MAP07L01.MUL 11
27 CH4 M7 TEST OF FAITH c007l003.dat MAP07L03.MUL 22
28 SYN - MISSION 13 - MAP 8 c008l001.dat MAP08L01.MUL 12
29 SYN - MISSION 4 - MAP 2 c002l001.dat MAP02L01.MUL 4
30 CHURCH - MISS 5 - MAP 2 c002l003.dat MAP02L03.MUL 0
31 CHURCH - MISS 6 - MAP 1 c001l002.dat MAP01L02.MUL 24
32 CHURCH - MISS 15 - MAP 8 c008l003.dat MAP08L03.MUL 35
33 CHURCH - MISS 8 MAP 7 c007l005.dat MAP07L05.MUL 27
34 SYN - MISS 5 - MAP 9 c009l001.dat MAP09L01.MUL 5
35 SYN10 M4 TAKEN TO TAKS c004l001.dat MAP04L01.MUL 9
36 SYN15A M47 BRING HIM BACK.. c047l001.dat MAP47L01.MUL 13
37 SYN4B FRIENDLY PERSUASION c050l001.dat MAP50L01.MUL 4
38 SYN11C M44 SCIENCE MAJOR c044l001.dat MAP44L01.MUL 10
39 CH 5B M50 THE LEARNING c050l002.d3 MAP50L47.MUL 29
40 ZEALOT 12. AUDACITY-BAHRAIN c041l001.dat MAP41L01.MUL 32
41 AGENT 16. RE-ALIGNMENT HAWAI c040l001.d3 MAP40L46.MUL 16
42 AGENT 19. SPIDERS..COLUMBO. c046l001.dat MAP46L01.MUL 0
43 CH10 M41 DEADLY HARVEST c041l002.d3 MAP41L47.MUL 29
44 CH9 M45 POWERMONGER c045l001.dat MAP45L01.MUL 28
45 CH17 M44 FRIENDLY FIRE c044l002.dat MAP44L02.MUL 33
46 AGENT 19. ELEVATOR TEST. c046l015.d3 MAP46L60.MUL 19
47 ZEALOT 19. ELEVATOR TEST. c046l014.dat MAP46L14.MUL 39
48 CH1 M35 HARBINGER c035l002.dat MAP35L02.MUL 20
49 SYN2 M35 THE UNGUIDED c035l001.dat MAP35L01.MUL 2
50 SYN11B M26 TRAIL OF PROPHET c026l001.dat MAP26L01.MUL 11
51 CH3 M26 THE KNOWLEDGE c026l002.dat MAP26L02.MUL 26
52 CH8B M26 SPIES LIKE US c026l003.dat MAP26L03.MUL 26
53 CH16A M36 FREE PASSAGE c036l002.dat MAP36L02.MUL 43
54 CH16C M36 FREE PASSAGE c036l003.dat MAP36L03.MUL 0
55 SYN8A M1 HEAD HUNT c001l015.dat MAP01L15.MUL 8
56 SYN8B M10 HEAD HUNT c010l015.dat MAP10L15.MUL 8
57 SYN8C M28 HEAD HUNT c028l015.dat MAP28L15.MUL 9
58 SYN8D M32 HEAD HUNT c032l015.dat MAP32L15.MUL 8
59 SYN12 M36 WORD OF GOD c036l001.dat MAP36L01.MUL 12
60 PU3 M20 GUNS GUNS GUNS c020l002.dat MAP20L02.MUL 0
61 PU4 M52 COMMUNICATIONS c052l001.dat MAP52L01.MUL 0
62 PU8 M28 RESCUE c028l002.dat MAP28L02.MUL 0
63 PU10 M27 c027l003.dat MAP27L03.MUL 0
64 UNGUIDED-MISS 3- MAP 3 c003l007.dat MAP03L07.MUL 0
65 UNG14A M40 MASSIVE ASSAULT c040l015.dat MAP40L15.MUL 0
66 PUNK 6-CAPETOWN-MAP 44 c044l015.d1 MAP44L30.MUL 0
67 UNG 16 M26 TALKS AMBUSH c026l004.dat MAP26L04.MUL 0
68 UNG2 M35 ZEALOT ATTACK c035l004.dat MAP35L04.MUL 0
69 UNG19 M36 TRASH CHURCH c036l004.dat MAP36L04.MUL 0
70 UNGUIDED - MISS 5 - MAP1 c001l007.dat MAP01L07.MUL 0
71 CH - MISS 19 -MAP6 c006l003.dat MAP06L03.MUL 35
72 CH14 M4 DIVINE LIGHT c004l003.dat MAP04L03.MUL 30
73 CH - MISS 11 - MAP 9 c009l003.dat MAP09L03.MUL 35
74 SYN16 M40 RE-ALIGNMENT c040l001.dat MAP40L01.MUL 15
75 PU15 M30 FEROCITY c030l008.D1 MAP30L23.MUL 0
76 AGENT 17-THE SPECIAL..MAP 45 c047l001.dat MAP47L01.MUL 0
77 PU3 M20 GUNS GUNS GUNS c020l007.dat MAP20L07.MUL 0
78 PU4 M52 COMMUNICATIONS c052l007.dat MAP52L07.MUL 0
79 PUNK 6-CAPETOWN-MAP 44 c044l007.dat MAP44L07.MUL 0
80 UNG2 M7 CLEAN-UP c035l007.dat MAP35L07.MUL 0
81 UNG 7 - MAP 9 - GODFATHER c009l007.dat MAP09L07.MUL 0
82 UNG 9 - MAP 2 - DUMPED c002l007.dat MAP02L07.MUL 0
83 SYN17B M45 SLOWDIVE c045l002.dat MAP45L02.MUL 17
84 SYN19A M46 COLOMBO CONFRONT. c046l015.dat MAP46L15.MUL 19
85 CH15 M3 SPLATTERPUKS c003l002.dat MAP03L02.MUL 32
86 CH 13 M4 SEVERE BLOW c004l015.dat MAP04L15.MUL 0
87 CH14 M44 FALL AMONG THIEVES c044l003.dat MAP44L03.MUL 31
88 SHUTTLE DIPLOMACY -ORBITAL c011l001.dat MAP11L01.MUL 22
89 TEST c012l001.dat MAP12L01.MUL 0
90 UNG14C M20 MASSIVE ASSAULT c020l015.dat MAP20L15.MUL 0
91 UNG14B M35 MASSIVE ASSAULT c035l005.dat MAP35L05.MUL 0
92 SYN9 M41 ARAB AGENDA c041l003.dat MAP41L03.MUL 18
93 UNG14A M40 MASSIVE ASSAULT c040l015.dat MAP40L15.MUL 0
94 UNG14C M20 MASSIVE ASSAULT c020l015.dat MAP20L15.MUL 0
95 UNG14B M35 MASSIVE ASSAULT c035l005.dat MAP35L05.MUL 0
96 SYN15 M47 TURN JAP c047l001.d2 MAP47L31.MUL 0
97 SYN15 M47 TURN JAP c047l015.dat MAP47L15.MUL 0
98 ZEALOT 5. THE LEARNING GENEV c050l002.dat MAP50L02.MUL 0
99 CH17 M44 FRIENDLY FIRE c000l000.dat MAP00L00.MUL 0
100 CH20 M46 DELIVER THE NINTH c046l002.dat MAP46L02.MUL 36
101 CHURCH OF THE POISONED MIND c065l002.dat MAP65L02.MUL 23
102 THE END... c065l003.dat MAP65L03.MUL 49
103 TALE OF TWO CITIES c060l015.dat MAP60L15.MUL 1
104 DEMO MISSION c070l011.dat MAP70L11.MUL 1
105 DEMO MISSION c047l011.dat MAP47L11.MUL 0
106 MULTI16 c036l005.dat MAP36L05.MUL 0
107 AD'S LEVEL c005l005.dat MAP05L05.MUL 0
108 DEMO2 M3 L10 OVERRUN c003l010.dat MAP03L10.MUL 2
109 c035l015.d3 MAP35L60.MUL 2
110 TEST1 c040l008.d3 MAP40L53.MUL 0
111 CH2 M10 UNREST c010l002.dat MAP10L02.MUL 25