                           ******* iNES *******
                  The Portable NES/Famicom/Dandy Emulator 
                        version 0.75b (08/07/1997)
                            by Marat Fayzullin

                    WWW: http://www.freeflight.com/fms/

                 Initial NES hacking and GameGenie hacking
                          done by Alex Krasivsky



                           * IN THIS DOCUMENT *

                      DISCLAIMERS
                      NEW IN THIS VERSION
                      INTRODUCTION
                      REGISTERED USERS
                      WHAT IS INCLUDED
                      WHAT IS NOT INCLUDED
                      BUTTONS
                      COMMAND LINE OPTIONS
                      CARTRIDGE FILE FORMAT
                      SOUNDTRACK FILE FORMAT
                      FREQUENTLY ASKED QUESTIONS



                               * DICLAIMERS *

* Nintendo Entertainment System and Famicom are registered trademarks of 
  Nintendo.
* The author is in no way affiliated with Nintendo.
* The author is in no way affiliated with any pirate group out there.
* The author can not provide you with NES/Famicom games.



                         * NEW IN THIS VERSION *

* Added better sound support to channels 2 and 3.
* Fixed bug in GameGenie patch exploitation.
* Added 


                            * INTRODUCTION *

  iNES is a portable emulator of the Nintendo Entertainment System (aka
Famicom in Korea and Japan, Dandy in Russia), written in C. The original
idea belongs to Alex Krasivsky from Moscow, who also wrote the original
code. I added missing CPU commands, wrote screen drivers, then rewrote the
code, then did thorough hacking to make it run as many cartridges as
possible, and suddenly wound up with a completely different emulator of my
own (but without clear understanding what to do with it :)). Given enough
support, I hope to make iNES even more compatible with real NES in the
future and add support for exotic gadgets such as GameGenie, FamilyBASIC,
or DiskSystem.

  You can always get latest iNES binaries and support files from

                 http://www.freeflight.com/fms/iNES/

  At this moment, iNES is able to run most of the NES carts. Just about
everything is implemented and working: ROM, VROM, screen scrolling,
sprites, battery-backed memory, sprites, palette, joysticks, many
different mappers (also known as bank switches or MMCs) allowing to run
large (>32kB) games. There is also GameGenie (thanks to heroical efforts
by Alex Krasivsky :)) and FamilyBASIC keyboard support. I started adding
support for the Famicom DiskSystem, but it is not finished yet.

  There are still some problems with sound, scrolling, synchronization,
and MMCs, as I have never seen any official documentation on them and have
to hack things on my own. Among things which are *not* implemented: 

* Screen split in the middle of a scanline (too expensive to implement).
* 5th sound channel (do not know how it works).
* Several MMCs, including ones used in Punchout, L'Empereur, etc.
* Lightgun (very difficult to emulate due to some limitations of iNES
  code). 

  If you have any information on NES/Famicom/Dandy and are willing to
help, feel free to send me email. Any *intelligent* help is greatly
appreciated. Please, do not send any requests, flames, or questions which
are answered in this document. I will not reply to such mail.

  Because of its portability, iNES can be compiled on a wide variety of
platforms: Unix, Amiga, Macintosh, MSDOS, Windows, etc. Unfortunately, it
looks that for each person geniunely interested in hardware hacking and
revival of the old videogame experience, there is a dozen of adolescent
gremlins hungry for a quick fun of playing pirated NES games on their PCs.
Because of that, I decided not to release iNES source code and not to
produce free versions of iNES for MSDOS or Windows. I do not want to
provide free entertainment for these vermin. Following are the currently
available versions of iNES: 

* Unix
  iNES-Unix is available freely in a binary form for various flavors of
Unix.

* Apple Macintosh
  The Macintosh version of iNES is being developed by John Stiles. It is
available from him as a shareware.

* MSDOS
  There is *no* publicly available iNES for MSDOS, neither freeware nor
shareware. Please, do not mail me asking for it: I won't answer to you. I
won't allow anyone to do an MSDOS port of iNES either. See above for the
reasons why. It is possible though that Alex Krasivsky will finally
release his NES emulator for MSDOS, written in 80x86 assembly language. It
is a different program, although we are working very closely and sharing
the data. 

* Windows
  The Windows95 version of iNES is available from me, Marat Fayzullin, for
$35US. This fee ensures that you will get you the latest full version of
iNES-Windows with sound and joystick support, saved preferences, GameGenie
support, and free updates via email as long as iNES-Windows is being
updated. For more information about it, take a look at

         http://www.freeflight.com/fms/iNES/iNESWindows.html

  I do not feel very good about maintaining the Windows version, as it
involves dealing with a large vegetable-level user community, and the very
first copy of iNES-Windows I sold was immediately pirated by hordes of
teenage idiots worldwide. If you *do want* to see the Windows version
being developed, please, register it by one of the following methods: 

  1. ORDER BY MAIL
     Send $35US in cash, money order, or a US bank check to:

     Marat Fayzullin
     6304 Hampton Place
     Elkridge, MD 21227
     USA

     Don't forget to include your email address and mention that you
     want iNES-Windows (as I'm selling several other products as
     well). The software will be emailed to you as soon as I receive
     the money.

  2. ORDER BY PHONE
     Call one of the following numbers in US:

     1-800-242-4775 (extension 15246)
     1-713-524-6394 (extension 15246)

     and refer to product #15246 (iNES-Windows). This service is
     provided by Public Software Library (PSL). You can pay them
     with a credit card. Don't forget to give them your email
     address. The software will be emailed to you as soon as I
     receive the notification from PSL.

  3. ORDER ON THE WEB
     Tell your WWW browser to go to

     http://www.pslweb.com/cgi-win/psl_ord.exe/ITEM15246

     and use the online form to register iNES-Windows. You can pay
     with a credit card. They take MasterCard, Visa, Amex, or
     Discover. The software will be emailed to you as soon as I
     receive the notification from PSL.



                           * REGISTERED USERS *

  If you registered iNES-Windows, *please* do not give your copy to
anybody. And I do mean *anybody*. There was a couple of cases when
registered users gave iNES away to their friends, relatives, or just
"KeWl" guys on the Net, and then I found it pirated, put onto WWW pages,
and even *posted* to USENET newsgroups. If I find your personalized copy
of iNES being spread around, your registration gets automatically
cancelled, which means no support and no more updates.

  I understand that the previous paragraph may sound threating to some
people, but this kind of piracy really hurts my profits and feelings. I've
put a lot of effort into iNES, and can only continue working on it if
people do not try to cheat on me. 

  It may also be a good idea to buy a real NES cartridge for each NES ROM
image you use with the emulator. NES software is copyrighted, but as long 
as you own the real cartridge, you are protected by the law allowing user 
to backup bought software.

  As this is a beta copy, if i find *anyone* with this or posted anywhere,
you and all the other leeching vermin will recieve a heavy fine which will
give your pre-pubescent minds a heavy working. I have recieved literally
thousands of complaints and I am fed up. I am especially fed up with  
the persons whom say iNES is nothing compared to NESticle. As Bloodlust has
used all my studies and information to create NESticle. If this beta and/or
any upcoming public release gets spread into the public stream of assholes,
lice, gimps, leechers, email bombers, nukers, flooders, i will personally
stop the interNES project as far as Windows ports and will not allow any
authors access to my source. If you feel this is unfair in any way, I can
be found in #russian, #fms, and #privet as RST38h on EFFNet.




                           * WHAT IS INCLUDED *

  Following files are included into the distribution:

  ines        - iNES executable file (Unix. ines -help for options)
  ines-debug  - iNES with debugger (Unix. ines-debug -help for options)
  wines.exe   - iNES executable file (Windows)
  iNES.doc    - This documentation
  CART.NES    - Sample cartridge which contains a testing program for NES
  CART.ASM    - The source code of a testing program
  headers.tgz - Some .NES headers to be used for conversion from
                other formats to .NES (Unix)
  headers.zip - Same as headers.tgz, but in ZIP format (Windows)



                       * WHAT IS NOT INCLUDED *

  Absolutely no ROM images of NES games are included. NES games are still
copyrighted by the companies who produced them, and therefore, I can not
distribute any of them. I'm also unable to tell you where to find these
games, so do not send me email asking for them. You will have to look for
them on your own. 

  The iNES WWW page contains some links to NES cartridge copier info. 
Cartridge copiers can be used to dump NES cartridges into files. I can not
provide you with any additional information about these copiers, so do not
send me email asking for this information. Use the copier-related links at
the iNES WWW page.

  I'm no longer distributing the file about NES hardware architecture
(NES.doc) with this emulator. This file is available separately at the
iNES WWW page.

  I'm no longer distributing the 6502 disassembler and NESLIST cartridge
listing utility with this emulator. These programs are now distributed
separately in the EMUTools package, also available at iNES WWW page.



                             * BUTTONS *

  When using FamilyBASIC keyboard, press [CONTROL]+[KEY] to
  access the special function of a [KEY], if it also performs
  a keyboard function.

  [SPACE]    - FIRE-A button (also: [LALT],A,S,D,F,G,H,J,K,L)
  [CONTROL]  - FIRE-B button (also: Z,X,C,V,B,N,M)
  [TAB]      - SELECT button
  [ENTER]    - START button
  [ESC]      - Quit emulation (also: [F12])
  [SHIFT] and [CAPSLOCK] switch between joypads
  [F2]       - Turn soundtrack log on/off

  When compiled with #define SOUND:
  [1]-[5]    - Toggle sound channels on/off
  [0]        - Toggle all sound on/off
  [-]        - Decrease sound volume
  [+]        - Increase sound volume

  When compiled with #define DEBUG:
  [F1]       - Go into the built-in debugger



                      * COMMAND LINE OPTIONS *

  -verbose <level>    - Select debugging messages [5]
                        0 - Silent            1 - Startup messages
                        2 - Illegal accesses  4 - Illegal CPU ops
                        8 - Bank switching
  -hperiod <period>   - Number of CPU cycles per HBlank [115]
  -vperiod <period>   - Number of CPU cycles per VBlank [30475]
  -uperiod <period>   - Number of VBlanks per screen update [3]
  -help               - Print this help page
  -cheat <GG code>    - Activate a GameGenie cheat
  -autoa/-noautoa     - Autofire/No autofire for button A [-noautoa]
  -autob/-noautob     - Autofire/No autofire for button B [-noautob]
  -pal/-ntsc          - Show 240 or 224 lines [-ntsc]
  -rkbd/-jkbd/-nokbd  - FBASIC3R, FBASIC2J, or no keyboard [-nokbd]
  -disk/-nodisk       - Use/Don't use DiskSystem emulation [-nodisk]
  -palette <number>   - Choose a color palette [0]
                        0 - Normal             1 - Adjusted Pasofami
                        2 - Original Pasofami  3 - NESticle 0.2
                        4 - NESticle 0.21
  -logsnd <filename>  - Write soundtrack to a file [LOG.SND]
  -cheat <GG code>    - Activate a GameGenie cheat
  -shm/-noshm         - Use/don't use MIT SHM extensions for X [-shm]
  -saver/-nosaver     - Save/don't save CPU when inactive [-saver]

  When compiled with #define SOUND:
  -sound [<quality>]  - Sound emulation quality [0]
                        0 - Off                1 - Adlib (MSDOS)
                        Values >8191 are treated as wave synthesis
                        frequencies. Default frequency is 22kHz.
  -nosound            - Don't emulate sound [-nosound]

  When compiled with #define DEBUG:
  -trap <address>     - Trap execution when PC reaches address [FFFFh]



                         * CARTRIDGE FILE FORMAT *

  The iNES distribution includes a single cartridge image with a program
allowing to test the emulator. There is also a source code of this program
included. Following is the format of ROM-image files used by iNES (.NES
extension): 

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     1 for a four-screen VRAM layout 
                   This is only available with certain types of mappers,
                   for example type #1 (BoulderDash) and type #5
                   (Castlevania3).
         bit 4-7   Four lower bits of ROM Mapper Type
7        bit 0-3   Reserved, must be zeroes!
         bit 4-7   Four higher bits of ROM Mapper Type
8-15     Reserved, must be zeroes!
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 expand in the next version of
iNES, therefore do not take it for something permanent. The general
structure will stay the same though.

  The 8 bits allocated for the mapper number give us a total of 256
possible mapper types. Folowing is a table of assigned mapper types. The
ones with the "-" sign are not currently supported by iNES. 

Mapper#  Name                  Examples
-----------------------------------------------------------------------------
0        No mapper             All 32kB ROM + 8kB VROM games
1        Nintendo MMC1         Megaman2, Bomberman2, etc.
2        Simple ROM switch     Castlevania, LifeForce, many games
                               hacked for use with FFE copier
3        Simple VROM switch    QBert, PipeDream, Cybernoid, many
                               Japanese games
4        Nintendo MMC3         SilverSurfer, SuperContra, Immortal, etc.
5        Nintendo MMC5         Castlevania3
6        FFE F4xxx             F4xxx games off FFE CDROM
7        32kB ROM switch       WizardsAndWarriors, Solstice, etc.
8        FFE F3xxx             F3xxx games off FFE CDROM
9      - Nintendo MMC2         Punchout
10       Nintendo MMC4         Punchout2
11       ColorDreams chip      CrystalMines, TaginDragon, etc.
12     - FFE F6xxx             F6xxx games off FFE CDROM
15       100-in-1 switch       100-in-1 cartridge
16       Bandai chip           Japanese DragonBallZ series, etc.
17       FFE F8xxx             F8xxx games off FFE CDROM
18       Jaleco SS8806 chip    Japanese Baseball3, etc.
19       Namcot 106 chip       Japanese GhostHouse2, Baseball90, etc.
20       Nintendo DiskSystem   Reserved. Don't use this mapper!
21       Konami VRC4           Japanese WaiWaiWorld2, etc.
22       Konami VRC2 (a)       Japanese TwinBee3
23       Konami VRC2 (b)       Japanese WaiWaiWorld, MoonWindLegend, etc.
24     - Konami VRC6           ???
32       Irem G-101 chip       Japanese ImageFight, etc.
33       Taito TC0190/TC0350   Japanese PowerBlazer
34       32kB ROM switch       ImpossibleMission2 and DeadlyTowers
-----------------------------------------------------------------------------



                       * SOUNDTRACK FILE FORMAT *

  iNES is capable of saving soundtrack into so-called .SND files, also
used by my other emulators. You can find tools to work with these files in
the EMUTools package. .SND files have quite simple format described below: 

Byte     Contents
-----------------------------------------------------------------------------
0-3      String "SND^Z"
4        Version number
5        Number of channels
6        Clock frequency, in Hz
7-15     Reserved, must be zeroes!
16-EOF   Sound records of following types:

         a) channel# | frequency.l | frequency.h | volume
            Change sound on a given channel to new frequency (Hz)
            and volume (0..255).

         b) FFh
            A single clock "tick".

         c) FDh | number of ticks
            Multiple clock "ticks" (0..255).

         d) FEh | channel# | sound type
            Change sound type at a given channel. Default type
            is MELODIC for all channels. Currently defined types:

            0 - MELODIC
            1 - WHITE NOISE
            2 - PERIODIC NOISE
-----------------------------------------------------------------------------



                     * FREQUENTLY ASKED QUESTIONS *

* I WANNA PLAY GAMES!!!! WHERE DO I GET GAMES???????
-----------------------------------------------------------------------------
  I do not know. I can't give you any due to both legal and moral reasons.
Please, do not mail me asking for games. I will delete your mail right
away, and you won't get an answer.

* How do I copy NES games from cartridges to a computer?
-----------------------------------------------------------------------------
  You can use a special device called cartridge copier. Pascal Felber has 
made such a copier for NES. Its schematics and software are available at
                    
                http://lsewww.epfl.ch/~felber/IO-56/

  You can also buy this copier from Pascal, either in parts, or as a
pre-built kit.

* Where do I get information on the NES/Famicom/Dandy hardware?
-----------------------------------------------------------------------------
  Unfortunately, this information has never been made publicly available. 
There are several pieces of documentation I know of. One of them is my own
documentation file (NES.doc), which can be obtained from iNES WWW site.
Another one is a NESTech.doc file which can be found on the Net.

* There is no version of iNES for my Unix!
-----------------------------------------------------------------------------
  I am trying to compile Unix binaries for as many flavors of Unix as
possible, but as I do not have access to many machines, do not expect
immediate support for every Unix flavor out there. Don't mail me asking
for the source either: iNES source code is not publicly distrbutable, as
much as I regret to say this :(. 
  
* Where do I get iNES for MSDOS?
-----------------------------------------------------------------------------
  This is explained in the beginning of this document.

* How do I make .NES files out of raw ROM images?
-----------------------------------------------------------------------------
  The iNES distribution includes .NES file headers for some carts, which
can be used to convert carts into .NES format. These headers are *not*
guaranteed to work. If you have a cartridge ROM in CART.PRG file, and a
cartridge VROM in CART.CHR file, the following has to be done to create
the CART.NES file:
  
  in Unix:   cat CART.HDR CART.PRG CART.CHR > CART.NES
  in MSDOS:  copy/b CART.HDR+CART.PRG+CART.CHR CART.NES

  The size of a CART.PRG file should be divisible by 16384. The size of a
CART.CHR file should be divisible by 8192. 

* My favorite game doesn't work on iNES. What do I do?
-----------------------------------------------------------------------------
  There may be several reasons why a game has problems running on iNES
or does not run at all:

  a) Your ROM image file may have an incorrect header or other problems.
     Some of them can be detected by running it through the NESLIST
     utility (included into EMUTools package). Others get revealed by
     comparison with the sample headers which come with iNES (see
     headers.tgz or headers.zip file).

  b) It came to my attention that it is considered "cool" by many pirates
     to put their "signatures" into unused bytes of .NES headers. Such
     image files are not guaranteed to work, even if they worked on
     some older version of iNES. Do not use pirated ROM images. 

  c) The VBlank and HBlank periods may be wrong. Try to play with them,
     using -vperiod/-hperiod options in Unix, or corresponding sliders
     in the Setup Panel of a Windows version. The first thing would be
     to make VBlank period bigger and see what happens. Read the
     *FAQ* section of this file (iNES.doc) for more info.

  d) The game does not run with a FamilyBASIC keyboard. The keyboard
     support if off by default, but if you have it on, turn it off by
     not using -kbd options. On the other hand, some cartridges may
     require the keyboard. Use a -kbd option for them. All above
     only applies if you version of iNES supports the keyboard (iNES
     Unix does).

  e) The game may require some exotic piece of equipment, such as a
     light gun. Not all NES hardware addons are supported by iNES.

  f) iNES can't currently run this game. Not all games are supported at
     this moment. Don't expect 100% compatibility with real hardware.

* What are those weird Fxxx and SMxxx files?
-----------------------------------------------------------------------------
  Those are most likely files produced by the Front Far East copier. Each
such file has a 512-byte header (which you need to get rid of), an
optional 512-byte trainer (which you probably want to retain), a ROM, and
an optional VROM, all stuck together into a single file. Simply cut off
the FFE header, add a .NES header, and modify it to reflect the correct
number of pages, mapper type, etc.

  It is necessary to note that even those FFE ROM images which do not have
a trainer were very often modified to work with the FFE copier. Although
iNES has support for several types of FFE images, it is strongly
recommended that you only use clean, unhacked ROM images backed directly
from the cartridges instead of FFE ones. 

* What are the interleaved NES ROM images?
-----------------------------------------------------------------------------
  Interleaved NES ROM image is a file which contains the ROM data in each
even byte, and the VROM data in each odd file. You will have to write a
program to separate such file into ROM and VROM, and then glue them
together with a .NES header to produce the .NES file. 

* What is that "Mirroring" flag?
-----------------------------------------------------------------------------
  The Vertical/Horizontal Mirroring flag requires an additional
explanation. In the real NES/Famicom cartridges, either A10 or A11 line of
the address bus can be connected. Depending on it, video memory may either
contain two screens at addresses $2000/$2400 mirrored at $2800/$2C00
(Vertical Mirroring), or two screens at $2000/$2800 mirrored at
$2400/$2C00 (Horizontal Mirroring). 

  The games which only use one screen do not care about the mirroring. The
games using two screens require an appropriate mirroring though. Be aware
that many bank switches allow to switch mirroring from the program. 

  Some cartridges contain additional VRAM and have both A10 and A11 lines 
connected. Mirroring has no meaning for such cartridges.

* What are those "HPeriod" and "VPeriod" options?
-----------------------------------------------------------------------------
  The -hperiod controls how many CPU cycles it will take to refresh a
single scanline of display (including HBlank). It currently defaults to
115, but some games may require it to be somewhere else in 115-130 range
to work properly.

  The -vperiod controls how many CPU cycles it takes to refresh the
entire screen (including VBlank). It currently defaults to 30475, which
gives us total of 265 scanlines (that is 240 real scanlines plus VBlank).
The vperiod/hperiod value should never be less than 256 to give VBlank
interrupt handlers enough CPU cycles.

* What is the "512-byte Trainer"?
-----------------------------------------------------------------------------
  The 512-byte trainer mentioned before is something implemented in the
Front Far East copier for the NES. When this trainer is present (its code
precedes the ROM contents in the .NES file), it is loaded into
$7000-$71FF, and then control is passed to it at some points of the
program execution.

* Why is iNES so slow on my machine?
-----------------------------------------------------------------------------
  Because your machine is too slow to run iNES. My experience shows that
you need at least a Pentium/90 machine with fast video to run iNES at a
reasonable speed. Following are the ways to speeds thing up:

  a) Increase UPeriod. The picture will get more jerky, but iNES will
     become faster.

  b) On Unix, always use MIT Shared Memory Extension for X (MITSHM). This,
     of course, means that you have to run iNES locally.

  c) On Windows, use 1:1 window in 256-color mode to achieve the highest
     speed.

  d) On Windows, use MIDI sound, as wave synthesis takes quite a lot of
     CPU time.

* iNES is too fast on my machine! How do I slow it down?
-----------------------------------------------------------------------------
  Decrease UPeriod to 2 or even to 1. The emulation will become much
slower, but smoother.

* What should I do to convert .SND files saved by iNES into music?
-----------------------------------------------------------------------------
  An .SND file is a soundtrack saved by iNES. You can play it using
PSGPLAY program included into EMUTools package. You can also convert .SND
files into MIDI format (.MID) using the SND2MID utility. SND2MID is also
included into EMUTools.

* What is that EMUTools package and where do I get it?
-----------------------------------------------------------------------------
  EMUTools is a set of utilities which may be useful for both emulator
authors and users. They allow to list and verify diferent ROM images,
convert music files, disassemble and compare ROMs. EMUTools can be
obtained from iNES WWW site. 

* Do I need to unpack GZIPped ROM images to run them on iNES?
-----------------------------------------------------------------------------
  No, unless your copy of iNES has been compiled without #define ZLIB.
iNES-Windows and most versions of iNES-Unix are compiled with this option.
It allows iNES to recognize and automatically unpack GZIPped and singular
PKZIPped files. To find out whether your iNES-Unix supports this feature,
run it with '-help' option and see if there is anything said about GZIP
support.

* When starting iNES-Unix, ld says that libz library isn't found. 
-----------------------------------------------------------------------------
  Some iNES-Unix binaries are compiled with #define ZLIB option to make
them automatically recognize and unpack GZIPped files. This option 
requires ZLib library which can be obtained from

             http://www.cdrom.com/pub/infozip/zlib/zlib.html

* When starting iNES-Unix, ld says that some library isn't found.
-----------------------------------------------------------------------------
  This may happen if the versions of your shared libraries are older than
the ones for which iNES has been compiled. A decent way to deal with this
is to upgrade your Unix. A quick and dirty way is to make a symbolic link
from the existing library to a name required by iNES.

* When starting iNES-Unix, I get X_ShmAttach error.
-----------------------------------------------------------------------------
  You are probably trying to run iNES-Unix on a remote Xterminal while it 
attempts to use shared memory for interfacing with X. Use -noshm option to
tell it not to use shared memory.
  
* When starting iNES-Unix, I get X_PutImage error.
-----------------------------------------------------------------------------
  iNES-Unix version currently needs 8bit, 16bit, or 24bit X. Neither  
2-color nor 16-color Xterminals will work.

* I start iNES-Unix, but the window stays black.
-----------------------------------------------------------------------------
  Some other X application took over all available colors so that the
emulation could not allocate any for itself. Check if you run XV,       
Netscape, or something similar.

* The sound is distorted in the iNES-Windows. How do I fix it?
-----------------------------------------------------------------------------
  The wave-synthetized sound in iNES may become distorted on slow or
highly loaded machines (no graphics acceleration, for example). There are
several ways you can improve sound:

  a) Use MIDI sound instead. It has both advantages and disadvantages
     though.

  b) Make iNES window smaller to decrease the load on the CPU. 1:1 is
     the optimal size.

  c) Decrease the sampling frequency (in Setup Panel). The sound may
     become tinkier, but less distorted.

  d) Increase the number of wave buffers (in Setup Panel). This may
     cause sound to fall a second or two behind the screen action, but
     the sound quality will become better.

* Does iNES-Windows support joystick? My joystick doesn't work!
-----------------------------------------------------------------------------
  iNES-Windows supports joystick (actually, two joysticks, for both
players). If your joystick does not work, go into Windows Control Panel to
see if it is configured and calibrated properly.

* Colors are all screwed up in iNES-Windows!
-----------------------------------------------------------------------------
  When running Windows in 256-color mode, it will try to approximate
colors to existing ones, but it won't always get an exact match. I'm
working on fixing this. For now, switch Windows into 16-bit graphics to
get perfect colors. iNES may get a little bit slower though.

* Command line options don't work in iNES-Windows!
-----------------------------------------------------------------------------
  They shouldn't. The demo version of iNES-Windows supports no command
line interface at all. The full version will only accept the .NES file
name at the command line, but no options. All configuration is done via
Setup Panel and iNES.INI file.

* Volume control works strangely in iNES-Windows!
-----------------------------------------------------------------------------
  It is a known bug. I'm working on fixing it. You can usually restore
normal volume by leaving iNES window and then activating it again.

* Will iNES-Windows work on Windows 3.xx?
-----------------------------------------------------------------------------
  It may, but I can't guarantee it. iNES-Windows has never been tested on
Windows 3.xx. Maybe it is time to upgrade to Windows95.

* I'm a registered iNES-Windows user and some games no longer run!
-----------------------------------------------------------------------------
  It is quite possible that your iNES.INI file no longer works with the
new version of iNES. It is my suggestion to delete iNES.INI every time you
get a new version of iNES. You can still use some ASCII editor (Notepad or
DOS Editor) to migrate some of your old settings into new iNES.INI. 



-----------------------------------------------------------------------------
Marat Fayzullin (fms@freeflight.com)
