TIE FIGHTER MISSION FILE FORMAT
================================
Version 1.0.0895
by Jaakko Keränen <jk@jaakkok.pp.fi>
Copyright (c) 1995 Jaakko Keränen.
All rights reserved.
--------------------------------
Overall format of the mission file:
+-----------+
| Beginning | Header and other stuff, like # flight groups
| | and # radio messages, briefing personnel and
| | radio messages sent when primary or secondary
| | goals completed/failed.
+-----------+
| IFF Codes | The IFF codes defined by the mission designer.
+-----------+
| Flight | The data for all of the flight groups. This
| Groups | will be # flight groups times 291 bytes long.
| | Starts always from offset 1CA.
+-----------+
| Radio | Immediately after the flight groups there are
| Messages | the radio messages. This will be # radio
| | messages times 89 bytes long.
+-----------+
| Global | The primary, secondary and bonus global goals
| Goals | of the mission.
+-----------+
| Briefing | The briefing data, including the briefing map
| | and the personnel. I haven't figured out how this
| | one works yet.
+-----------+
| End | The file ends immediately after the briefing data.
+-----------+
Mission file format:
This map is for B1M1FM.TIE (Battle 1, Mission 1). This format
applies onto the other missions also, but it needs a bit of
editing. All values are BYTEs, unless it says otherwise. Keep
in mind that all of the offsets are hexadecimal. The offsets
in parentheses are from the beginning of the current sector.
This kind of offsets will appear in the radio messages part of
the mission file.
Offset (hex) Description
-------------- ------------------------------------------------------
0 Two FFs. Some kind of header. It doesn't seem affect
anything.
2 # flight groups in this mission.
4 # radio messages in this mission.
A Briefing personnel.
0 None 2 Flight Officer
1 Both 3 Secret Order
MISSION COMPLETE/FAILED RADIO MESSAGES
18-55 [62 chars+NULL] Radio message sent when all primary
goals completed.
58-95 Other radio message sent when all primary goals completed.
98-D5 Radio message sent when all secondary goal completed.
D8-115 Other radio message sent when all secondary goals
completed.
118-155 Radio message sent when primary goals failed.
158-195 Other radio message sent when primary goals failed.
IFF CODE DEFINITIONS
19A-1A5 [11 chars+NULL] IFF 3: If the first char is 1, this IFF
code is hostile. If the whole name is NULLs, the IFF
is not active.
1A6-1B1 [11 chars+NULL] IFF 4.
1B2-1BD [11 chars+NULL] IFF 5.
1BE-1C9 [11 chars+NULL] IFF 6.
FIRST FLIGHT GROUP (ALWAYS AT OFFSET 1CA)
1CA [10 chars+NULL] (always the first FG offset) Name of
the first FG.
1D6-1DF [10 chars+NULL] Name of the pilot of this FG.
1E2-1EB [10 chars+NULL] Cargo of this FG.
1EE-1F7 [10 chars+NULL] Special cargo of the FG, carried by the
ship specified in 1FA.
1FA FG1: Special ship that carries special cargo. Value is
the ship's number-1 in this FG. When no special ship
is chosen, the value will the number of ships in
this FG. For instance, to set the ship 3 to carry
the special cargo in a FG of 5 ships, this value
will be 2. When no special ship is wanted, the value
will be 5 (or higher?).
1FB FG1: Set 1 when the special ship is random. If 0, the
special ship is defined by 1FA.
1FC FG1: Ship type. See the ship type table.
1FD FG1: # ships in this FG (range 1-9, maybe).
1FE FG1: Status of this FG.
0 Normal 5 Lasers Damaged
1 2x Missiles 6 Hyperdrive out
2 Half Missiles 7 Shields off/Recharging
3 Shields off/Damaged 8 Shields added
4 Shields half/Damaged
1FF FG1: Missile type of this FG.
0 None 4 Torpedoes
1 Heavy Bomb 5 Adv. Concussion
2 Heavy Rocket 6 Adv. Torpedoes
3 Concussion 7 Mag Pulse Torpedoes
200 FG1: Beam weapon type of this FG.
0 None 2 Jammer Beam
1 Tractor Beam 3 Decoy Beam
201 FG1: IFF code.
0 Rebel 3 IFF 4
1 Imperial 4 IFF 5
2 IFF 3 5 IFF 6
202 FG1: Artificial intelligence level of this FG.
0 Rookie 3 Ace
1 Officer 4 Top Ace
2 Veteran 5 Super Ace
203 FG1: Color of this FG.
0 Red 2 Blue
1 Gold 3 Black
204 FG1: Radio on/off. When set to 1, radio is on. This means
that this FG can take orders.
206 FG1: Formation of this FG.
0 Vic 11 High Vic
1 Finger Four 12 Rev High Vic
2 Line Astern 13 Close Parade
3 Line Abreast 14 Spread Stacked
4 Echelon Right 15 High S
5 Echelon Left 16 High ?
6 Double Astern 17 ?
7 Diamond 18 Cross
8 Stacked 19 Double Top
9 High X 20 Double Bottom
10 Vic Abreast
20A FG1: # waves. How many times the FG can be destroyed.
For example, if this is set to 5, after you have
destroyed this FG 5 times it won't reappear.
20C FG1: The number of the ship that player controls. This
value is only set != 0 in ONE FG.
213 FG1: The difficulty level that this FG appears in.
0 All 3 Hard
1 Easy 4 > Easy
2 Medium 5 < Hard
214 FG1: This FG's first start condition action.
0 Always 12 Mission Complete
1 Created 13 Win1 Success
2 Destroyed 14 Win1 Failed
3 Attacked 15 Win2 Success
4 Captured 16 Win2 Failed
5 Identified 17 Bonus Success
6 Boarded 18 Bonus Failed
7 Docked 19 Dropped off
8 Disabled 20 Reinforced
9 Survived 21 Capture Begun
10 None 22 Identified
11 --- 23 Out of Missiles
215 FG1: This FG's first start condition second part.
0 Unknown0 5 IFF Code
1 Flight Group 6 Unknown6
2 Ship Type 7 Global
3 Unknown3 8 Unknown8
4 Unknown4
216 FG1: This FG's first start condition third part. This
specifies the FG, the ship type, the IFF code,...
that the action is performed on.
218-21A FG1: This FG's second start condition. See 214-216.
21C FG1: Logical operator for the start conditions.
0 And
1 Or
21E FG1: Time waited after the start conditions are met. This
one controls the minutes.
21F FG1: Time waited after the start conditions are met. This
one controls the seconds, so it goes like this: time
waited is min:sec i.e. 21E:21F.
220-222 FG1: FG's departure condition. See 214-216 for details.
226 FG1: FG's stop action condition. When this condition is
met, the FG will stop the course of action and head
home.
0 None 3 Missiles depleted
1 Shields depleted 4 Hull 50%
2 Unknown 5 If attacked
22A FG1: If this FG is arriving in a mothership, this value
controls the FG this FG will arrive with. I.e. if
this FG should arrive with a platform A (that is in
the FG 5), this value would be set to 4. Remember
that almost in every situation the FG is expressed as
FG-1.
22B FG1: Is this FG arriving in a mothership or from
hyperspace. The mothership is defined in 22A-
0 Hyperspace
1 Mothership
22C FG1: If this FG is departuring to a mothership, this
value controls the FG this FG will departure to.
Again, the FG is FG-1.
22D FG1: Is this FG departuring to a mothership or to
hyperspace. The mothership is defined in 22C. For the
values, see 22B.
22E FG1: Alternate (arriving?) FG. Like 22A.
22F FG1: Alternate (arriving?) method. Like 22B.
230 FG1: Alternate (departuring?) FG. Like 22C.
231 FG1: Altername (departuring?) method. Like 22D.
232 FG1: Flight order 1. See the flight orders' format.
244 FG1: Flight order 2. See the flight orders' format.
256 FG1: Flight order 3. See the flight orders' format.
268 FG1: FG's primary win condition. This will be added to
the mission's primary gols list. These win conditions
have only to parts, so they differ a bit from the
other conditions. This byte controls the actual
action of the condition. For details, see 214.
269 FG1: FG's primary win condition's other part.
0 100% 3 All but 1
1 50% 4 Special
2 At least 1
An example: if you want a primary goal that says:
"50% of flight group Gamma must survive", set the
FG Gamma's win condition like this: 268 to 9 and
269 to 1.
26A-26B FG1: FG's secondary win condition. This will be added
to the mission's secondary goals list. For details,
see 268-269.
26C-26D FG1: FG's secret win condition. This is not visible in
the mission goals list. It's, well, secret. For
details, see 268-269.
26E-26F FG1: FG's bonus win condition. This will be added to the
mission's bonus goals list. For details, see 268-269.
270 FG1: Bonus awarded when the bonus condition is met. Can
be also negative. The value of this byte will be
multiplied by 50, so 0=0,1=50,2=100,FF=-50,FE=-100...
272-278 [unsigned ints] FG1: X coords of the arrival points 1-4.
27A-288 [unsigned ints] FG1: X coords of the waypoints 1-8.
28A [unsigned int] FG1: X coord of the rendezvous point.
28C [unsigned int] FG1: X coord of the departure point.
290-296 [unsigned ints] FG1: Y coords of the arrival points 1-4.
298-2A6 [unsigned ints] FG1: Y coords of the waypoints 1-8.
2A8 [unsigned int] FG1: Y coord of the rendezvous point.
2AA [unsigned int] FG1: Y coord of the departure point.
2AE-2B4 [unsigned ints] FG1: Z coords of the arrival points 1-4.
2B6-2C4 [unsigned ints] FG1: Z coords of the waypoints 1-8.
2C6 [unsigned int] FG1: Z coord of the rendezvous point.
2C8 [unsigned int] FG1: Z coord of the departure point.
2CC FG1: Is the first arrival point of this FG on.
0 Off
1 On
2CE FG1: Is the second arrival point of this FG on.
2D0 FG1: Is the third arrival point of this FG on.
2D2 FG1: Is the fourth arrival point of this FG on.
2D4 FG1: Is the 1st waypoint of this FG on.
2D6 FG1: Is the 2nd waypoint of this FG on.
2D8 FG1: Is the 3rd waypoint of this FG on.
2DA FG1: Is the 4th waypoint of this FG on.
2DC FG1: Is the 5th waypoint of this FG on.
2DE FG1: Is the 6th waypoint of this FG on.
2E0 FG1: Is the 7th waypoint of this FG on.
2E2 FG1: Is the 8th waypoint of this FG on.
2E4 FG1: Is the rendezvous point of this FG on.
2E6 FG1: Is the departure point of this FG on.
2E8 FG1: Is this FG visible in the briefing.
2EE Flight Group 2: The name of the second FG. This is like
the first FG, see 1CA.
Other flight groups...
MISSION RADIO MESSAGES
1AE2 Radio Message 1 (in this mission that offset is correct,
(0) in other missions the offset depends on the # FGs):
All radio messages are 62 characters + NULL long.
1B22-1B24 RM1: Condition 1 for this message. If condition 1 <logical
(40-42) operator> condition 2 is met, the message will be
sent. Like the all other 3 part conditions, for
details see 214-216.
1B25 RM1: Logical operator for the conditions.
(43) 0 And 6 Unknown6
1 Or 7 Unknown7
2 Unknown2 8 Unknown8
3 Unknown3 9 Unknown9
4 Unknown4 10 Unknwon10
5 Unknown5
1B26-1B28 RM1: Condition 2 for this message.
(44-46)
1B2A [14 chars+NULL] RM1: Short ID for the message. Not used
(48) in the game (?).
1B3A RM1: Delay. This is the amount of time waited when the
(58) conditions are met. When the wait is over, the message
will be sent. For example, if this offset has a value
of 4, then the delay will be 4 * 5 + 1 = 21 seconds.
I.e. the value of this offset will be multiplied by
5 and increased by 1. The minimum amount of time waited
is 6 seconds (1*5+1).
Other radio messages...
GLOBAL GOALS
1F74-1F77 Global goal 1 (Primary): A global goal consists of four
bytes. It's identical to the other conditions except
it has that fourth byte. The fourth byte can be one
of the following.
0 100% 5 All but one
1 75% 6 ---
2 50% 7 ---
3 25% 8 All but you
4 At least one 9 You
For example, to get a global goal "75% of all A-Wings
must be must be attacked", you set the bytes like
this: 03 02 02 01 (attacked, ship type, A/W, 75%).
If there is no global goal, the bytes are set like
this: 0A 00 00 00 0A 00 00 00 (the 0A means no action,
see 214). The logical operator is set to 01 (Or).
1F78-1F7A GG2 (Primary): The second primary global goal. This is
optional, i.e. you don't have to define this. If you
don't use this, set it like instructed above.
1F8D Logical operator for the primary global goals. This is only
needed when both primary global goals are defined.
0 And
1 Or
1F90-1F93 GG1 (Secondary): The first secondary global goal.
1F94-1F97 GG2 (Secondary): The second secondary global goal.
1FA9 Logical operator for the secondary global goals.
1FAC-1FAF GG1 (Bonus): The first bonus global goal.
1FB0-1FB3 GG2 (Bonus): The second bonus global goal.
1FC5 Logical operator for the bonus global goals.
:
:
: The briefing data is next. I am figuring out
: how the briefing works.
:
\;/
Flight orders' format:
At this moment, there are a lot of unknown values in the
flight orders. I'm trying my best to figure them out. The
offset is from the beginning of the flight order.
Offset (hex) Description
-------------- ------------------------------------------------------
0 The actual order of this FO (flight order).
0 Stationary: Flight group does nothing
1 Fly home: FG goes to hyperjump point or mothership
2 Fly loop: FG circles through waypoints
3 Fly loop & evade: Circle waypoints and evade ships
4 Rendezvous: Fly to waypoint and wait to be boarded
5 Awaiting boarding
6 Holding station
7 Attack target
8 Attack any escort FG in area
9 Respond to target FGs: Awaits orders from target FGs
10 Escort: Escort sub ships
11 Disable target FG
12 Board to give cargo
13 Board to take cargo
14 Board to exchange cargo
15 Board to capture ship
16 Board to destroy ship
17 Board to contact (talk)
18 Board to pick up passenger
19 Board to drop off passenger
20 Wait for further orders
21 [Starship] Fly loop
22 [Starship] Return: Wait for all Dships to return
23 [Starship] Create: Create (drop) all Daughterships
24 [Starship] Protect: Protects designated FGs
25 [Starship] Protect: Protects designated FGs
26 [Starship] Attact: Attacks designated FGs
27 [Starship] Disable: Disables designated FGs
28 [Starship] Wait: Holds steady and waits
29 [Starship] Fly home
30 [Starship] Wait: Holds steady and waits
31 [Starship] Board: Performs docking operation
32 [Starship] Board: Performs docking operation
33 [Starship] Hold station: Does nothing
34 [Starship] Hold steady: Does nothing
35 [Starship] Fly home: Hypes out
36 [Starship] Evade waypoint: FG evades waypoint
37 [Starship] Evade waypoint2
38 [Starship] Rendezvous: Flies to rendezvous point
39 [Starship] Disabled: Craft#1 disabled,others continue
1 Speed of the FG. 0 for 0%, 1 for 10%, 5 for 50%, A for
100% and so on. Values must be in range 0-A.
2 # repeats or time to wait divided by 5 (+actions).
This holds lots of information, other than just repeats.
For some orders, it holds the amount of repeats to
complete before going to the next set of orders. For
other actions, it holds a specific amount of time to
wait for something to happen, and even more, it can
hold the number of a waypoint to go to.
3 How many times this FG will try to complete the special
mission. If a ship tries to board another ship that
has not yet been disabled, it will fail a special
repeat.
4 Unknown value 1.1. Normally set to 0. I think these
unknown values have something to do with the global
setting in the subs, see C.
5 Unknown value 1.2. Normally set to 0.
6,8 Sub3. See C and D for details.
7,9 Sub4. See C and D for details.
A Unknown value 2.1. Normally set to 1.
B Unknown value 2.2. Normally set to 0.
C Sub1/First part of this sub.
0 None 5 IFF code
1 Flight group 6 Unknown6
2 Ship type 7 Global
3 Unknown3 8 Unknown8
4 Unknown4
D Sub1/Second part of this sub. This value is the FG-1,
the ship type, the IFF code,... of the sub.
E-F Sub2. See C and D for details.
10 Unknown value 3.1. Normally set to 1.
11 Unknown value 3.2. Normally set to 0.
Ship type table:
All of these ships aren't in the original TIE Fighter; they
appear in different expansions of the game. Ships that aren't
surely in the original TIE Fighter are marked with an asterisk
(*).
Most of the ships marked with an asterisk come with the
"Defender of the Empire" campaign disk.
Value Description Value Description
------ ----------------------- ------ -----------------------
0 X-Wing 43 *C-3 Passenger Liner
1 Y-Wing 44 Carrack Cruiser
2 A-Wing 45 Strike Cruiser
3 B-Wing 46 Escort Carrier
4 TIE Fighter 47 *Dreadnaught
5 TIE Interceptor 48 Calamari
6 TIE Bomber 49 Light Calamari
7 TIE Advanced 50 Interdictor
8 TIE Defender 51 Victory Class Star D
9 *TIE New1 52 Star Destroyer
10 *TIE New2 53 *Super Destroyer
11 *Missile Boat 54 Container E
12 *T-Wing 55 Container F
13 Z-95 Headhunter 56 Container G
14 *R-41 Starchaser 57 Container H
15 Assault Gunboat 58 Container I
16 Tyredian Shuttle 59 Platform Class A
17 Escort Shuttle 60 Platform Class B
18 Patrol Craft 61 Platform Class C
19 Scout Craft 62 Platform Class D
20 Transport 63 Platform Class E
21 Assault Transport 64 Platform Class F
22 Escort Transport 65 *Platform 7
23 Tug 66 *Platform 8
24 *Combat Utility Vehicle 67 *Platform 9
25 Container A 68 *X/7 Factory Station
26 Container B 69 Satellite 1
27 Container C 70 Satellite 2
28 Container D 71 *Sat3
29 Heavy Lifter 72 *Sat4
30 *Bulk Barge 73 *Sat5
31 Freighter 74 Mine Type A
32 Cargo Ferry 75 Mine Type B
33 Modular Conveyor 76 Mine Type C
34 Con Transport 77 *Mine4
35 *New Freighter 3 78 *Mine5
36 Muurian Transport 79 Probe Type A
37 Corellian Transport 80 Probe Type B
38 *Millenium 81 *Probe3
39 Corvette 82 Buoy1
40 Modified Corvette 83 Buoy2
41 Nebulon-B Frigate :
42 Modified Frigate 87 A planet (see planet types)
Planet Types:
A planet is a normal FG with the ship type of 87 (0x57).
The 'status of this FG' defines the planet type.
Value Description
------ --------------------------------------------------------------
0 Grey planet
1 Grey planet with a grey moon
2 Top-lit red-brown not-too-big planet
3 Large yellow-brown planet
4 Large brown half-lit planet
5 Large white-light green (almost cyan) planet
6 Half-lit cyanish grey planet with small moon of same color
7 White-blue (black center) with top-lit small moon
Response:
20 (Success), text/plain