                      ******* interNES Linux *******
                     The Portable NES/Famicon Emulator
                                version 0.5
                                     
        Core emulator code copyright (C) 1995,1996  Marat Fayzullin
              Linux port copyright (C) 1996  Marcel de Kogel
               Based on the original code by Alex Krasivsky
                                     
DICLAIMERS
==========
-  Nintendo Entertainment System and Famicom are registered trademarks of
   Nintendo Corp.
-  The authors are in no way affiliated with Nintendo
-  The authors are in no way affiliated with any pirate group out there
-  The authors can not provide you with NES/Famicom games

Hardware Requirements
=====================
A 486DX-66 (P60 recommended)
A VGA compatible video card
Sound card and joystick supported

Files included
==============
ines           SVGALib version of the emulator
xines          X-Windows version of the emulator
neslist        A little program to list/check .nes images (beta)
ines.txt       This file
cart.nes       Sample cartridge which contains a testing program for NES
cart.asm       The source code of a testing program
The latest version of iNES-Linux can be found on the iNES-Linux
distribution site at http://www.komkon.org/~dekogel/ines.html
More information about iNES and NES in general can be found on the iNES
distibution site at http://www.freeflight.com/fms/iNES

Key Mappings
============
SVGALib version
Cursor Keys  -  Movement
Alt          -  Button A
Ctrl         -  Button B
Left Shift   -  Start button
Z            -  Select button
Plus         -  Start button #2
Minus        -  Select button #2
BackSpace    -  Switch joystick mode
F1-F5        -  Toggle sound channels 1-5 on/off
F6           -  Toggle sound on/off
F8           -  Pause & Blank screen
F9           -  Pause
F11          -  Decrease volume
F12          -  Increase volume
ESC/F10      -  Quit emulator
X-Windows version
Cursor Keys  -  Movement
Space        -  Button A (Also: A,S,D,F,G,H,J,K,L)
Left Alt     -  Button B (Also: Z,X,C,V,B,N,M)
Enter        -  Start
Tab          -  Select
1-5          -  Toggle sound channels 1-5 on/off
6            -  Toggle sound on/off
F11          -  Decrease volume
F12          -  Increase volume
ESC/F10      -  Quit emulator

Command line options
====================
-help                          Print a help page describing all available
                               command line options
-verbose <flags>               Select debugging messages [1]
                               0 - Silent           1 - Startup messages
                               2 - Illegal writes   4 - Illegal CPU ops
                               8 - Bank switching
-ifreq <frequency>             Select interrupt frequency [50]
                               If you want your games to run faster,
                               increase the interrupt frequency. If you
                               want them to run slower, decrease it. Use -
                               ifreq 0 to disable sync and speed up the
                               emulation
-pal / -ntsc                   Show 240 or 224 lines (-pal)
-uperiod <period>              Number of interrupts per screen update [0]
                               Selecting 0 will enable real-time refresh
                               checking. If emulation is chunky, try -
                               uperiod 2 or -uperiod 3
-hperiod <period>              Number of CPU cycles per scanline [100]
-vperiod <period>              Number of CPU cycles per interrupt[26500]
-savdir <directory>            Select directory for storing .sav files
                               [./]
-autoa <mode>                  Select button A autofire mode [0]
                               0 - No autofire 1 - Autofire
-autob <mode>                  Select button B autofire mode [0]
                               0 - No autofire 1 - Autofire
-shm / -noshm                  Use/don't use MIT SHM extensions [-shm]
                               (X-Windows version only)
-saver / -nosaver              Save/don't save CPU when inactive [-saver]
                               (X-Windows version only)
-sound <mode>                  Select sound mode [255]
                               0 - No sound    1 - /dev/dsp
                               255 - Autodetect
-soundquality <value>          Select sound quality [3]
                               0 - Minimum     5 - Maximum
-volume <value>                Select initial volume [10]
                               0 - Silent     15 - Maximum
-video <mode>                  Select video mode [0]
                               (SVGALib version only)
                               0 - 320x200     1 - 320x240
-chipset <chipset>             Select video chipset [1]
                               (SVGALib version only)
                               0 - VGA         1 - Autodetect
                               Try using -chipset 0 if you have video
                               problems
-palette <number>              Choose a colour palette [0]
                               0 - Normal      1 - Pasofami
-joystick <mode>               Select initial joystick mode [1]
                               0 - No joystick support
                               1 - Joystick at port 2
                               2 - Joystick at port 1
-swapbuttons <flags>           Select buttons to swap [0]
                               1 - Swap joystick buttons
                               2 - Swap keyboard buttons
                               3 - Swap both
Some command line options may be abbreviated. You can get a list of
supported abbreviations by using the -help command line option

Cartridge file format
=====================
Following is the format of ROM-image files used by iNES:
Byte      Contents
-------------------------------------------------------------------------
0-3       String "NES^Z"
4         Number of 16kB ROM banks
5         Number of 8kB VROM banks
6         bit 0     1 for vertical mirroring, 0 for horizontal mirroring
          bit 1     1 for battery-backed RAM at $6000-$7FFF
          bit 2     1 for a 512-byte trainer at $7000-$71FF
          bit 3     Reserved
          bit 4-7   Type of ROM bank selector
                     0 - None
                     1 - Megaman2,Bomberman2,Destiny,etc.
                     2 - Castlevania,LifeForce,etc.
                     3 - QBert,PipeDream,Cybernoid,etc.
                     4 - SilverSurfer,SuperContra (experimental)
                     8 - F3xxx carts off FFE CDROM (experimental)
                    15 - 100-in-1 cartridge (experimental)
7-15      Reserved
16-...    ROM banks, in ascending order. If a trainer is present, its
          512 bytes precede the ROM bank contents.
...-EOF   VROM banks, in ascending order.
-------------------------------------------------------------------------
Note that this format will most likely change in the next version of iNES,
therefore do not take it for something permanent. The general structure
will stay the same though. A copier schematic is available at the iNES
distribution site

Configuration files
===================
The emulator loads two configuration files (if present) before it loads a
cartridge rom: ines.cfg located in the current working directory and
CART.cfg (e.g. DonkeyKong.cfg if you load DonkeyKong.nes) located in the
cartridge dump's directory. These are plain text files containing optional
command line options. Options can be separated with spaces, tabs or
returns.

History
=======
0.5     X-Windows version now works in 16 and 32 bpp video modes, fixed
        some bugs in video and CPU emulation, increased speed, iNES now
        handles GZIPped and PKZIPped files automatically
0.5b1   Initial release

Please send your comments to Marcel at
m.dekogel@student.utwente.nl
BUT PLEASE, DO NOT ASK FOR ROM IMAGES!
