NES emulator

0. Contents

This is the documentation of nes-0.0.16.
   1. Description
   2. Features
      2.1. 6502 CPU (central processing unit)
      2.2. Memory mappers
      2.3. Keypads
      2.4. PAPU (paraller auxiliary processing unit): Sound
      2.5. PPU (picture processing unit)
   3. Purpose
   4. Copying
   5. Downloading

1. Description

Emulates the Nintendo Entertainment System.

2. Features

This isn't really an emulator somebody would play a game with.
Here's the list of features supported:

2.1. 6502 CPU (central processing unit)

Based on Marat Fayzullin's m6502 cpu emulator core. Completely rewritten to take advantage of C++ features such as inline functions and classes.

2.2. Memory mappers

Supported memory mappers: 0(none), 1(MMC1), 2(UNROM), 4(MMC4), 6, 7 and 15.
Some work better, some don't.

2.3. Keypads

The key pads of both players are supported. However, the program doesn't do any trick to force the keyboard to binary mode or scan code mode. Therefore, it doesn't recognize simultaneous key presses. It always assumed that the last pressed key is now down and nothing else.
It is possible to input the Dr Wily level 1 password in Mega Man 2 (I have done it), but it isn't possible to finish the first level of Super Mario Bros.

2.4. PAPU (paraller auxiliary processing unit): Sound

Most of the time used in developing this emulator has gone into the sound emulation. In Mega Man 2, Solstice and Solar Jetman, the sound emulation quality is perfect, but in Super Mario Bros, it's pain to hear. I have no clue what is the reason. The documentation available of the sound circuits is no nearly good.
The sound emulation, due to it's exactness, is very time consuming. It requires a fast computer.
The PCM emulation doesn't work. It just can't get it working. It succesfully decodes DPCM encoded sound samples, but it does not work in games such as Blades of Steel or Super Mario Bros 3. Those games don't even startup.

2.5. PPU (picture processing unit)

This emulator doesn't use graphics. It's really a text mode NES emulator.
The PPU emulation is also very exact. It takes really good care of the timings, but absolutely nothing is drawn.

3. Purpose

It's nice to investigate how the NES works.
My goal actually was to make perfect sound emulation to record music.

However after I realized that I could get a perfect NSF player instead, I have abandoned this project.

4. Copying

This program has been written by Joel Yliluoma, a.k.a. Bisqwit,
and is distributed under the following terms:
* No warranty. You are free to modify this source and to
* distribute the modified sources, as long as you keep the
* existing copyright messages intact and as long as you
* remember to add your own copyright markings.
* You are not allowed to distribute the program or modified versions
* of the program without including the source code (or a reference to
* the publicly available source) and this notice with it.

5. Downloading

The official home page of nes is at http://oktober.stc.cx/source/nes.html.
Check there for new versions.

Generated from progdesc.php (last updated: Sat, 14 Dec 2002 16:42:26 +0200)
with docmaker.php (last updated: Tue, 13 Aug 2002 14:17:29 +0300)
at Sat, 14 Dec 2002 16:42:39 +0200