-----------------------------------------------------------------------------
File name:	ffehack.txt		Revision date:	2000.09.12
					Revision start:	2000.09.12
Revised by:	Ronald Andersson	Email:	dlanor@ettnet.se
Created by:	George Hooper		Email:	hooperh@ix.netcom.com
-----------------------------------------------------------------------------
Format:		Normal Ascii with 78 char line limit and 8 char tab spacing.
Origin:		"add1.doc" and "addr2.doc" from the archive "ffehack.zip".
-----------------------------------------------------------------------------
Revisions made:
Converted text from 'windows Words' to normal text format respecting 80
characters limit on line length (for readability in most resolutions).
In switching from the 160 char format it was also necessary to move some
text around, so as to make contiguous blocks of information lines that
belong together.  (NB: Even so, some few lines still exceed 80 chars)
I have also replaced large blocks of empty lines with visible separation
lines, to make it easier to take in the text as separate sections.
Finally, I have altered all bit numbering from the non-standard mode used
by the original file, to standard assembly mode. (MSB = Bit 7, LSB = Bit 0)
-----------------------------------------------------------------------------
Guide to Hacking Frontier: First Encounters
by George Hooper
-----------------------------------------------------------------------------
Disclaimer

   This information is presented free without compensation of any kind by the
   author of this guide.  It represents the views of the author, and is not
   connected in any way with the authors of the game, or to any of the
   companies which produced or distributed the game.  None of the
   aforementioned persons or companies are responsible for the use of this
   information by any user, or any loss by any user as a result of using the
   information contained in this guide.
-----------------------------------------------------------------------------
	Hacking

   Hacking is the term used to describe the direct editing of a computer file
   to produce different results in the execution of that file. It has also
   been used in the news media to describe accessing remote computer sites
   via illegal means. Thus a negative connotation has been attached to the
   word, and this even filters down to the hacking of a game file, which is
   also described as cheating in some circles.

   In the professional computing world, a hacker is a 'good' guy or gal with
   a respectable talent. In any profession, desire for knowledge, and hard
   work, are the tools to be successful.  If you want to be an auto mechanic,
   you take a course in the subject where you will take apart an engine. Then
   learn all you can, make some modifications, put it back together, and see
   how it runs.  So by “hacking” an engine, you become a good mechanic. This
   scenario applies to all endeavors, including the computing industry.  Rest
   assured that the best programmers in the world are also very good at
   hacking.

   In the case of Frontier: First Encounters, we will be hacking the
   FIRSTENC.EXE file. However, the basic hacking information contained in
   this guide will also apply to many other games as well.

   Frontier: First Encounters is programmed in several computer languages
   including assembly and C++. Computers in their most basic form use voltage
   levels in a circuit.  For a given computer, the number one could be
   represented by 5 VDC, and the number zero would equal 0 VDC.  Humans have
   a lot of difficulty in conversing with these numbers and voltages, so
   computer languages were developed to translate human ideas into voltages
   that the computer understands.

   Assembly language is the lowest form of translation from human to
   computer. It basically deals with ones and zeroes, which the computer
   converts to voltages. It is difficult to understand by the programmer, so
   assembly editors with special routines are used to produce the raw
   assembly language file, called the object file. During this process a
   file, called the source code, is generated by the programmer. This file
   has all the tags and special routines identified in plain english that a
   programmer can understand. The programmer works with the source code file
   to make the program, then uses the information in the source code to
   compile the object code file that the computer will run.

   So why all this bother for an object code file? The answer is speed! The
   object file will execute faster than any other type of file one can make,
   and that is essential to the efficient operation of any program.

   For our purpose, we do not have the source code file, so we will need a
   program to edit the FIRSTENC.EXE object file. This is accomplished by
   loading the FIRSTENC.EXE file into a hex editor, which is supplied with
   this guide. Hex editors are widely available as freeware and shareware on
   BBSs and the Internet. They are similar to a word processor used to edit a
   text file. By editing, you can access the coding at specific addresses in
   the file.
-----------------------------------------------------------------------------
	Number Crunching

 We will be changing numbers, call code or bytes, at specific addresses in
 the FIRSTENC.EXE file using hexadecimal numerical entries. This sounds
 pretty fancy, but it is actually fairly simple.  The following list shows
 some comparision values for decimal, hexadecimal, and binary numbers.

 	Dec	Hex	Bin	Dec	Hex	Bin	Dec	Hex	Bin
	0	00	  0	 8	08	1000	16	10	10000
	1	01	  1	 9	09	1001	17	11	10001
	2	02	 10	10	0A	1010	18	12	10010
	3	03	 11	11	0B	1011	19	13	10011
	4	04	100	12	0C	1100	20	14	10100
	5	05	101	13	0D	1101	21	15	10101
	6	06	110	14	0E	1110	22	16	10110
	7	07	111	15	0F	1111	23	17	10111
   Notice the patterns within the numbers.  Decimal numbers, the ones we use
   every day, repeat their pattern every 10 units.  Hexadecimal repeats every
   16 units.  And the Binary repeats every 4 units.

   Also note the units of display. Decimal numbers increment from 0 to 9,
   then add a 1 in front of a 0 for the next higher unit.  Hexadecimal
   increments from 00 to 0F, then adds a 1 in front of a 0 for the next
   higher unit.  Think of binary as a series of switches being turned on and
   off with 1 = on  and  0 = off.  When the right side two switches are on,
   the next higher number is added by turning them off, and adding a 1 to the
   front of the unit (11 to 100).  Replace the switches with a voltage value,
   and you can now understand how a computer stores a numerical value.

   Each of the hex numbers in the above table is called a byte. Put two of
   them together, for example 12  0B, and you have a 2 byte code. We will
   deal with 1, 2, 3, and 4 byte codes.  Each of the ones and zeros in a
   binary number is called a bit. We will use 8 bit binary numbers, which has
   a total of eight ones and zeros, for example 1100101.

   Decimal is what humans use to understand mathematics.  Binary is what
   computers use to run calculations.  Hexadecimal is a go-between that
   humans use to program numbers into a computer in such a way that the
   computer can easily process it.   All you have to do is convert the
   decimal number to a hex number, and enter it into the code. As the numbers
   get larger, it can be difficult to convert manually as per the following
   examples:

	100 =  64	1000 = 03 E8	10,000 = 27 10	16,777,215 = FF FF FF

   The easiest solution is to purchase an inexpensive calculator (or spend a
   little more and get the Hewlett Packard 42S, the one the pros use) which
   will convert between decimal, hexadecimal, and binary.  You then input
   your 1000 tons of furs and get the hex value of 03 E8. Simple.

  Well, not quite. The units 03 and E8 are called most and least significant
  bytes respectively, and a specific order is required to enter then into the
  address of the file. The reason for this is that humans read numbers
  starting with the largest value to the smallest value, but computers read
  them starting with the smallest value.  For a 2 byte code, convert a 1 byte
  hex value to a 2 byte hex value, then reverse the pair of bytes. For a 4
  byte code, convert the 1, 2, or 3 byte hex value to a 4 byte hex value.
  Reverse each left and right pair of bytes, then reverse the completed
  pairs, and type them in. Hard to explain, but simple to see. Compare the
  following columns of numbers to see the process:

	Dec	Hex			4 Byte		Reverse

	10	0A		=	00 00 00 0A	0A 00 00 00
	1000	03 E8		=	00 00 03 E8	E8 03 00 00
	10,000	01 4C 08	=	00 01 4C 08	08 4C 01 00
	85,000	05 10 FF 40	=	05 10 FF 40	40 FF 10 05

	Examples are for a 4 byte code.
	For a 	2 byte code, convert a 1 byte to a 2 byte,
	if required, then reverse the single pair.
	e.g.: 0A  =  00 0A  =  0A  00

   The first column shows the decimal number 10.  It’s hex equivalent is
   equal to 0A, a 1 byte code. We need to use it in a 4 byte code in the
   file, so add three 00 bytes in front of this code to convert it to a 4
   byte.  You now have two pairs of bytes, 00 00 and 00 0A.  Reverse the
   first pair and you get 00 00 (looks the same, huh?). Reverse the second
   pair and you get 0A 00. Now you have 00 00 0A 00. Finally, swap each pair
   and you get 0A 00 00 00. Follow this procedure for the decimal 85, 000 to
   see the reversals.

   For a two byte number the procedure is a lot simpler. Again using the
   decimal hex 0A, add a 00 byte in front of it to make it a 2 byte code, 00
   0A. Reverse the pair and you get 0A 00.

   The coding can use 1, 2, 4, and 8 (we will not use 8) bytes of
   information. This refers to the number of entry spaces the program uses to
   store one number.  The more spaces, the larger the number that can be
   entered into it per the following list:
 	Byte	Entry Spacing	Hex Range		Dec Range

	1	         00	00 - FF			0 - 255
	2	      00 00	00 - FF FF		0 - 65,535
	4	00 00 00 00	00 - FF FF FF FF	0 - 4,294,967,295

   Spacing is determined by the biggest number to be entered. Missiles never
   exceed 10, so only a 1 byte code is needed.  Credits can reach into the
   millions, so a 4 byte code is needed.
-----------------------------------------------------------------------------
	Entering a Value

   A money value will have 4 byte code = 00 00 00 00. The program divides the
   input value by ten to get the fraction of the number.  So if you started a
   game with 100.0 credits, you need to have a decimal value of 1000 entered
   into this address, which is equal to 03 E8 in hexadecimal. Reverse the
   bytes, and you will enter E8 03 00 00 into the 4 byte code.

	And the Hacking Begins ...

   The Hex Addresses listing will give the hex addresses for all of the
   missiles and ships used in Frontier: First Encounters. Three CD-ROM and
   two 3.5in disk versions are included on the list.

   The Hexadecimal Codes listing will give all the byte strings for each of
   the missiles and ships in the game.  These codes will always be the same,
   no matter what version, and specific address, you will use.


   Each of the listed addresses is the starting address for the first bytes
   below, labeled F-THR. The next bytes follow in succession to this address.
   The First line denotes xx where information will be edited. The second
   line is the actual hexadecimal information for a Saker Mark III. The third
   line is the decimal information as is used in the game.
                                                         NA
      Address  F-THR R-THR GM SM FLM   IC    COST  ZOOM  ID    CW    MP    DV
               xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 40 xx 00 xx 00 xx
       08C338  B5 2C B6 EA 02 00 1C 00 17 00 2B 00 55 00 1C 40 01 00 02 00 02
               11445 60086 2- 0- 28--- 23--- 43--- 85--- 28    1-    2-    1

   First, find out which version of the game you are playing by running the
   game, and watching the introduction animation. When the Thargoid ship
   appears (the eight sided upside down pie plate) type SHIFT-V. Compare this
   to the version address information in the Hex Addresses listing.  If the
   versions match, then you have the addresses.  If your version is
   different, you can still find the addresses for your version by reading
   the Searching for an Address section. Once you have the correct address,
   continue this section using your new address.

   Save a copy of the FIRSTENC.EXE file to another directory. You WILL make
   mistakes at times and being able to reload the original file will resolve
   problems, and keep your original game intact.  Now copy the HEXED.EXE file
   to your FIRSTENC directory. Working in  DOS, go into the FIRSTENC
   directory, and type:

	HEXED  FIRSTENC.EXE

(Note: Except where noted, all typing is in lowercase.  I display them in
uppercase in this guide for visual clarity.)

   The editor will load the FIRSTENC.EXE file and display it on the screen.
   The blue column on the left slows the addresses currently being displayed,
   starting with 000000.  The blue row at the top (00 - 0F) is each address
   number for the hex bytes below it. So Hex address 000004 would be 5 bytes
   to the right of the address 000000, and underneath the 04 address.

   Type Goto Page (F3), then enter the first four digits of the ship address.
   For a Saker Mark III in the English CD-ROM Remastered 1.1 version, this
   will be 08C3, and type ENTER. The display will now show the addresses
   starting at 08C300.  The starting address for the Saker is at 03C338,
   which will be 9 bytes to the right of address 03C330, underneath the 08
   address. Bytes 08 and 09 will read B5 2C. Reversing this equals 2C B5 =
   11445 decimal, which the program uses to calculate a forward thrust of
   21.1g.

   Type over B5  2C with AB 7E (spaces not used). The ship now has a 60g
   forward thrust = 32427 decimal = 7E AB hex.

   Use the Hexadecimal Codes information to change the values for the Saker
   to your liking. If you make a mistake, and are not sure what to do, type
   F10 then N to exit the editor without saving the EXE file. Then start over.

   When completed, type F10, then Y to save the FIRSTENC.EXE file, and exit
   the editor. Then run the game and check the Saker Mark III statistics.  If
   the game crashes, you typed a byte into the wrong location.  Copy the
   original EXE file to the game directory, and try again.
-----------------------------------------------------------------------------
	Searching for an Address

   Locating a specific address requires searching for a known and hopefully
   unique hex code. The Saker has a Crew of one, with a hex value of 01, and
   you could search for the value 01.  However, this value is used in the
   program thousands of times, and your search results would not know  which
   01 was the correct value. Therefore 01 is not unique enough for a reliable
   search.

   In the Hexadecimal Codes Listing, The first 12 bytes of the Saker ship
   information is a very large number in itself.  Thus it is highly unlikely
   that this string of hex numbers would be repeated more than once in the
   entire EXE file.  This 12 byte string is as follows:

		B5 2C B6 EA 02 00 1C 00 17 00 2B 00

   Set the hex editor to address 0000, activate the Search Hex function (F6),
   and type in the above hex string (without spaces), then press ENTER. The
   editor will search and find the string, with the cursor to the right of
   the 12 byte string (the 13th byte).  Compare the following bytes to the
   rest of the bytes in the entire 21 byte Saker string.  If they match, you
   have found  what you need. If they do not match, then you have made an
   error in the entry of the string (happens all the time). Try again.

   Write down the address of the first B5 byte, per the address at the left,
   and adding the one byte address at the top of the screen. Compare this
   address to the previous addresses for the Saker in the Hex Address
   listing. If one is the same, then you have that version of the game, and
   no further calculations are required.

   Pick a Saker address in one of the Hex Address listings. Using your hex
   calculator, subtract the new address from the listed address.  Let’s say
   the result is a hex value of E3.  You now know that the new Saker address
   is E3 removed from the listed Saker address. The E3 value is also correct
   for ALL THE SHIPS on that specific list!  You can now calculate the
   addresses of all the other ships in your version of the game.

   As E3 was a positive value, then the listed address is of higher value
   than the new address. Subtract E3 from all the other addresses to get the
   new ones.

   If E3 was a negative value, then the listed address is of lower value than
   the new address.  Drop the negative sign, and add E3 to all the other
   addresses to get the new ones

Another trick for locating a ship address file is by searching for the unique
ship ID.  As the Saker has an ID of 1C, then searching for a few bytes, say
00 1C 40 01, around this byte will find the ship

   As you can see, the search function is a very powerful tool for locating
   valuable data, and is the foundation for hacking
   any program file.
-----------------------------------------------------------------------------
	Additional Tools

   The right side of the hex editor displays the ASCII text in the file. The
   addresses at the top are from 0 to F.  By using the Search ASCII (F5)
   function, you can search for a keyword, like “Thargoid” (observe correct
   casing). This will find and display a lot of information written in plain
   english (or french, german...whatever your version is) on the missions of
   the game.

   You can also change the some of the english text in the file, as long as
   the new characters directly replace the old ones.  Here is a list of ASCII
   to Hex Codes.

20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
   !  "  #  $  %  &  '  (  )  *  +  ,  -  .  /
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
@  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
`  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E
p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~
-----------------------------------------------------------------------------
	Hacking the Startup Ships

   So you thought that was it? Not a chance! You can edit many more sections
   of the game, including the two startup ships, ranks, ratings, and so on.
   You will also be dealing with bitmapped numbers.  As you are aware, a byte
   is a single hex number, from 00 to FF, that you have been entering into
   the code.  A byte is composed of eight bits. This is different from the
   hex numbers, so let’s see how to use them.

   Remember that binary numbers are like on/off switches, so only a one or
   zero will be used. The following list shows the items available for Byte
   1. Byte 1 is an 8 bit binary number we enter into the 4 byte equipment
   code as a 1 byte hex value. Confused?  Take a look at the following chart.

	Binary	1  1   1  0    0  0   1  1	= E3 Hex
	Bit	7  6   5  4    3  2   1  0

	Bit	Item - Byte 1
	7	Auto Targetter
	6	Combat Computer
	5	Navigation Computer
	4	Transmission Jammer
	3 	"StowMaster fighter"
	2	Military Cameras
	1	Auto Refueller
	0	Laser Cooling Booster

   In this example we want items 7, 6, 5, 1, and 0. We do not want items 4,
   3, and 2. Put a 1 for the items we want in the 8 bit binary row above each
   bit.  Put a 0 for the items we do not want in the same manner. The result
   is an 8 bit binary number = 11100011. Put this number into your binary
   calculator, convert it to hex, and the result will = E3, a 1 byte hex
   number.

   The equipment address has four bytes, with byte 1 being the one on the
   left, as follows. Enter E3 at the byte one position, and you will have the
   equipment installed on your ship for the byte 1 code.  Repeat this for the
   bytes 2, 3, and 4 codes.
	Byte1	Byte2	Byte3	Byte4

   	  E3	  00	  00	  00

   Ok you want all the items!  The 8 bit binary number will = 11111111, which
   will = FF in hex.

   In the listing on the next page, note that Byte 3, bits 7 and 8, are both
   Cargo Bay Life Support.  You will want to activate bit 1, as bit 0 does
   not display properly in the game. Byte 2, bits 6 and 4 are not used.

   The startup addresses are spread out, as opposed to all the bytes being
   together like the ship addresses.  They are usually within one page of the
   editor display, so this is not a big problem.  However, the distance value
   you calculated for the ship addresses does not always match with the
   startup addresses, so a little searching may be required. A search for the
   4 byte equipment code will work. Then perform the same distance
   calculation using the address for the equipment, and you will have the
   distance value for the startup addresses.

   Changing the original startup codes with the codes in the listing below
   them will give you the equipment you desire.  A startup ship only has one
   laser position, even if your ship has more than one. You can specify one
   laser, then buy others when you start the game.

   Changing the ship type ID with another ID will give you that ship when you
   start the game.  If you also changed the ship specifications, then the
   modifications will also be present in the new ship.  Note that the startup
   values, like the drive type, override the original values in the ship
   specifications.

   The Fuel Onboard and cargo mass used should be the same to display
   properly in the game.

  The equipment weight value is subtracted from the internal capacity of the
  ship. It is the weight of all starting equipment, regardless of the actual
  weight.  So, if you change it to 00, then you would get all the startup
  equipment, and still have your original internal capacity.

   The rank and rating addresses will change the display value only. You
   still have to get the points to move up in the military mission
   assignments.
-----------------------------------------------------------------------------
FRONTIER - FIRST ENCOUNTERS  STARTING INFORMATION
3.5in Disk  (English Release 1.1 -  Remastered)

Item 		Ross 154 Hex		Gateway	Hex	Notes
Start Credits	03118F-92:E8 03 00 00	031223-26:10 27 00 00	100 Cr,1000 Cr
Ship Color	031194:	27		03120D:	27	23-29	no fx on Saker
Ship ID		031199:	17  		031212:	1F	Eagle II,Saker III
Drive		0311AA:	02		031258:	02	Class 1 Hyperdrive
Weapon		0311B1:	88		03122D:	88	1MW Pulse Laser
Equipment	0311B8-BB:00 00 24 40	03125F-62:20 00 24 40	Bitmapped
Equip. Weight	0311D0:	10		031247:	10	Equip+Drv+Lasr+Missils
Missile 1	0311C2:	82		031269:	82	KL760 Homing Missile
Missile 2	0311C9:	82		031270:	82	KL760 Homing Missile
Fuel onboard	0311D8-D9:01 00		031235-36:01 00		1 ton
Cargo mass USED	0311E0-E3:01 00 00 00	03123D-40:01 00 00 00	1 ton
-----------------------------------------------------------------------------
Drives:			Hex	Drives:			Hex
- None -		00	Class 1 Military Drive	0A
Interplanetary Drive	01	Class 2 Military Drive	0B
Class 1 Hyperdrive	02	Class 3 Military Drive	0C
Class 2 Hyperdrive	03	Class 4 Military Drive	0D
Class 3 Hyperdrive	04	Class 8 Thargoid Drive	0E
Class 4 Hyperdrive	05	Ship Colors:
Class 5 Hyperdrive	06	23 dk BLU	24 dk BLK
Class 6 Hyperdrive	07	25 RED		26 BRN
Class 7 Hyperdrive	08	27 BLU		28 GRN
Class 8 Hyperdrive	09	29 GRN/YEL

Missiles:		Hex	Weapons:		Hex
Mine (Dummy?)		80	1MW Pulse Laser		88
XB74 Proximity Mine	81	5MW Pulse Laser		91
KL760 Homing Missile	82	30MW Mining Laser	9A
LV111 Smart Missile	83	1MW Beam Laser		A0
NN500 Naval Missile	84	4MW Beam Laser		A9	
MV1 Assault Missile	85	20MW Beam Laser		B3	
MV2 Assault Missile	86	100MW Beam Laser	BC
Thargoid Missile	87	Small Plasma Accel.	C6
Mycoid Missile		88	Large Plasma Accel.	CF	
Nuclear Missile		89	Thargoid Laser		D5
-----------------------------------------------------------------------------
Note: Although several values would display an armament item, only one value 
would place it on the ship's upgrade page. All items which could normally be 
purchased were verified. One exception was the mines which display in the 
battle console, but were  not  listed on the upgrade page.

Bit	Item - Byte 1		Bit	Item - Byte 2
 7	Auto Targetter		 7	1 MW Pulse Laser
 6	Combat Computer		 6	Empty
 5	Navigation Computer	 5	Tracking Device
 4	Transmission Jammer	 4	New Equipment 4
 3 	"StowMaster fighter"	 3	Chaff Dispenser
 2	Military Cameras	 2	Tractor Beam Cargo Scoop	
 1	Auto Refueller		 1	Missile Viewer
 0	Laser Cooling Booster	 0	Inter-species Translator	

Bit	Item - Byte 3		Bit	Item - Byte 4
 7	Naval E.C.M.		 7	Hull Auto Repair System
 6	Radar Mapper		 6	Atmospheric Shielding
 5	Auto Pilot		 5	Cargo Scoop Conversion
 4	Fuel Scoop		 4	Energy Booster Unit
 3	E.C.M.			 3	Escape Capsule
 2	Scanner			 2	Energy Bomb
 1	Cargo Bay Life Support	 1	Fighter Launch Device
 0	Cargo Bay Life Support	 0	Hyperspace Cloud Analyzer
-----------------------------------------------------------------------------
Elite Rating	Address		Code	Points
Elite		0C03DD-E	70 17	6000
Deadly		0C03E1-2	B8 0B	3000
Dangerous	0C03E5-6	E8 03	1000
Competent	0C03E9-A	80 00	128
Above Average	0C03ED-E	40 00	64
Average		0C03F1-2	20 00	32
Below Average	0C03F5-6	10 00	16
Poor		0C03F9-A	08 00	8
Mostly Harmless	0C03FD-E	04 00	4
Harmless	0C0401-2	00 00	0

Federal rank	Imperial rank	Address		Code	Points	
None		Outsider	0C0460-1	00 00	0
Private		Serf		0C0464-5	01 00	1
Corporal	Master		0C0468-9	10 00	16
Sergeant	Sir		0C046C-D	51 00	81
Sergeant Major	Squire		0C0470-1	00 01	256
Major		Lord		0C0474-5	71 02	625
Colonel		Baron		0C0478-9	10 05	1296
Lieutenant	Viscount	0C047C-D	61 09	2401
Lt Commander	Count		0C0480-1	00 10	4096
Captain		Earl		0C0484-5	A1 19	6561
Commodore	Marquis		0C0488-9	10 27	10,000
Rear Admiral	Duke		0C048C-D	31 39	14,641
Admiral 	Prince		0C0490-1	00 51	20,736
-----------------------------------------------------------------------------
	A Super Saker Mark III

   The following information is everything you need to build a Super Saker
   Mark III.  This requires editing both the standard ship file, and the
   startup file.  All the hex information is given, so the only calculation
   you might have to make is for the hex addresses of your particular version.

   After editing of the EXE file, start the game, and complete the ship by
   purchasing the remaining items (not ALL equipment items are bitmapped),
   then save the ship.
   Recopy the original FIRSTENC.EXE file to the FIRSTENC directory. This will
   overwrite your hacked file, and reset all EXE file parameters to their
   original settings.  Load your new ship, and you should have all the
   specifications as below.  You will now have a Super Ship that plays on the
   stock version of the FIRSTENC.EXE file.

	Specifications

	Starting Credits	50 million
	Missiles		2 Thargoid Missiles
	Ship Type		Saker Mark III				
	Missiles Pylons		2
	Hull Mass		6t
	Cabins			100
	Fuly Laden Mass		28t
	Shields			1000
	Internal Capacity	14,816t
	Chaff			50
	Cargo Capacity		10,000t
	Crew			1
	Retro Thruster Acc	60.1g
	Cost			43k
	Main Thruster Acc	60.1g
	Drive			Class 4 Military
	Guns			1 Thargoid Laser (front)
	Fuel onboard		400t Military
	Gunmounts		2 (front/rear)
	Jump Range		4285.71 ly

	Equipment:
	Cargo Bay Life Support		Escape Capsule
	Navigation Computer		Scanner
	Energy Booster Unit		Combat Computer
	Fuel Scoop			Cargo Scoop Conversion
	Auto Targetter			Auto Pilot
	Atmospheric Shielding		Interspecies Translator
	Radar Mapper			Hull Auto Repair System
	Missile Viewer			Naval E.C.M. System
	Auto Refueller			Tractor Beam Cargo Scoop
	Hyperspace Cloud Analyzer	Military Cameras
	Chaff Dispenser			Fighter Launch Device
	"StowMaster" fighter		Tracking Device
	Energy Bomb			Transmission Jammer

	Programming Info (English CD-ROM v1.1 - Remastered)

	Item		Description		Address		Hex Code
	Credits		52,468,680		031457-A	D0 15 46 1F
	Ship Type	Saker III		031446		1F
	Drive		Class 4 Military	03148C		0D
	Weapon		Thargoid Laser		031461		D5
	Equipment	Bitmapped		031493-6	FE 2F F6 FF
	Missile 1	Thargoid Missile	03149D		87
	Missile 2	Thargoid Missile	0314A0		87

	Hex Coding at address 08C338
                                                NA
      F-THR R-THR GM SM FLM   IC    COST  ZOOM  ID    CW    MP    DV
      AB 7E 55 81 02 01 1C 00 E0 39 2B 00 55 00 1C 40 01 00 02 00 02
      32427 33109 02 01 28--- 14816 43--- 85--- 28    01    02    02

Note that the drive value in the startup address, and not the ship address, 
is used to select the drive for the startup ship.

If you do not mind running a modified FIRSTENC.EXE file, then after reloading 
the original file, change the FLM above to 01, which will give you a jump 
range of 120,000 light years when the game performs the calculations.
-----------------------------------------------------------------------------
	Hacking the Equipment Items

   The specific equipment items in the shipyard equipment list can also be 
   modified. This is very useful should you choose a startup ship with 4 
   gunmounts, and want to put Thargoid lasers at all the positions. Change 
   the Thargoid laser display code from FF to 4E, and the item will now be 
   available for purchase in the shipyard. Use the Equipment Listing table 
   supplied with this guide to obtain the codes.  Again, a little searching 
   may be required for your specific addresses, however once found, all the 
   codes will be the same.
-----------------------------------------------------------------------------
	Additional Tips

   Making a few batch files using the Windows notepad editor makes editing 
   the file and running it much simpler, with a lot less keystrokes to 
   accomplish the task.  Here are three useful examples.

HACK.BAT		FFH.BAT				NEW.BAT

echo off		echo off				echo off
cd c:\firstenc		cd c:\firstenc				cd c:\firstenc
hexed firsthac.exe	echo English Release 1.1		echo         
Overwriting modified file with original.
cd\			echo Loading Modified Frontier...	copy 
firstenc.exe firsthac.exe /y
cls			firsthac.exe				cd\
			cd\					c:
			cls					cls

   The original FIRSTENC.EXE file is in a separate directory called BACKUP. 
   Two copies of this file are in the FIRSTENC directory.  The first is a 
   duplicate with the same name, and is used to overwrite the hacked copy. 
   The second copy is renamed to FIRSTHAC.EXE, and is used for hacking.

   HACK will run the HEXED program and load the FIRSTHAC.EXE file into it.  
   FFH will run the FIRSTHAC.EXE file and start the game using it.  NEW will 
   overwrite the FIRSTHAC.FILE with the spare copy, thus returning all the 
   codes to their original settings.

   You can also make up a FFE batch file to run the FIRSTENC.EXE file. Then 
   you can easily switch between the stock file and the modified file when 
   starting the game.
-----------------------------------------------------------------------------
	In Conclusion . . .

   Typical scenario...You buy a game, play it, lose a lot, start getting good 
   at it, and finally you win the game. What happens the next day? Typically 
   you will not play the game. The real fun is in experiencing the game, 
   getting good with the controls, and accomplishing a goal.

   With this guide, you now have the ability to circumvent the challenges in 
   the game, and, as a result, could make a great game very boring.  This 
   would also be a waste of your hard earned money for a lasting value in 
   entertainment. Because of this, it is recommended that you first play the 
   game straight.  Learn the moves, accept the challenges, and see what you 
   can do. Then, when you are up against a wall you cannot get over, a few 
   hex codes in the right place will help.

   The Super Ship can be used as a training tool.  Say you are getting wasted 
   every time in combat.  Use the Super Ship to survive while you learn the 
   best strategies for combat, then apply them to your straight ship.  When 
   you can take out the enemy without a hack, your confidence level will go 
   through the roof!  The Super Ship can also be used for sightseeing to all 
   those far away systems that are impossible to get to during normal game 
   play.

   By gaining an insight into assembly language programming, you will learn 
more about how computers and programs interact together.   As a result, you  
will get a feel for when the program is acting up, or the computer is having 
problems. You will soon gain the confidence that you are running the 
computer, not the computer running you.  This carries over to all programs, 
including the boring ones used at the workplace.
   So enjoy the hacks, but don’t forget to enjoy the game itself.  You will 
   double the entertainment value.
-----------------------------------------------------------------------------
George Hooper
hooperh@ix.netcom.com
-----------------------------------------------------------------------------
End of file:	ffehack.txt
-----------------------------------------------------------------------------
