NESSIM - Nintendo Entertainment System Emulator
By: MottZilla

Features:
* All Official 6502 CPU Instructions (minus Decimal mode NES Lacks)
* Tiled Sprite Emulation, with Line by Line Tile Caching and Line Clipping.
* Correct Sprite vs. Sprite and Sprite Vs. Background Priority.
* Pixel by Pixel Background Rendering.
* Sound Emulation through Blargg's APU Lib.
* Sound Duty Cycle Swapping. Toggle with F6.
* Supports many common mappers including MMC3. 
* Save Battery Data Loading/Saving Support (Automatic)
* Simple GUI
* SaveState Support, aka Quicksave. F5 - save, F8 - load.
* Partial FDS Emulation. F1 - Insert/Eject Disk, F2 - Flip Disk Side. IRQ Supported.
* FDS emulation requires BIOS rom. Rename it disksys.rom
* Zipped ROM Support
* CPU Overclocking. You can set the CPU speed to 1.78mhz, 2.68mhz, or 5.36mhz.
^ Be aware that overclocking can have negative effects on timing sensitive games such
^ as those which have CPU Cycle IRQ Counters and possibly games which use PPU based IRQ
^ counters. Konami VRC4 has been given timing adjustments to compensate but no others.
^ Keys F9,F10,F11 change speeds.

Mappers Supported:
0,1,2,3,4,5,7,9,10,11,21,22,23,25,68,73,75,78,90,118,255(Rockman 6-in-1)

NROM
MMC-1 (Doesn't support the few Special SOROM or SXROM Games)
UxROM
CNROM
MMC-3 (Including MMC6 for Startropics)
MMC-5 (Not Complete, But Plays Castlevania 3)
AxROM
MMC-2
MMC-4
Color Dreams
Konami VRC-4/VRC-2
Sunsoft4B (Afterburner)
Konami VRC-3
Konami VRC-1

Keyboard Keys In GUI:
L - Load ROM
Q - Quit Emulator
D - Load Famicom Disk
V - Video Config Menu
I - Input Config Menu
R - Reset NES System
Escape - Resume Emulation

Keyboard Keys During Game Emulation:
Escape - Pause Emulation and Show GUI
F9  - Set CPU Speed to 1.78Mhz
F10 - Set CPU Speed to 2.68Mhz
F11 - Set CPU Speed to 5.36Mhz
F5  - Save Machine State
F8  - Load Machine State
F1  - Eject/Insert Famicom Disk
F2  - Flip Famicom Disk


Configuring the Emulator:

You can configure Video Mode and Controller settings with the GUI now. When configuring input you
should always remember that Up and Down arrow keys and Enter are for navigating that menu. Escape
will always pull you one level back torward the main GUI screen.

You can always you use own background picture if you like. Just place it with the emulator named
as bgpic.pcx or bgpic.bmp

Configuring the Emulator Externally:

Open NESSIM.CFG in a word processor like NotePad or WordPad. Look at each field and adjust as you
wish. Here are some notes on possible values. In the future I'll make it possible to configure in
the GUI but until then use the CFG file.

[GFX]
Mode	- This determines what Graphics Mode to run in. Values are:
	0 = 256x240 Windowed
	1 = 512x480 Windowed
	2 = 640x480 FullScreen
	3 = 640x480 FullScreen with Scanline Effect
	4 = 512x480 Windowed with Scanline Effect
	5 = 800x600 FullScreen

[SOUND]
Disable_Sound	- This determines if sound to be disabled. There is no real reason to disable it.
		0 = Enabled Sound.
		1 = Disabled Sound.

[PLAYER1]
Keyboard keys numbers are listed here. Look in Scancodes.txt for the number that matches the
key you wish to use.

Also Joystick numbers are listed here. 

Joystick_Number	- This is the number of the joystick connected to your system you want to use.
		Remember the first joystick is 0, the second is 1, the third is 2, etc.

Stick_Number	- This is which Stick of your joystick you want to use. This may be useful if
		your joystick has more than one stick. Sometimes D-Pads are actually another stick.

JS_B
JS_A
JS_Select
JS_Start	- These are all button numbers. Remember it starts at 0.


Remember this is still software in development and there may be problems with it. Also many debug
functions have not been disabled and some options like the GUI configuration menus aren't working
yet. Still it is functional and will play alot of games well.

