*************************************************************
* PCNES - The NES for your Personal Computer Version 0.12b  *
* by Jim Geffre (jgeffre@nd.edu)             12/07/97        *
* http://www.nd.edu/~jgeffre                                *
*************************************************************

1. Introduction
2. Updates to this version
3. Usage
4. Current Status
5. Future
6. Known Bugs and Limitations
7. History
8. Acknowledgements
9. Disclaimers

--------------
1. Introducion
--------------
   PCNES is a DOS-based emulator for the Nintendo
Entertainment System written entirely in 386 assembly language, 
utilizing Adam Seychell's DOS32 protected mode extender.  It
is freeware, but not to be distributed with any ROMs.

----------
2. Updates
----------
0.12b:  The following is new:
        Several memory mappers added
        Multiple MMC1 fixes (see bugs/limitations), including support for
        "extended" MMC1 games (Kid Niki, DW3, DW4)
        Bug fixes to nes internals (SMB's status bar no longer flickers)
        Fixed timing, although still not perfect.
        Simple speed throttling
        Support for Dragon Ball, however, due to a conflict in Yoshi's nes
        document (mapper 16) and the lack of an official Ines number, it is
        not supported in this release (DBZ=mapper 16 DB=?)
0.11b:  I added basic joystick support, however the keyboard must still be used
        for start and select.  I fixed a few glitches in MMC1 and MMC3.  Also, a 
        256 x 224 video mode has been added for those who had problems with the 
        last release.
0.10b:  First release

--------
3. Usage
--------
To run it simply type - pcnes.exe file.nes  The keys are
defined as follows:
NES Control
------------
Joypad - Arrow Keys
B      - Ctrl
A      - Alt
Start  - Space Bar
Select - X

PCNES Control Options
------------------------
F1  - Save screenshot in .pcx format (Saves as file.pcx)
F2  - Switch video mode (256x256 or 256x224)
j   - Press once, enable joystick.  Joystick is now in four button mode.  
      Press again, switch to two button joystick emulation.
      Press again, disable joystick.  Joystick can also be activated by pressing a button 
      on the joystick.
Esc - Exit emulation

-----------------
4. Current Status
-----------------
So far PCNES emulates:
	The complete 6502 opcode set(Using Ben Haynor's Metalynx 6502 core)
	Most NES registers
	Mappers 0,1,2,3,and partial mapper 4,7,9,10,11,15,16,19,32,34 support
	PPU emulation
	8x8 and 8x16 sprites
	Horizontal Scrolling
	Vertical Scrolling
	Battery-backed ram (.sav)
	Screenshot saving in pcx format
	Near-perfect NES timing
	Near-perfect NES palette
	Joypad support

---------
5. Future
---------
**Sound (hopefully next release)
Several bug fixes
Sprite priorities fix
A couple NES register bits
Several Mappers
Fix Timing (Games such as RadRacer are still messed up)
File loader (and GUI?)

-----------------------------
6. Known Bugs and Limitations
-----------------------------
* When running in full screen DOS mode on exit in certain cases
  the keys don't respond for a few seconds or until you hit 
  Alt-Enter
* I hope to add an auto-framerate soon to eliminate jerkiness in gameplay
* Due to stupidity on my part, DW3 and DW4 now quit at the beginning of the
  game.  I felt the need to rewrite a good part of my MMC1 code after both
  were completely working.
* All mappers that utilize irq's do NOT have the irq's implemented yet.
  This includes MMC3 and several others.
* The emulation speed has decreased with time, due to bloated and sloppy 
  programming.  When I can, I would like to rewrite all speed-critical
  code.
* There are many others bugs, too many to list here.
----------
7. History
----------
	PCNES is the first program I have created for a PC, and 
I have learned assembly language while writing this program.
The current program has existed since June, 1997, when I switched
to 32-bit protected mode programming.  If you can offer additional NES technical
information, I would be grateful.  I am specifically looking for information on
the exotic memory mappers and someone that has a rom dump of the Japanese version
of Mike Tyson's Punchout! (mapper 10, MMC4).  I would also appreciate bug reports,
but please don't report that games using unsupported mappers do not work.

-------------------
8. Acknowledgements
-------------------
	PCNES exists due to help from the following people:

Ben Haynor (author of MetaLynx):
	For his 6502 core, 6502 programming help, x86 programming assistance (a lot of it),
	beta-testing

Yoshi and Marat Fayzullin:
	Their NES architecture documents are the reason this emulator exists

Matt Richey:
	a GREAT source of information on MMC1
FanWen:
	provided information on several exotic mappers

Barkley, Firebug, Loaded:
	provided information and roms for testing purposes

Mike Perry:
	6502 information, insight into the NES internals

Loopy:
	provided the NES palette values.  His NES emulator has been invaluable for debugging

Sardu:
	provided such a high standard for NES emulation (what better motivation is there)
						 
--------------
9. Disclaimers
--------------
PCNES Copyright 1997 Jim Geffre
I accept no responsibility for the fitness of this software.
NES is a registered trademark of Nintendo Co., Ltd.
I am not affiliated with Nintendo, nor do I condone the piracy
   of NES ROMs.
PCNES may not be sold or distributed with ROMs.

Thanks,
Jim Geffre
jgeffre@nd.edu