Difference between revisions of "Nintendo Entertainment System emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(343 intermediate revisions by 92 users not shown)
Line 1: Line 1:
[[File:Nes.png|thumb|250px|The Nintendo Entertainment System (NES)]]The '''[https://en.wikipedia.org/wiki/Nintendo_Entertainment_System Nintendo Entertainment System]''' (NES) is an 8-bit, third-generation console released in 1983 in Japan, where it was known as the '''Famicom'''.
+
{{Infobox console
 +
|title = Nintendo Entertainment System
 +
|logo = nes-t.png
 +
|developer = [[:Nintendo]]
 +
|type = [[:Category:Home consoles|Home video game console]]
 +
|generation = [[:Category:Third-generation video game consoles|Third generation]]
 +
|release = 1983
 +
|discontinued = 2003
 +
|predecessor = [[First_and_second_generations_of_video_game_consoles|Color TV-Game]]
 +
|successor = [[Super Nintendo emulators|SNES]]
 +
|emulated = {{✓}}
 +
}}
  
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.
+
The '''[https://en.wikipedia.org/wiki/Nintendo_Entertainment_System Nintendo Entertainment System]''' (NES) is an 8-bit, third-generation console released on July 15, 1983 in Japan, where it was known as the '''Family Computer''' or '''Famicom''', and on October 18, 1985, it released in the US. It retailed for {{Inflation|USD|179.99|1985}}. It had a Ricoh 2A03 CPU at 1.79 MHz with 2KB of RAM.
Emulation for the NES is robust, with several high quality emulators for various systems.
+
 
 +
The earliest games released on the Famicom suffered from significant hardware constraints due to the way the Famicom was designed: limited memory addressing (which meant games had a low maximum ROM size), how the graphics are loaded onscreen, just the native sound processing is available, no saving... To solve this problem, Nintendo came up with two solutions:
 +
 
 +
* The '''Family Computer Disk System''' (FDS), a Japan-only add-on which played games from a semi-custom variant of Mitsumi's Quick Disk format. It offered slightly higher data storage and slightly enhanced sound processing. It also had a microphone never found anywhere else. There were plans to release it in the US, however since the NES itself had its launch delayed to late 1985, and the mapper solution obsoleted it, the add-on was never exported and some of its exclusives were ported as regular cartridge releases.
 +
* '''Memory Management Controllers''' (MMC), also known colloquially as '''mappers'''. They solved every single problem above with bank switching for much more data, onboard FM audio chips, and much more. Most games released after 1986 that really pushed the system to its limits used mappers. A similar solution was used for the Game Boy.
 +
 
 +
Emulation for the NES is robust, with many high-quality emulators for various systems.
  
 
==Emulators==
 
==Emulators==
{| class="wikitable sortable"
+
Like for [[Game Boy/Game Boy Color emulators|Game Boy/Color]], tons of NES emulators exist. For a list of open-source projects, see this [https://github.com/search?utf8=%E2%9C%93&q=nes+emulator&type=Repositories GitHub query].
 +
<div style="max-width:100%; overflow:auto;">
 +
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
! scope="col"|Latest Version
+
! scope="col"|Latest version
! scope="col"|[[Wikipedia:Family Computer Disk System|FDS]]
+
! scope="col"|[[Wikipedia:Famicom Disk System|FDS]]
! scope="col"|[[libretro|Libretro Core]]
+
! scope="col"|[[libretro]]
! scope="col"|[[Accuracy]]
+
! scope="col"|[[Emulation accuracy|Accuracy]]
 +
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|Active
! scope="col"|[[Recommended Emulators|Recommended]]
+
! scope="col"|[[Recommended emulators|Recommended]]
 +
|-
 +
!colspan="9"|PC / x86
 +
|-
 +
|[[Mesen#List_of_forks|Mesen X]]
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[https://github.com/NovaSquirrel/Mesen-X/releases/ 2022-05-15] [https://github.com/NovaSquirrel/Mesen-X/actions git]
 +
|{{✓}}
 +
|{{✗}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|-
 +
|[[puNES]]
 +
|align=left|{{Icon|Windows|Linux|FreeBSD}}
 +
|[https://github.com/punesemu/puNES/releases {{PuNESVer}}] [https://github.com/punesemu/puNES/actions wip]
 +
|{{✓}}
 +
|{{✗}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|-
 +
|[[Nestopia|Nestopia UE]]
 +
|align=left|{{Icon|Windows|Linux|FreeBSD}}
 +
|[http://0ldsk00l.ca/nestopia/ {{NestopiaVer}}]
 +
|{{✓}}
 +
|{{✓}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|-
 +
|[[BizHawk]]
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
 +
|{{✓}}
 +
|{{✗}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 +
|-
 +
|NintendulatorNRS
 +
|align=left|{{Icon|Windows}}
 +
|[http://unlicensed.games/libg/static.php?page=NintendulatorNRS 2022-09-12]
 +
|{{✓}}
 +
|{{✗}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 +
|-
 +
|[[Mesen]]
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[http://www.mesen.ca {{MesenVer}}]
 +
|{{✓}}
 +
|{{✓}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✗}}
 +
|{{~}}
 +
|-
 +
|[[FCEUX]]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Sol}}
 +
|[http://www.fceux.com/web/download.html {{FCEUXVer}}]
 +
|{{✓}}
 +
|{{✗}}
 +
|Mid
 +
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 +
|-
 +
|[[3dSen]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[http://www.geodstudio.net/ {{3dSenVRVer}}]
 +
|{{✗}}
 +
|{{✗}}
 +
|?
 +
|{{✗}}
 +
|{{✓}}
 +
|{{~}}
 +
|-
 +
|[[ares]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/ares-emulator/ares/releases {{aresVer}}]
 +
|{{✓}}
 +
|{{✗}}
 +
|?
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|[[Nintendulator]]
 +
|align=left|{{Icon|Windows}}
 +
|[http://www.qmtpro.com/~nes/nintendulator/#downloads 0.985 Beta] [https://github.com/quietust/nintendulator git]
 +
|{{✗}}
 +
|{{✗}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|[[FinalBurn Neo]]
 +
|align=left|{{Icon|Windows}}
 +
|[https://github.com/finalburnneo/FBNeo/releases/tag/latest WIP builds]
 +
|{{✓}}
 +
|{{✓}}
 +
|High
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|[https://fms.komkon.org/iNES iNES]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Solaris}}
 +
|[https://fms.komkon.org/iNES {{INESVer}}]
 +
|{{✓}}
 +
|{{✗}}
 +
|High
 +
|?
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|My Nes
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[https://github.com/alaahadid/My-Nes/releases git]
 +
|{{✗}}
 +
|{{✗}}
 +
|Mid
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|[[higan]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/higan-emu/higan/releases {{higanVer}}]
 +
|{{✓}}
 +
|{{✓}}
 +
|Cycle
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|[https://prilik.com/ANESE ANESE]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/daniel5151/ANESE/releases git]
 +
|{{✗}}
 +
|{{✗}}
 +
|Cycle<ref group=N>[https://prilik.com/ANESE/#disclaimers The CPU is instruction-cycle accurate, but not sub-instruction cycle accurate (TODO ). While this inaccuracy doesn’t affect most games, there are some that that rely on sub-instruction level timings.]</ref>
 +
|{{✓}}
 +
|{{~}}
 +
|{{✗}}
 +
|-
 +
|[[RockNES]]
 +
|align=left|{{Icon|Windows}}
 +
|[http://rocknes.web.fc2.com {{RockNESVer}}]
 +
|{{✓}}
 +
|{{✗}}
 +
|High
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|[[nemulator]]
 +
|align=left|{{Icon|Windows}}
 +
|[http://nemulator.com/downloads.html {{NemulatorVer}}]
 +
|{{✗}}
 +
|{{✗}}
 +
|High
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|Nesemu
 +
|align=left|{{Icon|macOS}}
 +
|[https://github.com/tsalvo/nes-emu-ios git]
 +
|{{✓}}
 +
|{{✗}}
 +
|High
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 
|-
 
|-
!colspan="8"|PC
+
|[http://cah4e3.shedevr.org.ru/fceultra.php FCEUmm]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|[https://sourceforge.net/projects/fceumm/ 98.13mm] ([[Emulators on Windows|Windows]])<br />[https://github.com/libretro/libretro-fceumm git] ([[libretro]])
 +
|{{✗}}
 +
|{{✓}}
 +
|Mid
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|style="text-align:center;"|[[Mesen]]
+
|[[MAME]]
|style="text-align:center;"|Windows, Linux
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|style="text-align:center;"|[http://www.mesen.ca {{MesenVer}}]
+
|[http://www.mamedev.org/release.html {{MAMEVer}}]
|style="text-align:center;"|✓
+
|{{✓}}
|style="text-align:center;"|✗
+
|{{}}
|style="text-align:center;"|Cycle
+
|Mid
|style="text-align:center;"|
+
|{{✓}}
|style="text-align:center;"|✓
+
|{{}}
 +
|{{✗}}
 
|-
 
|-
|style="text-align:center;"|[[Nestopia|Nestopia UE]]
+
|[[VirtuaNES]]
|style="text-align:center;"|Windows, Linux
+
|align=left|{{Icon|Windows}}
|style="text-align:center;"|[http://0ldsk00l.ca/nestopia/ 1.47]
+
|[http://virtuanes.s1.xrea.com/ 0.97]
|style="text-align:center;"|✓
+
|{{~}}
|style="text-align:center;"|✓
+
|{{✗}}
|style="text-align:center;"|Cycle
+
|Low
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|style="text-align:center;"|[[puNES]]
+
|[[HDNes]]
|style="text-align:center;"|Windows, Linux
+
|align=left|{{Icon|Windows}}
|style="text-align:center;"|[http://forums.nesdev.com/viewtopic.php?t=6928 0.100]
+
|[http://forums.nesdev.com/viewtopic.php?f=3&t=9935#p109627 git]
|style="text-align:center;"|✓
+
|{{✗}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Cycle
+
|Low
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|style="text-align:center;"|[[Nintendulator]]
+
|[[Jnes]]
|style="text-align:center;"|Windows
+
|align=left|{{Icon|Windows}}
|style="text-align:center;"|[http://www.qmtpro.com/~nes/nintendulator/#downloads 0.975 Beta]
+
|[http://www.jabosoft.com/categories/3 1.2.1]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Cycle
+
|Low
|style="text-align:center;"|✓
+
|{{✗}}
|style="text-align:center;"|
+
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|3DNES
+
|[[NESticle]]
|style="text-align:center;"|Windows, Mac, Linux
+
|align=left|{{Icon|DOS|Windows9x}}
|style="text-align:center;"|[https://geod.itch.io/3dnes 1.4]
+
|[http://web.archive.org/web/20070227191851/http://www.zophar.net/NESticle/nestcxxx.zip x.xx] (DOS) <br /> [https://web.archive.org/web/20070116124329/http://www.zophar.net:80/NESticle/nestc042.zip 0.42] (Win9x)
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|?
+
|Low
|style="text-align:center;"|✓
+
|{{✗}}
|style="text-align:center;"|
+
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[[BizHawk]]
+
|[[QuickNES]]
|style="text-align:center;"|Windows
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|style="text-align:center;"|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
+
|[https://web.archive.org/web/20180904003223/https://kode54.net/fb2k/QuickNES.zip 0.7.0b1] ([[Emulators on Windows|Windows]])<br />[https://github.com/libretro/QuickNES_Core git] ([[libretro]])
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|✗
+
|{{}}
|style="text-align:center;"|Cycle
+
|Low
|style="text-align:center;"|✓
+
|{{✓}}
|style="text-align:center;"|
+
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[https://sourceforge.net/projects/mynes/ MyNes]
+
!colspan="9"|Mobile / ARM
|style="text-align:center;"|Windows, Linux
 
|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;"|[http://perilsensitive.github.io/cxnes/download.html cxNES]
+
|Nestopia<ref group=N name=libretro>Only available as a libretro core (e.g. [[RetroArch]]).</ref>
|style="text-align:center;"|Windows, Linux
+
|align=left|{{Icon|Android|iOS}}
|style="text-align:center;"|[https://github.com/perilsensitive/cxnes/releases 0.3.3]
+
|1.44
|style="text-align:center;"|
+
|{{✓}}
|style="text-align:center;"|✗
+
|{{✓}}
|style="text-align:center;"|?
+
|High
|style="text-align:center;"|
+
|{{✓}}
|style="text-align:center;"|✗
+
|{{}}
 +
|{{✓}}
 
|-
 
|-
|style="text-align:center;"|FakeNES GT
+
|[http://www.explusalpha.com/home/nes-emu NES.emu]<br/><small>(based on fceux 2020.05.03 git)</small>
|style="text-align:center;"|Windows, Linux, Mac, MS-DOS
+
|align=left|{{Icon|Android|Pyra}}
|style="text-align:center;"|[http://sourceforge.net/projects/fakenes/ 0.59 b3]
+
|[https://play.google.com/store/apps/details?id=com.explusalpha.NesEmu&hl=en_IN&gl=US {{.emuVer}}][https://github.com/Rakashazi/emu-ex-plus-alpha git]<small> (Android)</small><br/>[https://pyra-handheld.com/repo/apps/80 1.5.46.02]<small> (Pyra)</small>
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Mid
+
|High
|style="text-align:center;"|✗
+
|{{✓}}<br/><small>(Android only)</small>
|style="text-align:center;"|✗
+
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|style="text-align:center;"|[[FCEUX]]
+
|FreeiNES
|style="text-align:center;"|Multi-platform
+
|align=left|{{Icon|Android|Maemo}}<br/>{{Icon|Symbian}}
|style="text-align:center;"|[http://www.fceux.com/web/download.html 2.2.3]
+
|[https://play.google.com/store/apps/details?id=com.fms.ines.free&hl=en_US&gl=US 6.1.4]<small> (Android)</small><br/>[https://fms.komkon.org/iNES/ines_3.6.5-1_armel.deb 3.6.5]<small> (Maemo)</small><br/>[https://www.mobiles24.co/downloads/s/229852-184-ines 3.6] <small>([[Emulators on Symbian|Symbian]])</small>
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Mid
+
|High
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|✗
+
|{{}}
 +
|{{~}}
 
|-
 
|-
|style="text-align:center;"|FCEUmm
+
|VGBANext
|style="text-align:center;"|Multi-platform
+
|align=left|{{Icon|Android}}
|style="text-align:center;"|98.13mm
+
|[https://play.google.com/store/apps/details?id=com.fms.emu&hl=en&gl=US {{VGBANextVer}}]
|style="text-align:center;"|✗
+
|{{✓}}
|style="text-align:center;"|✓
+
|{{}}
|style="text-align:center;"|Mid
+
|High
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|✗
+
|{{}}
 +
|{{~}}
 
|-
 
|-
|style="text-align:center;"|[[HDNes]]
+
|GPFCE
|style="text-align:center;"|Windows
+
|align=left|{{Icon|Linux|Pandora|GP2X}}<br/>{{Icon|Wiz}}
|style="text-align:center;"|[http://forums.nesdev.com/viewtopic.php?f=3&t=9935#p109627 Git]
+
|[http://repo.openpandora.org/?page=detail&app=package.gpfce.notaz 0.81.0.r2]<small> (Pandora)</small><br/>[https://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,71,2136 0.4 r313] <small>(GP2X)</small><br/>[https://dl.openhandhelds.org/cgi-bin/wiz.cgi?0,0,0,0,71,51 0.4+] <small>(Wiz)</small>
|style="text-align:center;"|
+
|{{✓}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Low
+
|Mid
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|✗
+
|{{}}
 +
|{{~}}
 
|-
 
|-
|style="text-align:center;"|[[higan]]
+
|John NESS
|style="text-align:center;"|Windows, Linux, OS X
+
|align=left|{{Icon|Android}}
|style="text-align:center;"|[http://byuu.org/emulation/higan/ {{higanVer}}]
+
|[https://play.google.com/store/apps/details?id=com.johnemulators.johnness 1.09]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|✓ (as bnes v0.83)
+
|{{}}
|style="text-align:center;"|Cycle
+
|Mid
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|
+
|{{}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[[Jnes]]
+
|[[Jnes]]
|style="text-align:center;"|Windows
+
|align=left|{{Icon|Android}}
|style="text-align:center;"|[http://www.jabosoft.com/categories/3 1.2.1]
+
|[https://play.google.com/store/apps/details?id=com.jabosoft.silverarrow 1.2.6.26]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Low
+
|Mid
|style="text-align:center;"|✓
+
|{{✗}}
|style="text-align:center;"|
+
|{{~}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[[MAME]]
+
|Nostalgia.NES
|style="text-align:center;"|Multi-platform
+
|align=left|{{Icon|Android}}
|style="text-align:center;"|[http://www.mamedev.org/release.html {{MAMEVer}}]
+
|[https://play.google.com/store/apps/details?id=com.nostalgiaemulators.neslite 2.0.9]
|style="text-align:center;"|✓
+
|{{}}
|style="text-align:center;"|✓
+
|{{✗}}
|style="text-align:center;"|Mid
+
|Mid
|style="text-align:center;"|✓
+
|{{✗}}
|style="text-align:center;"|
+
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[[nemulator]]
+
|nesemu
|style="text-align:center;"|Windows
+
|align=left|{{Icon|Pandora|Wiz|Dingoo}}
|style="text-align:center;"|[http://nemulator.com/downloads.html 4.2]
+
|[https://code.google.com/archive/p/nesemu/downloads 0.2.3 Beta Preview]<br/><small> (Pandora)</small>[https://dl.openhandhelds.org/cgi-bin/wiz.cgi?0,0,0,0,71,235 V1] <small>(Wiz)</small><br/>[https://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,71,181 0.2] <small>(Dingoo)</small>
|style="text-align:center;"|✗
+
|{{✓}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|High
+
|Mid
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|✗
+
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|nesemu2
+
|[[Nestopia]]
|style="text-align:center;"|Linux
+
|align=left|{{Icon|Pandora}}
|style="text-align:center;"|[https://github.com/holodnak/nesemu2 Git]
+
|[https://repo.openpandora.org/?page=detail&app=nestopia-app V2]
|style="text-align:center;"|✗
+
|{{✓}}
|style="text-align:center;"|✗
+
|{{}}
|style="text-align:center;"|Cycle
+
|Mid
|style="text-align:center;"|✓
+
|{{}}
|style="text-align:center;"|
+
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[[NESticle]]
+
|Nesemu
|style="text-align:center;"|Windows, DOS
+
|align=left|{{Icon|iOS|AppleTV}}
|style="text-align:center;"|[http://web.archive.org/web/20070227191851/http://www.zophar.net/NESticle/nestcxxx.zip x.xx DOS]<br />0.42 Windows
+
|[https://github.com/tsalvo/nes-emu-ios git]
|style="text-align:center;"|✗
+
|{{✓}}
|style="text-align:center;"|✗
+
|{{}}
|style="text-align:center;"|Low
+
|Mid
|style="text-align:center;"|✗
+
|{{✓}}
|style="text-align:center;"|
+
|{{✓}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|QuickNES
+
|Pocket Nester+
|style="text-align:center;"|Multi-platform
+
|align=left|{{Icon|WinMobile}}
|style="text-align:center;"|v1
+
|[https://www.zophar.net/wmsphone/nes/pocketnester+.html 0.9]
|style="text-align:center;"|✗
+
|{{}}
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|Low
+
|Low
|style="text-align:center;"|✗
+
|{{✗}}
|style="text-align:center;"|
+
|{{}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[http://rocknes.web.fc2.com/ RockNES]
+
!colspan="9"|Consoles
|style="text-align:center;"|Windows
 
|style="text-align:center;"|[http://rocknes.web.fc2.com/ 5.52]
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|✗
 
|style="text-align:center;"|High
 
|style="text-align:center;"|✓
 
|style="text-align:center;"|
 
 
|-
 
|-
|style="text-align:center;"|[[VirtuaNES]]
+
|[[L-CLASSICS|Switch Online]]
|style="text-align:center;"|Windows
+
|align=left|{{Icon|Switch}}
|style="text-align:center;"|[http://virtuanes.s1.xrea.com/ 0.97]
+
|2.3.0
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Low
+
|High
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
!colspan="8"|Consoles
+
|[[Virtual Console]]
 +
|align=left|{{Icon|Wii|3DS|WiiU}}
 +
|N/A
 +
|{{✓}}
 +
|{{✗}}
 +
|Mid
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|style="text-align:center;"|NesterJ*
+
|Nestopia<ref group=N name=libretro/>
|style="text-align:center;"|[[PlayStation Portable]]
+
|align=left|{{Icon|PS3|360|Wii}}
|style="text-align:center;"|[http://filetrip.net/psp-downloads/homebrew/download-nesterj-113-beta-2-f27533.html 1.13 beta 2]/[http://filetrip.net/psp-downloads/homebrew/download-nesterj-112aoex-r3-f29028.html AoEX]
+
|1.44
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|✗
+
|{{✓}}
|style="text-align:center;"|Mid
+
|Mid
|style="text-align:center;"|?
+
|{{✓}}
|style="text-align:center;"|
+
|{{✓}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[[Virtual Console]]
+
|[[FCEUX|FCE Ultra GX]]
|style="text-align:center;"|Wii, 3DS, Wii U
+
|align=left|{{Icon|GCN|Wii}}
|style="text-align:center;"|varies per system
+
|[https://github.com/dborth/fceugx/releases {{FCEUXGXVer}}]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Minimal
+
|Mid
|style="text-align:center;"|
+
|{{✓}}
|style="text-align:center;"|
+
|{{}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|Nestopia**
+
| pNES
|style="text-align:center;"|PS3, 360, Wii
+
|align=left|{{Icon|Switch|Vita}}
|style="text-align:center;"|1.44
+
|[https://github.com/Cpasjuste/pemu/releases git]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|Mid
+
|High
|style="text-align:center;"|?
+
|{{✓}}
|style="text-align:center;"|
+
|{{✓}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|[[FCEUX]]
+
|NesterJ<ref group=N>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.</ref>
|style="text-align:center;"|Wii, Gamecube
+
|align=left|{{Icon|PSP}}
|style="text-align:center;"|2.2.1<br />3.3.2
+
|[http://filetrip.net/psp-downloads/homebrew/download-nesterj-113-beta-2-f27533.html 1.13 beta 2]<br />[http://filetrip.net/psp-downloads/homebrew/download-nesterj-112aoex-r3-f29028.html AoEX]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Mid
+
|Mid
|style="text-align:center;"|?
+
|{{✓}}
|style="text-align:center;"|✓
+
|{{✗}}
 +
|{{~}}
 
|-
 
|-
!colspan="8"|Mobile
+
|FCEUltra for PS2
 +
|align=left|{{Icon|PS2}}
 +
|[https://www.emuparadise.me/Nintendo_Entertainment_System_Emulators/Playstation_2/FCEUltra/146 0.9.3]<br/>[https://mundowiihack.wordpress.com/tag/fce-ultra 0.90i Mod]
 +
|{{✓}}
 +
|{{✗}}
 +
|Mid
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|style="text-align:center;"|Nestopia***
+
|[https://hcs64.com/neon64.html Neon64]
|style="text-align:center;"|Android, iOS
+
|align=left|{{Icon|N64}}
|style="text-align:center;"|1.44
+
|[https://github.com/hcs64/neon64v2 git]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|High
+
|Mid
|style="text-align:center;"|?
+
|{{✓}}
|style="text-align:center;"|✓
+
|{{✓}}
 +
|{{✗}}
 
|-
 
|-
|style="text-align:center;"|[[Jnes]]
+
|VirtuaNES for 3DS
|style="text-align:center;"|Android
+
|align=left|{{Icon|3DS}}
|style="text-align:center;"|1.4.8.55 Android
+
|[https://github.com/TBirdSoars/VirtuaNES git]
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|Low
+
|Mid
|style="text-align:center;"|
+
|{{}}
|style="text-align:center;"|✗
+
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align:center;"|Nostalgia.NES
+
|nesDS
|style="text-align:center;"|Android
+
|align=left|{{Icon|NDS}}
|style="text-align:center;"|1.12.2
+
|[https://sourceforge.net/projects/nesds/files/nesds1.3a.zip/download 1.3a]
|style="text-align:center;"|
+
|{{✓}}
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|
+
|Low
|style="text-align:center;"|
+
|{{✗}}
|style="text-align:center;"|
+
|{{✗}}
 
+
|{{✗}}
 +
|-
 +
|imbNES
 +
|align=left|{{Icon|PS1}}
 +
|[http://web.archive.org/web/20090221132233/http://imbnes.gamebase.ca:80/downloads.html 1.3.2]
 +
|{{✗}}
 +
|{{✗}}
 +
|Low
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|NESBox
 +
|align=left|{{Icon|XB1}}
 +
|[https://nesbox.com v4]
 +
|{{✗}}
 +
|{{✗}}
 +
|Low
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|[[Project Nested]]
 +
|align=left|{{Icon|SNES}}
 +
|[https://github.com/Myself086/Project-Nested/releases {{ProjectNestedVer}}]
 +
|{{✗}}
 +
|{{✗}}
 +
|Low
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|-
 +
|[[NeMul]]
 +
|align=left|{{Icon|MD}}
 +
|[http://pscd.ru/games/smd/nsmd/1247-nemul.html 1.0]
 +
|{{✗}}
 +
|{{✗}}
 +
|Low
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|PocketNES
 +
|align=left|{{Icon|GBA}}
 +
|[https://www.dwedit.org/gba/pocketnes_2013_07_01.zip 7-1-2013]
 +
|{{✗}}
 +
|{{✗}}
 +
|Low
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
!colspan="9"|Other
 +
|-
 +
|[https://zardam.github.io/webnofrendo numworks-nofrendo]
 +
|align=left|{{Icon|Numworks}}
 +
|[https://github.com/zardam/numworks-nofrendo git]
 +
|{{~}}
 +
|{{✗}}
 +
|Mid
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 
|}
 
|}
<nowiki>*</nowiki> 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.<br>
+
</div>
<nowiki>**</nowiki> Only available on consoles as a libretro core (e.g. [[RetroArch]]).<br>
+
<references group=N />
<nowiki>***</nowiki> Only available on mobile as a libretro core (e.g. [[RetroArch]]).
 
 
 
  
 
===Comparisons===
 
===Comparisons===
*[[Mesen]] is the most accurate NES emulator according to currently established NES test ROM suites.<ref name="mesentest">http://www.mesen.ca/TestResults.php</ref> 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.
+
*[[Mesen]] is the most accurate NES emulator according to currently established NES test ROM suites.<ref name="mesentest">http://www.mesen.ca/TestResults.php</ref> 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; [[Texture_packs|HD packs]], [[netplay]], auto-updating, [[Shaders and filters|good built-in filters]], both .zip and [[GoodTools|goodmerged]] file loading, etc. The standalone emulator has ceased development for unknown reasons, but the libretro fork and NovaSquirrel's fork is still active.
*[[PuNES]] is the second most accurate NES emulator according to a separate test battery run by the TASVideos community.<ref name="nestas">http://tasvideos.org/EmulatorResources/NESAccuracyTests.html</ref> While Mesen has more overall mapper support, it should be noted that PuNES has two mappers that Mesen doesn't: 116 and 208. This allows games like Kart Fighter and Somari to be supported.
+
*[[puNES]] is the second most accurate NES/FDS emulator according to a separate test battery run by the TASVideos community.<ref name="nestas">http://tasvideos.org/EmulatorResources/NESAccuracyTests.html</ref>  
*[[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 is a fork of Nestopia meant to keep it alive and fix the aforementioned bugs. This version is generally recommended over vanilla. Even 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 is a fork of Nestopia meant to keep it alive and fix the aforementioned bugs. This version is generally recommended over vanilla. Even the libretro core for Nestopia is in the Undead Edition.
*[[Nintendulator]] and MyNes also have a fairly high ranking in those tests.<ref name="nestas"/>
+
*[[Nintendulator]] and My Nes also have a fairly high ranking in those tests.<ref name="nestas"/>. NintendulatorNRS is a fork of Nintendulator which has support for the Famicom Disk System, rare mappers, and many unlicensed and bootleg carts and systems.
 
*[[FCEUX]] scores rather low in these 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 these 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]] also scores quite low in the tests, but in turn supports several obscure [[#Peripherals|peripherals]] that are not available on other emulators.
 
*[[VirtuaNES]] also scores quite low in the tests, but in turn supports several obscure [[#Peripherals|peripherals]] that are not available on other emulators.
*For official emulation, use [[Virtual Console]]. It 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.
+
*For official emulation, there is Nintendo's own [[Virtual Console]] or [[L-CLASSICS|Nintendo Switch Online]]. 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 other NES emulators not listed here, as the NES has more emulators than any other system (new ones are started all the time). Only those that are well known or stand out in some way are covered here.
 
There are many other NES emulators not listed here, as the NES has more emulators than any other system (new ones are started all the time). Only those that are well known or stand out in some way are covered here.
  
==Emulation Issues==
+
==Emulation issues==
===Overscan===
+
===Mappers===
 +
A key difference between many emulators nowadays is how many mappers they support.
 +
* '''No mapper:''' Supported on every emulator even official Nintendo emulators.
 +
* '''Official mappers''' (UNROM, AOROM, MMC1-6): Most emulators, as well as Nintendo's Virtual Console (but not their GBA emulators),  will cover these.
 +
* '''Third party mappers''' (Various: e.g. Konami's VRC6/VRC7) While officially licensed by Nintendo, they were not allowed outside Japan. As a result, for their Western releases, many games that took advantage of their features (advanced ROM mapping, extra sound channels) were reprogrammed significantly and shipped on the official mappers, often with simplified soundtracks. A lot of fan emulators worth their salt will cover these. With those, you cover the entire officially licensed library.
 +
* '''Unlicensed mappers:''' Mostly used by pirate cartridges, often long past the console's official commercial lifespan. Only the more accurate emulators ([https://github.com/NovaSquirrel/Mesen-X/commits/master/Core Mesen-X], [https://github.com/punesemu/puNES/commits/master/src/core/mappers puNES], NintendulatorNRS, [https://github.com/0ldsk00l/nestopia/commits/master/source/core/board Nestopia UE]) will even bother covering them in a whack-a-mole quest for every new one discovered to this very day. If you're not interested in '''unlicensed''' Chinese or Russian bootlegs or newer unofficial NES demakes, it isn't a problem.
  
[[File:Retroarch_2013-08-16_06-32-24-62.png|thumb|250px|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 their overscan to be cropped to look proper. Unfortunately, there is seemingly no standard level of overcropping. Many games appear to require different levels for best results. For example, SMB3 requires quite a lot of cropping, however the same level of cropping will certainly obscure the letters of the status bar in Castlevania games.
+
The NES ROM information isn't sufficient to describe the cartridge and emulate it, so emulators have to include the layout and behavior of these mappers in their code, while the ROM header tells the emulator which mapper to choose. So unlike with other consoles, no matter how accurate a given NES emulator will get, it will still never be able to run newly discovered ROM dumps from cartridges that used a so-far unknown mapper. Thus, Unlicensed NES support will be inevitably incomplete and a constant work-in-progress, hence claims some emulators are "inaccurate".
===Color Palette===
 
{{Main|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. This must then be decoded by the TV's built-in NTSC decoder, which means the resulting color palette often varies depending on the display's decoder. For this reason NES games will appear to have different colors on different TV sets. To properly emulate this part of the NES experience, many Famicom emulators have a variety of different palettes to choose from.
+
Related to this issue: This is why most emulators won't run unheadered NES ROMs. Newer versions of Nestopia can open those, but they're handled in a slightly different way: the information that would have been included in the iNES header is instead provided in emulator configuration files that get summoned as long as the ROM's hash matches exactly the No-Intro dump of that given game (which is inconvenient for romhacks).
  
==Peripherals==
+
===QD FDS support===
There were many accessories released for the NES but Emulation General only covers accessories that are truly differentiated data streams from the basic controller. 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.<ref>[[Wikipedia:List of Nintendo Entertainment System accessories|List of Nintendo Entertainment System accessories]]</ref>
+
Games dumped off the Famicom Disc System come into two major types:
  
===Zapper===
+
* '''.fds format''': Most common format. Ubiquitous in ROM sets (GoodSets, No-Intro). Omits some checksum data.
This accessory was very common. It's a light gun, used for many games such as ''Duck Hunt'', ''Wild Gunman'', and ''Hogan's Alley'', to name three examples. When the trigger is pulled, the screen flashes black for a period of 1-2 frames while displaying 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 could be quite unreliable unless the lenses were thoroughly clean. The Zapper plugged into the P2 port 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.
+
* '''.qd format''' (stands for QuickDisk): Only ever used in official Nintendo re-releases. Almost identical to fds, but a full dump with checksum data. May omit padding.
  
===Arkanoid/Vaus Controller===
+
The checksum data in question would be checked at BIOS startup to verify the integrity of the image and whether it was tampered with, in which case it will throw an anti-piracy error. As of now, no NES emulators support the alternate more complete dumps, as well as fudging that check's result to always return a negative. To emulate a .qd image, stripping the checksum data with a custom script is needed.  
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 it, but it is still optional even so. [[Mesen]] supports this.
 
  
===Miracle Piano Teaching System===
+
===Overscan===
By the Software Toolworks, the ''[[Wikipedia:Miracle Piano Teaching System|Miracle Piano Teaching System]]'' used an electronic piano keyboard as input. It is unknown if any emulator supports this feature.
+
{{Main|Overscan}}
  
===Family Trainer/Family Fun Fitness/Power Pad===
+
[[File:Retroarch_2013-08-16_06-32-24-62.png|thumb|250px|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 their overscan to be cropped to look proper. Unfortunately, there is no standard level of overcropping. Many games require different levels for best results. For example, Super Mario Bros. 3 requires quite a bit of cropping, however, the same level of cropping will obscure the letters of the status bar in Castlevania games.
This was designed to be used with your feet, typically by running in place on numbered circles to represent the button presses. It plugs into the P2 port 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 is not an option. Despite being less accurate than puNES or Mesen, [[FCEUX]] actually supports this.
 
  
===NES Four Score/NES Satellite/4-Player Adaptor===
+
===Color palette===
This turned the standard two controller ports into four by plugging into both P1 and P2. A few games utilized this capability, such as LJN's ''A Nightmare on Elm Street''. Many emulators support this feature by having an option to switch between 2-player and 4-player mode or just enabling/disabling Player 3 and Player 4's controller.
+
{{Main|Famicom color palette}}
  
===Microphone===
+
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. This must then be decoded by the TV's built-in NTSC decoder, which means the resulting color palette often varies depending on the display's decoder. For this reason, NES games will appear to have different colors on different TV sets. To properly emulate this part of the NES experience, many Famicom emulators have a variety of different palettes to choose from.
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 (the US version changed this 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====
+
The Wii and Wii U versions of [[Virtual Console]] use extremely dark color palettes. This is apparently not an accuracy issue, but rather an anti-epilepsy measure. For the Nintendo Switch Online service, the games were directly edited to remove seizure-inducing patterns, allowing it to use a normal palette.
Separate from the built-in microphone, Bandai made ''[[Wikipedia:Karaoke Studio|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===
+
==Peripherals==
A Japan-only peripheral using a magnetic disk format instead of cartridges, with its own unique game library. Some of these were later ported to the regular NES/Famicom cartridge format with significant downgrades (particularly the loss of enhanced FDS hardware audio). This accessory made it possible to save game data without needing battery-backed ROM, but only for the game contained on each of the disks.
+
There were many accessories released for the NES but Emulation General only covers accessories that are truly differentiated data streams from the basic controller. 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.<ref>[[Wikipedia:List of Nintendo Entertainment System accessories|List of Nintendo Entertainment System accessories]]</ref>
  
You'll need the BIOS file to emulate games made for this add-on. It's interesting to note there are actually two versions of the BIOS; [[Wikipedia:Family Computer Disk System|Nintendo's peripheral]] and [[Wikipedia:Twin Famicom|Sharp's Twin Famicom]]. The only difference is Nintendo's displays ''Nintendo'' while [[Wikipedia:Sharp Corporation|Sharp]]'s displays ''Famicom'' when the hardware is first booted. Other than that, they function identically.
+
<div style="max-width:100%; overflow:auto;">
 +
{| class="wikitable" style="text-align:center;"
 +
! scope="col" style="width:200px;"|Name(s)
 +
! scope="col" style="width:300px;"|Description
 +
! scope="col" style="width:150px;"|Game(s)
 +
! scope="col" style="width:100px;text-align:center"|Support emulator(s)
 +
! scope="col" style="width:300px;"|Note
 +
|-
 +
!Zapper
 +
|An electronic light gun accessory that allowing players to aim at the display and shoot various objects that appear on the screen.
 +
|''[[Wikipedia:Duck Hunt|Duck Hunt]]''<br/>''[[Wikipedia:Wild Gunman|Wild Gunman]]''<br/>''[[Wikipedia:Hogan's Alley (video game)|Hogan's Alley]]''
 +
|Various
 +
|Emulated in the form of a mouse click (PC), tap (for mobile), remote ([[Wii emulators|Wii]] ports of NES emulators), or faked pointers using a controller.
 +
|-
 +
!Arkanoid/Vaus Controller
 +
|A specific game controller with one button to "fire" and a dial to control back and forth movement.
 +
|''[[Wikipedia:Arkanoid|Arkanoid]]''<br/>''[[Wikipedia:Arkanoid: Revenge of Doh|Arkanoid: Revenge of Doh]]''<br/>''[[Wikipedia:Chase H.Q.|Chase H.Q.]]''
 +
|Various
 +
|N/A
 +
|-
 +
!Power Pad<br/>Family Trainer<br/>Family Fun Fitness
 +
|A game controller that allows players stepping on a gray floor mat with 12 pressure-sensors embedded between flexible plastic to control gameplay.
 +
|''[[Wikipedia:Stadium Events|Stadium Events]]''<br/>''[[Wikipedia:Dance Aerobics|Dance Aerobics]]''<br/>''Athletic World''
 +
|[[FCEUX]]
 +
|N/A
 +
|-
 +
!NES Four Score<br/>NES Satellite<br/>4-Player Adaptor
 +
|A multitap accessory that allows players to enable up to 4-player gameplay using infrared wireless communication.
 +
|''[[Wikipedia:R.C. Pro-Am II|R.C. Pro-Am II]]''<br/>''[[Wikipedia:Bomberman II|Bomberman II]]''<ref group=N>Up to three players only.</ref><br/>''[[Wikipedia:Gauntlet II|Gauntlet II]]''<br/>''[[Wikipedia:Nintendo World Cup|Nintendo World Cup]]''<br/>''[[Wikipedia:A Nightmare on Elm Street (franchise)#Video games|A Nightmare on Elm Street]]''
 +
|Various
 +
|Emulated by having an option to switch between 2-player and 4-player mode or just enabling/disabling Player 3 and Player 4's controller.
 +
|-
 +
!Family Computer Disk System
 +
|''See above''
 +
|''[[Wikipedia:The Legend of Zelda (video game)|Legend of Zelda: The Hyrule Fantasy]]''<br/>''[[Wikipedia:Zelda II: The Adventure of Link|Zelda II: The Adventure of Link]]''<br/>''[[Wikipedia:Metroid|Metroid]]''<br/>''[[Wikipedia:Kid Icarus|Light Mythology: Palutena's Mirror]]''<br/>''[[Wikipedia:Castlevania (1986 video game)|Akumajō Dracula]]''<br/>''[[Wikipedia:Ice Hockey (1988 video game)|Ice Hockey]]''
 +
|Various
 +
|BIOS file (which can be found [[Emulator_Files#NES_.2F_Famicom|here]]) is required for FDS emulation. Note that there's two versions of the BIOS: the one that comes with FDS and another one that comes with Sharp's [[Wikipedia:Twin Famicom|Twin Famicom]]. They function identically despite showing different intro during first boot.
 +
|-
 +
!Microphone
 +
|A Japan-exclusive built-in feature in the original Player 2 Famicom controller that allows players to use external sound source (e.g. player's voice) as input.
 +
|''[[Wikipedia:The Legend of Zelda (video game)|Legend of Zelda: The Hyrule Fantasy]]''<br/>''[[Wikipedia:Kid Icarus|Light Mythology: Palutena's Mirror]]''<br/>''[[Wikipedia:The Legend of Zelda (video game)|Kaiketsu Yanchamaru]]''
 +
|[[Mesen]]<ref group=N name=microphone>Cheated by pressing any specific key ("M" by default).</ref><br/>[[VirtuaNES]]<ref group=N name=microphone/><br/>[[Virtual Console]]<ref group=N>Through an actual microphone.</ref>
 +
|N/A
 +
|-
 +
!Family BASIC
 +
|A Japan-exclusive peripheral that includes a enchanced dialect of [[Wikipedia:BASIC|BASIC]] programming language that allow users to create programs in Famicom. It comes with a special designed cartridge, keyboard, and the Data Recorder.
 +
|''Family BASIC''
 +
|[[Mesen]]<br/>[[Nestopia|Nestopia UE]]<br/>[[FCEUX]]<br/>[[VirtuaNES]]
 +
|N/A
 +
|-
 +
!Famicom Data Recorder
 +
|A Japan-exclusive compact cassette tape data interface as an addition to the Family BASIC to save data from BASIC programs created by users.
 +
|''Family BASIC''
 +
|[[Mesen]]<br/>[[Nestopia|Nestopia UE]]<br/>[[VirtuaNES]]
 +
|N/A
 +
|-
 +
!Famicom 3D System
 +
|A Japan-exclusive active shutter glasses headset which allowed compatible games to display a stereoscopic image for 3D experience.
 +
|''[[Wikipedia:List of Mario racing games#Famicom Grand Prix II: 3D Hot Rally|Famicom Grand Prix II: 3D Hot Rally]]''<br/>''[[Wikipedia:Rad Racer|Highway Star]]''<br/>''[[Wikipedia:Falsion|Falsion]]''
 +
|[[RetroArch]]
 +
|[https://github.com/libretro/glsl-shaders/tree/master/stereoscopic-3d GLSL shaders] is needed for RetroArch to simulate the 3D experience with [[Virtual reality|VR]] headset, 3D TV, 3D projector or Android phone with cardboard.
 +
|-
 +
!Miracle Piano Teaching System
 +
|An accessory that used an electronic MIDI keyboard as input.
 +
|''[[Wikipedia:Miracle Piano Teaching System|Miracle Piano Teaching System]]''
 +
|[[MAME]]<br/>no$nes<br/>Nintaco<br/>[https://forums.nesdev.org/viewtopic.php?t=17135 FCEUX mod]<br>[[MiSTer]]
 +
|N/A
 +
|-
 +
!ASCII TurboFile<br/>ASCII TurboFile II
 +
|A Japan-exclusive external storage devices for saving game positions on Famicom.
 +
|''[[Wikipedia:Wizardry: Proving Grounds of the Mad Overlord|Wizardry: Proving Grounds of the Mad Overlord]]''<br/>''[[Wikipedia:Wizardry II: The Knight of Diamonds|Wizardry II: The Knight of Diamonds]]''<br/>''[[Wikipedia:River City Ransom|Downtown Nekketsu Monogatari]]''<br/>''[[Wikipedia:Miracle Warriors: Seal of the Dark Lord|Haja no Fūin]]''
 +
|[[VirtuaNES]]
 +
|N/A
 +
|-
 +
!Oeka Kids Tablet
 +
|A Japan-exclusive drawing tablet for the Famicom ''Oeka Kids'' series.<ref>[https://web.archive.org/web/20160927112920/http://www.ne.jp/asahi/oroti/famicom/ish15.html ファミコンの周辺機器が大集合! ザ☆周辺機器ズ 15] (Archived)</ref>
 +
|''Oeka Kids: Anpanman no Hiragana Daisuki''<br/>''Oeka Kids: Anpanman to Oekaki Shiyou!!''
 +
|[[Mesen]]<br/>[[Nestopia|Nestopia UE]]<br/>[[FCEUX]]<br/>[[puNES]]<br/>[[VirtuaNES]]
 +
|N/A
 +
|-
 +
!RacerMate CompuTrainer Pro
 +
|A rare series of peripherals for the game ''RacerMate Challenge II''. It comes with a interface box, a bike trainer as well as a handlebar display.<ref>[http://www.nesmuseum.com/racermate.html NES Museum: RacerMate Challenge II]</ref>
 +
|''RacerMate Challenge II''
 +
|N/A
 +
|N/A
 +
|-
 +
!Game Genie
 +
|A pass-through devices that attached between a cartridge and the console, allowing the player to manipulate various aspects of games and access unused assets and functions by temporarily modify game data.
 +
|Various
 +
|[[FCEUX]]<ref group=N name=gamegenie>Cheat authentically by using a Game Genie ROM.</ref><br/>[[puNES]]<ref group=N name=gamegenie/>
 +
|Most emulators have a GUI to manage cheats and don't rely on real hardware cheating devices.
 +
|-
 +
!Family Computer Network System<br/>Famicom Modem
 +
|A Japan-exclusive network peripheral that allowed users to connect to a Nintendo server which provided extra content such as jokes, news, game tips, weather forecasts, horse betting and downloadable content via dial-up modem.
 +
|N/A
 +
|N/A
 +
|N/A
 +
|}
 +
</div>
 +
<references group=N/>
  
===Famicom Keyboard===
+
==Hardware variants==
Only one game used a keyboard to program in BASIC on the Famicom and that was ''[[Wikipedia:Family BASIC|Family BASIC]]''. VirtuaNES supports it.
+
===VS. System===
 +
An arcade system based on the NES released for the US. It was released in two different cabinet variations: '''Vs. UniSystem''' and '''Vs. DualSystem''', which the later have double chipsets on the PCB and is capable of handling two different programs or simply two separate copies of a single program simultaneously.
  
====Data Recorder====
+
Most emulators support games in Vs. UniSystem cabinet by setting up different DIP switches. But for games in Vs. DualSystem cabinet, [[MAME]] is the only choice.
The [[Wikipedia:Famicom Data Recorder|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===
+
Since most VS. System games have palettes that differ from the standard RGB NES palette, roms made with VS. System which are accidentally played in the emulator's NES mode (or vice-versa) will cause the colors to be totally garbled. This can occur when there is an issue with the emulator's configuration or the ROM's iNES header.
Different from either battery-backed ROM cartridge or the FDS, ASCII Corporation (based in Japan) created their own method to save game data with the [[Wikipedia:Turbo File (ASCII)|ASCII Turbo File]]. VirtuaNES supports this too.
 
  
===Oeka Kids tablet===
+
===Famicom Box===
This accessory was a tablet for the Famicom games ''Oeka Kids: Anpanman no Hiragana Daisuki'' and ''Oeka Kids: Anpanman to Oekaki Shiyou!!''.<ref>http://www.ne.jp/asahi/oroti/famicom/ish15.html</ref> [[Mesen]] supports it.
+
Also re-released later as Sharp's FamicomStation. The hybrid NES/Famicom arcade box [http://famicomworld.com/system/other/famicombox/ Nintendo Famicom Box] is a bulky metal cube, with a slot to insert money and secured with tons of locks. The hotel would set the amount of time you could play on one token, and choose the games available. You can see it in action in season 18 of [http://www.gamingcx.com/ Game Center CX]. It was distributed in select hotels and stores and can hold up to 15 select Famicom releases at once, and had many more hardware lockout chips and pins with different behavior than usual (it also only supported cartridges using memory mapper 0). Sports a unique boot screen for both models released.  
  
===CompuTrainer Pro===
+
Neither the cartridges nor the BIOS has been dumped or tested with an emulator, unlike the Super Famicom Box (which has had both its BIOS' and most of its ROMs dumped).
This is very rare and was only used in the unlicensed game RacerMate Challenge II. No known emulator supports it. <ref>http://www.nesmuseum.com/racermate.html</ref>
 
  
==Hardware Variants==
+
===Dendy===
===VS System===
+
A pirate NES Famicom clone which was sold in Russia and Eastern Europe, with the blueprint later reused for other Famiclones. Here's [http://www.youtube.com/watch?v=kne6AKyYUuM a link] to a CC-subtitled Kinaman video for more details. It's a very quirky NTSC NES optimized for 50Hz, with many other changes from the official PAL NES as well- through these differences often break the compatibility of Dendy-specific releases on most emulators.
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 which are accidentally played in the emulator's NES mode (or vice-versa) will cause the colors to be totally garbled. This can occur when there is an issue with the emulator's configuration or the ROM's iNES header.
+
MESS supports this console, and some other emulators (such as Mesen, puNES, and FCEUX) have introduced support for it, as well as support for iNES 2.0 ROM headers (including the option to mark a ROM region as PAL Dendy). The cartridges themselves can still be played as long as the emulator supports broken carts.
  
===Famicom Box===
+
===VTxx===
Also re-released later as Sharp's FamicomStation. A bulky metal cube, with a slot to insert money and secured with tons of locks. It was distributed in select hotels and stores and can hold up to 15 select Famicom releases at once, and had many more hardware lockout chips and pins with different behavior than usual (it also only supported cartridges using memory mapper 0). Sports a unique boot screen for both models released.
+
VTxx is a series of NOAC (Nintendo-On-A-Chip, a kind of chip that contains all the components of a Famicom/NES) chips that implemented multiple changes and enhancements compared to regular NES, manufactured by [http://www.vrt.com.tw/ V.R Technology].
  
Neither the cartridges nor the BIOS have been dumped or tested with an emulator, unlike the Super Famicom Box (which has had both its BIOS' and most of its ROMs dumped).
+
Differences between VTxx series chips and regular NES could be checked on [https://www.nesdev.org/wiki/VTxx NesDev Wiki].
  
===Dendy===
+
VTxx is often being used in those low-quality plug & play consoles, or keyboard-shaped so-called educational computers.
A pirate NES Famicom clone which was sold in Russia and Eastern Europe, with the blueprint later reused for other Famiclones. Here's [http://www.youtube.com/watch?v=kne6AKyYUuM a link] to a CC-subtitled Kinaman video for more details. It's a very quirky NTSC NES optimized for 50Hz, with many other changes from the official PAL NES as well- though these differences often 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, along with the already included support for iNES 2.0 ROM headers (including the option to mark a ROM region as PAL Dendy). The cartridges themselves can still be played as long as the emulator supports broken carts.
+
V.R technology provides an emulator called [http://www.vrt.com.tw/download.htm EmuVT] as official development & debugging tool, which supports the emulation of multiple kinds of VTxx series chips, and seems to be modded out of an old emulator called [https://web.archive.org/web/20110317151619/http://www.emulation9.com/nnnesterj/ NNNesterJ].
  
 +
===NES Classic Edition===
 +
{{main|wikipedia:NES Classic Edition}}
 +
The NES Classic Edition is a mini console that emulates the experience of the Nintendo Entertainment System. It includes 30 classic NES games and is compatible with the Wii Classic Controller and NES Classic Edition controller.
 +
Nintendo produced and sold about 2.3 million NES Classic Editions from November 2016 through April 2017, with shipments selling out nearly immediately. In April 2017, Nintendo announced they were discontinuing the product, leading to consumer confusion, and incidents of greatly increased pricing among private sellers. Due to the demand of the NES Classic, and the success of the Super NES Classic Edition console, Nintendo re-introduced the NES Classic on June 29, 2018. Production was discontinued again in December 2018.
  
 
==Resources==
 
==Resources==
Line 366: Line 761:
 
==References==
 
==References==
 
{{Reflist}}
 
{{Reflist}}
 +
 +
 +
{{Nintendo}}
  
 
[[Category:Consoles]]
 
[[Category:Consoles]]
 +
[[Category:Home consoles]]
 +
[[Category:Third-generation video game consoles]]
 
[[Category:Nintendo consoles]]
 
[[Category:Nintendo consoles]]
 
[[Category:Nintendo Entertainment System emulators|*]]
 
[[Category:Nintendo Entertainment System emulators|*]]
[[Category:Third-generation video game consoles]]
 

Revision as of 09:35, 15 September 2022

Nintendo Entertainment System
Nes-t.png
Developer Nintendo
Type Home video game console
Generation Third generation
Release date 1983
Discontinued 2003
Predecessor Color TV-Game
Successor SNES
Emulated

The Nintendo Entertainment System (NES) is an 8-bit, third-generation console released on July 15, 1983 in Japan, where it was known as the Family Computer or Famicom, and on October 18, 1985, it released in the US. It retailed for $179.99. It had a Ricoh 2A03 CPU at 1.79 MHz with 2KB of RAM.

The earliest games released on the Famicom suffered from significant hardware constraints due to the way the Famicom was designed: limited memory addressing (which meant games had a low maximum ROM size), how the graphics are loaded onscreen, just the native sound processing is available, no saving... To solve this problem, Nintendo came up with two solutions:

  • The Family Computer Disk System (FDS), a Japan-only add-on which played games from a semi-custom variant of Mitsumi's Quick Disk format. It offered slightly higher data storage and slightly enhanced sound processing. It also had a microphone never found anywhere else. There were plans to release it in the US, however since the NES itself had its launch delayed to late 1985, and the mapper solution obsoleted it, the add-on was never exported and some of its exclusives were ported as regular cartridge releases.
  • Memory Management Controllers (MMC), also known colloquially as mappers. They solved every single problem above with bank switching for much more data, onboard FM audio chips, and much more. Most games released after 1986 that really pushed the system to its limits used mappers. A similar solution was used for the Game Boy.

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

Emulators

Like for Game Boy/Color, tons of NES emulators exist. For a list of open-source projects, see this GitHub query.

Name Platform(s) Latest version FDS libretro Accuracy FLOSS Active Recommended
PC / x86
Mesen X Windows Linux 2022-05-15 git Cycle
puNES Windows Linux FreeBSD 0.111 wip Cycle
Nestopia UE Windows Linux FreeBSD 1.52.0 Cycle
BizHawk Windows Linux 2.9.1 Cycle ~
NintendulatorNRS Windows 2022-09-12 Cycle ~
Mesen Windows Linux 2.0.0 (preview) Cycle ~
FCEUX Windows Linux macOS FreeBSD Solaris 2.6.6 Mid ~
3dSen Windows Linux macOS 0.9.5 ? ~
ares Windows Linux macOS v136 ?
Nintendulator Windows 0.985 Beta git Cycle
FinalBurn Neo Windows WIP builds High
iNES Windows Linux macOS FreeBSD Solaris 6.1 High ?
My Nes Windows Linux git Mid
higan Windows Linux macOS v110 Cycle
ANESE Windows Linux macOS git Cycle[N 1] ~
RockNES Windows 5.80 High
nemulator Windows 4.4 High
Nesemu macOS git High
FCEUmm Windows Linux macOS FreeBSD 98.13mm (Windows)
git (libretro)
Mid
MAME Windows Linux macOS FreeBSD 0.264 Mid
VirtuaNES Windows 0.97 ~ Low
HDNes Windows git Low
Jnes Windows 1.2.1 Low
NESticle MS-DOS Windows 9x x.xx (DOS)
0.42 (Win9x)
Low
QuickNES Windows Linux macOS FreeBSD 0.7.0b1 (Windows)
git (libretro)
Low
Mobile / ARM
Nestopia[N 2] Android iOS 1.44 High
NES.emu
(based on fceux 2020.05.03 git)
Android Dragonbox Pyra 1.5.77git (Android)
1.5.46.02 (Pyra)
High
(Android only)
FreeiNES Android Maemo
Symbian
6.1.4 (Android)
3.6.5 (Maemo)
3.6 (Symbian)
High ~
VGBANext Android 6.6.6 High ~
GPFCE Linux Pandora GP2X
GP2X Wiz
0.81.0.r2 (Pandora)
0.4 r313 (GP2X)
0.4+ (Wiz)
Mid ~
John NESS Android 1.09 Mid
Jnes Android 1.2.6.26 Mid ~
Nostalgia.NES Android 2.0.9 Mid
nesemu Pandora GP2X Wiz Dingoo 0.2.3 Beta Preview
(Pandora)V1 (Wiz)
0.2 (Dingoo)
Mid
Nestopia Pandora V2 Mid
Nesemu iOS AppleTV git Mid
Pocket Nester+ Windows Mobile 0.9 Low
Consoles
Switch Online Switch 2.3.0 High
Virtual Console Wii Nintendo 3DS Wii U N/A Mid
Nestopia[N 2] PlayStation 3 Xbox 360 Wii 1.44 Mid
FCE Ultra GX GameCube Wii 3.5.3 Mid
pNES Switch Vita git High
NesterJ[N 3] PSP 1.13 beta 2
AoEX
Mid ~
FCEUltra for PS2 PlayStation 2 0.9.3
0.90i Mod
Mid
Neon64 Nintendo 64 git Mid
VirtuaNES for 3DS Nintendo 3DS git Mid
nesDS Nintendo DS 1.3a Low
imbNES PlayStation 1.3.2 Low
NESBox Xbox One v4 Low
Project Nested Super Nintendo git Low
NeMul Genesis 1.0 Low
PocketNES GameBoy Advance 7-1-2013 Low
Other
numworks-nofrendo Numworks git ~ Mid
  1. The CPU is instruction-cycle accurate, but not sub-instruction cycle accurate (TODO ). While this inaccuracy doesn’t affect most games, there are some that that rely on sub-instruction level timings.
  2. 2.0 2.1 Only available as a libretro core (e.g. RetroArch).
  3. 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.

Comparisons

  • Mesen is the most accurate NES emulator according to currently established NES test ROM suites.[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; HD packs, netplay, auto-updating, good built-in filters, both .zip and goodmerged file loading, etc. The standalone emulator has ceased development for unknown reasons, but the libretro fork and NovaSquirrel's fork is still active.
  • puNES is the second most accurate NES/FDS emulator according to a separate test battery run by the TASVideos community.[2]
  • 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 is a fork of Nestopia meant to keep it alive and fix the aforementioned bugs. This version is generally recommended over vanilla. Even the libretro core for Nestopia is in the Undead Edition.
  • Nintendulator and My Nes also have a fairly high ranking in those tests.[2]. NintendulatorNRS is a fork of Nintendulator which has support for the Famicom Disk System, rare mappers, and many unlicensed and bootleg carts and systems.
  • FCEUX scores rather low in these 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 also scores quite low in the tests, but in turn supports several obscure peripherals that are not available on other emulators.
  • For official emulation, there is Nintendo's own Virtual Console or Nintendo Switch Online. 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 other NES emulators not listed here, as the NES has more emulators than any other system (new ones are started all the time). Only those that are well known or stand out in some way are covered here.

Emulation issues

Mappers

A key difference between many emulators nowadays is how many mappers they support.

  • No mapper: Supported on every emulator even official Nintendo emulators.
  • Official mappers (UNROM, AOROM, MMC1-6): Most emulators, as well as Nintendo's Virtual Console (but not their GBA emulators), will cover these.
  • Third party mappers (Various: e.g. Konami's VRC6/VRC7) While officially licensed by Nintendo, they were not allowed outside Japan. As a result, for their Western releases, many games that took advantage of their features (advanced ROM mapping, extra sound channels) were reprogrammed significantly and shipped on the official mappers, often with simplified soundtracks. A lot of fan emulators worth their salt will cover these. With those, you cover the entire officially licensed library.
  • Unlicensed mappers: Mostly used by pirate cartridges, often long past the console's official commercial lifespan. Only the more accurate emulators (Mesen-X, puNES, NintendulatorNRS, Nestopia UE) will even bother covering them in a whack-a-mole quest for every new one discovered to this very day. If you're not interested in unlicensed Chinese or Russian bootlegs or newer unofficial NES demakes, it isn't a problem.

The NES ROM information isn't sufficient to describe the cartridge and emulate it, so emulators have to include the layout and behavior of these mappers in their code, while the ROM header tells the emulator which mapper to choose. So unlike with other consoles, no matter how accurate a given NES emulator will get, it will still never be able to run newly discovered ROM dumps from cartridges that used a so-far unknown mapper. Thus, Unlicensed NES support will be inevitably incomplete and a constant work-in-progress, hence claims some emulators are "inaccurate".

Related to this issue: This is why most emulators won't run unheadered NES ROMs. Newer versions of Nestopia can open those, but they're handled in a slightly different way: the information that would have been included in the iNES header is instead provided in emulator configuration files that get summoned as long as the ROM's hash matches exactly the No-Intro dump of that given game (which is inconvenient for romhacks).

QD FDS support

Games dumped off the Famicom Disc System come into two major types:

  • .fds format: Most common format. Ubiquitous in ROM sets (GoodSets, No-Intro). Omits some checksum data.
  • .qd format (stands for QuickDisk): Only ever used in official Nintendo re-releases. Almost identical to fds, but a full dump with checksum data. May omit padding.

The checksum data in question would be checked at BIOS startup to verify the integrity of the image and whether it was tampered with, in which case it will throw an anti-piracy error. As of now, no NES emulators support the alternate more complete dumps, as well as fudging that check's result to always return a negative. To emulate a .qd image, stripping the checksum data with a custom script is needed.

Overscan

Main article: 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 their overscan to be cropped to look proper. Unfortunately, there is no standard level of overcropping. Many games require different levels for best results. For example, Super Mario Bros. 3 requires quite a bit of cropping, however, the same level of cropping will obscure the letters of the status bar in Castlevania games.

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. This must then be decoded by the TV's built-in NTSC decoder, which means the resulting color palette often varies depending on the display's decoder. For this reason, NES games will appear to have different colors on different TV sets. To properly emulate this part of the NES experience, many Famicom emulators have a variety of different palettes to choose from.

The Wii and Wii U versions of Virtual Console use extremely dark color palettes. This is apparently not an accuracy issue, but rather an anti-epilepsy measure. For the Nintendo Switch Online service, the games were directly edited to remove seizure-inducing patterns, allowing it to use a normal palette.

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. 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]

Name(s) Description Game(s) Support emulator(s) Note
Zapper An electronic light gun accessory that allowing players to aim at the display and shoot various objects that appear on the screen. Duck Hunt
Wild Gunman
Hogan's Alley
Various Emulated 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 A specific game controller with one button to "fire" and a dial to control back and forth movement. Arkanoid
Arkanoid: Revenge of Doh
Chase H.Q.
Various N/A
Power Pad
Family Trainer
Family Fun Fitness
A game controller that allows players stepping on a gray floor mat with 12 pressure-sensors embedded between flexible plastic to control gameplay. Stadium Events
Dance Aerobics
Athletic World
FCEUX N/A
NES Four Score
NES Satellite
4-Player Adaptor
A multitap accessory that allows players to enable up to 4-player gameplay using infrared wireless communication. R.C. Pro-Am II
Bomberman II[N 1]
Gauntlet II
Nintendo World Cup
A Nightmare on Elm Street
Various Emulated by having an option to switch between 2-player and 4-player mode or just enabling/disabling Player 3 and Player 4's controller.
Family Computer Disk System See above Legend of Zelda: The Hyrule Fantasy
Zelda II: The Adventure of Link
Metroid
Light Mythology: Palutena's Mirror
Akumajō Dracula
Ice Hockey
Various BIOS file (which can be found here) is required for FDS emulation. Note that there's two versions of the BIOS: the one that comes with FDS and another one that comes with Sharp's Twin Famicom. They function identically despite showing different intro during first boot.
Microphone A Japan-exclusive built-in feature in the original Player 2 Famicom controller that allows players to use external sound source (e.g. player's voice) as input. Legend of Zelda: The Hyrule Fantasy
Light Mythology: Palutena's Mirror
Kaiketsu Yanchamaru
Mesen[N 2]
VirtuaNES[N 2]
Virtual Console[N 3]
N/A
Family BASIC A Japan-exclusive peripheral that includes a enchanced dialect of BASIC programming language that allow users to create programs in Famicom. It comes with a special designed cartridge, keyboard, and the Data Recorder. Family BASIC Mesen
Nestopia UE
FCEUX
VirtuaNES
N/A
Famicom Data Recorder A Japan-exclusive compact cassette tape data interface as an addition to the Family BASIC to save data from BASIC programs created by users. Family BASIC Mesen
Nestopia UE
VirtuaNES
N/A
Famicom 3D System A Japan-exclusive active shutter glasses headset which allowed compatible games to display a stereoscopic image for 3D experience. Famicom Grand Prix II: 3D Hot Rally
Highway Star
Falsion
RetroArch GLSL shaders is needed for RetroArch to simulate the 3D experience with VR headset, 3D TV, 3D projector or Android phone with cardboard.
Miracle Piano Teaching System An accessory that used an electronic MIDI keyboard as input. Miracle Piano Teaching System MAME
no$nes
Nintaco
FCEUX mod
MiSTer
N/A
ASCII TurboFile
ASCII TurboFile II
A Japan-exclusive external storage devices for saving game positions on Famicom. Wizardry: Proving Grounds of the Mad Overlord
Wizardry II: The Knight of Diamonds
Downtown Nekketsu Monogatari
Haja no Fūin
VirtuaNES N/A
Oeka Kids Tablet A Japan-exclusive drawing tablet for the Famicom Oeka Kids series.[4] Oeka Kids: Anpanman no Hiragana Daisuki
Oeka Kids: Anpanman to Oekaki Shiyou!!
Mesen
Nestopia UE
FCEUX
puNES
VirtuaNES
N/A
RacerMate CompuTrainer Pro A rare series of peripherals for the game RacerMate Challenge II. It comes with a interface box, a bike trainer as well as a handlebar display.[5] RacerMate Challenge II N/A N/A
Game Genie A pass-through devices that attached between a cartridge and the console, allowing the player to manipulate various aspects of games and access unused assets and functions by temporarily modify game data. Various FCEUX[N 4]
puNES[N 4]
Most emulators have a GUI to manage cheats and don't rely on real hardware cheating devices.
Family Computer Network System
Famicom Modem
A Japan-exclusive network peripheral that allowed users to connect to a Nintendo server which provided extra content such as jokes, news, game tips, weather forecasts, horse betting and downloadable content via dial-up modem. N/A N/A N/A
  1. Up to three players only.
  2. 2.0 2.1 Cheated by pressing any specific key ("M" by default).
  3. Through an actual microphone.
  4. 4.0 4.1 Cheat authentically by using a Game Genie ROM.

Hardware variants

VS. System

An arcade system based on the NES released for the US. It was released in two different cabinet variations: Vs. UniSystem and Vs. DualSystem, which the later have double chipsets on the PCB and is capable of handling two different programs or simply two separate copies of a single program simultaneously.

Most emulators support games in Vs. UniSystem cabinet by setting up different DIP switches. But for games in Vs. DualSystem cabinet, MAME is the only choice.

Since most VS. System games have palettes that differ from the standard RGB NES palette, roms made with VS. System which are accidentally played in the emulator's NES mode (or vice-versa) will cause the colors to be totally garbled. This can occur when there is an issue with the emulator's configuration or the ROM's iNES header.

Famicom Box

Also re-released later as Sharp's FamicomStation. The hybrid NES/Famicom arcade box Nintendo Famicom Box is a bulky metal cube, with a slot to insert money and secured with tons of locks. The hotel would set the amount of time you could play on one token, and choose the games available. You can see it in action in season 18 of Game Center CX. It was distributed in select hotels and stores and can hold up to 15 select Famicom releases at once, and had many more hardware lockout chips and pins with different behavior than usual (it also only supported cartridges using memory mapper 0). Sports a unique boot screen for both models released.

Neither the cartridges nor the BIOS has been dumped or tested with an emulator, unlike the Super Famicom Box (which has had both its BIOS' and most of its ROMs dumped).

Dendy

A pirate NES Famicom clone which was sold in Russia and Eastern Europe, with the blueprint later 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 many other changes from the official PAL NES as well- through these differences often break the compatibility of Dendy-specific releases on most emulators.

MESS supports this console, and some other emulators (such as Mesen, puNES, and FCEUX) have introduced support for it, as well as support for iNES 2.0 ROM headers (including the option to mark a ROM region as PAL Dendy). The cartridges themselves can still be played as long as the emulator supports broken carts.

VTxx

VTxx is a series of NOAC (Nintendo-On-A-Chip, a kind of chip that contains all the components of a Famicom/NES) chips that implemented multiple changes and enhancements compared to regular NES, manufactured by V.R Technology.

Differences between VTxx series chips and regular NES could be checked on NesDev Wiki.

VTxx is often being used in those low-quality plug & play consoles, or keyboard-shaped so-called educational computers.

V.R technology provides an emulator called EmuVT as official development & debugging tool, which supports the emulation of multiple kinds of VTxx series chips, and seems to be modded out of an old emulator called NNNesterJ.

NES Classic Edition

Main article: wikipedia:NES Classic Edition

The NES Classic Edition is a mini console that emulates the experience of the Nintendo Entertainment System. It includes 30 classic NES games and is compatible with the Wii Classic Controller and NES Classic Edition controller. Nintendo produced and sold about 2.3 million NES Classic Editions from November 2016 through April 2017, with shipments selling out nearly immediately. In April 2017, Nintendo announced they were discontinuing the product, leading to consumer confusion, and incidents of greatly increased pricing among private sellers. Due to the demand of the NES Classic, and the success of the Super NES Classic Edition console, Nintendo re-introduced the NES Classic on June 29, 2018. Production was discontinued again in December 2018.

Resources

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

References