
                    U  N  R  E  G  I  S  T  E  R  E  D   
                       Ŀ Ŀ    Ŀ      Ŀ
                       Ĵ                    
                 Ĵ               
                         Version 3.27   by Bart Majerski
                                      
                         (c) Copyright  Bart Majerski
                          <majerski@intergate.bc.ca>


               ˿       ˿ ˿ ˿ ˿
                          δ ˿ 
                            
       ˿ ˿ ˿ ˿ ˿ ˿ ˿ ˿
              ˿        ˿            
                        
            To receive the full, registered version of HackFile,
                      please send a cheque of $10 (US) to:

                               Bart Majerski
                              10-15247 99 Ave
                         Surrey, British Columbia,
                              CANADA  V3R 7T7

 * Remember to provide your name as you want it displayed in HackFile
   and your E-MAIL address where the registered version should be sent. 
   (Your name will be displayed in the lower-left hand corner of HackFile.
    In the place of the flashing UNREGISTERED VERSION.)


  Please remember that this, UNREGISTERED, version of HackFile is Freeware 
  Feel free to pass it around to your friends as long as this file is 
   attached and NOT changed in any way! 


Introduction:
------------
Basicly I wrote this program for myself.  New games are coming out all the
time and sometimes it takes a while before a CHEAT program is available.
With HackFile you don't have to wait.  If a game has a SAVE option, you
can practicly change anyting (lives, ammo, money - whatever the game has).
And the best part is: you don't have to read HEX.  All you have to do
is save the game to a file, open it using HackFile, find the number(s)
that are of interest to you and change them.  It's a straight-forward
approach to changing files.  After a while you may be able to figure out
saved games file formats. HackFile has three edit modes:

   I) the standard 8-BIT unsigned or BYTE mode
  II) the 16-BIT unsigned or WORD mode
      -WORD DOES NOT MEAN LETTERS! FOR CHANGING LETTERS (STRINGS) SEE
       'OTHER' SUBMENU IN HACKFILE OR READ ON.
 III) and the 16-BIT signed or INTEGER mode

Here is a little more about each of these.
   I) BYTE mode 
      - an 8-BIT unsigned (1 byte) read/write mode
      - any numbers being located or changed in a file under BYTE mode 
        must be in the range of 0 to 255

  II) WORD mode
      - a 16-BIT unsigned (2 byte) read/write mode
      - any numbers being located or changed in a file under WORD mode
        must be in the range of 0 to 65535

 III) INTEGER (INT) mode
      - also a 16-BIT (2 byte) but signed read/write mode
      - any numbers being located or changed in a file under INT mode
        must be in the range of -32768 to +32767


I have not included a mode for any larger numbers since the use of these
for me anyways was extremly limited.  Perhaps in later version(s) of HackFile
I will introduce a 4-byte read/write mode.  That is providing I'll need it
first.  
The terminology for an average computer user may be strange (WORD, STRINGS)
but keep in mind that I wrote this program for myself.  And it wasn't until
some of my non-programming friends expressed interest in it that I decided
to release it to the public.  I think that the menu system is pretty
easy to figure out.  If not, then you probably shouldn't be using this
program.  Basic computer knowlege (bits and bytes) is recommended to use
HackFile.   Remember that I'm not responsible for what you do with the
program.  (READ THE NOTE AT THE END OF THIS FILE!) So be good.
Some options were disabled for this shareware version, but work for 
REGISTERED USERS.   
Below is a simple overview of the options in HackFile:

MAIN MENU:  Hit the highlighted letter of your choice:
---------
        Select current FILE ('F' is highlighted)
         -hit 'f' or 'F' to select a file to be edited
         -if the file exists it will be stated as the CURRENT FILE
          in the STATUS BOX at the top of the screen

        Change read/write MODE ('M' is highlighted)
         -hit 'm' or 'M' to change the reading & writing MODE
         -every time you hit 'M' or 'm' at Main Menu the READ/WRITE section
          of the STATUS BOX at the top of the screen will reflect the change

        View entire file ('V' is highlighted)
         -displays CURRENT FILE on the screen in the current READ/WRITE MODE 
          selected (Ex: if BYTE mode is selected the file will be displayed
          as BYTES or numbers in the range 0 to 255.  If WORD mode is 
          selected the file will be displayed as numbers in the range 0 to
          65535.  If INT mode is selected the file will be displayed as 
          numbers in the range -32768 to +32767.  The WORD and INT modes
          appear to have half as many positions as BYTE mode because
          HackFile reads 2 bytes to get each number as opposed to only one
          byte in BYTE mode.  The size of the file didn't change.  It's just
          read in a different way, 2 bytes at a time.)
          * In this version of HackFile you can also save the output
            of this function to a text file called HACKFILE.OUT
            If you answer 'Y' to 'Save output to HACKFILE.OUT?'
            a file called HACKFILE.OUT will be created in current directory.
            It will contain the output that you see on the screen.
            You can analyze it later or print it out.  If a file by that
            name exists then it is overwritten.  This option is available
            in most functions in HackFile.

        Look for a number ('L' is highlighted)
         -this option lets you look for a number of type specified in
          'READ/WRITE MODE' section of the STATUS BOX.
          You will be asked to enter a number to look for.  HackFile will
          print all the positions at which that number appears.
          You can also save the output of this function to HACKFILE.OUT
          SEE ABOVE-View entire file, subsection with *

        Access/change number ('A' is highlighted)
         -this is the part that actualy changes the file.  Once you have
          the position(s) of the number(s) you need changed you can
          start changing the file.  Select the MODE you need. (See above)
          Press 'A' or 'a' to change a number.  First you will need to
          specify the position of the number.  HackFile will display
          the number at that position. If you wish to change it press
          <ENTER>.  If you wish to cancel then hit <ESC>. If you choose
          to proceed then the changes will automaticly be written to
          file as soon as you enter the new number to be saved at
          position you have specified.
          NOTE: THIS OPTION IS DISABLED UNDER WORD & INT MODES.

        Compare files ('C' is highlighted)
         -this option compares two files OF EQUAL SIZE.
          You will have to specify the 2nd file.  This function
          will read the files number by number and report the positions
          at which DIFFERENT numbers are saved.
          NOTE: THIS OPTION IS DISABLED FOR ALL MODES.

        Other (BYTE mode only) ('O' is highlighted)
         -this option works only in BYTE mode.  It has some extra options
          which may be handy when altering files. 
          See 'OTHER OPTIONS' below.

        Exit ('x' is highlighted)
         -exits program


OTHER OPTIONS (SUBMENU):
-----------------------
        Change file DATE/TIME ('D' is highlighted) 
         -with this option you can change file TIMESTAMP

        Get CHAR/ASCII code ('A' is highlighted)
         -CHAR=character
          ASCII=American Standard Code for Information Interchange
          This option gives the CHARacters for a specified ASCII code
          and vice versa.

        Search for byte sequence ('S' is highlighted)
         -this function locates a sequence of 2 bytes in file.
          You provide the bytes to be found.

        Print HACKFILE.OUT ('P' is highlighted)
         -if you saved the output of a search/view file to HACKFILE.OUT then 
          this function will print it out to a printer on LPT1.

        Find string in file ('F' is highlighted)
         -locates a string in file (STRING could be a word or a sentence)
          Returns the starting position of the string.

        Insert a string into file ('I' is highlighted)
         -inserts a string into file (STRING could be a word or a sentence)
          You provide the starting position of the insertion.
          Everything after that position is moved over.

        Cut out part of file ('C' is highlighted)
         -removes a part of file.  You specify the 1st and LAST bytes to
          be removed.
          NOTE: THIS OPTION IS DISABLED.

        Back to Main Menu ('B' is highlighted)
         -returns to MM


Example:
-------
 You just finished playing your favourite game.  You saved it to your
 disk, and left the game.  Now you must find the file which has the
 data.  This can be easily achieved by looking at the DATES of the files
 in the directory of the game you just played.  DOS command "DIR/OD"
 will display all the files in the directory starting with the EARLIEST.
 So the file with your saved game SHOULD be displayed LAST. (Since you just
 saved it.) Saved games are ususaly saved as SAVE0.GAM or SAVEGAME.001 or
 something that has the words SAV or GAM or a number in the filename.
 (Example: Civilization saved games files have a filename CIVIL#.SAV
  where # is 0,1,2,3,4,5,6,7,8 or 9 depending on how many games are saved.)
 Now, once you have the filename run HackFile.  Enter the name of the file
 when asked. Now you must decide what MODE to use.  Say you want to cheat
 in the amount of money you have.  What you need to know is how much money
 you had in the game when you saved it.  All you have to do then is find
 that number and change it.  Money in games is usualy saved as a 2 byte
 unsigned number or WORD.  So at the MAIN MENU of HackFile press 'M'
 until the box at the top of the screen in the 3rd line says:
 'READ/WRITE MODE: WORD (16-bit unsigned [0..65535])'
 The 'WORD' part tells you that you are now in WORD mode so any
 numbers you change will be 16-BIT (2 byte) in the range of 0 to 65535.
 *** WHY NOT OTHER MODES? 
 After all in most games you can have way more that $255. 
 255 is the maximum number of BYTE MODE. If it's possible to have more than
 255 the number is probably a WORD (Range between 0..65535) NOT A BYTE.
 Hence we use WORD MODE.
 Furthermore, in most games you cannot have a negative amount of money.
 (In MOST games, NOT ALL!) Since the minimum number in BYTE and WORD modes
 is 0 you cannot enter say -100. So if you are playing one of the games
 that allow you to be in debt (have a negative amount of money) you will
 probably need to use INT mode since it's the only mode that will allow you
 to change negative numbers.
  If the number you were looking for was 150 and that number appears
  more than once in the saved game then it's trial and error.  Backup
  the file first. Then change the first 150 in the file.  Run the game
  and check if that did anything.  If not, then change the number back to
  150, and try the next position.  Of course this is silly if the number
  you are looking for appears 100 times in the file.  So try to save
  the game when the amount of money/ammo or whatever it is you are changing
  is a weird number.  A number that doesn't appear too many times in the 
  file.  That way it's easier to locate.


 I have personally used HackFile to cheat in X-Wing, Civilization, Dune 2,
 Master of Orion, Descent, Ascendancy, WarCraft, WarCraft 2.


SYTEM REQUIREMENTS:
------------------
        The slowest machine HackFile has been tested on was a 486DX-33Mhz
 with 4Mb of RAM.  I don't know what the absolute minimum sytem requirements
 are, but if the SHAREWARE version works then the REGISTERED version of
 HackFile will work as well.


******************************************************************************
NOTE: I'M NOT RESPONSIBLE IN ANY WAY FOR ANY DAMAGE TO YOUR COMPUTER OR
      SOFTWARE.  USE HACKFILE AT YOUR OWN RISK!!!  I HAVEN'T HAD ANY PROBLEMS.
      HERE IS A TIP: DON'T TRY CHANGING ANY VITAL SYSTEM FILES. 
      (LIKE "COMMAND.COM" IF CASE OF MS-DOS)
      ALSO AVOID ALTERING .EXE FILES UNLESS THERE IS NO OTHER WAY TO GET WHAT
      YOU WANT.  ALWAYS MAKE BACKUPS!
******************************************************************************
- End Of File -
