Building FakeNES

    For the moment, FakeNES is fairly easy to build from the source code,
    assuming that you have the proper tools to do so.  The FakeNES
    developers make no promises as to whether or not you will be able build
    or run any of this software on your system.

    See the bottom of this document for annotations.

POSIX Version

    The POSIX version should build on any mostly POSIX compatible platform
    (including Linux and most other flavors of Unix), but greatly relies on
    a GNU tool set.  Generally, FakeNES should build with a standard tool
    set (usually included with the operating system) but unforseen issues
    may arise, therefor we cannot officially support using such a tool set.
    However, if you wish to use one, scan through 'configure.in' looking for
    any changes you may need to make.  As an exception, you will still
    require GNU autoconf (to regenerate 'configure') and make.

    You will also need the following:

    - Allegro(2) version 4.1.0 or higher.  I recommend using at least
      version 4.1.1.  As of this writing, I am using the latest, version
      4.1.12.  I do not recommend using the prebuilt development binaries,
      you should build it yourself to avoid issues.  Make sure that the
      Allegro examples all build and run fine.

    A pregenerated 'configure' script is provided, but you will probably
    need to make it executable first.  Simply run it, and it should set
    everything up in the makefile quite nicely.  If you have problems
    building afterwards, try disabling the use of zlib(4) and/or HawkNL(5)
    (execute 'configure --help' for a list of all options).

    Be warned; a successful execution of 'configure' will overwrite the
    stock 'Makefile' that is normally required to build the DOS and Windows
    versions of FakeNES from the topmost directory of the source code tree.

DOS Version

    With the following tools I can build the complete 32-bit DOS version of
    FakeNES, designed to run under a DPMI manager such as CWSDPMI(6).

    - DJGPP v2 or higher.  As of this writing I am using DJGPP v2 with GCC
      version 3.2.  Just go to 'http://www.delorie.com/djgpp' and click on
      the 'Zip Picker' link.  The default selections are fine(1).  Follow
      the instructions given for installing DJGPP on your system.

    - Allegro(2) version 4.1.0 or higher.  I recommend using at least
      version 4.1.1.  As of this writing, I am using the latest, version
      4.1.12.  I do not recommend using the prebuilt development binaries,
      you should build it yourself to avoid issues.  Make sure that the
      Allegro examples all build and run fine.

   Once you have everything installed an in proper working order, simply
   execute 'config djgpp' and follow any further instructions given.  If you
   have problems building, try disabling the use of zlib(4) by setting the
   'NO_ZLIB' environment variable or passing it to 'make' on invocation
   (e.g make NO_ZLIB=1).

Windows Version

    With the following tools I can build the complete 32-bit Windows version
    of FakeNES, designed to run with the Microsoft DirectX 7.x(3) runtime.

    - Mingw32 version 1.0.1 or higher.  As of this writing I am using
      version 2.0.0.  Just go to 'http://www.mingw.org' and get the complete
      installer executable and you should have just about everything you
      need(1).  Simply run the installer to install Mingw32 on your system.

    - Allegro(2) version 4.1.0 or higher.  I recommend using at least
      version 4.1.1.  As of this writing, I am using the latest, version
      4.1.12.  I do not recommend using the prebuilt development binaries,
      you should build it yourself to avoid issues.  Make sure that the
      Allegro examples all build and run fine.

    Once you have everything installed an in proper working order, simply
    execute 'config mingw32' and follow any further instructions given.  If
    you have problems building, try disabling the use of zlib(4) by setting
    the 'NO_ZLIB' environment variable or passing it to 'make' on invocation
    (e.g make NO_ZLIB=1).  Likewise for HawkNL(5) if neccessary.

(1) If you want to execute a 'make clean' then you will also need to get GNU
fileutils.  It is available for DJGPP, Mingw32, and is installed with Cygwin
by default.  See the documentation for your development system for
information on obtaining and installing supplemental GNU packages.

(2) The Allegro home page is at 'http://alleg.sourceforge.net'.

(3) The FakeNES developers will not officially support DirectX 8 at this
time except through backwards compatibility with DirectX 7, because the
runtime removes all support for non-Pentium (e.g i486) processors.

(4) Disabling zlib removes ZIP and gzip support.  zlib source code, prebuilt
packages, and more can be obtained from 'http://www.gzip.org/zlib'.

(5) Disabling HawkNL removes NetPlay support.  HawkNL source code, prebuilt
packages, and more can be obtained from 'http://www.hawksoft.com/hawknl'.

(6) CWSDPMI is a DPMI server and virtual memory manager (VMM).  It allows
DOS programs to be run in 32-bit protected mode on i386 and higher
processors, giving access to all memory and a cleaner execution environment.
The CWSDPMI home page is at 'http://clio.rice.edu/cwsdpmi'.
