Charles Gunst
Revision: 1 May 2002


Page Topic

1 Index, Introduction
2 Aircraft,the *.FLT files, Weapons
3 EAW structure, Hex Numbers
4 EAW resolution, New Aircraft, 2DCockpits
5 EAW points scoring
6 EAW artwork and hardpoints
7 Virtual cockpits, 3DZ files
8 3DZ files and converting PAW files
9 Ordnance 3D shapes, Ground objects
10 Ground objects
11 Ground objects
12 Hangar pix(*.MPC) & Text (*.STR) files
13 EAWscreens files
14 Format of the *.FLT files
15 Format of the *.FLT files
16 Altitude performance
17 Max. speed & guns
18 3 pages of *.FLT data
19 3 pages of *.FLT data
20 3 pages of *.FLT data
21 *.FLT: Gun muzzle vel. & rate of fire
22 *.FLT: Gun ranges
23 *.FLT: Gun dispersion
24 PLANES.DAT 1st 4 bytes
25 PLANES.DAT 1st 4 bytes
26 PLANES.DAT View Dist.
27 PLANES.DAT Speeds, fuel, weight
28 PLANES.DAT Damage
29 PLANES.DAT Damage
31 Ammunition counts
32 LOADOUT.DAT 1st Grp of Records
33 LOADOUT.DAT 1st Grp of Records
34 LOADOUT.DAT 1st Grp of Records
35 LOADOUT.DAT 2nd Grp of Records
36 Mission (MISNxx.DAT) files
37 WEAPONS.DAT 1st Grp of Records
38 WEAPONS.DAT 1st Grp of Records
39 WEAPONS.DAT 2nd Grp of Records
40 Squadrons in Campaigns
41 Squadrons in Campaigns
42 SQxx4x.DAT e.g. SQGR40.DAT
43 AirBase codes
44 CAMPxx4x.DAT
45 TARGETS in England
46 TARGETS in Europe
47 Targets
48 The EAW World
49 The EAW World
51 CAMPxx4x.DAT
53 Medals
54 Saved Mission (*.MSN) files
55 EAW Sounds
56 EAW.EXE editing

These notes are the result of a lot of detective work, trial and error, and guesswork, by me and a great number of other EAW fans. They have been collated by me since 1999, originally for my own use. They are a synthesis of everyone’s knowledge of EAW that has been shared to date, and are intended as a freely available reference work for anyone interested in editing EAW, the greatest WWII flight sim yet made.

If anyone else reading these notes wants to try their hand at editing EAW, give it a go and let me know. Cooperation is the key. But PLEASE back up anything before you do. And, as the saying goes, if you cannot add and subtract in hexadecimal, you shouldn’t be hex-editing.

There are 30 aircraft, 20 flyable and 10 non-flyable. The Aircraft Codes are as follows:

00 P-38H
01 P-38J
02 P-47C
03 P-47D
04 P-51B
05 P-51D
06 B-17F
07 B-24D
08 B-26B
09 Hurricane
0A Spit Ia
0B Spit IX
0C Spit 14
0D Typhoon
0E Tempest
0F Mosquito
10 Bf 109E
11 Bf 109G
12 Bf 109K
13 Bf 110C
14 Bf 110G
15 Me-410
16 Fw 190A
17 Fw 190D
18 Me 262
19 Ju-88A
1A Ju-88C
1B Ju-87
1C He-111
1D V1

The full names of the *.FLT files, which also relate to the *.3DZ files, are as follows:


There are 21 (15h) original types of weapons. The Weapons Codes are as follows:

00=No weapon
01=100lb bomb
09=45 gal droptank
0A=75 gal
0B=108 gal
0C=150 gal
0D=165 gal
0F=300 litre
10=M10 4.5" rocket
11=60lb rocket
12=HVAR 5" rocket
13=WGr21 mortar
14=R4M rocket
(15=Hs-293 rocket bomb)
(16=Fritz-X missile)
(17=Panzerschreck rocket)
(18=SD-10 frag. cannister)
(19=50 gal Napalm)
(1A=SD-2 bomblet)
(1B=20 lb Incendiary)
(1C=10 kg Incendiary)
(1E=Cannon pod)
(1F=Twin cannon pod)

(= new weapons added by me in “Enemy Coast Ahead” or ECA Control Panel)

EAW has its data in files in a series of library Compact Data Files (*.cdf). The constituent files can be extracted with Paulo Morais' CDF Extractor from EAW Online. An individual file in the EAW directory will be used by EAW in preference to the original in a CDF file. The CDF files are:

CDF File Size Contents
3d.cdf 4.66 Mb 3D shapes and cockpit views (*.3DZ), and textures (*.TPC)
cockpits.cdf 19.9 Mb Cockpit views of flyable aircraft (20x *.CPT)
data.cdf 1.36 Mb Aircraft and weapons data
flt.cdf 38.6 Kb Flight models (30 x *.FLT files)
fonts.cdf 1.01 Mb
grbrief.cdf 9 Mb
menu_eng.cdf 36.9 Mb
movies.cdf 284 Mb Movie files
music.cdf 1.38 Mb
pic.cdf 25.1 Mb Pictures, incl hangar pictures (*.MPC)
sound.cdf 1.14 Mb
sound16.cdf 2.38 Mb
speech1.cdf 9.94 Mb US speech *.SND files
speech2.cdf 11.3 Mb UK speech *.SND files
speech3.cdf 11.8 Mb German speech *.SND files
sprites.cdf 244 Kb
terrrain.cdf 7.57 Mb
text_eng.cdf 164 Kb Text string files (93x *.STR) for text within the sim
ukbrief.cdf 9.63 Mb
usbrief.cdf 11.4 Mb
wsound.cdf 8.87 Mb
wsprites.cdf 23.9 Mb

Most EAW files use the Intel low-byte/high-byte format for numbers i.e. 3E8 is stored as E803.
Some (e.g. the *.FLT files) use a combination of short, long and float format (byte = 1-byte integer, short= 2-byte integer, long=4-byte, float=4-byte).

Hex to Decimal numbers are:
1 - 9 A B C D E F
1 - 9 10 11 12 13 14 15

For hex-editing I use Hex Workshop from Breakpoint Software (, which has a Hex-Decimal calculator, a Data Viewer, and a Base Converter (Intel Hex-Decimal). The Windows calculator (Scientific mode) converts Hexadecimal-Binary etc

When hex editing text strings, the ASCII characters for German vowels with an umlaut are:
Lower case a 84 e 89 o 94 u 81
Upper case A 8e E O 99 U 9a

As of v1.1, EAW recognizes higher resolution settings in the EAW.INI file, specifically the "Width=" and "Height=" settings. Your video card needs to have enough frame buffer memory to support any new settings, otherwise you will get an error message when trying to fly a mission. If this happens, you can always restore the settings to the default 640x480. The settings are:
640 x 480
800 x 600
1024 x 768
1280 x 1024
The viewing area will not be the same as it is in 640x480, depending on the resolution setting. 800x600 mode will have slightly more viewing area, while 1024x768 mode will show slightly less. There is no loading progress screen (the fuel gauge screen), though the mission will still load as before. Static cockpits are not available--you are automatically switched to the virtual cockpit. Text (subtitles, HUD data) are proportionally smaller, so you may need to squint at the higher settings. The main benefit, of course, is a sharper resolution and better ability to see targets at further distances. It is an unsupported enhancement because not all video cards support it, and EAW really wasn't designed for those modes, but it is an interesting enhancement nevertheless.

A basic new flyable aircraft requires 3 things:
1. Hangar picture (*.MPC)
2. Out-of-cockpit view file (*.CPT) and 6x Virtual Cockpit view files (5x*.3DZ & 1x VCG_xxxx.DAT)
3. Assigning the aircraft to a squadron so it can be selected to fly, e.g. the Ju-87 Stuka to, say, EGr210 (in SQGR40.DAT)

This file contains 20 *.CPT files, of variable length but each approximately 1 Mb. These are the out-of-cockpit views for each flyable aircraft, used in 640x480 mode only. When creating a new flyable aircraft, take a suitable existing *.CPT file and re-name it (e.g. P191VIEW.CPT [Bf-110] is re-named P261VIEW.CPT for the Ju-88C). The 2D cockpits are not used at resolutions greater than 640x480.



HarryM compiled the following chart of the points scored for destruction of the various targets in EAW:



The *.3DZ files contain the definition of the geometry data for the planes and are linked to a texture file. They refer to files with PCX as the file extension, which do not exist. There is, however, a file of the same name (e.g. P109EV.TPC) with TPC as the file extension. Microprose’ utility PICPAC.EXE creates TPC files from PCX files, enabling new aircraft skins to be created. The *.3DZ files can be edited using Paulo’s utilities 3DZ2BMP.EXE and 3DZ_MAP.EXE, and Alessandro’s 3DZ Studio and Converter programs.

The size of the aircraft skin files in PCX form is 256 x 256 pixels.

The size of hangar pictures (see page 9) is 640 x 480 pixels.

The size of the map pictures is 1536 x 1280 pixels (or 1536 x 768?)

The size of the 2D cockpit files (*.CPT) is 1286 x 4869 pixels.

There is a wealth of learning on editing 3DZ files, and far too much to set out here, but the best works are by Paulo and Cord Hartmann, and are available on Cord’s site (

One particular problem which is worth recording here, because it relates to the ordnance loadouts, is the "ordnance displayed in the wrong place" problem with new or converted 3DZs. The problem is perhaps worst with the PAW F4F Wildcat files. Put these in the P47C or D slot in EAW, and go to the single mission arming screen. You will see the 200 gallon tank or a single bomb under the left wing, but nothing under the fuselage, and other similar mismatches.

The cause of this is as follows. Ordnance hardpoints are coded in the PxxxxF.3DZ file, as to their position in 3D space, plus they are given a code number. This code number is then used by the file LOADOUT.DAT to determine which hardpoint a given bomb (or rocket or tank) is displayed on.

In EAW the convention for code numbers in the 3DZ files is:
1. Inner left wing
2. Inner right wing
3. Centreline
4. Outer left wing
5. Outer right wing

In PAW the convention for code numbers in the 3DZ files was different:
1. Inner left wing (same as EAW)
2. Inner right wing (same as EAW)
3. Outer left wing
4. Outer right wing
5. Centreline

Not all aircraft 3DZ files have 5 hardpoints coded, though. The EAW P47C and P47D do, as does the PAW F4U Corsair. The PAW F4F has only 4 (numbered 1-4), with no centreline point. Thus, when the EAW file LOADOUT.DAT has a load for the fuselage (hardpoint 3), the PAW F4F 3DZ displays this under the left wing.

When converting or working on any PAW 3DZ file, it would be preferable if everyone kept to the EAW hardpoint convention set out above. This simply involves changing one byte in the 3DZ file (5 becomes 3, for example, for the centerline hardpoint). It would make ordnance-load displays a lot more accurate.

An associated problem is that the PAW hardpoint Z coordinates are generally too low, so that bombs etc appear to "hang in space" below the wing or fuselage, rather than being attached. This requires some adjustment to the hardpoint Z coordinate in the 3DZ file, not in LOADOUT.DAT.

3D.CDF has the various 3D files, including the Virtual Cockpit files. Five are needed, as follows:

Single engined aircraft
PxxxxU.3DZ Geometry and textures for the wings (single engine)
PxxxxV.3DZ Geometry and textures for the inner left part of the cockpit
PxxxxW.3DZ Geometry and textures for the inner right part of the cockpit
PxxxxX.3DZ Geometry and textures for the instrument panel
PxxxxY.3DZ Internal (from cockpit) view of propellor (stopped and rotating)(F1 and F8 views)
PxxxxZ.3DZ Geometry and textures for the gunsight
Twin engined aircraft
PxxxxV.3DZ Geometry and textures for the inner left part of the cockpit
PxxxxW.3DZ Geometry and textures for the inner right part of the cockpit
PxxxxX.3DZ Geometry and textures for the instrument panel
PxxxxY.3DZ Geometry and textures for the wings (twin engines)
PxxxxZ.3DZ Geometry and textures for the gunsight

xxxx is the code of the aircraft as per the *.FLT files.
The files VCG_xxxx.DAT (from DATA.CDF) are also needed. They contain the definition of the Virtual Cockpit gauges. Rename the files using the relevant code of the non-flyable aircraft.

The full list of 3DZ files Pxxxx?.3DZ (from Paulo) is as follows:

Non-flyable Quad engine
(BB17, B24A)
A Top Turret 25
B Ball Turret (Absent from B24A) 26
C Nose Art 27
E Left Wing Close Range 28
F Body
G Right Wing 29
H Shadow
L Left Wing Broken
M All Middle Range
N Right hand side only - Near Range
R Right Wing Broken
S All Long Range
T All Dot Range

Non flyable Twin engine
(B26A, MOSQ, H111, J88A, J88C, M410)
F Left Half Close Range
G Right Half
H Shadow
L Left Wing Broken
M All Middle Range
N Right hand side only - Near Range
R Right Wing Broken
S All Long Range
T All Dot RangE
Non-flyable Single engine
F All Close Range
H Shadow
L Left Wing Broken
M All Middle Range
R Right Wing Broken
S All Long Range
T All Dot Range
F All Close Range
H Shadow
M All Middle Range
S All Long Range
T All Dot Range

Flyable Twin engine
(P38H, P38J, 262A, 110C, 110G)

F Left Half Close Range
G Right Half
H Shadow
L Left Wing Broken
M All Middle Range
N Right hand side only - Near Range
R Right Wing Broken
S All Long Range
T All Dot Range
V Left Cockpit
W Right Cockpit
X Control Panel
Y Internal View of wings
Z Gunsight (Absent from 110C, 110G)
Includes Top of Pilot Chair for 262A

Flyable Single engine
(P47C, P47D, P51B, P51D, HURR, SP2A, SP09, SP14, TYPH, TEMP, 190A, 190D, 109E, 109G, 109K)
F All Close Range
H Shadow
L Left Wing Broken
M All Middle Range
P Propellor & Spinner static and dynamic views (include nose for P51B)
R Right Wing Broken
S All Long Range
T All Dot Range
U Internal View of wings
V Left Cockpit
W Right Cockpit
X Control Panel
Y Internal View of propellor static and dynamic
Z Gunsight (Absent from P51D, 190A, 190D, 109E)
Includes Top of Pilot Chair for P51B, SP2A, SP09, SP14

Converting 1942 Pacific Air War (PAW) files to EAW
The format in PAW is similar. In EAW the 3DZ files are the 3D shapes, and the TPC files are the aircraft skins. The reference in the EAW *.3DZ files is to a PCX file, which does not exist in EAW - it is the TPC file of the same name. (This is a coding hangover from PAW, which does use *.PCX files)

In PAW the skin file is *.PCX, but this is not a regular PCX file, but obviously a Microprose file, with the same format as the EAW *.TPC files. The EAW *.TPC files are 256x256 size, but the PAW *.PCX files are only 256x128 size Using the corresponding PAW skin file, and re-naming it, gives an error message about "File the wrong size". For EAW, the *.TPC files have to be drawn from scratch over the PAW 3D shapes. The PAW 3DZ files are easier to convert. Change the internal reference to PxxxxTEX.PCX and change the file name itself as follows:

PAW file name
xxx.3DZ Main external picture (left half for 2 or 4engined planes )
xxx_HALF.3DZ (Right side, for 2 or 4-engined planes)

3xxx.3DZ Medium distance picture
3xxx.3DZ (again) (Right side, 2 or 4-engined planes only)

23xxx.3Dz Long distance picture
123xxx.3DZ Dot picture

xxxxVRTL.3DZ Cockpit and view of wings
xxxxWNG0 Left wing
xxxxWNG1 Right wing

xxxx can be one of:

The following *.TPC files are found in 3D.CDF. They give the 3D shape of the various ordnance in EAW.

ORD00 100lb bomb US/UK
ORD01 250lb bomb US/UK
ORD02 500lb bomb US/UK
ORD03 Odd bomb shape untextured – not used
ORD04 1000lb bomb US/UK
ORD05 100kg bomb GR
ORD06 250kg bomb GR
ORD07 500kg bomb GR
ORD08 1000kg bomb GR - textured – not used
ORD09 M8 Triple bazooka tube support US
ORD10 60lb Quad rail support UK
ORD11 WGr21 twin tube support GR
ORD12 R4M rack GR
ORD13 twin MG151 gun pod GR – not used
ORD14 75gal drop tank US
ORD15 108gal drop tank US
ORD16 150gal drop tank US
ORD17 165gal drop tank US
ORD18 200gal drop tank US
ORD19 300litre drop tank GR
ORD20 Odd tank-untextured- not used (now Ju87 pod)
ORD21 M8 rocket US
ORD22 60lb rocket UK
ORD23 WGr21 rocket GR
ORD24 R4M rocket GR
ORD25 50kg bomb GR
ORD26 45gal drop tank UK
ORD27 single MG151 gun pod GR – not used
ORD28 WGr21 single tube support GR
ORD29 60lb single rail support UK
ORD30 60lb twin rail support UK
ORD31 HVAR rocket US
ORD32 triple HVAR rail support US
ORD33 5 HVAR rail support US

TPC Files
HarryM worked this out. The ground objects files in EAW are in 3D.CDF. The ground objects are skinned with TPC files, and come in two sizes, 256X256, and 128x128 pixels. The file naming convention is as follows: Grnd01.tpc for the high resolution file, and Grnd01s.tpc for the low resolution files. HarryM did all the work on this . The *.TPC files are numbered 01 through 12.

Grnd01: little white church, oil storage tank+damaged, oil plant, armaments plant
Grnd02: cntrl tower, barracks, briefing room, ammo bunker, radar station, hq, o-club, + damaged versions.
Grnd03: deciduous trees, german staff cars, german half tracks, + damaged versions.
Grnd04: german trains
Grnd05: hangars, fuel barrels, warehouses
Grnd06: rail yard, parachutes
Grnd07: pine trees
Grnd08: crash craters, destroyed fuel barrels, destroyed arms factory
Grnd09: shadows, trees (?), large single elm tree
Grnd10: farm, white mansion- undamaged only
Grnd11: city buildings
Grnd12: 3D forest

Ground object 3DZ files
In most cases there are 4 files per set:

D = damaged
H = main picture
L = long distance view
S = shadow
The texture reference is the particular TPC file (even though they say PCX, they mean TPC) that the main "H" shape refers to. The other files D, L, S may reference other TPCs, the shadow files always seem to point to Grnd09.tpc. In the interest of time I only catalogued the main file tex reference. There may be some stuff hiding, if you look at

TMod39_D.3dz, you're in for a surprise. To replace a set, simply rename the set to the ones you want to replace. For example, to replace Panthers with Shermans, extract the Sherman files (TMod56) and rename them to be Tmod55, drop into the EAW directory. You don't have to change any of the texture references inside the files.

3D file set Shape Tex reference

Tmod01_*.3dz factory grnd01.PCX
Tmod02_*.3dz factory grnd01.PCX
Tmod03_*.3dz refinery grnd01.PCX
Tmod04_*.3dz factory grnd01.PCX
Tmod05_*.3dz (not used)
Tmod06_*.3dz factory grnd01.PCX
Tmod07_*.3dz RR Station grnd06.PCX
Tmod08_*.3dz warehouse grnd08.PCX
Tmod09_*.3dz u-boat pen grnd04.PCX
Tmod10_*.3dz v-1 launcher grnd02.PCX
Tmod11_*.3dz Bridge grnd07.PCX
Tmod12_*.3dz Susp bridge end grnd07.PCX
Tmod13_*.3dz Susp bridge grnd07.PCX
Tmod14_*.3dz Bridge roadbed grnd07.PCX
Tmod15_*.3dz Short bridge grnd07.PCX
Tmod16_*.3dz Long bridge grnd07.PCX
Tmod17_*.3dz Heavy Flak grnd04.PCX
Tmod18_*.3dz Light Flak grnd04.PCX
Tmod19_*.3dz Oil tank grnd01.PCX
Tmod20_*.3dz Radar control grnd02.PCX
Tmod21_*.3dz Radar tower grnd04.PCX
Tmod22_*.3dz 3D Forest grnd12.PCX
Tmod23_*.3dz Fort grnd02.PCX
Tmod24_*.3dz Fuel Dump grnd02.PCX
Tmod25_*.3dz AC Tower grnd02.PCX
Tmod26_*.3dz Ammo bunker grnd02.PCX
Tmod27_*.3dz Hanger grnd05.PCX
Tmod28_*.3dz Barracks grnd02.PCX
Tmod29_*.3dz Mess hall grnd02.PCX
Tmod30_*.3dz Headquarters grnd02.PCX
Tmod31_*.3dz Briefing Rm grnd02.PCX
Tmod32_*.3dz Tree grnd09.PCX
Tmod33_*.3dz Trees grnd09.PCX
Tmod34_*.3dz Tree grnd09.PCX
Tmod35_*.3dz Trees grnd09.PCX
Tmod36_*.3dz Tree grnd03.PCX
Tmod37_*.3dz Trees grnd03.PCX
Tmod38_*.3dz Tree grnd07.PCX
Tmod39_*.3dz Trees grnd07.PCX
Tmod40_*.3dz 3D Forest grnd12.PCX
Tmod41_*.3dz warehouse grnd05.PCX
Tmod42_*.3dz 3D Forest grnd12.PCX
Tmod43_*.3dz Locomotive grnd04.PCX
Tmod44_*.3dz RR Tender grnd04.PCX
Tmod45_*.3dz Box car grnd04.PCX
Tmod46_*.3dz Tanker car grnd04.PCX
Tmod47_*.3dz Flat car grnd04.PCX
Tmod48_*.3dz Car w/Panthers grnd04.PCX
Tmod49_*.3dz Flak car grnd04.PCX
Tmod50_*.3dz Fuel truck grnd03.PCX
Tmod51_*.3dz Open truck grnd03.PCX

Tmod52_*.3dz Truck grnd03.PCX
Tmod53_*.3dz Halftrack grnd03.PCX
Tmod54_*.3dz Kubelwagen grnd03.PCX
Tmod55_*.3dz Panther grnd04.PCX
Tmod56_*.3dz Sherman grnd03.PCX
Tmod57_*.3dz Transport ship grnd05.PCX
Tmod58_*.3dz Small church grnd01.PCX
Tmod59_*.3dz City bldgs grnd11.PCX
Tmod60_*.3dz City bldgs grnd11.PCX
Tmod61_*.3dz City bldgs grnd11.PCX
Tmod62_*.3dz City bldgs grnd11.PCX
Tmod63_*.3dz Cathedral grnd10.PCX
Tmod64_*.3dz Farm grnd10.PCX
Tmod65_*.3dz Manor house grnd10.PCX
Tmod66_*.3dz Large chateau grnd10.PCX
Tmod67_*.3dz Windmill grnd10.PCX
Tmod68_*.3dz Chateau grnd10.PCX
Tmod69_*.3dz Parachuter grnd06.PCX
Tmod70_*.3dz (not used)
Tmod71_*.3dz (not used)
Tmod72_*.3dz Destroyer grnd04.PCX

This file contains 20 *.MPC files, of variable length but each approximately 200 Kb. These are the hangar views for each flyable aircraft. When creating a new flyable aircraft, take an existing *.MPC file and re-name it (e.g. HNGR20.MPC [Bf-110G] is re-named HNGR26.MPC for the Ju-88C).

HNGR09.MPC Hurricane
HNGR10.MPC Spitfire I
HNGR11.MPC Spitfire IX
HNGR12.MPC Spitfire 14
HNGR13.MPC Typhoon
HNGR14.MPC Tempest
*HNGR15.MPC Mosquito
HNGR16.MPC Bf-109E
HNGR17.MPC Bf-109G
HNGR18.MPC Bf-109K
HNGR19.MPC Bf-110C
HNGR20.MPC Bf-110G
*HNGR21.MPC Me-410
HNGR22.MPC Fw-190A
HNGR23.MPC Fw-190D
HNGR24.MPC Me-262
*HNGR25.MPC Ju-88A
*HNGR26.MPC Ju-88C
*HNGR27.MPC Ju-87
*HNGR28.MPC He-111

  • Not present, but needed if new flyable aircraft introduced.

Text strings are found in the *.STR files, in TEXT_ENG.CDF. They are the simplest files to edit.
STR files include pilot names (AMRLNAME.STR etc), squadron names (SQNAMEGR.STR etc) and so on. STR files have a common format, as follows:

pppp Pointer to end of file (EOF = Pointer + 8)
nn00 Number of text strings
Then the pointers to each string:
p100 Pointer to 1st text string (add 8 to find string)
p200 Pointer to 2nd text string (add 8 to find string)...etc...
Then the text strings themselves, each separated by 00.

To change a text string, type the new string over an existing one, replacing any unrequired letters with 00. Alternatively, if a longer word is needed, add bytes to the file, and then adjust the pointers (including the EOF pointer). Paulo's utilities DUMPSTR.EXE and BUILDSTR.EXE now automate this task.

Text string files which I have amended include:
GERLNAME.STR } Last names for squadron pilots (the first names are in BRTFNAME.STR etc)
PNAMES.STR Plane names displayed in flight
SQDESCUK.STR } Narrative history of squadrons displayed when choosing squadron
SQNAMEUK.STR } Names of squadrons displayed when choosing squadron
RADIOTXT.STR Text of in-flight messages (incl gun desc. eg "20mm Cannon")
TARNAMES.STR List of names of places. At byte 0a43 after ZWICKAU is a list of airbases
TARTYPES.STR Generic target type names e.g. "Barracks", "Airfield" etc

Stephen O’Leary (Pilot Officer Prune) put the following notes on editing EAW screens together (the full document can be obtained from Prune at

General principles
Almost all the screens are edited using the same basic method, which may be outlined as follows:

1. Start EAW and go to the screen you want to work on.
2. Take a screen shot using the key specified in your eaw.ini file.
3. Close EAW.
4. The screen shot appears as scrn####.bmp in your EAW folder.
5. Open the screenshot in a good graphics editor (I prefer Paint Shop Pro 7 [PSP]) and save it in your working folder under a more meaningful name.
6. In PSP, save the screen palette using Colors|Save Palette.
7. Increase the colour depth to 16 million colours using Colors|Increase depth.
8. Save the work as a .psp file, which preserves layers etc.
9. Work on the screen. As far as possible, get your colours using the eyedropper rather than the colour palette, because this reduces the chances of getting strange colours later. Alternatively keep a 256-colour copy open and use its palette to select colours for the 16-million version.
10. When finished editing, save the .psp file in case of further editing. Then convert back to 256 colours using Colors|Decrease depth.
11. Apply the saved palette.
12. Save the result as a .pcx file.
13. It is a good idea at this stage to test for the presence of colour index 0, which can cause display problems. Open the palette using Colors |Edit palette, ensure it is set to “palette order” using the pull-down menu, and find colour 0 (top left-hand corner). Double-click this colour and choose a distinctive substitute (bright green works well). Click on OK until the dialog box closes. Examine your work. If there are any areas of colour 0, substitute another similar colour to avoid problems. Save the result.
14. Convert the screen using PicPac, and test it in EAW.

Prune’s full notes also have specialized notes on Squadron selection screens, Mission Parameters screen, Career Nationality screen, Editing the sprites, Briefing screens, and The map. I include only the notes on the ones I have done, namely Aircraft selection screens.

Aircraft selection screens
Screen name: Picpln*.pic (* = a/b/g)
Text: Picpln*.mnu (* = a/b/g)

To edit the screens:
1. Take a screenshot of the screen you want to use as a basis.
2. Save its palette. Each nationality’s screen seems to have its own.
3. Edit as usual.
4. Use PicPac to convert the .pcx file into picpln*.pic. Test it.
5. It is likely that there will be areas of false colour. This happens where the .pcx file used black (0,0,0), but it also affects some other dark colours. If this happens, follow the remaining steps below.
6. Take a screenshot of the new version.
7. DO NOT convert it to 24-bit. Work only in 256 colours from now on.
8. Using only colours which have not been affected, replace the false colours with similar shades. Colour replace, paintbrush, flood fill and others are all useful for this.
9. When it looks OK, save it as a .pcx file, run it through PicPac and test it again
Jeff D provided this information (short=2 byte integer, long=4 byte, float=4 byte, all C style). These figures are still very provisional:

Byte # (h)
Engine data Example
00 short number_of_engines i.e. 1st two bytes
02 short engine_type
00=PROP, 01=JET, 02=ROCKET
04 float engine_altitude Engine best at this altitude (e.g. P38H=22k feet, P38J=25k feet)
08 float Lower Altitude Section of Engine Performance. It represents Engine Power (HP)
Loss Rate from Best Altitude down to Sea Level. The more you set a negative value, the more your engine will loss HP from Best Altitude to sea level. It seems progressive meter by meter flying down and down. It ranges from 0.00 (P38H, Hurri, Spit I and V1) to 0.02 (Bf109K) and 0.09 (Tempest). Also reduces time to lift-off
0c float Upper Altitude Section of Engine Performance. The more you set a negative value, the more your engine will lose HP from Best Altitude up to Ceiling. Ranges from 0.00(V1) to 0.0001 (Me262), –0.039 (Hurri) to
–0.041 (Spit I), –0.101(P38H), –0.106 (Bf109K) and –0.1121 (Tempest)
10 float number_of_blades? 3 blades=0.006, 4= 0.007, 5=0.009, Jets=0
14 float min_throttle Engine torque multiplier (64 for all except jets, which are 25.6)

Flight control data
18 (3 floats: max, min, rate) Throttle (P38H= 256, 0, 128)
24 (3 floats: max, min, rate) elevator (P38H= 128, -108, 256)
30 (3 floats: max, min, rate) flaps (P38H= 3, 0, 0.7)
3c (3 floats: max, min, rate) ailerons (P38H= 128, -128, 426)
48 (3 floats: max, min, rate) rudder (P38H= 128, -128, 275)

54 float max_altitude (P38H= 40,000 feet) Above this power goes to zero
58 float max_velocity Approx 1.5 x real max speed, see full notes below
5c float max_AOA (B17 0.24, 110G 0.27, P47D 0.28, 109E 0.29, P38 0.30, Spit I, 190A & P51D 0.31)
60 float critical_mach (P38, Hurri 0.65, B17&110G 0.7, Spit I, P47 0.75, P51D 0.8)
64 float max_g Usually 9
68 float min_g All= -3.0, except Hurr and Spit 1=0; max neg. g. for engine
6c float unknown Rotational Inertia (related to size) (Bf109E 7.1, P47 9.09, P38 10.5, Bf110 11.1 etc)
70 float mass_empty Multiply by 32.2 factor for combat weight in lbs
74 float mass_fuel
78 float unknown
7c float unknown
80 float unknown
84 float torque1?
88 float torque2
8c float torque3

Bunch of coefficients for the flight equations : see detailed analysis below
90 (5 floats) drag stability
a4 (8 floats) sideforce stability
c4 (6 floats) lift stability
dc (9 floats) roll stability derivatives
100 (6 floats) pitch stablility derivatives
118 (9 floats) yaw stability derivatives

The following section TIMES FIVE--lookup table data
13c long size Always 0a00=10 (5 Data curves. Each block is 0a00 0000, then 13 floats)
float delta_x 10=number of data points, at end of block. First 3 values may be data spacing and range of values
float inv_delta_x
float zero_x

float Table[10]

The following section TIMES SIX--weapon data : see below (p. 15) for more detail
254 (3 floats) position x,y,z Gun flash position x, y & z co-ords
float secondary_position_x
float secondary_position_y
float muzzle_velocity 80% of real values
float rate_of_fire 1 second burst of fire for this weapon
float dispersion Very Important: reduces or increases effect of guns
float eject_position_1

float eject_position_2
short yaw
short duration of tracer or range

Landing gear data
35c float height
360 float pitch (P38=0.063, B17=0.118, 110G=0.18, P51=0.19, 109E=0.24)
364 (3 floats: max, min, rate) gear_control
This part times THREE (one for each gear)
float n
(3 floats) position x, y, z
This part times SEVEN
(3 floats) damage position x, y, z
This part times TWO
(3 floats) wing position x, y, z
40c This part times FOUR
(3 floats) engine position x, y, z 4 Smoke positions
(at bytes 40c, 418, 424 and 430 – the 1st two are the jet exhaust points)
Hit boxes/spheres
This part times EIGHT Coordinates (x, y, z) and radius of hit boxes
(3 floats) hit locations x, y, z , plus float Radius

The known offsets here are:
1) 43c Single engined planes: engine (including oil & fuel lines). Multi engined planes: no effect
2) 44c Pilot
3) 45c Collision area: gun fire doesn't damage it. When disabled one can ram other planes without any damage. When enabled: collision can cause any damage independently of other hit boxes (e.g. even with pilot hit box disabled ramming a plane can kill the pilot)
4) 46c Tail section (incl. rudder and elevators)
5) 47c Right wing incl. hydraulics (four engined planes: inner right engine and wing)
6) 48c Right wing incl. aileron (four engined planes: outer right engine and wing)
7) 49c Left wing incl. hydraulics (four engined planes: inner left engine and wing)
8) 4ac Left wing incl. aileron (four engined planes: outer left engine and wing)
4bc long unknown
long radius_z
float engine_hit_points
These are quite similar to the damage table in PLANES.DAT. N.B. Byte 4a0 is the Microprose right wing error (inability to damage the left wing - the Y-coordinate is wrongly made the same as the right wing)

//This part times FIVE
4c8 (3 floats) position_of_weapons launch x, y and z coordinates of Weapons launch stations

One of the most important sets of numbers in the *.FLT files is the Best Altitude / Lower Altitude Section / Upper Altitude Section numbers at bytes 04, 08 and 0c. Daniele Pasqualini discovered this. Byte 04 is “Engine best at this altitude” (e.g. P38H=22k feet, P38J=25k feet). Byte is the Lower Altitude Section of Engine Performance. It represents Engine Power (HP) Loss Rate from Best Altitude down to Sea Level. The more you set a negative value, the more your engine will lose power from Best Altitude to sea level. It seems progressive metre by metre flying down and down. Byte 0c is the Upper Altitude Section of Engine Performance. The more you set a negative value, the more your engine will lose power from Best Altitude up to Ceiling. Positive values can be set, with sometimes unpredictable results. Rotational Inertia seems to be linked to overall aircraft size, and seems to be a measure of how quickly an aircraft can turn. A full analysis is as follows:



Note (for example) that the Me262 is virtually the same at all altitudes. The B17, B24 and V1 are exactly the same at all altitudes. The Spit I and Hurri have good low altitude performance, but (with a gravity feed carburettor) are poor at altitude. The Bf109E should (perhaps) be better at altitude – more like –0.03 than –0.047. And query why the Bf110C has engines that fade more at altitude than the Bf109E – they both had the same Daimler-Benz engine.

Use Jeroen's EAW AircraftEdit to change the FLT files, if not hex-editing manually.
Paulo has noted the following:
Byte 98 Drag Flaps. Change from approx –0.1 to –1 to simulate dive brakes when flaps fully extended
Byte 9c Drag Positive drag. Nearly linear to rated power. Increasing this increases acceleration.
Byte c8 Lift (also e0 and 104 h) Wing area. Increasing the absolute value (e.g. -600 to -700) increases lift.
Bytes f0&f4 Roll related to engines (1, 2 or 4 engines)
Bytes 12c&130 Yaw related to engines (2 or 4 engines the same)

Sideforce (ac, b0 and b4 h) are engine dependent.
Lift, Roll and Pitch Sections (c8, e0 and 104 h) seem to be proportional to wingspan/wing area.
In general a more negative values results in a more negative stability. So if you were to change the roll stability and increase that value your aircraft will be rock steady when rolling but it will take some time to complete the roll. The values in the first few rows always have more effect than the values in the lower rows of the sections, as they are zero most of the time.
Sometimes a value sets the movement rate and a row below that will that movement stable (e.g. Roll dc and e0 h).

The figure at byte # 58 regulates maximum speed The number is not the exact speed in MPH or in KPH, but feet per second. (1 mile

5280 ft / 3600 secs per hour

1.467). The correlation is nearly linear. The equation is approximately:
EAW number = Real airspeed in mph x 1.467
Real Airspeed = EAW number x 0.682
The figures are as follows (Dec=decimal value of Float variable, MPH=Maximum speed in m.p.h.(according to Microprose figures in EAW "View Objects"):


Paulo says that the EAW flight model is complex. There are 5 extremely important curves that establish the relationship between current Mach number with overall drag and lift, and aileron, rudder and elevator effectiveness for the complex flight model. The simplified flight model common to novice settings and AI, use fixed values to replace those curves. The only purpose of the maximum speed parameter is to block any further acceleration resulting from available excess power for a certain flight condition. It was probably meant to limit AI flight model behaviour but it is also enforced on the complex flight model. The two power parameters represent the slope and variation of slope above critical altitude of power with altitude. The base power is given in the drag section (the larger numerical value of the group).










Paulo Morais decoded the FLT data related to aircraft guns. The file format for guns starts at byte #254 h (596 d), and is follows:
6 groups of 2c (44 d) bytes (one for each possible gun group) made up of the following 12 blocks:

1. 4 bytes (FLOAT) Gun flash x coordinate for first pair of guns in group
2. 4 bytes (FLOAT) Gun flash y coordinate for first pair of guns in group
3. 4 bytes (FLOAT) Gun flash z coordinate all the guns in group
4. 4 bytes (FLOAT) Gun flash x coordinate for second pair of guns in group
5. 4 bytes (FLOAT) Gun flash y coordinate for second pair of guns in group
6. 4 bytes (FLOAT) Muzzle Velocity (MV) }
7. 4 bytes (FLOAT) Rate of Fire (ROF) } (see detailed analysis below)
8. 4 bytes (FLOAT) Dispersion }
9. 4 bytes (FLOAT) x offset from flash for empty shells for first pair (0 = no shells)
10. 4 bytes (FLOAT) x offset from flash for empty shells for second pair (0 = no shells)
11. 2 bytes (WORD) Yaw
12. 2 bytes (WORD) Tracer duration or range
Note: x is the longitudinal axis of aircraft, y is the wing axis and z the vertical. The positive sense of the axis is not the same for all aircraft. Paulo Morais' file ALL_FLT.TXT contains a full dump for version 1.1 of EAW.

EAW only provides for 4 types of guns (light MG, heavy MG, 20mm cannon and 30mm heavy cannon), but allows for different types of each to be carried by different aircraft. EAW also has a number of errors in weapons characteristics (the figures are generally too low, both as to muzzle velocity and rate of fire). Low muzzle velocities make for exaggerated trajectories (i.e. rounds falling away too early). The rates of fire too high exhausts ammunition loads too soon). The data is as follows:




For conversion: 1 metre=3.28 feet
Bomber hand-aimed guns (e.g. Ju88A, B17 waist) are HALF the usual ROF.

The positions of the Muzzle velocity (MV) and Rate of Fire (ROF) figures in the FLT files are:
1st Gun Group Byte # 268
2nd Gun Group Byte # 294
3rd Gun Group Byte # 2c0
4th Gun Group Byte # 2ec
5th Gun Group Byte # 318
6th Gun Group Byte # 344

Changing the figures as set out above makes most fighter gun fire more lethal, because more rounds are fired per second. In dogfights, the "on target" ability of all guns is enhanced (because of the increased muzzle velocity), so less deflection is necessary. As of "Enemy Coast Ahead" Version 1.2 the muzzle velocities and rates of fire of all fighter aircraft now correspond with the actual data. Different weapons of the same calibre (e.g. the 20mm MG FF and MG 151) now have quite different firing abilities. Daniel Haeni did most of the research for this.


This is an important figure. Dispersion is the maximum radius of bullet dispersion at some distant point, presumably linked to a random number. There are larger values for wing mounted guns, smaller ones for nose mounted (there are some real anomolies here, like the large figures for the nose mounted guns for the Bf109E, and the Spit IX MGs). To check this Paulo reduced this values to near zero in the 4x20mm equipped Hurricane IIc. The result was a systematic 12+ He111 or 10+ Ju88 bombers downed from distances higher than 600ft firing very sort bursts. Applying the reverse treatment, big values, result in having to close to 100ft to be able to down a single bomber.

The positions of the Dispersion figures in the FLT files are:

1st Gun Group Byte # 270
2nd Gun Group Byte # 29c
3rd Gun Group Byte # 2c8
4th Gun Group Byte # 2f4
5th Gun Group Byte # 320
6th Gun Group Byte # 34c



This crucial file is 6484 h bytes long. It controls the guns, ammo and other things on an aircraft. File format is:
1e00 0000 1e (30 d) aircraft

Then 30 x sub-files, each d8 bytes in length. The sub-file format is:
0x00 0000 Aircraft code e.g. 0100=P38J, 1400=Bf-110G etc

then 50 h bytes... See below

The 1st 4 Bytes in PLANES.DAT




First Byte
FIGHTER 00 00 00 01
BOMBER 00 00 00 02
FLYABLE 00 00 00 04
JET 00 00 00 08

TWIN_ENG 00 00 00 10
QUAD_ENG 00 00 00 20
V1 00 00 00 40
GERMAN 00 00 00 80

Second Byte
BRITISH 00 00 01 00
AMERICAN 00 00 02 00
INLINE ENG. 00 00 04 00 All but P47, B17,24&26, Mosq, 190, 262, V1

GEAR_BACK 00 00 10 00 P38, 110
PI_GEAR_IN 00 00 20 00 P47, P51, Hurri, Typh, Temp, 190, 262,
GEAR_OUT 00 00 40 00 109
GEAR_CENTER (Nose) 00 00 80 00 P38

Third Byte
CR_PROPS 00 01 00 00 Only P38
CCW_PROPS 00 02 00 00 Only Spitfire 14
GRAV_FED_CARB 00 04 00 00 Spitfire 1, Spitfire IX and Hurricane

DIVE_BOMBER 00 10 00 00 Only Ju87
ATTACK_PLANE 00 20 00 00 P38&47, B17,24&26, Ju87&88, add H111, Temp, Typh, 110, 410, 190A
ANGLE_FIGHTER 00 40 00 00 P38, Spits, Hurri, Typh, 109E,
ENERGY_FIGHTER 00 80 00 00 P47, P51, 109G&K, 110, 410, 190D, 262,

Fourth Byte.
DEFENSIVE_GUN 01 00 00 00 1 or more defensive guns
MULTI_CREWED 02 00 00 00 3 or more crew
COMBAT_FLAPS 04 00 00 00 P38H and J, and P51B and D
AUTOMATIC_SLATS 08 00 00 00 Nil. But now the Bf109E, G &K, Bf110C & G and Me262

ARMOR 10 00 00 00 P47 C and D, Typh, Temp, Mosq, Ju88 A and C, He111
HEAVY_ARMOR 20 00 00 00 B17, B24 and B26

Thus, e.g. the P38H is 15 96 61 04

The next four bytes in PLANES.DAT are as follows:
Bytes # 5-6 Year of entry in service
Bytes # 7-8 0n 00 (Crew No.) where 01=Ftr and V1 02=Mosq, Bf-110 C&G, Me-410, Ju-87
04=Ju-88 A&C 05=He-111 07=B26 08=B-24 0A=B-17

Then a series of 15 x 4 byte blocks (long integer). The data for each aircraft in the first 8 of these 15 x 4 byte (long integer) is set out on the following page:

1. Stall speed
2. Cruise Speed
3. Corner Speed
4. Max Speed
5. Empty weight in lbs (displayed at the loadout screen)
6. Fuel burn rate (16.16 x number) . Max188 doubled all of these figures for his LowFuel Modification
7. Weight of internal fuel (displayed at the loadout screen)
8. Maximum range

Then the viewing distances for the various 3DZ models (where 21 units = 1 foot)
9. Viewing Distance Close (uses the F.3DZ model)
10. Viewing Distance Medium (uses the M.3DZ model)
11. Viewing Distance Far (uses the flat-texture S.3DZ model)
12. Viewing Distance Line (uses the line-only T.3DZ model)
13. Viewing Distance Max (uses dot only)
14. Default distance to view object externally
15. Radius


Most modern PCs are far above the original specs for EAW, and so these changes should not be a major frame-rate problem.



Starting at byte #48 h in each aircraft data block is a group of 12 single byte integers (short integer). In Paulo's opinion, supported by testing, is that these bytes are the number of "hit points" that some areas of the aircraft can sustain before failing.
1 - Fuselage mechanicals, fuel & hydraulic lines, Elevators & Rudder Not a critical failure.
2 - Pilot . Catastrophic failure.
3 - Fuselage structure. Catastrophic failure.
4 - Tail section. Catastrophic failure.
5 - Right wing structure. Catastrophic failure.
6 - Right wing mechanical parts. Aileron damage. Not a critical failure.
7 - Same as 5 for left wing. Catastrophic failure.
8 - Same as 6 for left wing Ailerons. Not a critical failure.
9 - Engine or leftmost engine.
10 - Right engine (bimotor) or inner left engine (quad)
11 - Inner right engine.
12 - Right outer engine.

The following is a complete decimal dump of the damage area of PLANES.DAT





After the damage byte is:
0x00 0000 Number of gun positions e.g. 0300 for P38H and J (Maximum is 8 positions)
Commences a4 bytes from start of block
then a series of 6 byte chunks, one for each gun
0n00 0p00 0t00 aaaa 0s00 0x00 where 0n=Number of guns

0p=Position Fixed: 0000=None
0100=wing 0200=nose
Defensive: 0300=tail 04=Top turret 0500=Rear cabin
0600=Top 0700=V Rear
0800=v Front 0900=belly turret 0a00=left waist 0b00=right waist oc=nose flexible od=Front turret

ot=Type of guns 00=None
02=.30 cal MG, 7.9mm MG
04=.50 cal/13mm MG
0c= 20mm cannon
18= 30mm cannon

aa=Ammo in reverse order e.g. f401=500 d

0s= Sound 00=.30 cal MG
01=.50 cal/13mm MG
02= 20mm cannon
03= 30mm cannon

0x=Smoke 00 or 01 (smoke or no smoke)

Only the first 3 groups are utilizableby the player in the flyable aircraft, and each group is limited to 4 guns. Paulo Morais' file PLN_DAT.TXT contains a full dump of all 30 aircraft gun groups. Use Paulo's utilities DUMP_PLN.EXE and PTCH_PLN.EXE to change gun groups. The code 'ot' for the gun type also sets the gun destructive power. Higher values to simulate other guns can give spectacular effects. You can try to use 30h(equal to 2x the 30mm cannon value) for the 50mm cannon that equipped some Me410 versions. The downside is you can't get a meaningful text string (the in-flight text is in RADIOTXT.STR, and there are only 4 types per nationality), and the sound is limited to one of the 4 available sounds.

Then after all 6 x 6 byte gun chunks (including, usually, 1 or more 0000... ones):
UBYTE Max hit locations ? }Most fighters c611 fa5f and bombers 380e fa5f
UBYTE Max engines per plane? }All German planes 380e de58 or 380e fa5f
UBYTE Pitch limit?
UBYTE Yaw Limit

4 bytes nnnn nnnn Aircraft name e.g.110c, m410, mosq etc. Commences a4 bytes from start.
30h bytes 0000 All zeros.

To change guns, for example to fix the Bf-110G so that it has 2x20mm cannon and 2x30mm cannon:
1138 0400 0000 4 gun positions, no change
113c 0400 0200 0200 e803 0000 0000 (4x7.9mm MG in nose, 1000 rounds each)
1148 0200 0200 0c00 4501 0200 0000 (2x20mm cannon in nose, 325 rounds each)
1154 0200 0200 1800 8700 0300 0000 (2x30mm cannon in nose, 135 rounds each)
1160 0200 0500 0200 2003 0000 0000 (2x rear flex 7.9mm MG, 800 rounds each)


When changing ammunition loads, some common loads are as follows:

1000 E8 03
900 84 03
750 EE 02
500 F4 01
475 DB 01
450 C2 01
400 90 01
350 5E 01
334 4E 01
313 39 01
300 2C 01
250 FA 00
220 DC 00
200 C8 00
150 96 00
140 8C 00
120 78 00
100 64 00
80 50 00
60 3C 00
50 32 00

This file is 9728 d bytes (2600 h) long. It controls the bomb and rocket loads on all 30 aircraft. The format of LOADOUT.DAT is:
b400 0000 b4 h = 180 d records, each is 2c bytes (44 d) long
1st group of records
152 actual records for the various aircraft follow, then 28 blank (all zero) records. Presumably there can be expansion here. Then:

2nd group of records
9600 0000 96 h = 150 d records, each 0c bytes (12 d) long, 5 for each aircraft. These controll which loadouts are available for which missions in Campaigns.

The 1st group of records (2c bytes long) have the format:
ac00 Aircraft code e.g. 0000=P38H, 0f00=Mosquito. Then 21 d 2-byte blocks as follows:
0n00 Number of blocks
0w0x 0n0x 0d00 4600 0w=Weapon type (see Weapons codes on p.2, e.g. 03=500 lb bomb)
0x=Rack Image displayed (WEAPONS.DAT 2nd rec's – also on p.34)
e.g 09=4x60lb rocket, 0c=R4M rack
0x = Position of Image (controlled by PxxxxF.3DZ) 0d00=initial firing delay (usually 00, 10 or 20)
4600= firing delay between weapons (0300 for R4M, 23 and 46 for 60lb rockets)

The Rack Image codes are:



1. 0000 0000 x 21 No load
2. 0500 0802 0103 0000 0000 1x500 kg bomb
0000 x 4
0000 x 12

Mosquito (Aircraft Code 0f00)
1. 0000 0000 x 21 No load
2. 0200 0203 0200 0000 4600 4x250 lb bombs, in bomb bay, time delay in dropping
0203 0200 0023 4600
0000 x 12
Change this to:
2. 0400 0203 0200 0000 4600 4x250 lb bombs, in bomb bay, time delay in dropping
0203 0200 0023 4600
1107 0401 1000 0000 8x60 lb rockets on inner wings
1107 0402 2000 0000
0000 x 4

Tempest (Aircraft Code 0e00)
1. 0000 0000 x 21 No load
2. 0200 0901 0101 1000 0000 2x45 gal tank
0901 0102 2000 0000
0000 x 12
3. 0200 0201 0101 1000 0000 2x250 lb bomb
0201 0102 2000 0000
0000 x 12
4. 0200 0301 0101 1000 0000 2x500 lb bomb
0301 0102 2000 0000
0000 x 12
5. 0200 0401 0101 1000 0000 2x1000 lb bomb
0401 0102 2000 0000
0000 x 12
6. 0200 1109 0401 1000 0000 8x60 lb rockets
1109 0402 2000 0000
0000 x 12

Me-410 (Aircraft Code 1500)
1. 0000 0000 x 21 No load
2. 0400 0603 0200 0000 4600 2x100 kg bombs
0603 0200 0023 4600
0000 x 12
3. 0400 0000 0000 0000 0000 4x WGr21 rockets
0000 0000 0000 0000
130b 0205 1000 0000
130b 0206 2000 0000
0000 x 4
4. 0100 1603 0103 0000 0000 1x Fritz-X rocket
0000 x 16

Ju-88C (Aircraft Code 1a00)
1. 0000 0000 x 21 No load
2. 0200 0603 0200 0000 4600 4x100 kg bombs
0603 0200 0023 4600
0000 x 12
3. 0400 0000 x 4 6xWGr21 rockets
0000 x 4
130b 0305 1000 0000
130b 0306 2000 0000, 0000 x 4

4. 0100 1503 0103 0000 0000 1x Henschel Hs-293 rocket bomb
0000 x 16
5. 0100 1603 0103 0000 0000 1x Fritz-X rocket
0000 x 16

P47D (Aircraft Code 0300) The P47 has the most loadout options (22)
1. 0000 0000 x 21 No load

2. 0100 0e02 0103 0000 0000 1x200 gal centre tank
0000 x 16

3. 0500 0000 x 4 2x75 gal tank, outer wing
0000 x 4
0000 x 4
0a01 0104 1000 0000
0a01 0105 2000 0000

4. 0500 0000 x 4 2x108 gal tank, outer wing
0000 x 4
0000 x 4
0b01 0104 1000 0000
0b01 0105 2000 0000

8. 0500 0302 0103 0000 0000 3x500 lb bomb
0000 x 4
0000 x 4
0301 0104 1000 0000
0301 0105 2000 0000

10. 0500 0e02 0103 0000 0000 200 gal centre tank plus 2x500 lb bombs
0000 x 4
0000 x 4
0301 0104 1000 0000
0301 0105 2000 0000

17. 0500 0302 0103 0000 0000 3x500 lb bomb plus 6xM10 rockets
1004 0301 1000 1400
1004 0302 2000 1400
0301 0104 1000 0000
0301 0105 2000 0000

22. 0500 0302 0103 0000 0000 1x500 lb bomb plus 10xHVAR 5" rockets
1206 0501 1000 0000
1206 0502 2000 0000
0000 x 8


There are 150 records at the end of LOADOUT.DAT, 5 for each aircraft. Each is 0c bytes long.
They control ordnance availability in Campaign missions. The format is :
0x00 0m0n 0102 0304 0506 0000 om =Mission type 00=Escort 01=Ftr Sweep
(0x00=Aircraft code) 02=Bomb 03=Intercept
(NB 1940 aircraft only have 01, 03 and 05)
on= Number of Loadout options for that Mission type
ff=All option available
0102 0304 etc....= Loadout options 1, 2, 3, 4 etc....

0x00 0002 0001 0000 0000 0000 Most fighters: P38H, P38J, Spitfire IX, Spitfire 14,
0102 0001 0000 0000 0000 Typhoon, Tempest, Bf109G&K, Fw190D.
02ff 0000 0000 0000 0000 Bf110G
0302 0001 0000 0000 0000 Bf110G same except 0303 0001 0200 0000 0000
04ff 0000 0000 0000 0000 Bf109G same except 0304 0001 0203 0000 0000

0x00 0001 0000 0000 0000 0000 Early fighters: Hurricane, Spitfire Ia, Bf-109E, Bf-110C
0101 0000 0000 0000 0000
02ff 0000 0000 0000 0000
0301 0000 0000 0000 0000 Me262 same except 0302 0001 0000 0000 0000
04ff 0000 0000 0000 0000

0x00 0001 0000 0000 0000 0000 Light bombers: Mosquito, Ju87, Ju88A, Ju88C, He111
0101 0000 0000 0000 0000 Me410, V1
0201 0100 0000 0000 0000 V1 same except 0201 0000 0000 0000 0000
0301 0000 0000 0000 0000 Me410 same except 0301 0200 0000 0000 0000
0401 0100 0000 0000 0000 V1 same except 0401 0000 0000 0000 0000

0x00 0007 0000 0000 0000 0000 Heavy bombers: B17F, B24D, B26B
0101 0000 0000 0000 0000
0201 0100 0000 0000 0000
0301 0000 0000 0000 0000
0401 0100 0000 0000 0000

0x00 0007 0001 0203 0405 0600 U.S. fightersP47C&P47D 0005 0001 0203 0400 0000
0107 0001 0203 0405 0600 0105 0001 0203 0400 0000
02ff 0000 0000 0000 0000 02ff 0000 0000 0000 0000
0307 0001 0203 0405 0600 0305 0001 0203 0400 0000
04ff 0000 0000 0000 0000 04ff 0000 0000 0000 0000

0x00 0003 0001 0200 0000 0000 U.S. fightersP51B&P51D 0004 0001 0203 0000 0000
0103 0001 0200 0000 0000 0104 0001 0203 0000 0000
02ff 0000 0000 0000 0000 02ff 0000 0000 0000 0000
0303 0001 0200 0000 0000 0304 0001 0203 0000 0000
04ff 0000 0000 0000 0000 04ff 0000 0000 0000 0000

The solution to the ordnance loadout/lockup problem is simply to change the new machines to be like (say) the Spit IX. The Ju-88 has 2 loadout options only (Guns i.e. No Load, and Bombs). The Mosquito likewise has only 2 options (although this can be changed by increasing the number of loadout options), and the Me-410: 3 options.

There are Mission files: MISN40.DAT MISN43.DAT MISN44.DAT MISN45.DAT
Presumably these affect the aircraft available in missions in the various years.
Each file is 60 d bytes long, divided into 3 equal chunks of 20 d bytes.

0400 0000 [090a 1013 0000 0000] ff80 ff40 0000 0000 04=4 flyable aircraft.
Types=Hurri(09),Spit 1(0a), 109E(10), 110C(13)
ff etc= probability (?) of appearance
0500 0000 [091c 1319 1b00 0000] ffff 2080 4000 0000 05= 5 aircraft
Types=Hurri, He111, 110C, Ju88A, Ju87
ff etc=probability as bomber(?)
0200 0000 [1c19 0000 0000 0000] ff80 0000 0000 0000 02=2 aircraft
Types=He111, Ju88A
ff=probability as bomber (?)

0800 0000 [0200 obod 1116 141a] c440 ff40 ffc4 4020 08=8 flyable aircraft.
Types = P47C, P38H, Spit9, Typh, 109G, 190A, Ju88C
ff etc= probability (?) of appearance
0800 0000 [0206 080d 0f16 141a] ff80 ff40 ff80 8040 08= 8 aircraft
Types= P47C, B17, B26, Typh, Mosq, 190A, 110G, Ju88C
ff etc=probability as bomber(?)
0600 0000 [0607 080f 1a15 0000] ff20 8080 ff40 0000 06=6 aircraft
Types= B17, B24, B26, Mosq, Ju88C, Me410
ff=probability as bomber (?)

0800 0000 [0204 o10b 0d16 1115] ff80 40ff 80ff ff20 0 08=8 flyable aircraft.
Types = P47C, P51B, P38J, Spit9, Typh 190A, 109G, Me410
ff etc= probability (?) of appearance
0800 0000 [0204 0608 0d0f 1615] ff80 80ff ff80 ff40 08= 8 aircraft
Types= P47C, P51B, B17, B26, Typh, Mosq, 190A, Me410
ff etc=probability as bomber(?)
0600 0000 [0607 080f 1a15 0000] ff80 8080 ff40 0000 06=6 aircraft
Types= B17, B24, B26, Mosq, Ju88C, Me410
ff=probability as bomber (?)

0800 0000 [0503 0c0d 0e17 1218] ffff ff80 80ff ff20 08=8 flyable aircraft.
Types = P51D, P47D, Spit14, Typh Temp, 190D, 109K, Me262
ff etc= probability (?) of appearance
0800 0000 [0305 0608 0d0f 1615] ff80 80ff ff80 ff40 08= 8 aircraft
Types= P47D, P51D, B17, B26, Typh, Mosq, 190A, Me410
ff etc=probability as bomber(?)
0600 0000 [0607 080f 1a15 0000] ffff 8080 ff40 0000 06=6 aircraft
Types= B17, B24, B26, Mosq, Ju88C, Me410 ff=probability as bomber (?)

Controls the weapons characteristics. The names are in WEAPONS.STR. The format is:
2000 0000 20 h = 32 d records, each is 18 h (24 d) bytes long. Then 2 groups of records:

1st group of records
21 actual records for the various weapons follow, then 11 blank (all zero) records. There can be expansion here (see below). Then:

2nd group of records
1000 0000 10 h = 16 d records, each 08 bytes long. These determine the weapon displayed.

The 1st group of records (18 h bytes long) have the format:

1 3 5 7 9 11 13 15 17 19 21 23
0000 (ffff) 0000 0000 0000 [ffff] 0000 0000 0000 0000 0000 0000 No weapon

0101 0000 0400 0008 0000 [ffff] 8214 0000 1405 6400 0000 0000 100 lb bomb

0201 0100 0800 000c 0000 [ffff]d020 0000 320f fa00 0000 0000 250 lb bomb

0301 0200 0c00 0010 0000 [ffff] 1e2d 0000 6419 f401 0000 0000 500 lb bomb

0401 0400 1400 0014 0000 [ffff] a041 0000 c832 e803 0000 0000 1000 lb bomb

0501 1900 0400 0008 0000 [ffff] 8214 0000 1605 6e00 0000 0000 50 kg bomb

0601 0500 0800 000c 0000 [ffff] d020 0000 2c0f dc00 0000 0000 100 kg bomb

0701 0600 0c00 0010 0000 [ffff] 1e2d 0000 6e19 2602 0000 0000 250 kg bomb

0801 0700 1400 0014 0000 [ffff] a041 0000 dc32 4c04 0000 0000 500 kg bomb

0904 1a00 0a00 0000 0000 [ffff] 0000 0000 0000 5000 3601 0000 45 gal tank

0a04 0e00 0c00 0000 0000 [ffff] 0000 0000 0000 5000 fe01 0000 75 gal tank

0b04 0f00 0e00 0000 0000 [ffff] 0000 0000 0000 5000 df02 0000 108 gal tank

0c04 1000 0e00 0000 0000 [ffff] 0000 0000 0000 5000 df02 0000 150 gal tank

0d04 1100 1400 0000 0000 [ffff] 0000 0000 0000 5000 fc03 0000 165 gal tank

0e04 1200 1800 0000 0000 [ffff] 0000 0000 0000 5000 6004 0000 200 gal tank

0f04 1300 0c00 0000 0000 [ffff] 0000 0000 0000 5000 5005 0000 300 litre tank

1002 1500 0102 1e03 d200 [ffff] 2706 0000 0a14 2800 0000 0000 M10 4.5" rocket

1102 1600 0102 1e04 d200 [ffff] 3408 0000 0c1e 5500 0000 0000 60 lb rocket

1202 1f00 0103 2d06 d200 [ffff] d809 0000 1028 8c00 0000 0000 HVAR 5" rocket

1302 1700 0102 140a d200 [7805] 6810 0000 0c0a b400 0000 0000 WGr 21 rocket

1402 1800 0003 2d02 d200 [bc02] 0d02 0000 0418 0a00 0000 0000 R4M rocket

1502 1200 0102 0014 bc02 [bc02] 0a041 0000 6419 4c04 0000 0000 * Hs-293 rocket

1602 0700 0103 0010 bc02 [bc02] 0040 0000 6419 9402 0000 0000 * Fritz-X rocket
1702 1600 0103 1e04 d200 [ffff] 3408 0000 0a14 2800 0000 0000 * Panzerschreckrocket

1801 0e00 0100 2002 0000 [ffff] 0852 0000 6e19 2602 0000 0000 *SD-10 cannister

1901 0f00 0100 000c 0000 [ffff] 495c 0000 64e19 f401 0000 0000 *500 lb Napalm bomb

1a01 ffff 0100 f401 d200 [ffff] f401 0000 8102 0500 0000 0000 *SD-2 bomblet

1b01 1800 0100 f401 0000 [ffff] f401 0000 8102 1400 0000 0000 *20 lb Incendiary

1c01 1800 0100 f401 0000 [ffff] f401 0000 8102 1600 0000 0000 *10 kg Incendiary

1d02 1200 0103 0030 dc05 [ffff] 0060 0000 6419 6412 0000 0000 *MXY7 Okha

1e00 0000 0400 0000 0000 [ffff] 0000 0000 1405 6400 0000 0000 *Underwing gun pod

1f00 0000 0400 0000 0000 [ffff] 0000 0000 320f fa00 0000 0000 *Twin gun pod

This data in WEAPONS.DAT is interpreted, mostly by Paulo, as:
1-2 1=Weapons code
2=Type (00=none, 01=bomb, 02=rocket, 04=fuel tank)

3-4 Code to image of weapon on rack and after firing/dropping (code numbers are from the ORDxx.3DZ files listed on page 6 e.g. 06=250 kg bomb, 1a (= 26d)

45 gal tank) ffff

nil image

5-6 5=Negative quantity multiplier (e.g. 0c for 500 lb bomb,change to o2 to increase sqn stockpile)
6=Initial relative forward speed (You can make bombs or tanks behave as rockets)
7-8 2 bytes (int) is Impact Damage.

9-10 2 bytes (int) (only for rockets) time length of rocket motor exhaust
11-12 2 bytes (int) (only for German rockets), self destruct time/distance – all others ffff

13-14 2 bytes (int) is Blast Damage.
15-16 Null
17-18 2 bytes (int) Flight performance penalty
19-20 2 bytes (int) Empty weight (lbs)
21-22 2 bytes (int) Full Fuel weight (lbs), only for drop tanks.
23-24 Null

In the original, the WGr21 rockets seemed to fly forever without exploding. Replace the 6th value (7805) (=1400 d) with the R4M value (bco2) (=700 d) and they explode sooner. I now use 9001 (=400 d), which makes them explode at a range of about 2,000 - 3,000 feet, which seems about right.

The Henschel Hs-293 rocket bomb (500 kg warhead) and Fritz-X rockets can be carried by the Ju-88C, and the Fritz-X by the Me-410. They are useful for anti-ship missions. To find ships, fly to Southampton or Portsmouth (for Allied ships) or Emden (for German ships). There should always be a convoy of 1-3 DD's and 2-8 merchant/troop ships. In June 1944 there are also Allied ships off the coast of Normandy. The Fw-190A and Me-410 can carry the Panzerschreck rocket (6 under each wing). The Panzerschreck is a light 54mm anti-armour (not air-to-air) rocket.

2nd group of records (Weapons pylon data) (this block of data starts at byte 304 h)
There are 16 blocks, each 8 h bytes long, which have the following format:
Description Image Weight, drag Type
0000 ff00 0000 0000 00 Nothing (No image) Nil
0101 ff00 0000 0000 01 Simple Mount(No Image) Nil
0201 ff00 0000 0000 02 Simple Mount(No Image) Nil
0300 ff00 0000 0000 03 Internal (No Image) Nil
0402 0906 8200 0000 04 Rocket Tube (Image 09) 06 82 M10 x3
0508 2000 0000 0000 05 Rocket rail (Image 20) Nil HVAR x3
0608 2100 0000 0000 06 Rocket rail (Image 21) Nil HVAR x5
0708 1d01 2800 0000 07 Rocket rail (Image 1d) 01 28 60 lb x1
0808 1e02 5000 0000 08 Rocket rail (Image 1e) 02 50 60 lb x2
0908 0a04 a000 0000 09 Rocket rail (Image 0a) 04 0a 60 lb x 4
0a02 1c04 3c00 0000 0a Rocket tube (Image 1c) 04 3c WGr21 x1
0b02 0b08 7800 0000 0b Rocket tube (Image 0b) 08 78 WGr21 x2
0c04 0c04 9600 0000 0c Rockets (Image 0c) 04 96 R4M rack
0d02 1b04 3c00 0000 0d 20mm gun pod(Image od) 04 3c *New 20mm gun pod
0e02 0d08 7800 0000 0e Twin gun pod (Image 0e) 08 78 *New Twin gun pod
0f02 1404 3c00 0000 0f 37mm gun pod (Image of) 04 3c *New Ju87 37mm gun pod

Thus 0n ot mm dd dd 00 0000 where:
0n =Number (0 to c) in 1st block in LOADOUT.DAT
0t= Type 00=Nothing (internal)
01=Simple mount (bomb/tank)
02=Rocket tubes (M10, WGr21)
04=Rocket rack (R4M)
08=Rocket rails (60 lb, HVAR)
mm=Image ff=No Image
dddd = Weight and Drag penalty

In 3D.DAT there is a group of files ORD00-33.3DZ that contain the geometry definition, and pointers to BOMBS.TPC (the texture file), for the 34 different images for ordnance (weapons and mounts).
The coordinates for ordnance location are inside the main geometry definition file for each plane (PxxxF.3DZ). The five groups of coordinates at the end of the FLT file only define the launching point.







There are 8 SQXXXX.DAT files which allocate squadrons:
SQGR40.DAT (and SQGR43.DAT and SQGR44.DAT)
SQUK40.DAT (and SQUK43.DAT and SQUK44.DAT)
SQUS43.DAT (and SQUS44.DAT).

The format is the same. Each file is comprised of a number of blocks, one for each squadron (e.g. 9 German squadrons in 1940), each 7c (124 d) bytes long. The format of each block is:

00-01 9x07 Year. 9407h=1940, 9797h=1943, 9807h=1944
02-03 om0d Start date Month/Day (00=Jan, 04=May, 06=July, 07=Aug, 0a=Nov, 0b=Dec)
04-05 bb00 Air Base e.g. 08=St Omer, 3c=Le Havre
06 aa Aircraft code see page 2, e.g. 00=P38H, 10=Bf-109E, 1b=Ju-87
07 0n Establishment of Pilots
08 0p Establishment of Planes
09-0b ffc800 3 bytes - (maybe pilot experience and morale?)
0c-0d 03 00 Number of possible squadrons/staffels that one can be assigned to
0e-12 pp pp pp pp pp 5 bytes - Probability (out of 100 h) of mission types:
e.g. 80 80 00 00 00= 50% escort, 50% sweep
10 40 b0 00 00= 6% escort, 25% sweep, 68% attack
00 40 40 20 60=25% sweep, 25% bomb, 12% int'cept, 37% interdict
13-15 uu uu uu Unit sign/Unit designation/Unit long description
16-19 0d 17 18 19 Squadron/Staffel designations
1a-1b 02 02 Number of airfield moves/number of aircraft updates (4+4 max)
1c-2b (4x 4 blocks) Airfield changes. Probability/Mission number in 25/Airfield number
(the ffff [65535] value is a mystery. It only happens in UK43-44, and may mean move to continental provisional airfields??)
2c-3b (4x 4 blocks) Aircraft upgrades. Probability/Mission number in 25/New Aircraft
e.g (Spit9->Typhoon->Tempest)
3c-5b 20 h (32 d) bytes of unknown flags.

5c (8x 4 blocks) Weapons stockpiles. Weapon code/First mission available/Amount

The alternative staffels you could be in in a particular Gruppe (see the number just before the mission probability types for quantity of choices). e.g. in SQGR40.DAT, III/JG 51 has 3 choices (byte 278=03).
Then starting at byte # 16 h are the name references: od 17 18 19.
These are references to the squadron names 0d, 17, 18 and 19 in SQNAMEGR.STR, namely III/Jagdgeschwader 51, Staffel 7, Staffel 8 and Staffel 9 respectively.

The first plane update is at byte # 2c.
e.g. 8017 1200 = upgrade to Bf-109K,
0000 0000 = no upgrade (e.g. all German squadrons in 1940).

Remember that the stockpiles are affected by the "negative multiplier" in WEAPONS.DAT.

The airbase code are set out on the following page. The names are in TARNAMES.STR. This list is in two parts, the second starting at 0a43 after ZWICKAU, which appears to be a list (not properly ordered, however) of airbase names.





The structure of the CAMPxx4x.DAT files has been fully set out by Emil in his (July 2002) notes on campaigns ( The following is a superficial analysis of the first part of the files only.

There is one of these files for each campaign. They are each 3708 d bytes long. The file format is:
Byte # (h) (all discovered so far are shorts)

00-01 Year } Campaign commencement date 9407=1940, 9707=1943, 9807=1944
02 Month } 00=Jan, 04=may, 06=July, 07=Aug, ob=Dec
03 Day }

04 Briefing language and art (8000 h =German, 0001= British, 0002=American)
06-07 Always 0000
08-09 Attacking side. 1940 campaigns are 8000, all others are 0002 :German/US offensive ? Or controls fighter sweeps? (8000 eliminates fighter sweeps?)
0a-0b Always 0000
0c Campaign type. 1940 campaigns have 0200, 1943 - 0300, and 1944 - 0400
0e-of Attacking base 1940 campaigns have 1A (Calais), 1943/44 have 0A01 (London)
10-11 Attackers capital 1940 have 0A (Berlin), 1943/44 have 0A01 (London)
12-13 Defender’s capital. 1940 have 0A01 (London), 1943/44 have 0A00 (Berlin)
14-15 Number of available squadrons number in the corresponding SQxx4x.DAT file (e.g. in CAMPGR40.DAT this is 09, and in SQGR40.DAT there are 9 German squadrons in 1940)
16 Number of special events (max. 32)
17 Number of special missions (max 32)
18 Number of campaign's phases (max. 25)
19 Phase length in days. 1940 campaigns are 07, 1943/44 are 1e.
1a A mission every ... days (normal campaign setting doubles this value). This is sometimes affected by some other byte, because in the BOB (British side) between middle August - middle-September missions happen every two days, not three as at the beginning or end.
1b Number of types of available planes defined at offset 33c

1c Here begins part of the file that describes campaign phases. The entire part consist of 25 chunks, each 32(d) bytes long. 1940 campaigns use only 10 (d) of them. The entire part is 320 h (800 d) bytes long.





• These are the working Hex-Codes for use at bytes 25 to 32 of the campaign phases chunks in camp4*.dat.
• “Target for escort missions” are the targets that the bombers you have to escort can be ordered to attack, “Targets for bombing missions” are the targets you can be ordered to attack
• The words in parenthesis are the targets you are told to attack in the briefing, if there is written “no briefing” in parenthesis you will be told nothing in briefing, but you see what target to attack in the map. Seems there is no speech file for these targets.
• How does EAW handle the bytes 25 to 32 of the campaign phases chunks? My experience is that EAW looks at these bytes and takes the first byte that works as a target code: E.g. if byte 25 is 0B it will not work, cause 0B is not a valid target code, so EAW looks at the next byte (byte 26) and so on till it finds a working code. If there is no valid code at bytes 25 to 32 EAW will order you to perform a ‚fighter sweep‘. On the other hand I’m not sure about what’s happening when EAW finds more than one valid target code at bytes 25 to 32. I suppose that the bytes 25 to 32 are chronologically arranged so that target codes at the first bytes are used at the beginning of the campaign phase and the last bytes at the end of the phase.
• Some target codes in detail:
00 orders an attack on a randomly chosen target. 
FF forces EAW to order a fighter sweep
EF remains a mystery. EF is used in the original camp
4*.dat files, so it should have a meaning, but I was not yet able to get to know what it is standing for. 
• Unfortunately the targets for the interdictions missions are not coded at these bytes of camp**4*.dat. Changing of bytes 25 to 32 showed no influence on that.
• As written above I don’t think that bytes 26, 28, 30 and 32 have something to do with the target area as Charles assumes in his EAW notes.
• I had a try with all possible Hex-values (00 to FF) so there are no more surprises and no need to try them all again... ;)


Moggy and Dom worked all of this out. A more comprehensive set of notes on this topic, from which this is drawn, can be found on Moggys website ( under “Moggy’s Notes”, and in Dom’s “Editing Notes on EAW Terrain and Airfield/Ground Target Files”.

The landscape in EAW is controlled, at least in part, by two files contained in DATA.CDF : EAW.TM and EAW16.HM. While EAW.TM codes for the sequence of the 640x320 (204800) tiles that constitute the EAW landscape, EAW16.HM codes for the height of these tiles. A tile represents a surface of 16.8 Km2 (4.1x4.1 Km). Therefore, the whole EAW map covers an area of about 2600x1300 Km.

The nature and location of airbases/ground targets are controlled, at least in part, by four files : Targets.dat, Airfield.dat, Griddata.dat and Tardata.dat.
• TARGETS.DAT contains a complete list of the 302 targets/airbases (162 airbases and 140 static ground targets) with corresponding XY coordinates.
• TARDATA.DAT also contains the list of the 302 targets/airbases but with extensive infos on the composition of the targets.
• AIRFILED.DAT contains infos about the nature and orientation of the 162 airfields.
• GRIDDATA.DAT manages the appearance of airbases and ground targets on the map. In other terms, it says to the program which targets will be displayed in a certain area. In fact, Griddata.dat looks like a "picture" of the 640x320 tiles matrix but in the 40x20 format.

EAW.TM contains 204800 bytes which correspond to the 204800 tiles of the EAW landscape. As a matter of fact, every tile is coded by only one byte. The EAW.TM bytes form a 640x320 matrix. Bytes 00d to 639d correspond to the Northern upper row of tiles, from west to east. Bytes 640d to 1279d correspond to the row of tiles just below, also from west to east, and so on ...

There are 68 different terrain tiles provided in the PicPac utility (BN*.PCX files which can be transformed into BN*.TER (low-res) and LR*.TER (high-res)) but only 59 of them are used by the program. Every tile is coded by four values corresponding to four different orientations (north, east, south and west). All these values range from 00 to FA. Values CB, CC, CD, CE ,CF, DB, DC, DD, DE, DF, EB, EC, ED, EE, EF, FB, FC, FD, FE and FF are not used. Changing an existing value with any of these values displays a black tile on the terrain.

EAW16.HM codes for the height of tiles (more precisely, the upper left corner (node) of tiles) in EAW. The structure is very similar to the one of EAW.TM. However, the data for every tile are coded by two bytes whose values range from 00h 00h (sea level) to FFh FFh (higher altitude, about 5000 meters). EAW16.HM is 409600 bytes long and is organized as a 1280x320 matrix. Bytes 00d to 1279d correspond to the Northern row of tiles, from west to east. Bytes 1280d to 2559d correspond to the row of tiles just below, also from west to east, and so on ...

GRIDDATA.DAT is 6400 bytes big. It manages the appearance of airbases and ground targets on the map. Griddata.dat consists of 800 chunks of 8 bytes each. It is organized as a 40 columns (40x8=320 bytes) x 20 lines matrix. It is like a "picture" of the 640x320 tiles matrix but in the 40x20 format. The content of a chunk indicates to the program which airbases/targets are present in a given area. This area is 2304 (48x48) tiles big.

Targets.dat places the principal markers for all target locations - towns and airfields, by setting the coordinates in the EAW world and then determining how many actual targets there will be at this location.

The first four bytes in the file are the header. The number "01 2E" in the header is equal to the number of lines or target locations in this file (302). Each line constitutes a "record" for each target location whether town or base.

The first 8 bytes (0-7) are the cooordinates in the EAW world - see DOM's notes for an explanation of how this works.

The next 8 bytes (8-15) are as yet unknown in purpose though 10-11 are always null
Bytes 16-17 identify the record (or line) number in targets.str and therefore the name of the target location
Byte 18 is unknown.
Byte 19 fixes the numbers of records (or lines) pertinent to this target location in tardata.dat, and therefore the number of actual target mods in this location.
Bytes 20-21 identify the commencing record (or line) number in tardata.dat.
Bytes 22-23 are always null.
Bytes 24-25 identify the Airbase code if the location is a base, or is null if the location is a town.
Bytes 26-31 are as yet unknown.

By changing the coordinate values (bytes 0-7) in targets.dat you can move the whole target location and all relevant target mods controlled by tardata.dat at that location with it. This is subject to any adjustments you may have to make to griddata.dat (as DOM's notes explain) if the move is a large one. By changing byte 19 you can allow for an increased number of target objects at the target location, and specify the new
objects in new records in tardata.dat.

Tardata.dat sets out the airbases and actual target objects at each location with respect to the target sites determined in targets.dat. Tardata.dat in effect sets up a local version of the EAW grid, and using that grid places the airbase, buildings, AA guns, and other objects, and fixes their orientation.

The first four bytes in the file are the header. The number "0E F2" in the header is equal to the number of lines or target objects in this file (3826). With 3,826 records or lines of 32 bytes each, each record deals with a single ground target. This file does not deal with non-target ground objects such as trees, farms, and city buildings etc, which are placed by EAW_TTD.DAT.

Bytes 0 has values 01, 81, 09 or 89, and byte 1 has values 00 or 01. The function of these are unknown.
Bytes 2-3 are always null.
Byte 4 contains the tmod file number (in hexadecimal foemat) and therefore identifies the target type. In the illustration above, in the first two records the value at byte 5 is 07, and tmod07_*.3dz is the train station. Byte 5 is always null, as are bytes 6-7.
Bytes 6 and 7 are always null
Bytes 8 and 9 are the record or line number of the target location from targets.dat.
Bytes 10-11 are always null.
Bytes 12-19 contain the two groups of coordinates for placing the target in the local grid system with respect to the main target marker placed by targets.dat.
Bytes 20-23 are unknown.
Bytes 24-25 set the orientation of the target with 00 00 being north, and 0080 being south.
Bytes 26-27 (many are null) are unknown.
Bytes 28-31 are always null.

In working with tardata.dat you can change the number, type, and position of target objects at any given location. You can add lines to tardata.dat by changing the number of records set in the header bytes. In doing that you may need to change the numbers of targets for each location, and the starting record number for each location which values are stored for each location in targets.dat as explained in the relevant section above.

Dominique Legrand (“Dom”) ( worked this out. The file FRNTLINE.DAT (in DATA.CDF) contains a total of 20 predefined front lines (20 blocks of 600 bytes). The first one is located in the channel. It is used in the 1940 and 1943 campaigns (static campaigns). The 19 others are the different front lines of the 1944 campaign, from Normandy to Germany. EAW will use it in both campaign and single mission modes.

The file is 12,000 (dec) bytes long and consists of 20 blocks of 600 bytes each.
Each block contains the data of a particular front line :
- block #1 : default front line used in the static 40 and 43 campaigns, as well as in the beginning of the 44 campaign.

- blocks #2-20 : 19 front lines used in the dynamic 44-45 campaign from Normandy Front to Eastern Germany.

Each block consists of 9-27 patterns, each coding for the coordinates of one point of the front line :
The first pattern codes for the down or right end point of the front line.
The last pattern codes for the upper or left end point of the front line.
A total of 29 patterns (points) are possible for one front line.

Structure of a pattern (20 bytes) :
bytes 0-7 : coordinates of a point. These data are coded (code unknown at the moment).
byte 7 : E9 to E4. Always E4 for the last pattern of a block. First pattern : E7 in blocks #1-6 and E9 in blocks #7-20
bytes 8-15 : always FF FF FF FF FF FF FF FF
byte 16 : either 00 or 01. This byte determines whether the point is connected to the following one with a blue (or red) line on the mission maps. 00 : no line; 01 : line. (Points located in the sea have byte 16= 00)
bytes 17-19 : always 00
End of a block : a repeat of sixteen bytes set to FF.

The structure of a block can be edited to create new front lines, combining yet-existing point coordinates or creating new ones (?).

Aircraft availability in CAMPxx4x.DAT
Then at Byte # 33C are the descriptions of aircraft availability. I am not completely sure what these files do, but they do control enemy aircraft appearing in missions. For example, in CAMPGR40.DAT at byte #37c the Ju-87 is as follows:

1B 00 04 FF 2C 01 00 00 00 00 00 00 00 00 00 00
The relevant parts are:
1-2 Aircraft code (see p.1) (e.g. 1B = Ju87)
3 Withdrawal date, by phase (see above) (04 =4th phase)
4 Replacement plane (FF =none)
5-6 Probability of plane appearing in a mission AT THE START OF CAMPAIGN (2C 01 =300)
7-8 Always 0000
9-10 Prob of plane appearing after MID-CAMPAIGN date byte#3 (00 00 =none, as its withdrawn)
11-12 Always 0000
13-14 Prob of plane appearing after mid-campaign date IF the plane wasn't available at the beginning of campaign. (00 00 =none).

To make this a little clearer compare the above example to the Ju88A in 1940:
Type 1 3 5 7 9 11 13 15
109E=1000 19ff c800 0000 1000 0000 0000 0000

110C=1300 19ff 6400 0000 0800 0000 0000 0000

Ju88 =1900 19ff 0000 0000 0c00 0000 0000 0000

Ju87= 1B00 04ff 2c01 0000 0000 0000 0000 0000

H111=1c00 19ff 9001 0000 0c00 0000 0000 0000
In this case the Ju88A is available at the start but has no chance of appearing as bytes 5&6 are blank. But when it does appear in mid-campaign '0c' the probability is 600. It serves to the end of the campaign (phase 19 h =25 d) and therefore has no replacement = 'FF'. The bytes after FF seem to refer to probability of appearance in missions. If you look at the numbers, you'll notice the bigger ones tend to appear more frequently. For example:

He-111s (9001=400 d) are more than Ju-87s (2c01=300 d). Hurricanes (2c01 =300 d) are more than Spitfires (6400 =100 d) . The 1940 campaign has no plane replacements but 1943 and 1944 campaigns do. The P-47C has the P-47D's ID in the fourth position. The P-38H has the J model. The P-51B has the D model. The FW-190A has the D model, etc....Curiously the Bf-110G has the ME-262 as its replacement.

At offset 580h are possibly the bytes that probably control escort type for bombers, but I haven't yet worked on them much.

This information was worked out by Nick Bell. The files CAREER0x.SVE contains the data concerning each career pilot. It is found in the SAVEDATA subdirectory. (The 00 is the 1st pilot you created, 01 the 2nd and so on. This will change as you delete career pilots so just look at the top of the file where your pilot's name occurs.)

Changing Planes in a Career
It is possible to change one plane for another during a career. This works with planes on the same side only. If you change for an enemy plane your ground staff will shoot you up before you take off! Go to byte 00022fb6 h. If your present plane is a P51 it will be 04, and if a Bf-109E, 10. Change the aircraft code to the plane you want to fly.

Changing Pilot Names
In the same CAREER00.SVE file a little further down, at byte 235a5 h, are the names of all the pilots in your squadron. Just change the names to your liking by re-typing them.

Changing Aircraft Replacement Rate
Offset 143297 d (22fc1 h) in CAREER00.SVE is the byte for aircraft replacement, which sometimes is set at zero (e.g the British 1940 and 1943 campaigns). It can be changed from zero to a large number.

Changing the current number of planes
Losses? The current number of planes is in CAREERxx.SVE near the end. Search for your staffelname and in among the next 'set' of hexvalues after it should be 06 ( at offset 00022FC1 ? ). Change it to 0C.

Nick Bell ( has also created a small editor for CAREER0x.SVE. It is available from his web page ( The following is part of the TXT file that goes with it.

Edit Squadron Data
Remember that changing your squadrons aircraft to enemy types will cause your airfield AAA defenses to fire at you while on the runway. I’ve found that moving my Allied squadrons to France or Belgium after the invasion in 1944 was a pleasant change of pace and shortened my flying time considerably. There is no problem with escorting 8th AF formations flying out of England if you move to the mainland. The program recalculates the rendezvous point with the bombers to a point over Europe. You don’t have to fly back to England to meet them.

Edit Pilot Data
Fatigue and Morale: Let me start by saying I presume these are the pilot fatigue and morale values. Fatigue increases every mission. It increases a lot if the pilot bails out, and drops between missions if the pilot doesn’t fly. Setting the fatigue level to 0 improves the AI pilots performance, and apparently makes them much more likely to survive bailouts.

Morale increases a variable amount based on the success of the mission. Mission failure causes the morale value to drop. The most visible thing I’ve noticed with setting the morale to maximum (255) is that the AI pilots are more willing to engage for longer periods. As an Allied player this is useful, as it keeps the escorts more in the fight. As the German, this might not be such a great solution, as the AI pilots hang around longer and have a tendency to get shot down more as they make ineffective passes with MG’s only. Setting the German pilots to low(er) morale makes them make a few passes at the bombers and then the head home. This lessens their casualties, but doesn’t help them down bombers, either. Experiment and let me know what you think is a good value.

Sorties and Kills: Apart from being able to credit yourself kills you “know” you got, I have read that some players feel that AI pilots with very high sortie and kill counts are better. (note that although I know where the data is in the career file, I do not consider worth the time/effort to hack and code and editor for the pilot log, so changing your kill count is only on the scoreboard).

Rank: Along with fatigue, rank determines who flys and what position they fly in. Note that promotion points are also tracked. They are stored in one of those Unknown data types. I just haven’t bothered to figure it out. When I have set all unknown values to the maximum, pilots get promoted very quickly, so it’s there somewhere.

Pilot Status: I’ve never seen Wounded or Rescued on the Squadron Status Board, but they’re in there. Not sure of the effects. Would be interesting to see if wounded pilots “heal” over time. Note that Allied and German Pilots use

different values for the same status. It might be interesting to put an enemy pilot in your squadron and see what happens. In any case, you can easily rescue/recover or bring back to life your favorite pilots.

According to the Microprose, selecting an ‘easy’ campaign gives the player better squadron members. In comparision between AI pilots created in easy campaigns vs those created in hard campaign, the easy campaign pilots have higher values.

Pedro Alvim found the byte for the medals in the CAREERxx.SVE file: 235c5. The values give a sequence of combinations of medals in the board (for now he has worked only German medals):

IC2= Iron Cross 2nd Class
IC1= Iron Cross 1st Class
GC= German Cross
KC=Knights Cross
KCO= KC + Oak Leaves
KCS= KCO + Swords
KCD= KCS + Diamonds
- = empty medalboard

  • = not known

D HEX Luftwaffe Medals


If we modify the byte, the medals get stored in the Hall of Fame (HOF). When we are in the MB or HOF and if we click on the medal to see info, the game shuts down: I don't know why (probably because the medal info board is stored in another unknown byte, and must correspond).

All *.MSN files are 400 bytes long. The options on the selection screen are:
Year (1940, 1943, 1944 or 1945)
Time (Dawn, Day,Dusk)
Weather (Random, Clear, Partly Cloudy, Heavy Cloud, Overcast)
Instant Action (Yes or No)
Mission (Ftr Sweep, Bomb, Intercept, Interdict, Escort Flight)
No. of Aircraft
Cruise Altitude (Random, Low, Medium, High)
Home Base
Friendly Secondary Aircraft
Formation Size (Random, Small, Medium, Large)
Pilot Skill (Random, Green, Seasoned, Expert)
Enemy Activity Level (Random, Light, Moderate, Heavy)
Enemy Primary Aircraft
Enemy Secondary Aircraft
Enemy Pilot Skill (Random, Green, Seasoned, Expert)
Enemy AAA Level (Random, Light, Moderate, Heavy)

The format of the *.MSN file is:
00-0b xxxx xxxx 6502 00aa Not known
09 Instant Action (80) or not (00)
0c-23 File Name e.g. "Spitfire Ia vs Bf-109 E-4"
24-10f All zeros 0000 0000.....
110 Year 00=1940 01=1943
02=1944 03=1945
114 Time of Day 00=Random 01=Dawn 02=Day
03=Dusk 04=Night (?)
118 Weather 00=Random 01=Clear 02=Partly Cloudy
03=Heavy Cloud 04=Overcast
11c Mission Type 00=Escort 01=Ftr Sweep 02=Bomb
03=Intercept 04=Interdiction
120 Target e.g. 17=Tangmere 36=Hornchurch
3e=Le Havre 4f=Beaumont le Roger
124 No. of Aircraft in Player's flight
128 Cruise Altitude 00=Random 01=Low
02=Medium 03=High
12c Home Base
130 Friendly Secondary Aircraft : Use Aircraft code or feff ffff= None
134 No. of Friendly Aircraft
138 Pilot Skill
13c Enemy Activity 00=Random 01=Light
02=Moderate 03=Heavy
140 Enemy Primary Aircraft (see above)
144 Enemy Secondary Aircraft (see above)
148 Enemy Skill Level 00=Random 01=Green
02=Seasoned 03=Expert
14c Enemy AAA Level 00=Random 01=Light
02=Moderate 03=Heavy
164 Player Aircraft Type (see above)
168 Friendly Secondary Aircraft (see above)
17c Enemy Primary Aircraft (see above)
180 Enemy Secondary Aircraft (see above)

The problem with MSN files editing is the first 4 bytes. Most probably are some sort of encoded checksum. If you take a look into EAW.EXE you will find references to a public key that could related with this problem or with the CD validity check.

Meatwater's Soundpacks ( have new sound files.
The sound files format is: snd00xx.snd
Paulo Morais has utilities for converting RAW format sound files to EAW format and vice-versa.

In Meatwater's Version 1.3 the files are:
snd0009.snd 35.1k Bomb whistle
snd0025.snd 906 bytes .30 cal MG
snd0026.snd 805 bytes .50 cal MG
snd0027.snd 1.03 k 20 mm cannon
snd0028.snd 1.49 k 30 mm cannon
snd0029.snd 34.8 k Rocket launch
snd0050.snd 183 k Gear up/down
snd0051.snd 74.5 k Parachute
snd0052.snd 32.9 k Touchdown

In Meatwater's Version 2.0 the files are:
snd0003.snd 67.8k Flak explosion
snd0004.snd 133k Bomb explosion
snd0009.snd 46k Bomb whistle
snd0019.snd 45.2k Flak shot
snd0020.snd 37.6k Flak hit
snd0022.snd 128k Plane explosion
snd0023.snd 115k " "
snd0025.snd 3.34k .30 cal MG
snd0026.snd 4.36k .50 cal MG
snd0027.snd 5.19k 20 mm cannon
snd0028.snd 6.05k 30 mm cannon
snd0029.snd 77.4 k Rocket launch
snd0030.snd 233k Radial startup
snd0031.snd 319k Radial running
snd0034.snd 234k In-line startup
snd0035.snd 114k " running
snd0038.snd 80.2k Me-262 startup
snd0039.snd 247k " running
snd0042.snd 118k Other engines
snd0043.snd 69k Bomber engines
snd0044.snd 184k V-1 engine
snd0047.snd 292k Engine failure
snd0050.snd 183k Gear up/down
snd0052.snd 32.9 k Touchdown

grb_031.snd and gbrf.cdf 8963k German briefing
aradio1m.adp and aradio2m.adp } American Radio music
bradio1m.adp and bradio2m.adp }5691k British Radio music
gradio1m.adp and gradio2m.adp } German Radio music (incl Lilli Marlene)

I prefer the Version 1.3 .30 and .50 cal MG sounds, but otherwise the Version 2.0 sounds.

The SND file structure is made of a header part of 7 DWORD (28 bytes total length) followed by waveform data (RAW format in the sense of the program Wave Studio bundled with old SB cards. From the seven header parameters only 4 matter:
#3 - data size in bytes
#4 - sample rate (Hz)
#5 - resolution 8 or 16 for bits
#6 - 1 stereo, 0 mono
By using Paulo Morais' SND2RAW.EXE the header is striped and dumped to screen, and a RAW wave file generated to be edited by some compatible program. After that, using RAW2SND.EXE it is possible to obtain a file usable by EAW. These two DOS programs give some help if executed without parameters.

The EAW.EXE file has not undergone much investigation, but the following are some notes about it. Be VERY CAREFUL if you decide to try editing the EXE file, and MAKE A BACK-UP COPY FIRST.

The location of "the Wall" as found by DOM (in eaw12b.exe)
"The "wall" on the EAW map prevents you from flying to the map extremities. It is coded at bytes 1245FC to 12460B as follows :
00 00 C0 FD / 00 00 40 07 / 00 00 C0 E4 / 00 00 40 E9 (the / are added for clarity only)
00 00 C0 FD is the coordinate for the left side of the wall
00 00 40 07 is the coordinate for the right side
00 00 C0 E4 is the coordinate for the upper side
00 00 40 E9 is the coordinate for the lower side

If you want the wall to fit to the ends of the 640x320 tiles matrix, set these bytes to :
00 00 80 FD / 00 00 80 07 / 00 00 80 E4 / 00 00 80 E9

Setting the bytes to "00 00 C0 FA 00 00 40 0A 00 00 C0 E1 00 00 40 EC", for example, will give you access to the other side of the map. As far as I tried, all values are possible (to be checked ??). Setting all bytes to zero gives nothing good (don't try, it isn’t worth it !.)

The tiles matrix format is coded at bytes 118C20 to 118C25 as:
"80 02 / 00 00 / 40 01" where 80 02 codes for 640 (2x256 + 128) and 40 01 codes for 320.

When you change bytes 118C20-118C21 for something else (larger or smaller value), the result is ugly because the EAW.TM and EAW16.HM structure arrangements do not fit to this new format (the rows of tiles are not aligned). In other words, if you want to change the width of the map, you'll have to set the rows of tiles (EAW.TM) and corresponding elevations (EAW16.HM) accordingly. If you change bytes 118C20-118C25 for "80 02 00 00 80 02", the new matrix will be in the 640x640 tiles format (as I said on the forum, I tried this).

Hence, the result is cleaner than in the previous case : the northern moiety of the map looks normal with the default EAW.TM and EAW16.HM files but the southern part is blank since no corresponding tiles and elevations exist in the default files. To easily create them, just duplicate the whole bytes of EAW.TM at the end of the file to get a "double-sized EAW.TM". The same operation has to be done with EAW16.HM. To see the difference, I filled the new section of the EAW.TM with "C2" sea tiles and the new section of EAW16.HM with 00. Then, set bytes 12460A-12460B to "40 EE" to move the "wall" to the south.

Bytes 118C3C to 118C43 ("00 00 80 FD 00 00 80 E4) contain the coordinates which correspond to the upper left corner of the first tile of the matrix. It looks like a reference.