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. Confusingly it seems the game started with all levels featuring only a .d1, .d2, etc extension, seemingly to represent different versions of the same level. However, once the game reached the alpha stage for some some reason .dat was added as an extension too. Generally finished levels are saved as .dat, with older versions as .d1, etc, but this is not always the case.

The game does not store the level file it is looking for directly in the above format (i.e. as a string). Instead it uses a different format in e.g. the ALL000.MIS file to know what file to load, based simply on two numbers (map and level no).

e.g. 10 16

These can be converted back into the full filename with the following formula:

C<MapNo>L<LevelNo%15>.D<LevelNo/15>

so the above example would have the filename C010L001.D1.

If LevelNo/15 is zero, then the extension is just .DAT.

To convert the filename into the two number format used in the game files, the following can be used to find the levelNo:

LevelNo = Number from file extension * 15 + Level number from file name

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


(Source: Mefistotelis])

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. Experimentation shows that the only thing definitely saved in these files are the level's group names if defined. Everything else is saved in the map file, like the PlayStation version.

Version 9 onwards is used by files included with the final game, but this is still from an early pre-alpha version of the game and won't work with the final executable. The final game is only compatible with level files from version 15 onwards. Versions 9, 11, and 12 can be loaded but have totally different data structures so will either be horribly broken, or will outright crash the game.

Versions 9 - 12 have lot more (empty) fields for data, including an extra 48 bytes that oddly store parts of the NPC health and vehicle position data, despite other vehicle-only structures that are used as dedicated extra bytes for vehicles already existing at this point.

Version 17 differs from versions 15 and 16 in how it stores vehicle health.

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

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 following.
  • 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. It seems there are 32 entries, although most will be blank.
  • Group relationships - these are a corresponding block of 32 entries for the above, again each 40 bytes long. In fact there is a 33rd dummy entry at the start, then the entry for the player group, which is always just blank.
  • Small header (19 bytes) - this comes after groups and just consists of the value 1 and 18 zero bytes. If there are items, the item header is the immediate next value, otherwise it goes to game misc.
  • Items header (2 bytes) - lists how many item entries follow. Found 2619 bytes from the very first character of the first group name above. This is optional - if there are no items in the level it simply gets ommitted.
  • Items data - a list of all items found on the ground in the level. Each entry is 60 bytes long and uses the "SimpleThing" data structure.
  • Game Misc (4400 bytes) - this follows immediately after items (or the small header if no items in level) and is used to define any mounted guns in a level. Even if there are none it always starts with a 4 byte header that must be present.
  • Padding (116 bytes) - zero byte padding
  • Level camera start angle (4 bytes) - The final 4 bytes of any level file. This is always found 4516 bytes from the last item defined, or the end of the small header. The starting camera angle of the level is derived from this. In practice only the second byte needs altering, examples are 00 = starting camera angle, 40 = camera 90 degrees right from start, 80 = 180 degrees from start, C0 = 270 degress right, FF = back to start

The character data is as follows, based around the Thing structure, with extended sets of data depending on the Thing Subtype:

Thing Structure

The game names objects in it as "Things". Most notably, all vehicles and people are Things. Starting common structure for all Things:

Variable Offset (hex) Length hex) Notes
Parent 0x0 0x2 This seems to be used as a relationship between vehicles and their occupants - the parent listed here is the occupant of the vehicle
Next 0x2 0x2 Links to the vehicle this character starts in
LinkParent 0x4 0x2 All objects link to the next in a kind of daisy chain. It's not clear the effect of the order of this, or if it's arbitrary
LinkChild 0x6 0x2 As above, the same link in reverse
SubType 0x8 0x1 The Thing subtype - what kind of NPC, what kind of vehicle, see table below
Type 0x9 0x1 What is this Thing - 2 = Vehicle, 3 = Person
State 0xA 0x2 Various unknown purposes. Vehicles have these set, seemingly to define ground vehicle, flying vehicle, ship, tank, and mech. However, people rarely have different states set as well.
Flag 0xC 0x4 This seems to always be 67108868 for characters and 67108864 for vehicles. Not clear what it does. There is also the rarely seen state 67108870 for people, this is used for characters that start the level dead, used for corpses. The latter aso have State set to 13.
LinkSame 0x10 0x2 Daisy chains all same Thing Types together, so all characters and separate chain for all vehicles
LinkSameGroup 0x12 0x2 Daisy chain links together other things in same group
Radius 0x14 0x2 This seems to be the detection radius for the unit, for detecting enemy groups and responding as based on group allegiance
ThingOffset 0x16 0x2 Confusingly THIS seems to be a thing's effcetive unique identity in the file. This corresponds with what commands are set for a specific NPC in the commands list, for example
X 0x18 0x4 X position of thing on map
Y 0x1C 0x4 Y position of thing on map
Z 0x20 0x4 Z position of thing on map
Frame 0x24 0x2 In conjuction with StartFrame seems to determine the NPC graphics to use, all NPC types use the same value for their type. Not used for vehicles
StartFrame 0x26 0x2 This is how the 3D model for a vehicle is determined. NPCs also use this, but it's not clear if this value is as important for them, as the pre version 12 levels use slightly different values to later levels with no ill effect
Timer1 0x28 0x2 Unsure, usually the same as StartTimer1. Time to follow first command for?
StartTimer1 0x2A 0x2 As above, usually identical values to Timer1
VX 0x2C 0x4 This is position data for flying vehicles and people in flying vehicles. passengers/drivers of vehicles who start the level in them have their coordinates set here as well as regular X/Y/Z. Should be set to zero for the actual vehicles, as if not it causes weird glitches as vehicles are simultaneously forced to the location set here but also at the location actually travelled to, so are invisible and cannot be shot
VY 0x30 0x4 Ditto
VZ 0x34 0x4 Ditto
Speed 0x38 0x2 Speed of thing
Health 0x3A 0x2 Starting health of thing - can be lower than max health
Owner 0x3C 0x2 Seems to be used to set the target for protection/follow commands
PathOffset 0x3E 0x1 Unknown, doesn't seem to be used
SubState 0x3F 0x1 Unknown, doesn't seem to be used
PTarget 0x40 0x4 Unknown, doesn't seem to be used
Flag2 0x44 0x4 Used for a few special operations on a character, the most obvious one being to make some NPCs invisible if set to 16777216 (decimal)
GotoThingIndex 0x48 0x2 Unknown, doesn't seem to be used
OldTarget 0x4A 0x2 Unknown, doesn't seem to be used

TNGPerson Structure

Extended Thing structure just for characters (i.e. not vehicles), continues from above

Variable Offset (hex) Length hex) Notes
PathIndex 0x4C 0x2 Unknown, doesn't seem to be used
UniqueID 0x4E 0x2 The thing's unique id number. Unlike Thingoffset (which is the de facto unique id), this is oddly less important but still used.
Group 0x50 0x1 Group membership. Very important for determining relations between NPCs. Group 0 always indicates a player character. Vehicles often use group 0 as well, but groups don't seem to have any impact for vehicles
EffectiveGroup 0x51 0x1 The currently acting group membership. Not important in level files, used in-game to map what group a character is NOW, after e.g. persuasion or using a clone shield
ComHead 0x52 0x2 What command number the NPC starts the level doing
ComCur 0x54 0x2 Current command. Not used by the level file, only in-game
SpecialTimer 0x56 0x1 Unknown, doesn't seem to be used
Angle 0x57 0x1 The angled sprite to use on this character's start. This is 1-8 for the 8 compass directions
WeaponTurn 0x58 0x2 Unknown, doesn't seem to be used
Brightness 0x5A 0x1
ComRange 0x5B 0x1
BumpMode 0x5C 0x1
BumpCount 0x5D 0x1
Vehicle 0x5E 0x2 Seems to be unused
LinkPassenger 0x60 0x2
Within 0x62 0x2
LastDist 0x64 0x2
ComTimer 0x66 0x2
Timer2 0x68 0x2
StartTimer2 0x6A 0x2
AnimMode 0x6C 0x1
OldAnimMode 0x6D 0x1
OnFace 0x6E 0x2
UMod 0x70 0x2 Works like WeaponsCarried does, only for body mods.
Mood 0x72 0x2 This could be set in the pre-alpha demo editor, but seems to have been superceded for the final game by commands and group relations, and seems to be unused
FrameId 0x74 0x5 This selects alternate frames of animation for parts of an NPC's body. Only a few character types can use this, and it is overridden for player characters to always be default. Female Unguided: 0 = default, 1 = blonde hair, 2 = blue hair. Syndicate Agent: 0 = Default, 1 = Blond, 2 = Red with ponytail, 3 = Red no ponytail. Leather Jacket man 0 = Default, 1 = Red jacket. There are also some F unguided using 16777216, but this doesn't visibly do anything.
Shadows 0x79 0x4
RecoilTimer 0x7D 0x1
MaxHealth 0x7E 0x2 Maximum Health of character
Flag3 0x80 0x1 Unknown, doesn't seem to be used
OldSubType 0x81 0x1 Seems to always be 17 for NPCs (subtype 3) and 0 for vehicles (subtype 2)
ShieldEnergy 0x82 0x2 Starting shield enery for Thing
ShieldGlowTimer 0x84 0x1
WeaponDir 0x85 0x1
SpecialOwner 0x86 0x2
WorkPlace 0x88 0x2 Seems to be unused. Based on pre-release articles it seems this would be used for NPC routines, but in the final game these are all set via specific commands
LeisurePlace 0x8A 0x2 Seems to be unused. Based on pre-release articles it seems this would be used for NPC routines, but in the final game these are all set via specific commands
WeaponTimer 0x8C 0x2
Target2 0x8E 0x2
MaxShieldEnergy 0x90 0x2 Maximum shield energy of Thing
PersuadePower 0x92 0x2 Seems to be unused. Presumably this would allow special NPCs to grant greater persuasion power for the Persuadertron.
MaxEnergy 0x94 0x2 Maximum weapon energy of Thing
Energy 0x96 0x2 Starting weapon energy of Thing
RecoilDir 0x98 0x1
CurrentWeapon 0x99 0x1
GotoX 0x9A 0x2
GotoZ 0x9C 0x2
TempWeapon 0x9E 0x2
Stamina 0xA0 0x2 Starting stamina of Thing
MaxStamina 0xA2 0x2 Maximum stamina of Thing
WeaponsCarried 0xA4 0x4 Weapon inventory of character as explained above. Used for NPCs. Only used for player characters if level is loaded via /m command

A

Groups: 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).

TngUVehicle Structure

Extended Thing structure just for vehicles, continues from Thing. Note these have different starting offsets to characters, so can't be correctly represented in the same export

Variable Offset (hex) Length hex) Notes
PathIndex 0x4C 0x2
UniqueID 0x4E 0x2 The thing's uniqueid. Unlike Thingoffset, this doesn't seem very important
Group 0x50 0x1 Group membership. Very important for determining relations between NPCs
EffectiveGroup 0x51 0x1 Unclear - usually the same as the Group number, but sometimes different, especially for vehicles who are often set to group 99 here
Object 0x52 0x2
MatrixIndex 0x54 0x2
NumbObjects 0x56 0x1
Dummy2 0x57 0x1
WeaponTurn 0x58 0x2
ReqdSpeed 0x5A 0x2
MaxSpeed 0x5C 0x2
PassengerHead 0x5E 0x2
TNode 0x60 0x2
AngleDY 0x62 0x2
AngleX 0x64 0x2
AngleY 0x66 0x2
AngleZ 0x68 0x2
GotoX 0x6A 0x2
GotoY 0x6C 0x2
GotoZ 0x6E 0x2
VehicleAcceleration 0x70 0x2
LeisurePlace 0x72 0x2
TargetDX 0x74 0x2
TargetDY 0x76 0x2
TargetDZ 0x78 0x2
OnFace 0x7A 0x2
WorkPlace 0x7C 0x2
ComHead 0x7E 0x2
ComCur 0x80 0x2
Timer2 0x82 0x2
RecoilTimer 0x84 0x2
MaxHealth 0x86 0x2 Presumably vehicle max health, but not understood how it works. Version 17 files use the Armour attribute for vehicle health instead
Dummy 0x88 0xC
SubThing 0x94 0x2
Agok 0x96 0x2
WobbleZP 0x98 0x4
WobbleZV 0x9C 0x4
Armour 0xA0 0x1 This determines vehicle health for version 17 files only. Values typically vary from 1-9. Set to zero in pre V17 files.
PissedOffWithWaiting 0xA1 0x1
ZebraOldHealth 0xA2 0x2
destx 0xA4 0x2
destz 0xA6 0x2

Vehicle Data

The extra 36 Bytes of vehicle data that follows the Thing data only for vehicle entries. The official names are not known so below are based on observation. These are used to initially place a vehicle in a level to set its facing, and are ignored after that point (aside from the size fields). Default for size fields seems to be 0x0040, but some vehicles have higher/lower than this set.

Variable Offset (hex) Length hex) Notes
ObjectWidth 0x0 0x4
Objectskewleft 0x4 0x4
Objectskewright 0x8 0x4
ObjectRoll 0xC 0x4
ObjectHeight 0x10 0x4
ObjectPitch 0x14 0x4
ObjectSkew2 0x18 0x4
ObjectStretch 0x1C 0x4
ObjectLength 0x20 0x4

Thing Subtypes

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 Elite Zealot
13 Civ - Blonde Woman 1
14 Civ - Leather Jacket Man
15 Civ - Blonde Woman 2
40 Ground Car
50 Flying Vehicle
51 Tank
54 Ship
59 Mech

The 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). This is determined by the StartFrame as per the table below.

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. The same seems to be the case for gun emplacements.

It's also worth noting that Thing subtype 15 - Civilian Blonde Woman 2 does not actually seem to be used by any levels. In the debug strings she is called "fast blonde". Adding her into a mission she does not seem to behave any different from other civilians. She looks identical to subtype 13, the first blonde woman.

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 Shuttle
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 placed in the game by its specific Thing Subtype value. If it's called by the values here on StartFrame, only parts of its body will be rendered (the actual Moon mech 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 repeats the process going down the list to the next highest with the remainder. This continues until zero is hit or no weapons are left to add. Therefore if this is edited by hand to FFFFFFFF, that character will have all weapons in the game, including cut ones.

Group Relationships

Relationships between groups are stored in a series of 40 byte entries in group order, with a blank dummy entry first. The first real entry for the player is usually blank as well (as the player naturally responds how they wish to other groups), and then the 31 other groups follow. These are stored as 4 byte bitfields of 32 bits to represent each of the relationship types. There is then a series of 8 single bytes that each represent a single other group the group can be tasked with protecting.

Variable Offset (hex) Length hex) Notes
KillOnSight 0x0 0x4 Bitfield that represents which groups this group should kill on sight
KillIfWeaponOut 0x4 0x4 Bitfield that represents which groups this group should kill if they have their weapons drawn. Commonly used for the police against the player
KillIfArmed 0x8 0x4 Bitfield that represents which groups this group should kill if they have a weapon in their inventory at all
Truce 0xC 0x4 Bitfield that represents which groups this group should never attack. Commonly used to ally multiple groups of the same enemy type e.g. all zealots in a level
Guardian1 0x10 0x1 Integer representing the first of 8 possible groups that will protect this group. This needs testing to confirm exactly how it works, but it seems to be that if another groups engages the current group, the group set as a guardian here will actively become hostile to the attacking group as if they themselves had been attacked
Guardian2 0x11 0x1
Guardian3 0x12 0x1
Guardian4 0x13 0x1
Guardian5 0x14 0x1
Guardian6 0x15 0x1
Guardian7 0x16 0x1
Guardian8 0x17 0x1
Blank 0x18 0x10 Unused padding

Item Data Structure

Used for all collectible items starting on the floor in a level.

Variable Offset Size Notes
Parent 0x0 0x2
Next 0x2 0x2 Seems to link to ThingOffset of character Thing that is linked to do something with this item, e.g. units set to pick up a gun off the floor as a command
LinkParent 0x4 0x2
LinkChild 0x6 0x2
SubType 0x8 0x1 0 for weapons, 1 for Epidermises.
Type 0x9 0x1 Seems to always be 25 for items
State 0xA 0x2 If a weapon, uses same numbers as table here
Flag 0xC 0x4 Always seems to be 67108868
LinkSame 0x10 0x2
Object 0x12 0x2
Radius 0x14 0x2
ThingOffset 0x16 0x2 Unique number of item. Always negative for items it seems
X 0x18 0x4 X coordinate of item on map
Y 0x1C 0x4 Y coordinate of item on map
Z 0x20 0x4 Z coordinate of item on map
Frame 0x24 0x2 Used in conjunction with startframe for item floor icon. 3915 = high explosive, 3531 = briefcase,
StartFrame 0x26 0x2 Used for icon graphic type. 1003 = Mostly weapons, 1056 = epidermis,
Timer1 0x28 0x2
StartTimer1 0x2A 0x2
WeaponType 0x2C 0x2 If a weapon, uses same numbers as table here, but with base 1 (so all items bumped up one number). Weapon Type 31 is an Epidermis - type is set by Ammo field. 0 is Money briefcase, amount of cash is set by Ammo field
LastFired 0x2E 0x2
Ammo 0x30 0x2 Amount of money for money briefcases, type of epidermis if epidermis: 1 - Hard Skin, 2 - Flame Skin, 3 - Energy Skin, 4 - Stealth Skin
Owner 0x32 0x2
OnFace 0x34 0x2
field_38 0x38 0x4 Unknown

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, 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:

Mission 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. The fourth and fifth bytes of the file just before this text chunk is a two byte header that lists the length of the text block in bytes.

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, because the file 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 value is the first blank entry.

Mission Definitions

This is how the game knows what level/map files to load, and what the mission objective is. Each entry is 76 bytes long. Note that experimentation and analysis of the dissassembled source code shows there is a hard limit of 120 (from a base of 0) entries that can be defined here. The demo executable actually has a higher possible limit.

Data structure:

Name Offset Size Notes
TextName 0x0 0x4 Unknown, unused
TextId 0x4 0x2 Unknown, unused
StartHead 0x6 0x2 Unknown, unused
SpecialEffectID 0x8 0x2 Unknown, unused. This is visible in the pre-alpha level editor as a configurable field.
SuccessHead 0xA 0x2 The start number of the objectives that result in successful completion of this mission (see objectives data below).
FailHead 0xC 0x2 The start number of the objectives that result in failure of this mission.
SourceID 0xE 0x2 The campaign ID of this mission (not to be confused with the mission index, this is the unique ID used for campaign mission order)
SuccessID 0x10 0x2 Unknown, unused - presumably an early version of successmap/level. This is visible in the pre-alpha level editor as a configurable field.
FailID 0x12 0x2 Unknown, unused - presumably an early version of failmap/level. This is visible in the pre-alpha level editor as a configurable field.
SpecialTrigger 0x14 0x3 Used to unlock other missions when THIS mission is unlocked. Used for multiple choice stages of the game. Example: Beating EC mission 2 only unlocks one new mission (index 22). However, that mission then unlocks another mission (index 3) as well to give the player two choices. Up to 3 mission index numbers can be set. Multiple missions linked in this way appear as one combined choice/email tab, whereas ones unlocked via SuccessTrigger appear as discrete emails.
SuccessTrigger 0x17 0x3 Used to set which new missions are unlocked once this mission is complete (based on mission index). Up to 3 mission index numbers can be set.
FailTrigger 0x1A 0x3 Unknown, unused. This is visible in the pre-alpha level editor as a configurable field. Presumably this was for a failing branch through the game's levels.
BankTest 0x1D 0x1 Unknown, unused.
SpecialEffectFailID 0x1E 0x2 Unknown, unused.
SpecialEffectSuccessID 0x20 0x2 Unknown, unused.
StringIndex 0x22 0x2 This seems to be a leftover from an earlier way of storing where the text for a briefing is found. These roughly coincide with the starting line numbers of briefings in ALLTEXT.WAD, but quickly drift away. Source code shows SourceID is used in the final to look for the matching MISSXX.TXT file for that number instead.
StartMap 0x24 0x3 Unknown, unused.
StartLevel 0x27 0x3 Unknown, unused.
SuccessMap 0x2A 0x3 A deprecated way of recording the map number of the next mission on completion of the level. This isn't actually be used, and only 12 levels have entries here (which are usually NOT the actual next map/level number). The leftover data shows an early path through the game.
SuccessLevel 0x2D 0x3 See above.
FailMap 0x30 0x3 Unused but presumably the map number of the next mission on failure of this level. This would mean there could be branching campaigns with losing and winning routes.
FailLevel 0x33 0x3 Unused but presumably the level number of the next mission on failure of this level. This would mean there could be branching campaigns with losing and winning routes.
MapNo 0x36 0x1 The map number of this mission.
LevelNo 0x37 0x1 The level number of this mission.
BankTestFail 0x38 0x1 Unknown, unused.
Complete 0x39 0x1 Unknown, unused.
MissionCond 0x3A 0x5 This seems to be another way of listing which missions need to be completed to unlock this mission. Not clear if it is actually used at all.
ReLevelNo 0x3F 0x1 Retry/replay Level No. Some levels have two versions of the level present on disk. The reason for this is that it's not possible to skip cutscenes in Syndicate Wars as they use the actual game characters so must run to completion. Therefore a second version of the finished level was saved without the intro cutscene, and this value tells the game the one to load if the player retries the level with the R key
CashReward 0x40 0x2 How much money (if any) given for completion of the mission.
PANStart 0x42 0x1 A cut attribute, presumably for what items would be unlocked in the Public Access Network.
PANEnd 0x43 0x1 A cut attribute, presumably for what items would be unlocked in the Public Access Network.
WaitToFade 0x44 0x2 Used to set the number of game turns it takes to fade to black on end of the mission (if a fade is used).
field_46 0x46 0x5 Unknown, unused.
field_4B 0x4B 0x1 Unknown, unused.

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).

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. Note they are numbered from 0 onwards, but this implicit, not explicitly defined in the data below. Immediately before this (and immediately after the mission definitions) is a two byte header that lists the number of objectives defined below. In ALL000.MIS this is BB01 or 443 in decimal - and there are 443 mission objectives that follow.

Data structure:

Name Offset Size Notes
Next 0x0 0x2 The next objective that makes up the block of objectives for this mission. They are typically daisy-chained together, and then the Pri[ority] field is used to determine order and logic (i.e. X AND Y) of objectives
Map 0x2 0x1 The map number of the mission this objective is for. Note this is not enforced/checked, any mission can run any objective if it is pointed here by wrong Success/failhead values
Level 0x3 0x1 The level number of the mission this objective is for. Note this is not enforced/checked, any mission can run any objective if it is pointed here by wrong Success/failhead values
Status 0x4 0x2 Unknown/Unused
Type 0x6 0x2 Objective type, as per table below
Flags 0x8 0x2 Used to create "fake" objectives in missions and conceal actual objectives so as to surprise the player. A value of 1 means this objective will not be shown to the player (but can be completed). A value of 2 means an objective will be shown to the player, but cannot actually be completed. Together they are used to misdirect and create twists in a level. Examples: Mission 8 - The player is given multiple Protect objectives with Flag 2 to keep the scientists safe. The real objective is for Professor Drennon to reach the end point and get abducted (flag 1). Mission 9 - The player is given the objective to persuade Mirabelle Lucy De Saxo. This is a fake Flag 2 objective and can never be completed. The real objective with Flag 1 is for her to get to the end of the map and escape. If a flag 1 objective is the same priority as a flag 2 objective, the flag 2 objective will be "completed" (skipped really) by completing the flag 1 objective. If a flag 2 objective is a lower priority than a flag 1 objective, the flag 2 objective will be completed/skipped by completing the flag 1 objective.
Thing 0xA 0x2 The specific Thing (i.e. character) to run the objective against. This specifically means the ThingOffset value for the character in the level file. If the objective is group based, then this contains the group number instead
X 0xC 0x2 X coordinates for area based objectives (e.g. Go to)
Y 0xE 0x2 Y coordinates for area based objectives
Z 0x10 0x2 Z coordinates for area based objectives
Radius 0x12 0x2 Radius size for area based objectives
Pri 0x14 0x1 Priority of objectives. Lowest number (from 0) is first. If two or more objectives have the same number, this works as an AND for success objectives (e.g. Kill group X AND Group Y), and OR for failure objectives (e.g. mission fails if NPC Y dies OR NPC Z).
Arg2 0x15 0x1 This allows fine tuning of some objectives. For example, PERSUADE_MEM_G uses this to store how many members of the group need to be persuaded before the objective is completed. P_PERS_G uses it to store the Thing index number of the actual person in a group as in this case the main Thing value is used to store the target group
StringIndex 0x16 0x2 Unknown/Unused
UniqueID 0x18 0x2 This seems to refer to the UniqueID of the Thing in question. Unclear how important this is compared to ThingOffset, which is confirmed to be essential for objectives to work
ObjText 0x1A 0x1 The unique text string number for the 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)
field_1B 0x1B 0x4 Unknown/Unused
field_1F 0x1F 0x1 Unknown. This value seems to grow in size as the objectives continue down

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.

(Source: Mefistotelis])

Mission Objective Types

The mission objective types 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.

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.

As with level files, these files self-report their version number as the first byte. There only seem to be two formats, the final game version 2 (used by the final ALL000.MIS, ALL001.MIS, and the PlayStation CALL000.MIS) and the older version 1 (used by all other files).

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 definition, 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