PACIFIC WAR AIRCRAFT HEX-EDITING DATA                            5-20-93

PURPOSE:  The information provided enables users to change aircraft data
using DOS Debug.  Suggestions are also provided on how to create new aircraft
and impliment their production.

WARNING:  Make backup copies of all files being altered.  Use of this infor-
mation is at your own risk.  I assume no responsibility for modifications
which you make to your files.  SSI neither supports nor appreciates 
hex-editing of their program files, so don't ask them for help.

LOCATION OF DATA:  Aircraft data is found in the following files:
                   SAVE?. OBC41. OBC42. OBSOL. OBPHIL. and OBMARI.

ADDRESSES OF DATA:

                                                                   A/C NAME
                                                D                  ADDRESSES->
                                                U       A
                M                               R       V
                A                               A       A
                N       C                       B       I
                U       A               R       I       L
T       R       E       N       L       A       L       A       C       P
Y       O       V       N       O       N       I       B       O       O          START OF
P       L       E       O       A       G       T       L       S       O          AIRCRAFT
E       E       R       N       D       E       Y       E       T       L          NAME                                                                       

F2A     C145    C1A9    C20D    C271    C2D5    C339    C39D    C401    C466-7     BBDA                              
F4F     C146    C1AA    C20E    C272    C2D6    C33A    C39E    C402    C468-9     BBE8
F2M     C147    C1AB    C20F    C273    C2D7    C33B    C39F    C403    C46A-B     BBF6
F4U     C148    C1AC    C210    C274    C2D8    C33C    C3A0    C404    C46C-D     BC04
F6F     C149    C1AD    C211    C275    C2D9    C33D    C3A1    C405    C46E-F     BC12
GLADTR  C14A    C1AE    C212    C276    C2DA    C33E    C3A2    C406    C470-1     BC20
FULMAR  C14B    C1AF    C213    C277    C2DB    C33F    C3A3    C407    C472-3     BC2E
SEAFIR  C14C    C1B0    C214    C278    C2DC    C340    C3A4    C408    C474-5     BC3A
SB2U    C14D    C1B1    C215    C279    C2DD    C341    C3A5    C409    C476-7     BC4A
SBD     C14E    C1B2    C216    C27A    C2DE    C342    C3A6    C40A    C478-9     BC58
SB2C    C14F    C1B3    C217    C27B    C2DF    C343    C3A7    C40B    C47A-B     BC66
TBD     C150    C1B4    C218    C27C    C2E0    C344    C3A8    C40C    C47C-D     BC74
TBF     C151    C1B5    C219    C27D    C2E1    C345    C3A9    C40D    C47E-F     BC84
TBM     C152    C1B6    C21A    C27E    C2E2    C346    C3AA    C40E    C480-1     BC90
SWDFSH  C153    C1B7    C21B    C27F    C2E3    C347    C3AB    C40F    C482-3     BC9E
ALBCRE  C154    C1B8    C21C    C280    C2E4    C348    C3AC    C410    C484-5     BCAC
BRRCDA  C155    C1B9    C21D    C281    C2E5    C349    C3AD    C411    C486-7     BCBA
FIRFLY  C156    C1BA    C21E    C282    C2E6    C34A    C3AE    C412    C488-9     BCC8
P-36    C157    C1BB    C21F    C283    C2E7    C34B    C3AF    C413    C48A-B     BCD6
P-39    C158    C1BC    C220    C284    C2E8    C34C    C3B0    C414    C48C-D     BCE4
P-40    C159    C1BD    C221    C285    C2E9    C34D    C3B1    C415    C48E-F     BCF4
P-38F   C15A    C1BE    C222    C286    C2EA    C34E    C3B2    C416    C490-1     BD00
P-38J   C15B    C1BF    C223    C287    C2EB    C34F    C3B3    C417    C492-3     BD0E
P-47    C15C    C1C0    C224    C288    C2EC    C350    C3B4    C418    C494-5     BD1C
P-51    C15D    C1C1    C225    C289    C2ED    C351    C3B5    C419    C496-7     BD2A
*       *       *       *       *       *       *       *       *       *          *
CA-3    C15F    C1C3    C227    C28B    C2EF    C353    C3B7    C41B    C49A-B     BD46
CA-12   C160    C1C4    C228    C28C    C2F0    C354    C3B8    C41C    C49C-D     BD54
HURRI   C161    C1C5    C229    C28D    C2F1    C355    C3B9    C41D    C49E-F     BD62
SPIT    C162    C1C6    C22A    C28E    C2F2    C356    C3BA    C41E    C4A0-1     BD70
BEAFTR  C163    C1C7    C22B    C28F    C2F3    C357    C3BB    C41F    C4A2-3     BD7E
BLNHM   C164    C1C8    C22C    C290    C2F4    C358    C3BC    C420    C4A4-5     BD8C
BEFORT  C165    C1C9    C22D    C291    C2F5    C359    C3BD    C421    C4A6-7     BD9A
WIMPEY  C166    C1CA    C22E    C292    C2F6    C35A    C3BE    C422    C4A8-9     BDA8
VLDBST  C167    C1CB    C22F    C293    C2F7    C35B    C3BF    C423    C4AA-B     BDB6
VNGNCE  C168    C1CC    C230    C294    C2F8    C35C    C3C0    C424    C4AC-D     BDC4
B-18    C169    C1CD    C231    C295    C2F9    C35D    C3C1    C425    C4AE-F     BDD2
A-20    C16A    C1CE    C232    C296    C2FA    C35E    C3C2    C426    C4B0-1     BDE0
A-26    C16B    C1CF    C233    C297    C2FB    C35F    C3C3    C427    C4B2-3     BDEE
B-25    C16C    C1D0    C234    C298    C2FC    C360    C3C4    C428    C4B4-5     BDFC
B-26    C16D    C1D1    C235    C299    C2FD    C361    C3C5    C429    C4B6-7     BE0A
B-17    C16E    C1D2    C236    C29A    C2FE    C362    C3C6    C42A    C4B8-9     BE18
B-24    C16F    C1D3    C237    C29B    C2FF    C363    C3C7    C42B    C4BA-B     BE26
B-29    C170    C1D4    C238    C29C    C300    C364    C3C8    C42C    C4BC-D     BE34
SDRLND  C171    C1D5    C239    C29D    C301    C365    C3C9    C42D    C4BE-F     BE42
HUDSON  C172    C1D6    C23A    C29E    C302    C366    C3CA    C42E    C4C0-1     BE50
PBY     C173    C1D7    C23B    C29F    C303    C367    C3CB    C42F    C4C2-3     BE5E
C-47    C174    C1D8    C23C    C2A0    C304    C368    C3CC    C430    C4C4-5     BE6C
DH-84   C175    C1D9    C23D    C2A1    C305    C369    C3CD    C431    C4C6-7     BE7A
BLN IF  C176    C1DA    C23E    C2A2    C306    C36A    C3CE    C432    C4C8-9     BE88
MOSQTO  C177    C1DB    C23F    C2A3    C307    C36B    C3CF    C433    C4CA-B     BE96
P-61    C178    C1DC    C240    C2A4    C308    C36C    C3D0    C434    C4CC-D     BEA4
MARTIN  C179    C1DD    C241    C2A5    C309    C36D    C3D1    C435    C4CE-F     BEB2
*       *        *      *       *       *       *       *       *       *          *
A5M     C181    C1E5    C249    C2AD    C311    C375    C3D9    C43D    C4DE-F     BF22
A6M2    C182    C1E6    C24A    C2AE    C312    C376    C3DA    C43E    C4E0-1     BF30
A6M5    C183    C1E7    C24B    C2AF    C313    C377    C3DB    C43F    C4E2-3     BF3E
A6M8    C184    C1E8    C24C    C2B0    C314    C378    C3DC    C440    C4E4-5     BF4C
D3A     C185    C1E9    C24D    C2B1    C315    C379    C3DD    C441    C4E6-7     BF5A
D4Y     C186    C1EA    C24E    C2B2    C316    C37A    C3DE    C442    C4E8-9     BF68
B5N     C187    C1EB    C24F    C2B3    C317    C37B    C3DF    C443    C4EA-B     BF76
B6N     C188    C1EC    C250    C2B4    C318    C37C    C3E0    C444    C4EC-D     BF84
B7A     C189    C1ED    C251    C2B5    C319    C37D    C3E1    C445    C4EE-F     BF92
KI27    C18A    C1EE    C252    C2B6    C31A    C37E    C3E2    C446    C4F0-1     BFA0
KI43I   C18B    C1EF    C253    C2B7    C31B    C37F    C3E3    C447    C4F2-3     BFAE
KI44    C18C    C1F0    C254    C2B8    C31C    C380    C3E4    C448    C4F4-5     BFBC
KI61    C18D    C1F1    C255    C2B9    C31D    C381    C3E5    C449    C4F6-7     BFCA
KI84    C18E    C1F2    C256    C2BA    C31E    C382    C3E6    C44A    C4F8-9     BFD8
NIK2    C18F    C1F3    C257    C2BB    C31F    C383    C3E7    C44B    C4FA-B     BFE6
J2M     C190    C1F4    C258    C2BC    C320    C384    C3E8    C44C    C4FC-D     BFF4
KI45    C191    C1F5    C259    C2BD    C321    C385    C3E9    C44D    C4FE-F     C002
J1N1    C192    C1F6    C25A    C2BE    C322    C386    C3EA    C44E    C500-1     C010
KI102   C193    C1F7    C25B    C2BF    C323    C387    C3EB    C44F    C502-3     C01E
KI43II  C194    C1F8    C25C    C2C0    C324    C388    C3EC    C450    C504-5     C02C
KI32    C195    C1F9    C25D    C2C1    C325    C389    C3ED    C451    C506-7     C03A
KI51    C196    C1FA    C25E    C2C2    C326    C38A    C3EE    C452    C508-9     C048
KI48    C197    C1FB    C25F    C2C3    C327    C38B    C3EF    C453    C50A-B     C056
KI21    C198    C1FC    C260    C2C4    C328    C38C    C3F0    C454    C50C-D     C064
KI49    C199    C1FD    C261    C2C5    C329    C38D    C3F1    C455    C50E-F     C072
KI67    C19A    C1FE    C262    C2C6    C32A    C38E    C3F2    C456    C510-1     C080
G3M     C19B    C1FF    C263    C2C7    C32B    C38F    C3F3    C457    C512-3     C08E
G4M     C19C    C200    C264    C2C8    C32C    C390    C3F4    C458    C514-5     C09C
P1Y     C19D    C201    C265    C2C9    C32D    C391    C3F5    C459    C516-7     C0AA
*       *       *       *       *       *       *       *       *       *          *
KI46    C1A2    C206    C26A    C2CE    C332    C396    C3FA    C45E    C520-1     C0F0
H6K     C1A3    C207    C26B    C2CF    C333    C397    C3FB    C45F    C522-3     C0FE
H8K     C1A4    C208    C26C    C2D0    C334    C398    C3FC    C460    C524-5     C10C
KI54    C1A5    C209    C26D    C2D1    C335    C399    C3FD    C461    C526-7     C11A
KI57    C1A6    C210    C26E    C2D2    C336    C39A    C3FE    C462    C528-9     C128

DEFINITION OF DATA:

ROLE: (IN HEX)  00 FIGHTER
                01 FIGHTER-BOMBER
                02 DIVE-BOMBER            PLUG THESE VALUES INTO LISTED
                03 TORPEDO-BOMBER         ADDRESS TO CHANGE A/C ROLES
                04 TACTICAL BOMBER        
                05 HEAVY BOMBER
                06 TRANSPORT
                07 PATROL

MANUEVER 
CANNON       
LOAD                  CONVERT DESIRED VALUE INTO HEX AND PLUG IT INTO
RANGE                 CORRESPONDING ADDRESS
DURABILITY   
COST             

AVAILABILITY:  VALUES IN THESE LOCATIONS (AFTER BEING CONVERTED TO DECIMAL)
               ARE THE NUMBER OF WEEKS FROM JANUARY 1, 1942 
               BEFORE THE AIRCRAFT IS AVAILABLE FOR PRODUCTION. 
               EXAMPLE:  P-51 AVAILABILTY ADDRESS C3B5 HAS A VALUE OF 84
               WHICH IS 130 DECIMAL.  130 WEEKS DIVIDED BY 52 = 2 YEARS
               26 WEEKS FROM JAN '42 MAKES THE P-51 AVAILABLE IN JUNE '44.

               A VALUE OF 00 INDICATES A/C IS AVAILABLE IN DECEMBER '41.


POOL:  INDICATES NUMBER OF AIRCRAFT REPLACEMENTS AVAILABLE.  ANNOTATION
       INDICATES TWO ADDRESSES IN HIGH BIT - LOW BIT FORMAT ie IN OBC41. 
       THE F2A STARTS WITH 200 AIRCRAFT IN RESERVE.  ADDRESS C466 AND C467 
       READ C8 00 RESPECTIVILY.  REVERSE THE ORDER AND PUT TOGETHER TO READ
       00C8 OR 200.

HOW TO EDIT USING DEBUG:

1. I do not recommend editing the order of battle files, so if you want to
edit data, start the scenario you want to play with the BOTH HUMAN option
and saveA (or whatever save letter you want).  Perform desired editing and 
start saved gamed playing whatever side you want.  For the following examples
I assume you have utilised saveA.

2. Ensure DEBUG is in the currently path or copy DEBUG.EXE directly into
your Pacific War directory.

3. Go into your Pacific War directory and type debug saveA <return>
at the > prompt.  You'll get a new prompt ( - ) confirming you are in DEBUG.

4. Determine the address of the data you wish to change from the table above
and type e followed by the address at the - prompt and <return>.  The address 
and the current byte value will be displayed. (looks like XXXX:yyyy zz.  where 
XXXX can be ignored, yyyy is the address, and zz. is the hex value at that
address) Type in the new byte value you want following the period (.) 
and <return>.

5. At the - prompt, type w <return> to save the new value to your saveA file.

6. Type quit and <return> to get out of debug.

7. See your DOS manual for a more detailed explanation of the use of DEBUG.

EXAMPLE:  You want to decrease the range of the G4M Betty from 9 to 6 so that
units so equipped will only attack targets within range of escorting A6M2
Zero fighters (which have a range of 6).  The table shows that the byte 
controlling the G4M range is C32C.  The editing process could look like
this:

c:>path=c:\dos <return>
c:>cd\PACWAR <return>
c:PACWAR>
c:PACWAR>debug savea <return>     (start debug)
-e c32c <return>          (tells debug to edit HEX c32c)
0A82:C32C  09.  (type 06, the new range, following the 09. so the whole
line will look like: 0A82:C32C 09.06 and <return>)
-w <return>               (tells debug to saves edit to disk)
WRITING XXXX BYTES  (this is displayed as debug writes the new data to disk)
-quit <return>            (if you want to get out of debug)
c:PACWAR>                 (debug returns you to your PW directory)

Clear as mud, eh?  Note that multiple edit (e) commands can be performed
before saving (w).  And of course all values must be in hex.

                                                                                                                                                                                                                                                               
CREATING NEW AIRCRAFT

A limited number of new aircraft types can be created by editing not only the
performance data but also by editing the existing aircraft name into a new
aircraft name and by coverting existing factories to this new type.  The 
reason the number is limited is because the process requires using existing 
aircraft "space" in the data array.  Using the"space" eliminates the existing 
aircraft, so one must be sure that no aircraft data and name being edited are 
currently in use.  If they are, they will become the new aircraft.  Example:  
You want to bring the F8F Bearcat into production. If you edit the FM2 Wildcat 
data to that of the F8F, all FM2 units instantly become F8F's.

This is further complicated by the program's automatic upgrading of air units 
and factories.  If you choose to use the F2A Buffalo "space" for the F8F, the
program will automatically "upgrade" the factories and the air units
to F4F Wildcats.  Of course, if you are using ALT-N with version 1.x10 or 1.1
you don't have to contend with this.  On the other hand, it means you have to
have human control of the other sides factories, too.

The way around this is only to use what I call dead-end aircraft types
for conversion.  These are the aircraft factories and types which the 
program will not upgrade.  There are plenty to use for the Allies.  The
Japanese are much more limited.  These are most of the dead-end aircraft types
I have found and would consider using:

ALLIED                  JAPANESE

Blenheim IF             Ki-43 II
B18                     J1N1
Martin 139              Ki-51                   *Indicates can be used
Ca-12                   Ki-57                    for carrier-based a/c
Vildebeast              B6N*~
FM2*                    A6M5*~                  ~Indicates dependent on
Barracuda*              Ki-61~                   factory location
Firefly*
Seafire*
Spitfire

Of course, high performance late-war aircraft which are the end product of
continued factory upgrade (P-38J, P-47, P-51, Ki-84, Ki-102, B7A, etc) could 
be used, but implimentation would be unrealistic because of their being in use.  
IMPORTANT: only existing carrier-based aircraft can be used to make new 
carrier planes. Whether a plane can be carrier-based seems to be controlled 
by its position in the Data Array.  Note the first 18 Allied a/c types and the 
first 9 Japanese aircraft types are CV-based.

Also note that I haven't figured out how to change the plane symbology yet.
Thus if you make a new fighter using a bomber's space in the array the game 
symbology will look like the bomber you replaced (remember the a/c role is 
what controls how a unit acts)

PROCESS SUMMARY:
1.  Determine which dead-end plane you are going to edit over.  Make sure
none are currently assigned to existing air units and no factories are
producing them.  New CV based A/C must use CV type dead-end palnes.
2.  Calculate performance data of the new a/c and convert to hex.
3.  Edit over the existing a/c's name with the new a/c's name.
4.  Zero out the old a/c's pool (no cheating by coverting old into new)
5.  Edit the new planes data over the old data.  (if you want to put a/c into
immediate production, set availability value to 00)
6.  Go back into the game and convert existing factories to the new type, wait
for the tool-up delay, and when production starts and the pool builds, convert
existing units to the new type.


OVERWRITING OLD AIRCRAFT NAMES:

This is real easy if you are using a hex-editor like Norton DISKEDIT (just use
the FIND command), but can be done with a little effort using DEBUG.  To the 
right of the the POOL address in the a/c data, I have listed the 1st byte of 
the aircraft's name.  Start debug normally for the file you are altering and 
at the  -  prompt type d XXXX <return> where XXXX is the listed 1st name byte 
address.  You will see a dump of the file showing the hex values and the ascii 
symbology you can read to the right. Determine each old name letters' hex 
address, covert the new names letters to hex and use the "e" command to edit 
the file as described above.

Example:  Edit FM2 Wildcat to F8F Bearcat

c:pacwar>debug savea <return>
-d BBF6 <return>      (the following will be displayed:

XXXX:BBF0                   46 4d - 32 20 57 69 6c 64 63 61  cat.".FM2 Wildca
XXXX:BC00 74 00 fc 16 46 34 55 20 - 43 6f 72 73 61 69 72 00  t.".F4U Corsair.

use the 'e' command to edit each individual byte of "FM2 Wildcat"  After 
enter the the first replacement value, use  <space bar> instead of <return>
and DEBUG will move you to the next byte to edit.  What you will end up with
will look like this:
-e BBF6 <return>
XXXX:BBF6 46.46 4d.38 32.46 20.20 57.42 69.65 6c.61 64.72 63.63 61.61
XXXX:BBc0 74.74 <return>

Be sure to save with "w".  Use the dump "d" to see the results:
-d bbf6
XXXX:BBf0                   46 38 - 46 20 42 65 61 72 63 61  cat.".F8F Bearca
XXXX:BC00 74 00 FC 16 46 34 55 20 - 43 6F 72 73 61 69 72 00  t.".F4U Corsair.

This example was easy because the name lengths are the same.  If the name you 
put in is shorter, you have to add filler.  The first filler after the a/c
name is 00.  The filler prior to the next name is 16 (hex).  For in-between,
work backwords from the 16, filling back up to the 00 with whatever is needed.
What is used for "what is needed?"  The longest filler I spotted was following
Hudson 00 15 a4 0f f9 fc 16.  Note the 00 and the 16.  And of course, the
name use cannot be longer than 14 characters, in which case no filler would
be needed.  Also note that spaces between word in the name are always 20 (Hex)

After doing the name, the role, manuever, cannon, load, etc is easy - just
edit the addresses in the table for the FM2.  How 'hot' you decide to make
the planes is up to you. 

My rationale for making changes to the aircraft data array was to make the
wargame more historical and to give the player more latitude regarding
actual a/c use and to add new planes for extended wars. For example:

ROLE - The Ki-32 and Ki-51 were designed to be operated from forward airfields
in support of Army operations.  As TAC-BOMBERS they are limited to level 4
fields -scarce in China.  So change their role to 02 (dive-bomber) and they
can operate out of the small fields.  Think that aircraft losses are unreal-
istically high?  Change all fighters (00) to fighter-bombers (01) and cut out
that extra post-escort fighter sweep.  Think that the Beaufighter should have
been used as a night-fighter like it was in Europe?  Change it to a fighter
and put on night ops.

MANUEVERABILITY - This is an area of great subjectivity, but I feel many 
planes are over or under-rated.  For example, the KI-84 was as fast as a P-51
and more manueverable, I rate it 24.  All the A6m and Ki-43 types are too 
close to the better-late war aircraft, so I lower them 1.  The F4U is almost 
as fast as a P-47 and definately more manueverable, so rate it a 23 also.
I could go on, but you see my rational.

CANNON - Upgrade the Ki-44 and Ki-61 to 12 in September 1943 to show actual
improvements in armanents.  Drop the P-39 to 8 to show that the 37mm didn't
work.  Drop the the P-51 to 8 during 1944 to represent the P-51B actually 
used.

LOAD - The Ki-44 wasn't designed to carry bombs: load=00.  Tired of Zero's
attacking TF's only to get blasted by AA while strafing, sling a 250 kg bomb 
(load=06) onto give them a reason for dying.

RANGE - A real problem in PACWAR.  Tired of G4M's getting mauled by U.S. CAP
because they attack without escort?  Reduce their range to 4-6, depending on
the primary escort fighter range.  I know, then you cannot attack shipping at
Guadalcanal from Rabaul like was historically done. It's a compromise until
Gary changes the .EXE file (if he does).  Likewise, maybe the B-25 should
have a range of 6 so it can attack shipping at Rabaul from Dobodura (Buna)
like what happened in October 1943.  And it is frustrating not to have a CAP
only command to stop wasteful offensive operations, chopping the range of
certain planes to 1 can simulate it.  Enable the Japanese to use their 
superior CV a/c range by cutting the SBD range to 02 (and it really couldn't
carry a 1000 lb bomb even that far!).

DURABILITY - Really inaccurate to have the in-line engined P-51 be rated at
33 while the heavier and radial-engined F6F and F4U at rated at 26 and 27.
Drop the P-51 to 28 and increase the F6F and F4U to 30 and 31.  The Spitfire
should also be dropped to 24 and many of the late-war Japanese planes should
be raised by 4-6 points depending on one's interpretations.

AVAILABILITY - Test some what-if's about better planning by the Japanese.

COST - Help make a shortage of Allied aircraft like there really was.  It's
hard to imagine General Kenney begging for planes based on this game.  
Doubling allied aircraft costs works about right, but does seem rather harsh. 
Compromise:  Increase P-38's to 6, all other allied a/c by 1.

These are just a few of the changes I feel make the game more realistic.
And adding the F7F, F8F, AD-1, P-80, J7W, Kikka, and the Nakajima G10n1
Fugaku (6 engine heavy bomber designed to bomb the U.S. from Japan) is 
a lot of fun and more realistic in the 1945-1948 time frame.

Let me know of any corrections or new information.  I am assembling more
information which allows editing ALL information in PACWAR - even the
stuff PWREPORT doesn't allow one to edit.  My goal is to produce a 1930's war 
scenario. If anyone is interested or has any suggestions, please let me know.

If anyone would like me to edit a save file for them, I'm willing to help.
(yeah, I'll make the Shinano and her sister Kii available in 1942 and put
100 points of oil resources in Kyushu so you don't have that nagging oil 
shortage problem, and CV-based Kikkas, but no I haven't got any Japanese
A-bombs, <g>)

Nicholas Bell
72162,1667














