💾 Archived View for skyjake.fi › gemlog › mission.txt captured on 2024-05-10 at 11:00:54.
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
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