==============================================================================
                               NAUGHTY README
                    Written by Bart Trzynadlowski, 1999
==============================================================================

This is the readme file for Naughty Version 0.0. Read it please. 

0. SO WHAT IS IT?
Naughty is the most terrible NES emulator ever released. It is the result of
a rushed effort with a total lack of enthusiasm. I don't like Nintendo, or any
of their consoles, or any of their games. I am moving on to a bigger project,
I will not return to Naughty. If for some reason you desparately want to see
another Naughty I may consider rewriting it from scratch, but only if enough
people email me at trzy@powernet.net with good reasons. Naughty is public
domain software.

1. ARE YOU NAUGHTY ENOUGH TO USE IT?
Simply run the executable in a DOS prompt and follow the instructions. It is
that simple.
        I recommend running Naughty with a frameskip value of 4.
        The debugger really isn't that great. The single-step feature does not
time VBlanks. The execute feature runs ((240 * 113) + (20 * 113)) cycles and
will do the VBlank. The 2000, 2001, etc. items on the status display are PPU
registers, the VRAM address shows the last VRAM address read or written.
        Keep in mind that ALL values in the debugger are in hexadecimal. If
you want to disassemble 10 instructions at $C008, you would do: u c008 a
Everything must be lowercase as well.

When emulating, the following are the controls:

        A               Start
        S               Select
        Z               B
        X               A
        Q               Quit
        8,2,4,6         Up, down, left, right. Make sure Num Lock is on

        Naughty's controls are terribly implemented. They don't respond often.
To make a button work, press another directional button and then try that button
again. For example, to choose a guy to fight in Rockman, keep pressing down,
left, down, left, down, left.

Naughty shouldn't crash... but it might. It uses direct VGA access, with no
libraries, so it is possible that it might not work on your hardware, but this
is unlikely.

Don't expect too much from it, it isn't really worth using.       

2. REQUIREMENTS
You will need a Pentium processor, about a megabyte of free RAM, and a VGA
graphics adapter. Most any Pentium PC can run Naughty, but you will need
something that's "blazing fast" to run it comfortably. A 166MHz like mine is
not good enough.

3. FEATURES
This emulator was (poorly) written for Pentium DOS-based PCs. It was coded in
unoptimized C and assembly using DJGPP (GCC v2.8.1) and NASM v0.98. It uses
Marat's M6502 core for the CPU... which happens to be the major reason why it
is so incredibly slow.

What it has emulated:

        - 6502 CPU courtesy of Marat's M6502
        - RAM
        - Mapper #0
        - Mapper #2 (UNROM)
        - VRAM
        - Vertical, horizontal, and four-screen mirroring (I think)
        - PPU ($2000, $2001, $2002, $2003, $2004, $2006, $2007, $4014)
        - Background rendering
        - Sprite RAM
        - 8x8 sprites
        - Control pad #1 ($4016)
        - Tweaked 256x224 linear resolution
        - Line-oriented debugger
        - Primitive frame skipping

What sucks:

        - CPU emulator is responsible for unacceptable performance
        - CPU supposedly has a few bugs in it
        - Mapper #0 implementation does not support VROM
        - $3000-$3EFF in VRAM are not implemented properly (DarcNES didn't
          either)
        - No true VRAM pseudo-buffering, first byte read is simply undefined
        - No "mirror one high" and "mirror one low" stuff
        - $2000 and $2001 are only partially implemented
        - $2002 bit 5 is not implemented, bit 4 is always 0
        - Sprite #0 hit flag is slightly innacurate
        - Mid-HBlank $2006 writes are not implemented, treated as normal
          writes
        - Background rendering does not handle color #0 properly
        - Something may be wrong with the palette, look at the Rockman title
          screen
        - Sprite rendering sucks
        - "Tile-based" rendering, as opposed to accurate "scanline-based"
        - Strobing with $4016 is not implemented properly
        - Control pad emulation and keyboard input is barely usable
        - Ugly "whitescreens" and screen border is white too
        - The debugger has been crippled since I started using M6502
        - Frame skipping sucks
        - A whole lot more...
        
The missing:

        - $2005, no hardware scrolling
        - 8x16 sprites (rendered with 8x8 engine)
        - No sprite attributes emulated (except upper 2 color bits)
        - Sprite priority
        - Speed throttle
        - Control pad #2
        - Sound
        - Country selection
        - State saving
        - Too much more to list...
        
4. SPECIAL THANKS

These people made Naughty possible:

        nyef                    Author of DarcNES. DarcNES was used for inspiration.
                                nyef helped with countless things.
        TNSe^1999               A general great help. Pointed out lots of
                                flaws in my CPU core that I overlooked.
        Robert Schmidt          Wrote TWEAK several years ago.
        Paul Robson             Author of NESA. Let me used his tweak data
                                for the 256x224x256 linear VGA mode used.
        Peaker                  Fixed up one of my arrays.
        #nesdev                 EFnet. Put up with my constant questions.
        #programmers            DALnet. The best programming channel, period.

Much thanks to all the others that I forgot. 
