WWW: http://www.freeflight.com/fms/
* 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 *
* INTRODUCTION *
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.
* 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
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:
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 *
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.
* WHAT IS INCLUDED *
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)
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.
* BUTTONS *
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.
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:
b) FFh
A single clock "tick".
0 - MELODIC
1 - WHITE NOISE
2 - PERIODIC NOISE
-----------------------------------------------------------------------------
* FREQUENTLY ASKED QUESTIONS *
http://lsewww.epfl.ch/~felber/IO-56/
You can also buy this copier from Pascal, either in parts, or as a
pre-built kit.
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).
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) iNES can't currently run this game. Not all games are supported at
this moment. Don't expect 100% compatibility with real hardware.
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.
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.
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.
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.
http://www.cdrom.com/pub/infozip/zlib/zlib.html
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.
-----------------------------------------------------------------------------
Marat Fayzullin (fms@freeflight.com)