NES emulator

   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.

Alert: This program is most probably completely useless to you!
Go and see a real NES emulator instead at .
Also, this is NOT the emulator that I featured at YouTube.

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.
However I guess I dived too deep...

My goal was to make perfect sound emulation to record music.

After I realized that I could get a perfect NSF player instead, I abandoned this project.

Nowadays I'm working with SNES games.

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

Downloading help

  • Do not download everything - you only need one file (newest version for your platform)!
  • Do not use download accelerators or you will be banned from this server before your download is complete!

Date (Y-md-Hi) acc        Size Name                
2003-0926-1620 r--       31315 nes-
2003-0926-1620 r--        5689 patch-nes-0.0.16-
2002-1214-1442 r--       30533 nes-0.0.16.tar.bz2
2002-1214-1442 r--       10156 patch-nes-0.0.15-0.0.16.bz2
2002-0501-2022 r--       27025 nes-0.0.15.tar.bz2
2002-0501-2022 r--        1737 patch-nes-0.0.14-0.0.15.bz2
2002-0408-1053 r--       26956 nes-0.0.14.tar.bz2
2002-0408-1053 r--        3567 patch-nes-0.0.13-0.0.14.bz2
2002-0209-2131 r--       28272 nes-0.0.13.rar
2002-0209-2131 r--       26699 nes-0.0.13.tar.bz2
2001-1017-0130 r--       36890
2002-0209-2131 r--        8556 patch-nes-0.0.12-0.0.13.bz2
2001-0119-0223 r--       24045 nes-0.0.12.rar
2001-0119-0223 r--       22408 nes-0.0.12.tar.bz2
2001-0119-0223 r--       33820
2001-0119-0223 r--         526 patch-nes-0.0.11-0.0.12.bz2
2001-0119-0103 r--       24046 nes-0.0.11.rar
2001-0119-0103 r--       22388 nes-0.0.11.tar.bz2
2001-0119-0103 r--       33823
2001-0119-0103 r--        5047 patch-nes-0.0.10-0.0.11.bz2
2000-1130-0349 r--       22842 nes-0.0.10.rar
2000-1130-0349 r--       21190 nes-0.0.10.tar.bz2
2000-1130-0349 r--       32181
2000-1130-0349 r--         842 patch-nes-0.0.9-0.0.10.bz2
2000-1128-0453 r--       22407 nes-0.0.9.rar
2000-1130-0205 r--       21161 nes-0.0.9.tar.bz2
2000-1128-0453 r--       31705
2000-1130-0205 r--       18063 patch-nes-0.0.8-0.0.9.bz2
2000-1127-1010 r--       19072 nes-0.0.8.rar
2000-1127-1010 r--       18399 nes-0.0.8.tar.bz2
2000-1127-1010 r--       23331
2000-1127-1010 r--       12032 patch-nes-0.0.7-0.0.8.bz2
2000-1126-2332 r--       17520 nes-0.0.7.rar
2000-1126-2332 r--       16958 nes-0.0.7.tar.bz2
2000-1126-2332 r--       21685
2000-1126-2332 r--        7612 patch-nes-0.0.6-0.0.7.bz2
2000-1126-1101 r--       17406 nes-0.0.6.rar
2000-1126-1101 r--       16848 nes-0.0.6.tar.bz2
2000-1126-1101 r--       21518
2000-1126-1101 r--       15725 patch-nes-0.0.5-0.0.6.bz2
2000-1126-0259 r--       16208 nes-0.0.5.rar
2000-1126-0259 r--       15860 nes-0.0.5.tar.bz2
2000-1126-0259 r--       19923
2000-1126-0259 r--        7885 patch-nes-0.0.4-0.0.5.bz2
2000-1125-0620 r--       15502 nes-0.0.4.rar
2000-1125-2335 r--       15680 nes-0.0.4.tar.bz2
2000-1125-0620 r--       19145
2000-1125-2335 r--        7716 patch-nes-0.0.3-0.0.4.bz2
2000-1125-0222 r--        4487 patch-nes-0.0.2-0.0.3.bz2
2000-1122-2106 r--        3271 patch-nes-0.0.1-0.0.2.bz2
2000-1121-1553 r--       70129 patch-nes-0.0.0-0.0.1.bz2
2000-1121-0641 r--       71088 nes-0.0.0.rar
2000-1121-0641 r--       78084 nes-0.0.0.tar.bz2
2000-1121-0641 r--       74990
Back to the source directory index at Bisqwit's homepage