
SQ* Data File Packer/Unpacker for Jane's WWII Fighters v1.3c
============================================================

What's new in version 1.3c?
===========================
Changed the -a option so that if the file already exists in the archive, it is replaced
with the new file.  Previous versions would either abort (1.3a) or skip the file (1.3b)
in such cases.

What's new in version 1.3b?
===========================
1) Fixed a bug in the pack single file routine which would crash the program when packing
the last record in the archive.


What's new in version 1.3a?
===========================
1) SQzip now allows the user to pack completely new records into an existing archive 
using the -a command-line option.  See the section on "Adding a record into an existing
SQArchive" below for more details.
2) Added a -t command-line option to generate a catalog.dat file for a specified 
SQArchive.  See the section on "Generating a catalog" below for more details.


Preamble
--------
Most of the data used in Jane's WWII Fighters is stored in data archives with the
extender SQ* (presumably standing for "squished"  or something similar).  These SQ 
archives are stored in the WWII Fighters\Data subdirectory.  The complete list of SQ 
files is:

ww2.sqs		object data (bitmaps, 3D models, flight model coefficients, 
                ground object motion coefficients)
terrain.sqs	terrain data (bitmaps, 3D terrain models)
kiosk.sqg	kiosk interface data (captions, descriptions)
museum.sqm      museum data (plane graphics, miscellany)
uibitmaps.sqg   user interface graphics (bitmaps)
voice.sqs       voice data (??)

Each of these data archives contains a number of compressed and encrypted data records.
Since the contents are compressed, they can be neither read nor manipulated by the user.  
In order for the user to access the records, they must first be unpacked from the archive
and stored as files.  Once they have been unpacked, the user can read and/or modify the 
resulting files and then repack them back into the SQfile for use in the game.  This 
unpack/modify/repack process allows the user to customize the game data (graphics, 
flight model, object models, motion coefficients, etc) as they see fit.

Note: unlike some other games, notably EAW, which automaticaly read unpacked data files 
from the game directory if they exist, WWII Fighters requires its data to be stored in 
SQ archives.  The relevant SQ archives must be repacked before any edits/modifications 
will appear in-game.  


Installation
------------
Extract the contents of this WinZip file to your WWII Fighters\Data directory.  Assuming 
the game was installed to the default installation directory, this will be:
	C:\Program Files\Jane's Combat Simulations\WWII Fighters\Data
If you don't know where the WWII Fighters\Data directory is, click on the Start button at 
the bottom-left of your screen, and use the Find, Files or Folders program to search for 
a file called "ww2.sqs".  This file is in the WWII Fighters\Data directory 


Usage
-----
SQzip is a Win32 console application and MUST be run from the command-line (MS-DOS 
prompt).  To run the program, start a DOS session by clicking the Start button at the
bottom left of the screen, then Programs and MS-DOS Prompt.  This will open a DOS
session window.  Now you need to navigate to the WWII Fighters\Data directory to run
the program.  At the command-prompt, which is indicated by the flashing cursor,
move to the WWII Fighters\Data directory by typing the following (including the
double-quotes):

CD "C:\Program Files\Jane's Combat Simulations\WWII Fighters\Data"

(again, this assumes the WWII Fighters\Data directory is in the default location; if
not, use the appropriate directory path instead).  You're now ready to run SQzip.
 
SQzip can be run in three modes: unpack, pack and add.  Unpack writes the contents of 
the  specified SQfile to a directory.  Pack writes the contents of the specified directory 
back into an SQfile.  Add adds a new file into an existing archive.  Running the program in 
these modes is explained below.


Unpacking an SQArchive
----------------------
To unpack the contents of a data archive, use the following syntax:

	SQzip -u <SQfilename> <target directory>
e.g.
	SQzip -u ww2.sqs ww2out

where SQfilename is the name of the SQfile to be unpacked and target directory specifies 
where the unpacked contents are to be written.  If target directory does not exist, it 
will be created.  Both SQfilename and target directory can be specified using absolute or 
relative paths.

The unpack routine creates two book-keeping files in the target directory: header.dat and
catalog.dat.  These files are required by the pack routine and _MUST NOT_  be modified or 
deleted.


Unpacking a single record from an SQArchive
-------------------------------------------
To unpack a single record from a data archive, use the following syntax:

	SQzip -u -f <recordname> <SQfilename> <target directory>
e.g.
	SQzip -u -f JEEP32.BMP ww2.sqs ww2out

where recordname is the name of the record to be extracted from SQfilename and target
directory specifies where the extracted record is to be written.  If target directory
does not exist, it will be created.  Both SQfilename and target directory can be
specified as absolute or relative paths.  Recordname must be specified exactly as it
appears in the SQarchive and is case sensitive.  

The record names will not typically be known to the user until the archive has been
fully unpacked at least once, at which point record names can be viewed in the catalog.dat 
data file.  It is anticipated that this routine will be most useful to those users who
are familiar with the contents of an archive and who wish to quickly extract a particular
record without having to unpack the entire archive. 


Packing an SQArchive
--------------------
To pack the contents of a directory back into an SQArchive, use the following syntax:

	SQzip -p <SQfilename> <source directory>
e.g.
	SQzip -p ww2.sqs ww2out

Note: if SQfilename already exists, it will be overwritten.  If the file exists but is 
read-only, an error message will be displayed and the program will abort.  Both 
SQfilename and source directory can be specified using absolute or relative paths.

The pack routine requires two book-keeping file in the source directory: header.dat and
catalog.dat.  These files are generated by the unpack routine and _MUST NOT_ be modified or 
deleted.  

Before repacking an archive, take a backup of the original just in case something goes wrong.  
Without a backup, the only way to restore a corrupt SQ archive is to uninstall and then 
reinstall the game.  Note: don't store your backups in the WWII Fighters\Data directory 
(i.e. the same directory as the originals); save them instead in a different directory 
(e.g. WWII Fighters\Data\Backups).  The reason for this is that the game seems to be able 
to detect archive backups stored in the original directory, recognize them as the originals 
and use them instead of the correctly named but user-modified SQarchives.  How it does so is 
something of a mystery.


Packing a single record back into an SQArchive
----------------------------------------------
To pack a single record back into an SQArchive, use the following syntax:

	SQzip -p -f <recordname> <SQfilename> <source directory>
e.g.
	SQzip -p -f JEEP32.BMP ww2.sqs ww2out

where SQfilename is the name of an existing SQArchive and source directory is the
directory containing the record to be repacked.  Recordname is the name of the record
in the source directory which is to be compressed and packed back into the archive,
replacing whatever record contents currently exist for that recordname.  The filename
must be the same as the recordname and is case sensitive.

This routine allows the user to quickly pack a single record back into an existing 
SQArchive without having to repack the entire archive.  It is anticipated that this 
routine will be used to repack single records which were extracted from the archive using 
the complementary SQzip -u -f recordname single record unpack routine.  This allows the
user to extract a single record, modify it and then repack it back into the
original archive very quickly, without the overheads of unpacking and repacking the 
entire archive.

See note re: archive backup in the "Packing an SQArchive" section above.


Adding a record into an SQArchive
---------------------------------
To add a new record into an existing SQArchive, use the following syntax:

	SQzip -a -f <recordname> <SQfilename> <source directory>
e.g.
	SQzip -a -f NEWP51_256.BMP ww2.sqs ww2out

where recordname is the name of the new record to add into the archive, SQfilename is the 
name of an existing SQArchive and source directory is the directory containing the new 
record file.  SQzip automatically determines the compression type to use on the file based
on the file's extender.  e.g. J3P files will be compressed into the required binary format
before being packed back into the archive.  If a record with that name already exists in
the archive, SQzip will replace the file [note: this functionality is different in v1.3c than
previous versions; see release notes at the top of this document for details]



Generating a catalog
--------------------
To generate a catalog.dat for an existing SQArchive, use the following syntax:

	SQzip -t <SQfilename> <target directory>
e.g.
	SQzip -t ww2.sqs ww2out

where SQfilename is the name of an existing SQArchive and target directory is where you
want the catalog.dat file to be written.  If target directory does not exist, it will be
created.  The SQArchive must exist; if it does not, an error message will be generated to
screen and SQzip will abort.



Notes
-----
Unpacking one of the SQfiles that comes with the game and then repacking it
without modifying any of the extracted files results in a file which is slightly
smaller than the original.  I'm not entirely sure why this happens, though I
suspect it may be due to different versions of the PKWare Data Compression
Library.  The newer versions may compress more efficiently, resulting in smaller
files.  The decompressed data is the same in all cases though, so there is no
functional difference.


ELB archives
------------
SQzip allows the user to unpack/pack all SQfile types.  The other WII Fighters
data archives are ELB archives, which contain the in-game and interface sound
files.  The ELB archives can be unpacked/packed using either the ELBzip 
utility or the WW2FSoundManager application, both of which are available in the 
Downloads section of http://members.xoom.com/ww2f



Version Notes
=================================================================================================

What's new in version 1.3c?
===========================
Changed the -a option so that if the file already exists in the archive, it is replaced
with the new file.  Previous versions would either abort (1.3a) or skip the file (1.3b)
in such cases.

What's new in version 1.3b?
===========================
1) Fixed a bug in the pack single file routine which would crash the program when packing
the last record in the archive.


What's new in version 1.3a?
===========================
1) SQzip now allows the user to pack completely new records into an existing archive 
using the -a command-line option.  See the section on "Adding a record into an existing
SQArchive" below for more details.
2) Added a -t command-line option to generate a catalog.dat file for a specified 
SQArchive.  See the section on "Generating a catalog" below for more details.


What's new in version 1.2?
===========================
1) SQzip now exports the J3* 3D object model data files in ASCII text
format.  This allows the user to modify the 3D model data and import
the modified models back into the game.
2) Certain bitmaps in the museum.sqm and uibitmaps.sqg archives were 
not being exported properly, resulting in 0 length files.  These problem
has now been fixed.  

However, note that although many of these files have a BMP bitmap extension, they 
may actually be JPEG/JFIF or PNG files.  Some graphics packages, such as Photoshop,
will recognize the correct filetype automatically and open them properly,  while other 
packages, such as Paint Shop Pro, will try to open them as Windows bitmaps and fail 
(in which case, you may need to rename them manually - open the file in a text editor 
and look for the words JFIF or PNG in the first few characters.  If you see the word 
JFIF, rename the file with a JPG extension; if PNG, rename the file with a PNG extension).  
Why the developers chose to give non-bitmap files a BMP extension is unknown.  I had 
considered automatically renaming these files with the appropriate extension but decided 
not to to avoid possible confusion when repacking the archives.
3) Fixed some problems with command-line parameters.
4) Fixed a problem importing the first and last records in an archive.




Notes about Data
=================================================================================================

Image Formats
=============
Images MUST be stored with a bit depth of 8 (256 colours) and at a resolution of
72dpi.  Storing them in any other format will cause the game to crash.  Files with
256 in their name are 256x256x8, files with 128 are 128x128x8 etc.  Not all files 
contained in the archives are used by the game.  See the section of Skinning Objects
below for more details.  The pink areas seen in some bitmaps are transparency masks;
the game interprets the pink colour (R=255;G=0;B=255) as a transparent area and
will "paint" that portion of the texture clear.  Care must be taken to ensure that
these pink areas are not changed when modifying the bitmaps.


Level of Detail
===============
WWII Fighters uses a concept known as "level of detail", which is commonly abbreviated as LOD.
The further away an object from the viewpoint, the less detail can be seen.  Consequently, there
is no point in drawing  an object in the distance with the same amount of detail as an object up 
close.  Objects in the distance can be drawn using smaller bitmaps and 3D object meshes, both of
which result in lower memory use and faster processing.  LOD is implemented in the LST files, which
are discussed below.


Object Files
============
WWII Fighters stores its object model data in files beginning with the extension J3*.  There
are three object model file types:
1) J3T contains terrain model data
2) J3P contains plane and other object model data
3) J3D also contains plane and other object model data
The J3D and J3P data files contain essentially the same information, but structured differently.
Apart from that, I'm not sure there's any meaningful difference between the two.

These object model files contain data such as 3D object meshes (vertices, faces, normals) and
texture mappings.  By changing the data in these files, it is possible to reshape the terrain/object
and/or reassign texture mappings.  The object files used by the various objects are indicated in the
LST files, discussed below  


LST Files
=========
LST files specify which object model files are used for an object at various levels of detail (LOD).
The following text is from the P51.LST file:

5
DAMVERSION P51DAMAGE.J3P
P51S.J3P      180.0
P51L1.J3P     68.0
P51L2.J3P     26.0
P51L3.J3P     17.0
P51L4.J3P     1.4

The first line indicates that the P51 object has 5 LOD levels.  DAMVERSION indicates which object
model to use when the object is damaged.  The remaining lines are object models used at various
distances from the viewpoint.  The number following the object file name is somehow related to the
distance from the viewpoint, though I'm not sure what the numbers actually mean.  The higher the
number, the closer to the viewpoint.  Thus, close ups of the P-51 use the P51S.J3P object model,
while P-51s in the distance use the P51L4.J3P object model.  The best way to see the effect of this
distance/object model mapping is to change a couple lines in the file e.g. change P51L1.J3P to 
P38_1.J3P and P51L3.J3P to P38_3.J3P.  Then fly a P-51 mission, go to an external view and zoom in
and out.  You're still flying the P-51, but the object model displayed changes between the P-51 and
the P-38 depending on zoom distance.


Skinning Objects
================
The various textures used to "skin" (paint) an object are specified in the object model files.
For example, an examination of the P47.lst file shows that the following textures are used to 
paint the P47 object:

P47DAMAGE.J3P:	P47BRDAM, P47BLDAM, P47TLDAM, P47TRDAM
P47S.J3D:	P47BRDTY, P47BLDTY, P47TLDTY, P47TRDTY
P47L1.J3D:	P47-256DTY
etc.       

So, to change the skin for the P-47, you need to modify those textures.  Different objects use
different skinning techniques, so it's best to check what bitmaps are being used first before
attempting any changes.  Note also that the objects may also use portions of other bitmaps e.g.
the texture of the wheels and drop tanks may come from P1COMMON-256 etc.

The game mixes and matches portions of bitmaps when skinning the plane depending on whether
a portion of the plane is damaged.  If that part is undamaged, the game will skin it using the
normal bitmap (as specified in the J3D/P file).  If it is damaged, it will skin it using the
damaged bitmap (as specified in the DAMVERSION object model file).  



WW2ENTDATA.CSV
==============
This file contains data for many (most? all?) of the objects in the game.  The meaning of the fields
is not yet known.  As more information becomes available, it will be reported on the various WWII 
Fighters forums.  The P51AI.DAT file specified for the plane types isn't contained in any of the
SQ archives, so I assume that data must be hardwired into the game itself.


FLT Files
=========
Flight model coefficients for the various plane types.  The meaning of the coefficients is not yet
clear though some progress has been made.  As more information becomes available, it will be reported
on the various WWII Fighters forums.


MMD Files
=========
Motion Model Data files.  Movement coefficients for the various ground objects.  Again, the meaning
of the coefficients is not yet known.


AIRBASES.DAT, AIRBLDGS.DAT, BRIDGES.DAT, BUILDINGS.DAT 
======================================================
Specifies the location, side, composition etc of the various airfields, bridges, towns etc in the
theatre.  By changing this data, it should be possible to customize the towns etc in the theatre
also.  The meaning of the data fields in these files is not completely known.



Structure of Terrain (J3T) files
================================

Vertex::
Field		bytes	Data type	Notes
-----		-----	---------	-----
x		4	float		in metres?; seems to be an offset from the centre of the tile
y		4	float		in metres/feet?  altitude
z		4	float		in metres?; seems to be an offset from the centre of the tile
normalX		4	float		vertex normal x??
normalY		4	float		vertex normal y??
normalZ		4	float		vertex normal z??
textureU	4	float		x-offset into texture 
textureV	4	float		y-offset into texture 

Notes: 
1) Terrain grid has origin in the bottom left corner.  i.e. X001_Y001 is in the southwest
corner of the map, X058_Y030 is in the northeast corner of the map.  
2) "Jane's Terrain" entities describe the tile when seen from a distance.
3) "Jane's Terrain" appears as the first entity in some files, and the last in others.  Object
order doesn't seem to matter.
4) Numbers following the ??: tag have an unknown function and should NOT be changed.  Changing them
during testing corrupted the terrain.sqs archive.
5) Faces MUST have three vertices only (i.e. faces are triangles)
6) The number of vertices and faces for the record can be changed but the numFaces and numVertices 
counters MUST be updated accordingly.  
7) The texture used is given in the Record: field at the start of each record.
8) The texture used for the "Jane's Terrain" entities are stored separately; if the terrain tile is
X001_Y012.J3D, the "Jane's Terrain" entity uses the X001_Y012.BMP bitmap texture.
9) Preliminary testing shows that planes collide properly with modified terrain.  I did run one
test where the collision detection didn't work and the plane flew straight through a steep cliff,
so be aware that it can happen.  I haven't been able to isolate the conditions under which the
collision detection succeeds/fails though.  It seems to work most of the time.
10) Preliminary testing also shows that the game interprets blue-tinted terrain textures as water, 
and generates the appropriate ripple and splash effects for bullet hits and crashes.  However, ground
objects can still move around and planes can still land on these "water" textures.


Structure of Object (J3P) files
===============================

Entity::
Field		bytes	Data type	Notes
-----		-----	---------	-----
name		32 	char 		left justified, null padded
x		4 	float	
y		4	float
z		4	float	
separator	4	float		unused
rotateX		4	float		in radians
rotateY		4	float		in radians
rotateZ		4	float		in radians
ID		4	int		
parent		4	int		ID of immediate parent (if any)
child		4	int		ID of immediate child (if any)
numFaces	2	short		total faces for this entity, including all sub-entities*
numVertices	2	short		total vertices for this entity, including all sub-entities*
flag??		2	short		unknown
cFaces		2	short		cumulative face count
cVertices	2	short		cumulative vertex count
numSubs		2	short		number of sub-entities* of this entity
mode??		2	short		unknown (may indicate draw-mode??)
terminator	2	short		static value -5141 (0xEB 0xEB)

* a sub-entity is a series of vertex/face values

Notes:
1) Names should not be modified (for now), and the colon at the end of names MUST not be
removed.  During testing, I discovered that if any trailing blanks were removed from some 
names (e.g. in P47COCKPIT.J3P) the game would crash during initialization.  This leads me 
to believe that the game looks for specific names.
2) If the number of faces/vertices is changed for a particular entity, great care must be 
taken to ensure that all of the face/vertex counts are updated accordingly, including
the cumulative face/vertext counts.
3) Both J3D and J3P object models use an entity hierarchy.  Vertices are specified relative to
their parent entity, and the parent entity coordinates are specified relative to its parent
entity and so on.  Parent entities often, though not always, have "GRP" at the end of their name.
Since entity coordinates are relative to their parent, changing the x,y,z coordinates of the parent 
entity results in all of its children being translated by the same amount.
4) The Bitmap: field specifies the index of the bitmap used to texure this entity.  A value of -1
indicates no bitmap and the object will be "painted" plain white.


Vertex::
Field		bytes	Data type	Notes
-----		-----	---------	-----
x		4	float		relative to parent
y		4	float		relative to parent
z		4	float		relative to parent
separator	4	float		unused
normalX		4	float		vertex normal X??
normalY		4	float		vertex normal Y??
normalZ		4	float		vertex normal Z??
separator	4	float		unused
textureU	4	float		x-offset into texture (percentage?)
textureV	4	float		y-offset into texture (percentage?)


Face::
Field		bytes	Data type	Notes
-----		-----	---------	-----
a		2	short		face A
b		2	short		face B
c		2	short		face C

Notes:
1) Faces are triangles



Structure of Object (J3D) files
===============================

Vertex::
Field		bytes	Data type	Notes
-----		-----	---------	-----
x		4	float		relative to parent
y		4	float		relative to parent
z		4	float		relative to parent
separator	4	float		unused
normalX		4	float		vertex normal x??
normalY		4	float		vertex normal y??
normalZ		4	float		vertex normal z??
separator	4	float		unused
textureU	4	float		x-offset into texture (percentage?)
textureY	4	float		y-offset into texture (percentage?)

Face::
Field		bytes	Data type	Notes
-----		-----	---------	-----
a		2	short		vertex A
b		2	short		vertex B
c		2	short		vertex C
bitmapIndex	1	unsigned char	index of bitmap used by this face

Notes:
1) bitmapIndex MUST be the index of one of the bitmaps specified later in the file. i.e. if there
are 10 bitmaps, the bitmapIndex values MUST lie in the range 0-9


Entity::
Field		bytes	Data type	Notes
-----		-----	---------	-----
name		32	char	 
x		4	float
y		4	float
z		4	float
separator	4	float
rotateX		4	float		in radians
rotateY		4	float		in radians
rotateZ		4	float		in radians
ID		4	int		
??		4	int		unknown
parent		4	int		ID of immediate parent (if any)
child		4	int		ID of immediate child (if any)
numFaces	2	short		number of faces in this entity
firstFace	2	short		ID of first face
numVertices	2	short		number of vertices in this entory
firstVertex	2	short		ID of first vertex
??		4	int		unknown (binary flag?)
??		4	int		unknown (binary flag?)
??		4	int		unknown (binary flag?)

Notes:
1) The colon at the end of the name MUST not be removed.
2) Both J3D and J3P object models use an entity hierarchy.  Vertices are specified relative to
their parent entity, and the parent entity coordinates are specified relative to its parent
entity and so on.  Parent entities often, though not always, have "GRP" at the end of their name.
Since entity coordinates are relative to their parent, changing the x,y,z coordinates of the parent 
entity results in all of its children being translated by the same amount.



Textures Used By Plane Type
===========================
This information was collated from the plane type LST and J3P/J3D files.
Primary textures cover the body and major subassemblies of the aircraft, including
fuselage, wings, empanage, gear and cockpit. 
Secondary textures are for things like propellers, markings, pilot, ordnance, etc.
Notes are indicated by a number enclosed in parentheses e.g. (1).  The notes themselves
are found at the end of the section in which they occur.


Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
AR 234	AR234_1M.J3P (DAMAGED)		AR234-256DAM.BMP	P2-COMMON128.BMP

	AR234L1.J3P			AR234-256.BMP		P2-COMMON128.BMP	

	AR234L2.J3P			AR234-256.BMP		P2-COMMON128.BMP

	AR234L3.J3P			AR234-064.BMP

	AR234L4.J3P			AR234-064.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
B-17	B17DAMAGE.J3P (DAMAGED)		B17-256DAM.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP
								PROGLARE1.BMP

	B17L1.J3P			B17-256.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP
								PRPGLARE1.BMP

	B17L2.J3P			B17-256.BMP 		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	B17L3.J3P			B17-64.BMP

	B17L4.J3P			B17-64.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
B-24	B24DAMAGE.J3P (DAMAGED)		B24-256DAM.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	B24L1.J3P			B24-256.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	B24L2.J3P			B24-256.BMP		P2-COMMON064.BMP
								PRP4CLR1LO.BMP
								PRPGLARE1.BMP

	B24L3.J3P			B24-064.BMP

	B24L4.J3P			B24-064.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
B-26	B26DAMAGE.J3P (DAMAGED)		B26-25DAM.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	B26L1.J3P			B26-256.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	B26L2.J3P			B26-256.BMP		P2-COMMON128.BMP
								PRPGLARE1.BMP
								PRP4CLR1LO.BMP

	B26L3.J3P			B26-064.BMP

	B26L4.J3P			B26-064.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
C-47	DAMC47.J3P (DAMAGED)		C47_256DAM.BMP		P2-COMMON128.BMP
								PRP3CLR1LO.BMP	

	C47L1.J3P			C47_256.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	C47L2.J3P			C47_128.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	C47L3.J3P			C27_64.BMP		P2-COMMON128.BMP
								PRP4CLR1LO.BMP

	C47L4.J3P			C47_32.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
FW 190	DAMFW190.J3P (DAMAGED)		190-256DAM.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_190.BMP
								PRPGERCLRLO.BMP

	FW190S.J3P			190-256SHP.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_190.BMP
								PRPGERCLRLO.BMP

	FW190L1.J3P			190-256SHP.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP		
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_190.BMP
								PRPGERCLRLO.BMP

	FW190L2.J3P			190-256SHP.BMP		CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP		
								KILLMARK_US.BMP
								SWASTIKA_190.BMP
								PRPGERCLRLO.BMP

	FW190L3.J3P			190-256SHP.BMP		TRANS.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP	
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP

	FW190L4.J3P			190-256SHP.BMP		TRANS.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
HE 111	HE111DAMAGE.J3P (DAMAGED)	HE111-256DAM.BMP	P2-COMMON128.BMP
								PRPGLARE1.BMP
								SHADOW.BMP
								PRPGERCLRLO.BMP

	HE111L1.J3P			HE111-256.BMP		P2-COMMON128.BMP
								PRPGLARE1.BMP
								SHADOW.BMP
								PRPGERCLRLO.BMP

	HE111L2.J3P			HE111-256.BMP		P2-COMMON128.BMP
								PRPGLARE1.BMP
								PRPGERCLRLO.BMP

	HE111L3.J3P			HE111-064.BMP

	HE111L4.J3P			HE111-064.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
JU 88	JU88DAMAGE.J3P (DAMAGED)	JU88-256DAM.BMP		P2-COMMON128.BMP
								PRPGERCLRLO.BMP

	JU88L1.J3P			JU88-256.BMP		P2-COMMON128.BMP
								PRPGERCLRLO.BMP	

	JU88L2.J3P			JU88-256.BMP		P2-COMMON128.BMP
								PRPGLARE1.BMP
								PRPGERCLRLO.BMP	

	JU88L3.J3P			JU88-064.BMP

	JU88L4.J3P			JU88-064.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
ME 109	ME109DAMAGE.J3P (DAMAGED)	109_256DAM.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_109.BMP
								PRPGERCLRLO.BMP

	ME109S.J3P			109_256SHP.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_109.BMP
								PRPGERCLRLO.BMP

	ME109L1.J3P			109_256SHP.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_109.BMP
								PRPGERCLRLO.BMP

	ME109L2.J3P			109_256SHP.BMP		GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_109.BMP

	ME109L3.J3P			109_256SHP.BMP		MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								PRPGERCLRLO.BMP

	ME109L4.J3P			109_256SHP.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
ME 262	ME262_M.J3P (DAMAGED)		ME262BRDAM.BMP		P1COMMON-SPR.BMP
					ME262TRDAM.BMP		CLDTEST2.BMP	
					ME262BLDAM.BMP		GERMPILOT.BMP
					ME262TLDAM.BMP		SWASTIKA_262.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP

	ME262_S.J3P			ME262BRSHP.BMP		P1COMMON-SPR.BMP
					ME262TRSHP.BMP		CLDTEST2.BMP
					ME262BLSHP.BMP		GERMPILOT.BMP
					ME262TLSHP.BMP		SWASTIKA_262.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP

	ME262_1.J3P			ME262-256SHP.BMP	P1COMMON-SPR.BMP
								P1COMMON-SPR-128.BMP
								CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_262.BMP

	ME262_2.J3P			ME262-256SHP.BMP	CLDTEST2.BMP
								GERMPILOT.BMP
								MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								KILLMARK_US.BMP
								SWASTIKA_262.BMP

	ME262_3.J3P			ME262-256SHP.BMP	MARKING_GE06.BMP
								MARKING_GE02.BMP
								MARKING_GE03.BMP
								MARKING_GE04.BMP
								MARKING_GE05.BMP
								MARKING_GE01.BMP
								MARKING_GE07.BMP
								MARKING_GE08.BMP
								MARKING_GE09.BMP
								MARKING_GE10.BMP
								SWASTIKA_262.BMP

	ME262_4.J3P			ME262-256SHP.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
P-38	P38_M.J3P (DAMAGED)		P38BR-256DAM.BMP	P1COMMON-SPR.BMP
					P38BL-256DAM.BMP	CLDTEST2.BMP
					P38TL-256DAM.BMP	KILLMARK_GE.BMP
					P38TR-256DAM.BMP	PRP3CLRLO.BMP
								USPILOT.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P38_S.J3P			P38BR-256SHP.BMP	P1COMMON-SPR.BMP
					P38BL-256SHP.BMP	CLDTEST2.BMP
					P38TL-256SHP.BMP	KILLMARK_GE.BMP
					P38TR-256SHP.BMP	PRP3CLRLO.BMP
								USPILOT.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P38_1.J3P			P38-256SHP.BMP		P1COMMON-SPR.BMP
								P1COMMON-SPR-128.BMP
								USPILOT.BMP
								CLDTEST2.BMP
								KILLMARK_GE.BMP
								PRP3CLRLO.BMP		
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P38_2.J3P			P38-256SHP.BMP		USPILOT.BMP
								CLDTEST2.BMP
								KILLMARK_GE.BMP
								PRP3CLRLO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P38_3.J3P			P38-256SHP.BMP		PRP3CLRLO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P38_4.J3P			P38-256SHP.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
P-47	P47DAMAGE.J3P (DAMAGED)		P47BRDAM.BMP		P1COMMON-SPR.BMP
					P47BLDAM.BMP		PRP4CLR1LO.BMP
					P47TRDAM.BMP		PRPGLARE1.BMP
					P47TLDAM.BMP		USPILOT.BMP
								CLDTEST2.BMP
								KILLMARK_GE.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP	
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P47S.J3D(1)			P47BRDTY.BMP		P1COMMON-SPR.BMP
					P47BLDTY.BMP		PRP4CLR1LO.BMP
					P47TLDTY.BMP		PRPGLARE1.BMP
					P47TRDTY.BMP		CLDTEST2.BMP
								USPILOT.BMP
								KILLMARK_GE.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P47L1.J3D(1)			P47-256DTY.BMP		P1COMMON-SPR.BMP
								TRANS.BMP
								PRP4CLR1LO.BMP
								PRPGLARE1.BMP
								USPILOT.BMP
								KILLMARK_GE.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P47L2.J3D(1)			P47-256DTY.BMP		P1COMMON-SPR.BMP
								TRANS.BMP
								PRP4CLR1LO.BMP	
								USPILOT.BMP		
								KILLMARK_GE.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P47L3.J3P			P47-256DTY.BMP		MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P47L4.J3P			P47-64DTY.BMP

Notes:
(1) File is J3D, not J3P




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
P-51	P51DAMAGE.J3P (DAMAGED)		P51_256DAM.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								P51MAINTIRE.BMP
								P51BAY.BMP	
								PRPGLARE1.BMP
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P51S.J3P			P51_256SHP.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								P51MAINTIRE.BMP
								P51BAY.BMP	
								PRPGLARE1.BMP
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P51L1.J3P			P51_256SHP.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								P51MAINTIRE.BMP
								P51BAY.BMP	
								PRPGLARE1.BMP
								PRP4CLR1LO.BMP
								MARKING_US01.BMP	
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P51L2.J3P			P51_256SHP.BMP		CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								P51BAY.BMP	
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P51L3.J3P			P51_256SHP.BMP		TRANS.BMP	
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP	
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	P51L4.J3P			P51_256SHP.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
SPIT	SPITFIREDAMAGE.J3P (DAMAGED)	SPIT_256DAM.BMP		P51_256SHP.BMP(1)
								P1COMMON-SPR.BMP
								CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	SPITFIRES.J3P			SPIT_256SHP.BMP		P51_256SHP.BMP(1)
								P1COMMON-SPR.BMP
								CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								PRP4CLR1LO.BMP		
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	SPITFIREL1.J3P			SPIT_256SHP.BMP		P1COMMON-SPR.BMP
								CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	SPITFIREL2.J3P			SPIT_256SHP.BMP		CLDTEST2.BMP	
								USPILOT.BMP
								KILLMARK_GE.BMP
								TRANS.BMP	
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	SPITFIREL3.J3P			SPIT_256SHP.BMP		TRANS.BMP	
								PRP4CLR1LO.BMP
								MARKING_US01.BMP
								MARKING_US02.BMP
								MARKING_US03.BMP
								MARKING_US04.BMP
								MARKING_US05.BMP
								MARKING_US06.BMP
								MARKING_US07.BMP
								MARKING_US08.BMP
								MARKING_US09.BMP
								MARKING_US10.BMP

	SPITFIREL4.J3P			SPIT_256SHP.BMP

Notes:
(1) Spitfire seems to use engine compartment texture from P51_256SHP.BMP




Plane	LOD File			Primary Textures	Secondary Textures
-------------------------------------------------------------------------------------
V1	V1DAMAGE.J3P (DAMAGED)		V1256DAM.BMP

	V1L1.J3P			V1256B.BMP

	V1L2.J3P			V1256B.BMP






Final Words
===========
If you have any questions or comments, leave a message on the message board
at http://ww2f.dogfighter.com and I'll try to answer as soon as possible.


Enjoy!


S.
