Difference between revisions of "Nintendo Entertainment System emulators"

From Emulation General Wiki
Jump to navigation Jump to search
m
Line 13: Line 13:
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[Accuracy]]
 
! scope="col"|[[Accuracy]]
 +
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
!colspan="7"|PC
+
!colspan="8"|PC
 
|-
 
|-
 
|style="text-align:center;"|[[Mesen]]
 
|style="text-align:center;"|[[Mesen]]
Line 23: Line 24:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Cycle
 
|style="text-align:center;"|Cycle
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
Line 31: Line 33:
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|Cycle
 
|style="text-align:center;"|Cycle
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
Line 39: Line 42:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Cycle
 
|style="text-align:center;"|Cycle
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
Line 47: Line 51:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Cycle
 
|style="text-align:center;"|Cycle
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
 
|style="text-align:center;"|3DNES
 
|style="text-align:center;"|3DNES
 
|style="text-align:center;"|Windows, Mac, Linux
 
|style="text-align:center;"|Windows, Mac, Linux
|style="text-align:center;"|[https://geod.itch.io/3dnes v1.2]
+
|style="text-align:center;"|[https://geod.itch.io/3dnes 1.4]
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|?
 
|style="text-align:center;"|?
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 63: Line 69:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Cycle
 
|style="text-align:center;"|Cycle
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
 
|style="text-align:center;"|[https://sourceforge.net/projects/mynes/ MyNes]
 
|style="text-align:center;"|[https://sourceforge.net/projects/mynes/ MyNes]
 
|style="text-align:center;"|Windows, Linux
 
|style="text-align:center;"|Windows, Linux
|style="text-align:center;"|[https://sourceforge.net/projects/mynes/files/ 6]
+
|style="text-align:center;"|[https://sourceforge.net/projects/mynes/files/ 6.3.10]
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|?
 
|style="text-align:center;"|?
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 79: Line 87:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|?
 
|style="text-align:center;"|?
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 87: Line 96:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Mid
 
|style="text-align:center;"|Mid
 +
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 95: Line 105:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Mid
 
|style="text-align:center;"|Mid
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 103: Line 114:
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|Mid
 
|style="text-align:center;"|Mid
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 111: Line 123:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Low
 
|style="text-align:center;"|Low
 +
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 119: Line 132:
 
|style="text-align:center;"|✓ (as bnes v0.83)
 
|style="text-align:center;"|✓ (as bnes v0.83)
 
|style="text-align:center;"|Cycle
 
|style="text-align:center;"|Cycle
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
 
|style="text-align:center;"|[[Jnes]]
 
|style="text-align:center;"|[[Jnes]]
 
|style="text-align:center;"|Windows
 
|style="text-align:center;"|Windows
|style="text-align:center;"|[http://www.jabosoft.com/articles/125 1.1.1]
+
|style="text-align:center;"|[http://www.jabosoft.com/categories/3 1.2.1]
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Low
 
|style="text-align:center;"|Low
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
|style="text-align:center;"|[[MESS]]
+
|style="text-align:center;"|[[MAME]]
 
|style="text-align:center;"|Multi-platform
 
|style="text-align:center;"|Multi-platform
 
|style="text-align:center;"|[http://www.mamedev.org/release.html {{MAMEVer}}]
 
|style="text-align:center;"|[http://www.mamedev.org/release.html {{MAMEVer}}]
Line 135: Line 150:
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|Mid
 
|style="text-align:center;"|Mid
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
 
|style="text-align:center;"|[[nemulator]]
 
|style="text-align:center;"|[[nemulator]]
 
|style="text-align:center;"|Windows
 
|style="text-align:center;"|Windows
|style="text-align:center;"|[http://nemulator.com/downloads.php 4.2]
+
|style="text-align:center;"|[http://nemulator.com/downloads.html 4.2]
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|High
 
|style="text-align:center;"|High
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
 
|style="text-align:center;"|nesemu2
 
|style="text-align:center;"|nesemu2
 
|style="text-align:center;"|Linux
 
|style="text-align:center;"|Linux
|style="text-align:center;"|[https://github.com/holodnak/nesemu2 GitHub]
+
|style="text-align:center;"|[https://github.com/holodnak/nesemu2 Git]
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Cycle
 
|style="text-align:center;"|Cycle
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 159: Line 177:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Low
 
|style="text-align:center;"|Low
 +
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 167: Line 186:
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|Low
 
|style="text-align:center;"|Low
 +
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
 
|style="text-align:center;"|[http://rocknes.web.fc2.com/ RockNES]
 
|style="text-align:center;"|[http://rocknes.web.fc2.com/ RockNES]
 
|style="text-align:center;"|Windows
 
|style="text-align:center;"|Windows
|style="text-align:center;"|[http://rocknes.web.fc2.com/ 5.50]
+
|style="text-align:center;"|[http://rocknes.web.fc2.com/ 5.52]
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|High
 
|style="text-align:center;"|High
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 183: Line 204:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Low
 
|style="text-align:center;"|Low
 +
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
!colspan="7"|Consoles
+
!colspan="8"|Consoles
 
|-
 
|-
 
|style="text-align:center;"|NesterJ*
 
|style="text-align:center;"|NesterJ*
Line 193: Line 215:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Mid
 
|style="text-align:center;"|Mid
 +
|style="text-align:center;"|?
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
Line 201: Line 224:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Minimal
 
|style="text-align:center;"|Minimal
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
Line 209: Line 233:
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|Mid
 
|style="text-align:center;"|Mid
 +
|style="text-align:center;"|?
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
Line 217: Line 242:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Mid
 
|style="text-align:center;"|Mid
 +
|style="text-align:center;"|?
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
!colspan="7"|Mobile
+
!colspan="8"|Mobile
 
|-
 
|-
 
|style="text-align:center;"|Nestopia***
 
|style="text-align:center;"|Nestopia***
Line 227: Line 253:
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|High
 
|style="text-align:center;"|High
 +
|style="text-align:center;"|?
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✓
 
|-
 
|-
Line 235: Line 262:
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|Low
 
|style="text-align:center;"|Low
 +
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|✗
 
|-
 
|-
Line 240: Line 268:
 
|style="text-align:center;"|Android
 
|style="text-align:center;"|Android
 
|style="text-align:center;"|1.12.2
 
|style="text-align:center;"|1.12.2
 +
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|
 
|style="text-align:center;"|
Line 255: Line 284:
 
*[[PuNES]] is the second most accurate NES emulator according to these tests.<ref name="nestas">http://tasvideos.org/EmulatorResources/NESAccuracyTests.html</ref> 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.
 
*[[PuNES]] is the second most accurate NES emulator according to these tests.<ref name="nestas">http://tasvideos.org/EmulatorResources/NESAccuracyTests.html</ref> 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]] also has a high ranking in those same tests.<ref name="nestas"/> Even so, 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 (Nestopia UE) is a fork of Nestopia meant to keep it alive and fix the aforementioned bugs. This version is generally recommended over vanilla. The libretro core for Nestopia is Undead Edition in libretro form.
 
*[[Nestopia]] also has a high ranking in those same tests.<ref name="nestas"/> Even so, 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 (Nestopia UE) is a fork of Nestopia meant to keep it alive and fix the aforementioned bugs. This version is generally recommended over vanilla. The libretro core for Nestopia is Undead Edition in libretro form.
* [[Nintendulator]] and MyNes also have a fairly high ranking in the tests.<ref name="nestas"/>
+
*[[Nintendulator]] and MyNes also have a fairly high ranking in the tests.<ref name="nestas"/>
 
*[[FCEUX]] scores rather low in the tests, despite being a recommended emulator on TAS Videos. The New PPU is more accurate than the Old PPU, thankfully. The emulator is still useful, though, thanks to its robust Lua scripting and incorporating FCEUmm into its feature set.
 
*[[FCEUX]] scores rather low in the tests, despite being a recommended emulator on TAS Videos. The New PPU is more accurate than the Old PPU, thankfully. The emulator is still useful, though, thanks to its robust Lua scripting and incorporating FCEUmm into its feature set.
 
*[[VirtuaNES]] scores quite low in the tests, but it also supports several obscure [[#Peripherals|peripherals]] that are not supported on other emulators.
 
*[[VirtuaNES]] scores quite low in the tests, but it also supports several obscure [[#Peripherals|peripherals]] that are not supported on other emulators.

Revision as of 21:02, 22 July 2017

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 games from a special Nintendo-only magnetic disk format strongly reminiscent of floppy disks of the time. It worked in tandem with the main Famicom unit, reading data off the disk but using the hardware of the Famicom and FDS combined. It featured an extra FM sound channel, which allowed for richer sounds and music than is possible on the regular console. While many games featured an FDS and Famicom version (being ported back to cartridge format as memory prices fell later that generation), the FDS versions generally stand out for their richer sound utilizing this extra circuitry, though the addition of loading times may more than cancel out this benefit out for some players.

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 Active 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 1.4 ?
BizHawk Windows 2.9.1 Cycle
MyNes Windows, Linux 6.3.10 ?
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.2.1 Low
MAME Multi-platform 0.264 Mid
nemulator Windows 4.2 High
nesemu2 Linux Git Cycle
NESticle Windows, DOS x.xx DOS
0.42 Windows
Low
QuickNES Multi-platform v1 Low
RockNES Windows 5.52 High
VirtuaNES Windows 0.97 Low
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, cheat code support, rotated/mirrored screen, sepia palette, support for rare mappers (the pirate bootleg FF7 works on it), etc. 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, good built in filters, both .zip and goodmerged file loading etc. PuNES has a few mappers that Mesen doesn't support yet.
  • PuNES is the second most accurate NES emulator according to these 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 also has a high ranking in those same tests.[2] Even so, 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 (Nestopia UE) is a fork of Nestopia meant to keep it alive and fix the aforementioned bugs. This version is generally recommended over vanilla. The libretro core for Nestopia is Undead Edition in libretro form.
  • Nintendulator and MyNes also have a fairly high ranking in the tests.[2]
  • FCEUX scores rather low in the tests, despite being a recommended emulator on TAS Videos. The New PPU is more accurate than the Old PPU, thankfully. The emulator is still useful, though, thanks to its robust Lua scripting and incorporating FCEUmm into its feature set.
  • VirtuaNES scores quite low in the tests, but it also supports several obscure peripherals that are not supported on other emulators.
  • 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 more NES emulators not listed here, as the NES has more emulators than any other system (and new ones are started all of the time). Only the ones that are well known or stand out in some way are 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 for best results. For example, SMB3 requires a lot of cropping, however the same level of cropping will certainly obscure the letters of 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 such as the SNES, which natively generate their 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. Because of this, many Famicom emulators have a variety of different palettes to choose from.

Peripherals

There were many accessories released for the NES but Emulation General only covers accessories that are truly differentiated data streams from the basic controller (input data stream). For example, the Power Glove is in actuality just a really complicated NES controller, designed to convert motion into d-pad, select, start, a, and b button commands. The same goes for R.O.B. and his Stack-up and Gyromite games because he was really just the second player. Strangely, the Famicom has a lot more peripheral hardware to emulate than the NES.[3]

Zapper

This accessory was very common. It's a light gun, used for many games such as Duck Hunt, Wild Gunman, and Hogan's Alley, just just to name three examples. When the trigger is pulled, the screen for 1-2 frames flashes black with a white rectangle (indicating the target to shoot at). If the gun detects it is pointing at the white rectangle, it tells the game to register a hit. On real hardware this was very hit or miss. The Zapper plugged into controller slot 2 and mainly worked with old CRT TVs. Newer LCD TVs will not register with the Zapper. Many emulators support this accessory with 100% accurate hit detection in the form of a mouse click (PC), tap (for mobile), remote (Wii ports of NES emulators), or faked pointers using a controller.

Arkanoid/Vaus Controller

This controller was released by Taito with one button to "fire" and a dial to control back and forth movement. Arkanoid is the only NES game to utilize this peripheral, but it is optional. Mesen supports this controller.

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.

Family Trainer/Family Fun Fitness/Power Pad

This accessory is very different from a standard controller of eight buttons. It was designed to be a controller where you need to use your feet, typically by running in place on numbered circles to represent button presses. It plugs into controller slot 2 and has 12 different buttons. Notable games such as Stadium Events, World Class Track Meet, and Athletic World, utilize this, and trying to use a standard controller won't work. Despite being less accurate than puNES or Mesen, FCEUX actually supports this controller.

NES Four Score/NES Satellite/4-Players Adaptor

This turned the standard two controller ports into four controller ports by plugging into the original two. A few games utilize this capability, such as LJN's A Nightmare on Elm Street. Many emulators support this feature by having an option between switching between 2-player and 4-player mode or just enabling/disabling Player 3 and Player 4's controller.

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 this is the Japanese Legend of Zelda. Pols Voice, an enemy, is destroyed if the player makes a loud sound into the microphone (in the US version this was changed to merely firing an arrow to 1-shot them). Another game to make use of the microphone is Takeshi no Chōsenjō (Takeshi's Challenge). VirtuaNES supports this, activated by tapping the 'M' key on default settings.

Karaoke Studio

Separate from the built-in microphone, Bandai made Karaoke Studio, which is a special game cartridge that has a microphone attached to it. It is unknown if any emulator supports this.

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). This accessory made it possible to save game data, but only for the game contained on each of the disks.

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

Only one game used a keyboard to program in BASIC on the Famicom and that was Family BASIC. VirtuaNES supports this keyboard.

Data Recorder

The Data Recorder is an accessory related to the Famicom Keyboard. Three games and one accessory supported the Data Recorder: Excitebike, Mach Rider, Wrecking Crew, and Family BASIC. These sent an analog audio stream through the keyboard to a cassette tape deck, but really any device capable of analog audio recording/playback can work with it. The "sounds" are really just 0s and 1s to represent the data the games are trying to write. VirtuaNES supports this accessory, controlled from the "Tape" menu.

ASCII Turbo File

Different from either battery back-ups or the FDS, ASCII Corporation (based in Japan) created their own method to save data with the ASCII Turbo File. VirtuaNES supports this too.

Oeka Kids tablet

This accessory was a tablet for the Famicom games Oeka Kids: Anpanman no Hiragana Daisuki and Oeka Kids: Anpanman to Oekaki Shiyou!!.[4] Mesen supports this.

CompuTrainer Pro

This is very rare and was only used in the unlicensed game RacerMate Challenge II. No known emulator supports it. [5]

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 has tons of locks which was distributed in select hotels and stores. It can hold at once up to 15 select Famicom releases, with many more lockout chips and pins with different behavior than usual, and support for only mapper 0 games. It also has a unique boot screen for both models released.

Neither the cartridges nor the BIOS have been dumped or tested with an emulator, unlike with the Super Famicom Box which had both 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 as well- though those differences break the compatibility of Dendy-specific releases on 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 (including 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