Nintendo Entertainment System emulators

From Emulation General Wiki
Revision as of 07:18, 22 March 2017 by 73.51.66.116 (talk) (Peripherals)
Jump to navigation Jump to search
The Nintendo Entertainment System (NES)

The Nintendo Entertainment System (NES) is an 8-bit, third-generation console released in 1983 in Japan, where it was known as the Famicom.

The Famicom Disk System (FDS) is a Japan-only add-on which played special versions of games. It featured an extra FM sound channel, which allowed for richer sounds and music than is possible on the regular console.

Emulation for the NES is robust, with several high quality emulators for various systems.

Emulators

Name Operating System(s) Latest Version FDS Libretro Core Accuracy Recommended
PC
Mesen Windows, Linux 2.0.0 (preview) Cycle
Nestopia UE Windows, Linux 1.47 Cycle
puNES Windows, Linux 0.100 Cycle
Nintendulator Windows 0.975 Beta Cycle
3DNES Windows, Mac, Linux v1.2 ?
BizHawk Windows 2.9.1 Cycle
MyNes Windows, Linux 6 ?
cxNES Windows, Linux 0.3.3 ?
FakeNES GT Windows, Linux, Mac, MS-DOS 0.59 b3 Mid
FCEUX Multi-platform 2.2.3 Mid
FCEUmm Multi-platform 98.13mm Mid
HDNes Windows Git Low
higan Windows, Linux, OS X v110 ✓ (as bnes v0.83) Cycle
Jnes Windows 1.1.1 Low
MESS Multi-platform 0.264 Mid
nemulator Windows 4.2 High
nesemu2 Linux GitHub Cycle
NESticle Windows, DOS x.xx DOS
0.42 Windows
Low
QuickNES Multi-platform v1 Low
RockNES Windows 5.4.1 ?
Consoles
NesterJ* PlayStation Portable 1.13 beta 2/AoEX Mid
Virtual Console Wii, 3DS, Wii U varies per system Minimal
Nestopia** PS3, 360, Wii 1.44 Mid
FCEUX Wii, Gamecube 2.2.1
3.3.2
Mid
Mobile
Nestopia*** Android, iOS 1.44 High
Jnes Android 1.4.8.55 Android Low
Nostalgia.NES Android 1.12.2

* AoEX is based on NesterJ 1.12 Plus 0.61 RM, so it includes features like rewind mode, cheat codes support, rotated/mirrored screen, sepia palette, support to rare mappers (the pirate bootleg FF7 works on it), etc, but its compatibility is inferior to 1.13 beta 2.
** Only available on consoles as a libretro core (e.g. RetroArch).
*** Only available on mobile as a libretro core (e.g. RetroArch).


Comparisons

  • Mesen is the most accurate NES emulator according to tests.[1] It should be the emulator of choice for those who desire the utmost accuracy. Mesen is also very user-friendly and supports a lot of features that other emulators are missing such as: netplay, auto-updating, has good filters built in, loads both .zip, goodmerged files, etc. PuNES has a few mappers that Mesen doesn't support yet.
  • PuNES is the second most accurate NES emulator according to the same tests.[2] That's not to say that it will generate an absolutely perfect experience compared to actual hardware. PuNES also supports rewinding in games. PuNES has some mappers that Mesen doesn't support yet. Mesen has quite a few mappers that PuNES doesn't support yet.
  • Nestopia has a high ranking in those same tests.[2] Nestopia has issues with The Young Indiana Jones Chronicles and doesn't display the status bar in Mickey's Safari in Letterland correctly among other problems. Nestopia Undead Edition (abv. Nestopia UE) is a fork of Nestopia meant to keep it alive and fixes the aforementioned bugs. This is generally the recommended standalone version. The libretro core for Nestopia is the Undead Edition in libretro form.
  • Nintendulator and MyNes have a high ranking in those same tests.[2]
  • FCEUX scores fairly low in the same tests, despite being a recommended emulator on TAS Videos. The New PPU is more accurate than the Old PPU, however. The emulator is still useful, though, thanks to its robust Lua scripting features and incorporating FCEUmm into its feature set.
  • For official emulation, use Virtual Console. It is very accurate and has the backing of many of the developers, including Nintendo, Capcom, Square Enix and Namco. The Wii has a significantly larger library of NES games to choose from than the 3DS or Wii U, especially from third-party publishers.

There are many NES emulators not listed here, as the NES has more emulators than any other system, plus new ones are started all of the time. Only the ones that are well known or stand out in some way will be listed.

Emulation Issues

Overscan

Example of faulty visuals that are exposed when no overscan is cropped. Note the blank blue area to the left and the green garbage on the right. On NTSC CRT TVs, these areas may or may not be visible

Several NES games need the overscan to be cropped to look proper. There is however, seemingly no standard level of overcropping. Many games seem to require different levels of overcropping. SMB3 requires a lot of cropping, however the same level of cropping will obscure of the letters in the status bar in Castlevania games. It did not seem that there was standardization until the next generation of consoles.

Color Palette

Main article: Famicom Color Palette

Unlike consoles like the SNES, which natively generate the image in pure RGB, the Famicom normally generates and outputs an encoded NTSC video signal, which must then be decoded by the TV's built-in NTSC decoder. This means the resulting color palette often varies depending on the display's decoder. This is why NES games appear to have different colors on different TV sets. Famicom emulators have a variety of different palettes to choose from.

Peripherals

There were many accessories released for the NES but Emulation General will only cover accessories that are truly different data streams other than the basic controller (input data stream). For example, the Power Glove is just a really complicated NES controller to convert motion into d-pad, select, start, a, and b button commands. Same goes for R.O.B. for Stack-up and Gyromite because it was just the second player.

Microphone

Technically not a peripheral because it was physically part of each model 1 Famicom, on the second player's controller is a microphone and volume slider instead of having start and select buttons. One noteworthy game that makes use of it is the Japanese Legend of Zelda. Pols Voice, an enemy, is destroyed if the player makes a loud sound into the microphone. Another game to make use of the microphone is Takeshi no Chōsenjō (Takeshi's Challenge). It is unknown if any emulator supports this.

Zapper

This accessory was very common. It was used for many games, such as Duck Hunt and Wild Gunman just for two examples. It's a light gun. When the trigger is pulled, the screen for 1-2 frames flashed black with a white rectangle (the target to shoot at). If the gun detected it was pointing at the white, it told the game to register a hit. Real hardware, this was very hit or miss. It mainly worked with old CRT TVs. Newer TVs will not register with the Zapper. Many emulators support this accessory with 100% accuracy hit detection, usually with a mouse click (PC), tap (for mobile), remote (Wii ports of NES emulators), or faked pointers using a controller.

Famicom Disk System

A Japan-only peripheral using the disk format instead of cartridges, with unique games made for it, some of which were later ported to the regular NES/Famicom cartridge format with significant downgrades (especially the loss of enhanced FDS hardware audio).

You'll need the fdsbios file to emulate games made for this peripheral. Switching disk sides will require using "Eject/Insert Disk", "Switch Disk Side", then "Eject/Insert Disk" again.

It's interesting to note there are two versions of this BIOS; Nintendo's peripheral and Sharp's Twin Famicom. The only difference is Nintendo's displays Nintendo while Sharp's displays Famicom when the hardware is first booted. Other than that, they function identically.

Famicom Keyboard

One game used a keyboard to program in BASIC on a Famicom and that was Family BASIC. It is unknown if any emulator supports the keyboard.

Data Recorder

The Data Recorder is a related accessory to the Famicom Keyboard. Only three games and one accessory supported the Data Recorder; Excitebike, Mach Rider, Wrecking Crew, and Family BASIC. These games sent an analog audio stream through the keyboard to a cassette tape deck, but any device capable of analog audio recording/playback can work with it. The "sound" is really just 0s and 1s to represent the data the games are trying to write. It is unknown if any emulator supports saves of this kind.

Miracle Piano Teaching System

By the Software Toolworks, the Miracle Piano Teaching System used an electronic piano keyboard as input. It is unknown if any emulator supports this feature.

Hardware Variants

VS System

An arcade system based on the NES released for the US. Most emulators have an option to let you "Insert Coin(s)".

ROMs made with VS System in mind played in the emulator's NES mode, or playing a NES ROM in the emulator's VS mode, will cause the colors to be totally garbled. This is either an issue with the emulator's configuration or the ROM's iNES header.

Famicom Box

Also re-released later as Sharp's FamicomStation. It's a bulky metal cube with a slot to insert money and tons of locks, which was distributed in select hotels and stores. It can hold at once up to 15 select Famicom releases, which much more lockout chips and pins with different behavior than usual, and support for only mapper 0 games. It also has unique boot screen for both models.

Neither the cartridges nor the BIOS have been dumped or tested if they work with an emulator, unlike with the Super Famicom Box which had its BIOS and most ROMs dumped.

Dendy

A pirate NES Famicom clone which was sold in Russia and Eastern Europe, with the blueprint reused for other Famiclones. Here's a link to a CC-subtitled Kinaman video for more details. It's a very quirky NTSC NES optimized for 50Hz, with other changes from the official PAL NES - though those differences break compatibility of Dendy-specific releases with most emulators.

MESS supports this console, and some other emulators (such as Mesen, puNES and FCEUX) introduced support for it in r3134, with the already included support for iNES 2.0 ROM headers (which include the option to mark a ROM region as PAL Dendy). The carts themselves can be played as long as the emulator supports broken cards.

Setting the "Family Keyboard" under "Input" might be needed for some of these Famiclones.

Resources

  • Nesdev Wiki - A place for all your NES programming, and NES emulator programming needs.
  • Nesdev Forum - Discussion of NES Wii Virtual Console accuracy.

References