TuxNES version 0.73
  http://tmmm.simplenet.com/tuxnes/index.html

About:
=----=
    TuxNES is an emulator for the 8-bit Nintendo Entertainment System.

    TuxNES is based on Nestra, a great public-domain NES emulator by
Quor.  TuxNES adds many features not found in Nestra, and uses a more
collaborative development model. Enhancements to Nestra often find
their way into TuxNES.  Enhancements to TuxNES don't generally find
their way into Nestra due to licensing restrictions (since pieces of
TuxNES are generally copyrighted by their authors, and covered by the
GNU General Public License,) although similar changes by the same
authors sometimes find their way back into Nestra.

Platforms: 
=--------=
    TuxNES should work with these operating systems and windowing environments:

	FreeBSD/x86 with X11 graphics.
	Linux/x86 with X11 graphics.
	NetBSD/x86 with X11 graphics. [needs to be verified!]
	OpenBSD/x86 with X11 graphics. [needs to be verified!]

Installing:
=---------=
    TuxNES follows the standard GNU process for installing tarballs. Download
the archive, uncompress it and type
    ./configure
    make
    make install
For more information, see the INSTALL file.

(If you recieved a binary distribution of TuxNES, just copy the appropriate
 executable to a suitable directory such as /usr/local/bin.)

Features:
=-------=
    The current features in TuxNES include:
- open source
- runs under Linux/X on x86 platforms
- dynamic recompilation from 6502 opcodes -> x86 native opcodes
- mappers: 0, 1, 2, 3, 4, 7, 9, 11, 32, 66, 99
- experimental mappers: 15, 22, 23, and 71
- gzip file support
- game saving
- built-in disassembler
- joystick support (2- & 4-button)
- experimental sound support
- capture screenshots in X pixmap (xpm) format
- Game Genie code support
- trainer support
- alternate palette support

Running:
=------=
    TuxNES is invoked from the command line and the command line
options operate almost exactly the same as Nestra. TuxNES also
supports long options on the command line.

The only command line incompatibility TuxNES has with Nestra is
mirroring. For example, TuxNES uses -mh rather than -hm for horizontal
mirroring. Recent versions of Nestra support TuxNES-style mirroring
specification.

Usage: ./tuxnes [--help] [options] filename
Help topics:
      --help=help     Help topics (this list)
      --help=options  Major command-line options
      --help=sound    Sound synthesis options
      --help=palettes Color palette options
      --help=synonyms Alternate option names
      --help=controls Keyboard and joystick options and bindings
      --help=version  Version and copyright information
      --help=all      All help topics
Major command-line options:
  -v, --verbose       Verbose output
  -f, --fix-mapper    Use only the low four bits of the mapper number
  -M, --mapper=...    Specify mapper to use
  -g, --gamegenie=... Game Genie code
  -H, --show-header   Show iNES header bytes
  -d, --disassemble   Disassemble
  -l, --link          Link branches optimization (may improve speed)
  -o, --old           Use old X11 display subroutines
  -m, --mirror=...    Manually specify type of mirroring
      h = Use horizontal mirroring
      v = Use vertical mirroring
      s = Use single-screen mirroring
      n = Use no mirroring
Sound synthesis options:
  -s, --sound[=FILE]  Append sound data to FILE (default: /dev/dsp)
  -F, --format=...    Use the specified sound sample format (default: 8)
      1          8-bit Mu-Law
      8          8-bit unsigned linear
      16         little-endian 16-bit signed linear
      32         big-endian 16-bit signed linear
      64         8-bit signed linear
      128        little-endian 16-bit unsigned linear
      256        big-endian 16-bit unsigned linear
  -R, --soundrate=NUM Set sound sample rate to NUM Hz (default: 8000)
Color palette options:
  -p, --palfile=FILE  Load palette data from FILE
  -P, --palette=...   Use a specified built-in palette (default: loopy)
      loopy      Loopy's NES palette
      quor       Quor's palette from Nestra v0.63
      matt       Matthew Conte's NES palette
      pasofami   Palette from PasoFami/99
      crashman   CrashMan's NES palette
      mess       palette from the MESS NES driver
      zaphod-cv  Zaphod's VS Castlevania palette
      zaphod-smb Zaphod's VS SMB palette
      vs-drmar   VS Dr. Mario palette
      vs-cv      VS Castlevania palette
      vs-smb     VS SMB/VS Ice Climber palette
  -S, --static-color  Force static X11 color allocation
Alternate option names:
  -c, --controls      Equivalent to --help=controls
  -h, --help          Equivalent to --help=help
  -j, --joystick=FILE Equivalent to --js1=FILE
  -V, --version       Equivalent to --help=version
Keyboard and joystick options and bindings:
  -1, --js1[=FILE]    Use P1 joystick FILE (default: /dev/js0)
  -2, --js2[=FILE]    Use P2 joystick FILE (default: /dev/js1)

  Keyboard:
    Arrows      - Move (P1)
    A, C or Space
                - A button (P1)
    Z, X or D   - B button (P1)
    Tab         - Select button (P1)
    Enter       - Start button (P1)
    H, J, K, L  - Move (P2)
    B           - A button (P2)
    V           - B button (P2)
    F           - Select button (P2)
    G           - Start button (P2)
    BackSpace   - Reset game
    P, Pause    - Pause or resume emulation
    ESC         - Exit game
    0-8, `      - Adjust emulation speed
      0 stops the game, ` runs the game at half speed
      1 runs at normal speed, 2..8 runs at 2..8x normal speed
    F7          - Capture screenshot and save to ~/.tuxnes/snapxxxx.xpm
                  (Note: XPM support must be installed and compiled
                   for this to work; see the README file for more info.
                   This doesn't work with the old X11 renderer.)

  Keypad:
    Arrows/12346789  - Move (P1)
    Space/Begin/5, Delete/Decimal
                     - A button (P1)
    Insert/0         - B button (P1)
    Add              - Select button (P1)
    Enter            - Start button (P1)

  Joystick (4-button):
    Joystick/gamepad - Move
    Button 0         - B button
    Button 2         - A button
    Button 1         - Select button
    Button 3         - Start button
  (Note: if your joystick has 2 buttons, buttons 0 and 1 will be
   mapped to B and A, respectively, and Tab and Enter will function
   as the Select and Start buttons.)

  Extra keys for old X11 renderer (-o, --old)
    F1          - Disable background
    F2          - Re-enable background
    F3          - Disable sprites
    F4          - Re-enable sprites
    F5          - Alternate tiles
    F6          - Default tiles
    F8          - Flush tile cache

  Extra Keys for VS UniSystem games:
    [/{         - Insert Coin (Left)
    ]/}         - Insert Coin (Right)
    |/\         - Service Credit
    Q/q         - Toggle Dipswitch #1
    W/w         - Toggle Dipswitch #2
    E/e         - Toggle Dipswitch #3
    R/r         - Toggle Dipswitch #4
    T/t         - Toggle Dipswitch #5
    Y/y         - Toggle Dipswitch #6
    U/u         - Toggle Dipswitch #7
    I/i         - Toggle Dipswitch #8

Screenshots:
=----------=
    While you're running the emulator, you can capture screenshots in X
pixmap (xpm) format anytime by pressing F7. However, you need to install
the XPM library and compile TuxNES when the XPM library is installed in order
to capture screens. TuxNES will still compile without the XPM library, but it
won't take screenshots.

    The pixmap files are stored in the ~/.tuxnes/ directory.

    Of course, the XPM format is not the most widely accepted graphic file
format. If you need a simple way to convert XPM files to GIF files, you can
use the xpmtoppm and ppmtogif programs that should already be installed on
your Linux box. Try this:
  xpmtoppm file.xpm | ppmtogif > file.gif

Graphics:
=-------=
    TuxNES has two different rendering engines, with different
capabilities and limitations. The old renderer can be enabled using
the -o or --old command line options.

    Default Renderer:
    + supports all X11 visual classes
    + allows mid-screen PPU/VRAM updates
    + supports 2:1 image scaling (when window is maximized)
    + supports XPM screenshots (F7)
    - fairly slow
    - supports only 1-bit, 8-bit, 16-bit, and 32-bit pixel alignment
    - no graphics debugging/ripping support

    Old Renderer: (-o, --old)
    + supports all X11 visual classes
    + very fast
    + supports all pixel alignments
    + allows graphics debugging/ripping (F1-F6, F8)
    - doesn't support mid-screen PPU/VRAM updates
    - supports only 1:1 image scaling
    - doesn't support screenshots

Note that some NES games change the palette in the middle of a screen refresh.
This is properly supported only in TrueColor, StaticColor and StaticGrey visual
classes at present. In other visual classes, some colors will be wrong.

Joystick:
=-------=
    Joystick support is enabled by running the emulator with the -j
or --joystick command line options. A joystick device must be supplied
(e.g., /dev/js0). If you need help setting up a joystick under Linux, check
out The Linux Joystick Driver at:
  http://atrey.karlin.mff.cuni.cz/~vojtech/joystick/

Sound:
=----=
    Sound support in TuxNES is still experimental, and doesn't work at
all with many games. The games which are supported sound very bad. For
this reason, sound emulation is disabled by default.

    To enable sound, use the --sound command line option. The
specified FILE (or /dev/dsp, if no FILE is given) will have the raw
8-bit unsigned audio data appended to it. Only the square wave,
triangle wave and noise channels are currently emulated to any extent.

    The sample rate defaults to 8000 Hz, but this may be changed using
the --soundrate command line option. If FILE is a sound device
supporting OSS-style ioctl() commands, the sample rate may be changed
automatically to the nearest sample rate supported by the device.

    Using --sound=/dev/audio may improve your listening experience, if
the default sound device (/dev/dsp) doesn't work right.

Palettes:
=-------=
    TuxNES has several built-in color palettes, selectable at run-time
using the --palette command line option. Raw palette data can also be
loaded from a file using the --palfile command line option. The data
format is compatible with the palette files used by Nesticle.

    By default, TuxNES will use the VS SMB/VS Ice Climber palette for
VS UniSystem games, and Loopy's NES palette for all other games.

    Games in .NES-format which include 192 bytes of RGB palette data
or a 64-byte palette remapping block immediately following the regular
ROM data will use that, by default. As a fallback, a palette file with
the same name as the game, but ending in .pal, will be used if it is
available. Games with palette remapping blocks always default to using
Loopy's NES palette, even if they are VS UniSystem games.

Troubleshooting:
=--------------=
    Are you having trouble getting a particular ROM to work with TuxNES? This
most likely has to do with the memory mapper. If you try to run a game and
TuxNES advises that you may wish to use the -f option, then you probably
should use it (especially if your game fails to work).

    If the game still doesn't work, the game's header info may be completely
wrong about which mapper to use. Consult the Bigass NES Mapper List at the
TuxNES home page to find the proper mapper the game should use and then run
the game with the -M<number> option.

ROMs:
=---=
Don't even bother requesting NES ROMs.
