Difference between revisions of "Nintendo Entertainment System emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Emulators)
(Tags: Mobile edit, Mobile web edit)
(Comparisons)
 
(283 intermediate revisions by 49 users not shown)
Line 1: Line 1:
 
{{Infobox console
 
{{Infobox console
 
|title = Nintendo Entertainment System
 
|title = Nintendo Entertainment System
|logo = nes-t.png
+
|image = Family Computer.png
 +
|image2 = nes-t.png
 +
|imagecaption = The Family Computer (above) and Nintendo Entertainment System (below).
 
|developer = [[:Nintendo]]
 
|developer = [[:Nintendo]]
 
|type = [[:Category:Home consoles|Home video game console]]
 
|type = [[:Category:Home consoles|Home video game console]]
Line 8: Line 10:
 
|discontinued = 2003
 
|discontinued = 2003
 
|predecessor = [[First_and_second_generations_of_video_game_consoles|Color TV-Game]]
 
|predecessor = [[First_and_second_generations_of_video_game_consoles|Color TV-Game]]
|successor = [[Super Nintendo emulators|SNES]]
+
|successor = [[Super Nintendo emulators|Super Family Computer / Super Nintendo Entertainment System]]
 
|emulated = {{✓}}
 
|emulated = {{✓}}
 
}}
 
}}
  
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'''. On October 18, 1985, it was released in the US. It retailed for {{Inflation|USD|179.99|1985}}. It had a Ricoh 2A03 CPU at 1.79 MHz with 2 KBs of RAM.
+
The '''[https://en.wikipedia.org/wiki/Nintendo_Entertainment_System Nintendo Entertainment System]''' (NES) is an 8-bit, third-generation console originally released as the '''Family Computer''' or '''Famicom''', in Japan, on July 15, 1983. The Famicom retailed for ¥14800. The console would be redesigned as the NES and released on October 18, 1985 in North America. The NES retailed for {{Inflation|USD|179.99|1985}}. It had a Ricoh 2A03 CPU at 1.79 MHz with 2 KBs 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 small maximum ROM size), how the graphics were loaded onscreen, just the native sound processing was available, no saving... To solve this problem, Nintendo came up with two solutions:
 
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 small maximum ROM size), how the graphics were loaded onscreen, just the native sound processing was available, no saving... To solve this problem, Nintendo came up with two solutions:
  
* The '''Family Computer Disk System''' (FDS). A Japan-only add-on that 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 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.
+
* The '''Family Computer Disk System''' (FDS). A Japan-only [[#Peripherals|add-on]] that 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 had its launch delayed to late 1985, and the mapper solution obsoleted it, the [[#Peripherals|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 aforementioned problem 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.
+
* '''Memory Management Controllers''' (MMC), also known colloquially as '''[[#Mappers|mappers]]'''. They solved every aforementioned problem 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.
+
Emulation for the Famicom/NES is robust, with many high-quality emulators for various systems and cycle-accurate emulation possible on even moderately powerful devices.
  
 
==Emulators==
 
==Emulators==
 
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].
 
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;">
+
<div style="overflow-x:auto;width:100%">
{| class="wikitable" style="text-align:center;"
+
{| class="wikitable" style="text-align:center;width:100%"
 
! scope="col"|Name
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Platform(s)
 
! scope="col"|Latest version
 
! scope="col"|Latest version
! scope="col"|[https://www.system16.com/hardware.php?id=550 <abbr title="PlayChoice-10">PC-10</abbr>]
+
! scope="col"|[[#Hardware_variants|Hardware<br/>Variants]]
! scope="col"|[https://emulation.gametechwiki.com/index.php/Nintendo_Entertainment_System_emulators#VS._System <abbr title="Vs. UniSystem and Vs. DualSystem emulation">VS<br/>System</abbr>]
+
! scope="col"|[[#Enhancements|Enhancements]]
! scope="col"|[[Wikipedia:Famicom Disk System|FDS]]
+
! scope="col"|[[#Peripherals|Peripherals]]
! scope="col"|[[libretro]]
+
! scope="col"|[[#Mappers|<small>Mappers Support<br/>Level</small>]]
! scope="col"|<small>[https://retroachievements.org/download.php Retro<br/>Achievements]</small>
+
! scope="col"|[[Emulation Accuracy|Accuracy]]
! scope="col"|[[Emulation accuracy|Accuracy]]
 
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! 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="12"|PC / x86
+
!colspan="11"|PC / x86
 
|-
 
|-
|[[Mesen]]
+
|[[Mesen|Mesen]]
|align=left|{{Icon|Windows|Linux}}
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[https://github.com/NovaSquirrel/Mesen-X/releases/ 2022-05-15] ([[Mesen#List_of_forks|Mesen X]]) <br/> [https://github.com/negativeExponent/libretro_builds/releases libretro core] ([[Mesen#List_of_forks|Mesen X]])<br /> [https://buildbot.libretro.com/nightly/ libretro core]
+
|[https://github.com/SourMesen/Mesen2#development-builds Dev builds]<br/>[https://buildbot.libretro.com/nightly/ libretro core]<br/>[https://github.com/NovaSquirrel/Mesen-X/releases/ 2023-09-11] ([[Mesen#List_of_forks|Mesen X]])<br/>[https://github.com/SourMesen/Mesen/releases 0.9.9] (Mesen 1)
|{{~}}<ref group=N name=ProperPC-10>[https://forums.nesdev.org/viewtopic.php?p=148572 These emulators only play the PC-10 games as a normal NES game] unlike [[MAME]].</ref>
+
|{{~}}
|{{✓}}[https://www.mesen.ca/docs/configuration/preferences.html#vs-dualsystem-settings *]
+
|{{Y}}
|{{✓}}
+
|{{Y}}
|{{✓}}
+
|[https://github.com/SourMesen/Mesen2/tree/master/Core/NES/Mappers Unlicensed]
|{{✓}}
 
|Cycle
 
|{{✓}}
 
|{{~}}<ref group=N>The [https://github.com/libretro/Mesen/commits/master libretro core] and [https://github.com/NovaSquirrel/Mesen-X/ NovaSquirrel's fork] are still active.</ref>
 
|{{}}
 
|-
 
|[https://github.com/SourMesen/Mesen2 Mesen2]
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/SourMesen/Mesen2/tags 2.0.0-preview1]<br />[https://github.com/SourMesen/Mesen2#development-builds Dev]
 
|{{~}}<ref group=N name=ProperPC-10></ref>
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
 
|Cycle
 
|Cycle
 
|{{✓}}
 
|{{✓}}
Line 68: Line 55:
 
|[[puNES]]
 
|[[puNES]]
 
|align=left|{{Icon|Windows|Linux|FreeBSD}}
 
|align=left|{{Icon|Windows|Linux|FreeBSD}}
|[https://github.com/punesemu/puNES/actions git]<br> [https://github.com/punesemu/puNES/releases {{PuNESVer}}]
+
|[https://github.com/punesemu/puNES#floppy_disk-work-in-progress-wip-builds- WIP builds]<br> [https://github.com/punesemu/puNES/releases {{PuNESVer}}]
|{{~}}<ref group=N name=ProperPC-10></ref>
+
|{{~}}
|{{~}}<ref group=N name=Vs.DualSystemCompat>Supports Vs. UniSystem but no support for Vs. DualSystem. [https://github.com/punesemu/puNES/commit/8b47febd8050cf65f2525efa610fe4e47e01e69a *puNES], [https://github.com/0ldsk00l/nestopia/blob/master/source/core/vssystem/NstVsSystem.cpp#L292 *nestopia UE], [https://github.com/libretro/libretro-fceumm/blob/master/src/drivers/libretro/libretro.c#L1490 *FCEumm], [https://github.com/TASEmulators/fceux/blob/master/src/vsuni.cpp#L187 *FCEUX], [https://tasvideos.org/Forum/Topics/17971?CurrentPage=9&Highlight=443471#443471 *BizHawk]</ref>
+
|{{Y}}
|{{✓}}
+
|{{Y}}
|{{✗}}
+
|[https://github.com/punesemu/puNES#electric_plug-supported-mappers Unlicensed]
|{{✗}}
 
 
|Cycle
 
|Cycle
 
|{{✓}}
 
|{{✓}}
Line 80: Line 66:
 
|-
 
|-
 
|[[Nestopia|Nestopia UE]]
 
|[[Nestopia|Nestopia UE]]
|align=left|{{Icon|Windows|Linux|FreeBSD}}
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Web}}
 
|[https://buildbot.libretro.com/nightly/ libretro core] <br> [http://0ldsk00l.ca/nestopia/ {{NestopiaVer}}] <br> [https://gitlab.com/jgemu/nestopia/ Nestopia JG git]
 
|[https://buildbot.libretro.com/nightly/ libretro core] <br> [http://0ldsk00l.ca/nestopia/ {{NestopiaVer}}] <br> [https://gitlab.com/jgemu/nestopia/ Nestopia JG git]
|{{~}}<ref group=N name=ProperPC-10></ref>
+
|{{~}}
|{{~}}<ref group=N name=Vs.DualSystemCompat></ref>
+
|{{~}}
 +
|{{Y}}
 +
|[https://github.com/0ldsk00l/nestopia/commits/master/source/core/board Unlicensed]
 +
|Cycle
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{}}[https://github.com/libretro/docs/pull/10 *]
+
|{{}}
|Cycle
+
|-
 +
|[[FCEUX]]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Sol|Web}}
 +
|[http://www.fceux.com/web/download.html {{FCEUXVer}}]<br/>[https://buildbot.libretro.com/nightly/ libretro (FCEUmm)]
 +
|{{~}}
 +
|{{~}}
 +
|{{Y}}
 +
|Unlicensed
 +
|High
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|[[BizHawk]]
+
|[[ares]]
|align=left|{{Icon|Windows|Linux}}
+
|align=left|{{Icon|Windows|Linux|macOS}}
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
+
|[https://nightly.link/ares-emulator/ares/workflows/build/master <abbr title="Latest development build version">git Artifacts</abbr>]<br/>[https://github.com/ares-emulator/ares/releases {{aresVer}}]
|{{~}}<ref group=N name=ProperPC-10></ref>
+
|{{~}}
|{{~}}<ref group=N name=Vs.DualSystemCompat></ref>
 
|{{}}
 
 
|{{✗}}
 
|{{✗}}
|{{}}
+
|{{~}}
|Cycle
+
|?
 +
|High
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
 
|-
 
|-
|[[Nintendulator]]
+
|[[BizHawk]]
|align=left|{{Icon|Windows}}
+
|align=left|{{Icon|Windows|Linux}}
|[http://unlicensed.games/libg/static.php?page=NintendulatorNRS 2023-01-21] (NintendulatorNRS)<br/>[http://www.qmtpro.com/~nes/nintendulator/#downloads 0.985 Beta]
+
|[https://gitlab.com/TASVideos/BizHawk/-/pipelines Dev Builds]<br/>[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
|{{~}}<ref group=N name=ProperPC-10></ref>
+
|{{~}}
|{{}}
 
|{{}}
 
 
|{{✗}}
 
|{{✗}}
|{{}}
+
|{{~}}
|Cycle
+
|?
 +
|?
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
 
|-
 
|-
|[[MAME]]
+
|[[Nintendulator]]/NRS
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows}}
|[http://www.mamedev.org/release.html {{MAMEVer}}]
+
|[http://unlicensed.games/libg/static.php?page=NintendulatorNRS 2023-12-23]<br/>[http://www.qmtpro.com/~nes/nintendulator/#downloads {{NintendulatorVer}}]
|{{✓}}
+
|{{~}}
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
 
|{{✗}}
 
|{{✗}}
|?
+
|{{~}}
 +
|[https://www.mediafire.com/file/l56fw5ozxu1w36d/nintendulatorNRS-src-mappers_2022-09-12.7z/file Unlicensed]
 +
|Cycle
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
Line 133: Line 127:
 
|[[3dSen]]
 
|[[3dSen]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[http://www.geodstudio.net/ {{3dSenVRVer}}]
+
|[http://www.geodstudio.net/ {{3dSenVer}}]
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
 
|{{✗}}
 
|{{✗}}
 +
|{{~}}
 
|{{✗}}
 
|{{✗}}
|?
+
|[https://steamcommunity.com/app/954280/discussions/0/1643170903498517164/ <small>Only for selected titles</small>]
 +
|Game dependent
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
 
|-
 
|-
|[[ares]]
+
|[[MAME]]
|align=left|{{Icon|Windows|Linux|macOS}}
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[https://github.com/ares-emulator/ares/releases {{aresVer}}]
+
|<abbr title="Latest development version">git artifacts</abbr><ref group=N>[https://nightly.link/mamedev/mame/workflows/ci-windows/master CI-Windows] [https://nightly.link/mamedev/mame/workflows/ci-linux/master CI-Linux] [https://nightly.link/mamedev/mame/workflows/ci-macos/master CI-Macos]</ref></br>[http://www.mamedev.org/release.html {{MAMEVer}}]<br/>[https://buildbot.libretro.com/nightly/ libretro core]
|{{~}}<ref group=N name=ProperPC-10></ref>
 
|{{}}
 
 
|{{✓}}
 
|{{✓}}
|{{}}
+
|{{~}}
|{{}}
+
|{{~}}
 +
|[https://github.com/mamedev/mame/tree/master/src/mame/nintendo Unlicensed]
 
|?
 
|?
 
|{{✓}}
 
|{{✓}}
Line 157: Line 149:
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[https://fms.komkon.org/iNES iNES]
+
|[[QuickNES]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Solaris}}
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Web}}
|[https://fms.komkon.org/iNES {{INESVer}}]
+
|[https://buildbot.libretro.com/nightly/ libretro core]<br/>[https://web.archive.org/web/20180904003223/https://kode54.net/fb2k/QuickNES.zip {{QuickNESVer}} (legacy)]
|{{~}}<ref group=N name=ProperPC-10></ref>
+
|{{~}}
 +
|{{~}}
 
|{{~}}
 
|{{~}}
 +
|?
 +
|?
 
|{{✓}}
 
|{{✓}}
 +
|{{~}}<ref group=N name=lrActiveonly>Libretro core is still active.</ref>
 
|{{✗}}
 
|{{✗}}
 +
|-
 +
|BeesNES
 +
|align=left|{{Icon|Windows}}
 +
|[https://github.com/L-Spiro/BeesNES  git]
 
|{{✗}}
 
|{{✗}}
|High
+
|{{~}}
|?
 
|{{}}
 
 
|{{✗}}
 
|{{✗}}
|-
 
|[http://cah4e3.shedevr.org.ru/fceultra.php FCEUmm]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://buildbot.libretro.com/nightly/ libretro core] ([[libretro]])<br />[https://sourceforge.net/projects/fceumm/ 98.13mm] ([[Emulators on Windows|Windows]])
 
 
|?
 
|?
|{{~}}<ref group=N name=Vs.DualSystemCompat></ref>
+
|Subcycle
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{✓}}
+
|{{✗}} (WIP)
|Mid
 
|{{✓}}
 
|{{~}}<ref group=N>[https://github.com/libretro/libretro-fceumm/commits/master Only libretro core still active.]</ref>
 
|{{✗}}
 
 
|-
 
|-
|nintaco
+
|breakNES
|align=left|{{Icon|Java}}
+
|align=left|{{Icon|Windows}}
|[https://nintaco.com/ 2020-05-01]
+
|[https://github.com/emu-russia/breaknes/releases {{BreaknesVer}}]
|{{~}}<ref group=N name=ProperPC-10></ref>
 
|{{✓}}
 
|{{✓}}
 
 
|{{✗}}
 
|{{✗}}
 +
|{{?}}
 
|{{✗}}
 
|{{✗}}
|Cycle
+
|?
 +
|Gate-level
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{✗}}
+
|{{✗}} (WIP)
|{{✗}}
 
 
|-
 
|-
 
|[[MetalNES]]
 
|[[MetalNES]]
Line 202: Line 191:
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|{{✗}}
+
|?
|{{}}
+
|Transistor-level
|Transistor
+
|{{✓}}
 +
|{{~}}
 +
|{{✗}} (WIP)
 +
|-
 +
|jgenesis
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[https://github.com/jsgroth/jgenesis {{jgenesisVer}}]
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|{{✓}}
 +
|{{✓}}
 +
|
 +
|-
 +
|[https://jsgroth.dev/jgnes jgnes]
 +
|align=left|{{Icon|Windows|Linux|Web}}
 +
|[https://github.com/jsgroth/jgnes git]
 +
|
 +
|
 +
|
 +
|Licensed
 +
|Cycle-based
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{✗}}
+
|
 
|-
 
|-
|[[FCEUX]]
+
|[https://prilik.com/ANESE ANESE]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Sol}}
+
|align=left|{{Icon|Windows|Linux|macOS}}
|[http://www.fceux.com/web/download.html {{FCEUXVer}}]
+
|[https://github.com/daniel5151/ANESE/releases 0.9.1]
|{{~}}<ref group=N name=ProperPC-10></ref>
+
|?
|{{~}}<ref group=N name=Vs.DualSystemCompat></ref>
+
|{{~}}<abbr title="Only supports widescreen hack, streamable compression support and fast-forward at the moment.">*</abbr>
 +
|{{~}}
 +
|?
 +
|?
 
|{{✓}}
 
|{{✓}}
 +
|{{~}}
 
|{{✗}}
 
|{{✗}}
 +
|-
 +
|[https://fms.komkon.org/iNES iNES]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD|Solaris}}
 +
|[https://fms.komkon.org/iNES {{INESVer}}]
 +
|{{~}}
 
|{{✗}}
 
|{{✗}}
|Mid
+
|{{~}}
|{{}}
+
|?
 +
|?
 +
|?
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[[FinalBurn Neo]]
+
|[[HDNes]]
 
|align=left|{{Icon|Windows}}
 
|align=left|{{Icon|Windows}}
|[https://github.com/finalburnneo/FBNeo/releases/tag/latest WIP builds]
+
|[http://forums.nesdev.com/viewtopic.php?f=3&t=9935#p109627 git]
 +
|?
 +
|{{~}}<abbr title="Only supports sprite replacement.">*</abbr>
 +
|{{?}}
 +
|?
 
|?
 
|?
|{{✗}}[https://emulation.gametechwiki.com/index.php/FinalBurn_Neo#List_of_emulated_systems *]
 
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{~}}<ref group=N>[https://docs.libretro.com/guides/retroachievements/#nes Requires games in nes or fds subdirectories, exact archives just like arcade. Not all games may be linked for this core].</ref>
 
|High
 
 
|{{✗}}
 
|{{✗}}
 +
|-
 +
|[[FinalBurn Neo]]
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|[https://buildbot.libretro.com/nightly/ libretro core]<br/>[https://github.com/finalburnneo/FBNeo/releases/tag/latest WIP builds]
 +
|{{✗}}
 +
|{{✗}}
 +
|{{~}}
 +
|?
 +
|?
 +
|{{NC}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[[higan]]
+
|[[higan]] (火眼)<br/>byuu (謬/view)
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/higan-emu/higan/releases {{higanVer}}]
 
|[https://github.com/higan-emu/higan/releases {{higanVer}}]
 +
|{{?}}
 +
|{{✗}}
 +
|{{~}}
 
|?
 
|?
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
 
|Cycle
 
|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 rely on sub-instruction level timings.]</ref>
 
|{{✓}}
 
|{{~}}
 
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[[RockNES]]
+
|[[VirtuaNES]]
 
|align=left|{{Icon|Windows}}
 
|align=left|{{Icon|Windows}}
|[http://rocknes.web.fc2.com {{RockNESVer}}]
+
|[http://virtuanes.s1.xrea.com/ 0.97]
 +
|?
 
|?
 
|?
 +
|{{?}}
 
|?
 
|?
 +
|Low
 
|{{✓}}
 
|{{✓}}
|{{✗}}
 
|{{✗}}
 
|High
 
|{{✗}}
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
Line 279: Line 298:
 
|?
 
|?
 
|?
 
|?
|{{}}
+
|{{?}}
|{{✗}}
+
|?
|{{✗}}
+
|Medium
|High
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
Line 289: Line 307:
 
|Nesemu
 
|Nesemu
 
|align=left|{{Icon|macOS}}
 
|align=left|{{Icon|macOS}}
|[https://github.com/tsalvo/nes-emu-ios git]
+
|[https://github.com/tsalvo/nes-emu-ios {{NesemuVer}}]
 +
|?
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|High
 
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[[VirtuaNES]]
+
|HalfNES
|align=left|{{Icon|Windows}}
+
|align=left|{{Icon|Windows|Linux}}
|[http://virtuanes.s1.xrea.com/ 0.97]
+
|[https://github.com/andrew-hoffman/halfnes {{HalfNESVer}}]
 +
|?
 
|?
 
|?
 
|?
 
|?
|{{~}}
 
|{{✗}}
 
|{{✗}}
 
|Low
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|[[HDNes]]
 
|align=left|{{Icon|Windows}}
 
|[http://forums.nesdev.com/viewtopic.php?f=3&t=9935#p109627 git]
 
 
|?
 
|?
 
|?
 
|?
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|Low
 
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
Line 331: Line 334:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|Low
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
Line 345: Line 347:
 
|?
 
|?
 
|{{✗}}
 
|{{✗}}
|{{✗}}
+
|?
|{{✗}}
 
 
|Low
 
|Low
 
|{{✗}}
 
|{{✗}}
Line 352: Line 353:
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[[QuickNES]]
+
|[[RockNES]]
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
+
|align=left|{{Icon|Windows}}
|[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]])
+
|[http://rocknes.web.fc2.com {{RockNESVer}}]
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
 +
|High
 
|{{✗}}
 
|{{✗}}
|{{✓}}
 
|{{✓}}
 
|Low
 
|{{✓}}
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
!colspan="12"|Mobile / ARM
+
!colspan="11"|Mobile / ARM
 
|-
 
|-
|Nestopia<ref group=N name=libretro>Only available as a libretro core (e.g., [[RetroArch]]).</ref>
+
|[https://docs.libretro.com/library/nestopia_ue/ Nestopia_libretro]
 
|align=left|{{Icon|Android|iOS}}
 
|align=left|{{Icon|Android|iOS}}
|1.44
+
|[https://buildbot.libretro.com/nightly/ libretro core]
|?
+
|{{~}}
|?
+
|{{~}}
 +
|{{~}}
 +
|Unlicensed
 +
|Cycle
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{}}
+
|-
 +
|[https://docs.libretro.com/library/fceumm/ <abbr title="FCEUMappersModified is an unofficial build of FCEU Ultra by CaH4e3, which supports a lot of new mappers including some obscure mappers such as one for unlicensed NES ROM's">FCEUmm_libretro</abbr>]
 +
|align=left|{{Icon|Android|iOS}}
 +
|[https://buildbot.libretro.com/nightly/ libretro core]
 +
|{{~}}
 +
|{{~}}
 +
|{{~}}
 +
|Unlicensed
 
|High
 
|High
 
|{{✓}}
 
|{{✓}}
Line 380: Line 391:
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|[http://www.explusalpha.com/home/nes-emu NES.emu]<br/><small>(based on fceux 2020.05.03 git)</small>
+
|[https://www.explusalpha.com/contents/nes-emu NES.emu]
 
|align=left|{{Icon|Android|Pyra}}
 
|align=left|{{Icon|Android|Pyra}}
 
|[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>
 
|[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>
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
+
|Unlicensed
|{{✗}}
+
|?
|High
 
 
|{{✓}}<br/><small>(Android only)</small>
 
|{{✓}}<br/><small>(Android only)</small>
 
|{{✓}}
 
|{{✓}}
Line 396: Line 406:
 
|align=left|{{Icon|Android|Maemo}}<br/>{{Icon|Symbian}}
 
|align=left|{{Icon|Android|Maemo}}<br/>{{Icon|Symbian}}
 
|[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>
 
|[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>
 +
|?
 +
|{{~}}<abbr title="Only supports netplay">*</abbr>
 +
|?
 
|?
 
|?
 
|?
 
|?
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|High
 
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
Line 411: Line 420:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|High
 
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
Line 422: Line 430:
 
|align=left|{{Icon|Linux|Pandora|GP2X}}<br/>{{Icon|Wiz}}
 
|align=left|{{Icon|Linux|Pandora|GP2X}}<br/>{{Icon|Wiz}}
 
|[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>
 
|[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>
 +
|?
 +
|?
 +
|?
 +
|?
 +
|?
 +
|{{✗}}
 +
|{{✗}}
 +
|{{~}}
 +
|-
 +
|vNES
 +
|align=left|{{Icon|Java|Symbian}}
 +
|[http://web.archive.org/web/20111010231155/http://www.vampent.com/vnes.htm 1.7 (S60v3)][https://github.com/Summeli/vNes-Asha git]<br/>[https://web.archive.org/web/20061202055857/http://www.vampent.com:80/files/vNesJ2ME.zip 1.2][https://web.archive.org/web/20211119171128/https://emul.lark.ru/dendy/emu/vnes.html alt]
 +
|?
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
|{{}}
+
|{{~}}
|Mid
+
|-
 +
|Nostalgia.NES
 +
|align=left|{{Icon|Android}}
 +
|[https://play.google.com/store/apps/details?id=com.nostalgiaemulators.neslite 2.0.9]
 +
|?
 +
|?
 +
|?
 +
|?
 +
|?
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
Line 437: Line 468:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|Mid
 
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
Line 450: Line 480:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|Mid
 
|{{✗}}
 
|{{~}}
 
|{{✗}}
 
|-
 
|Nostalgia.NES
 
|align=left|{{Icon|Android}}
 
|[https://play.google.com/store/apps/details?id=com.nostalgiaemulators.neslite 2.0.9]
 
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
 
|{{✗}}
 
|Mid
 
|{{✗}}
 
 
|{{✗}}
 
|{{✗}}
 +
|{{~}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
Line 476: Line 492:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|Mid
 
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
Line 489: Line 504:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|Cycle
|Mid
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
Line 502: Line 516:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|Mid
 
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
Line 515: Line 528:
 
|?
 
|?
 
|?
 
|?
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|Low
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
!colspan="12"|Consoles
 
|-
 
|[[L-CLASSICS|Switch Online]]
 
|align=left|{{Icon|Switch}}
 
|2.3.0
 
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|High
 
 
|{{✗}}
 
|{{✗}}
|{{✓}}
 
|{{✓}}
 
 
|-
 
|-
|FCEUltra for PS2
+
|nintaco
|align=left|{{Icon|PS2}}
+
|align=left|{{Icon|Java}}
|[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]
+
|[https://nintaco.com/ 2020-05-01]
|?
+
|{{~}}
 +
|{{✗}}
 
|?
 
|?
 +
|Unlicensed
 +
|Cycle
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|Mid
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
 
|-
 
|-
|[[Virtual Console]]
+
|-
|align=left|{{Icon|Wii|3DS|WiiU}}
+
|[https://eightbitwonders.gitlab.io/app 8-Bit Wonders]
|N/A
+
|align=left|{{Icon|Android}}
 +
|[https://f-droid.org/packages/de.rainerhock.eightbitwonders 0.8] (F-Droid)</br>0.8 (Play)</br>0.8 (Amazon)</br>[https://gitlab.com/eightbitwonders/app git]
 +
|?
 
|?
 
|?
 
|?
 
|?
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|Mid
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|-
 
|Nestopia<ref group=N name=libretro/>
 
|align=left|{{Icon|PS4|PS3|PSP}}<br/>{{Icon|Wii|WiiU|3DS|360}}
 
|1.44
 
 
|?
 
|?
 
|?
 
|?
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{}}
+
|roadmap
|Mid
+
|-
 +
!colspan="11"|Consoles
 +
|-
 +
|Nestopia
 +
|align=left|{{Icon|PS4|PS3}}<br/>{{Icon|PSP|NGC}}<br/>{{Icon|Wii|WiiU|3DS}}<br/>{{Icon|360|Xbox}}
 +
|[https://www.retroarch.com/?page=platforms libretro core]
 +
|{{~}}
 +
|{{~}}
 +
|{{~}}
 +
|Unlicensed
 +
|Cycle
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|QuickNES<ref group=N name=libretro/>
+
|QuickNES
|align=left|{{Icon|PS2|PSP|PS3}}<br/>{{Icon|PS4|Vita|Switch|WiiU|3DS}}
+
|align=left|{{Icon|PS2|PSP}}<br/>{{Icon|PS3}}<br/>{{Icon|PS4|Vita|NGC}}<br/>{{Icon|Wii}}<br/>{{Icon|Switch|WiiU|3DS}}
|1.0
+
|[https://www.retroarch.com/?page=platforms libretro core]
 +
|{{~}}
 +
|{{~}}
 +
|{{~}}
 
|?
 
|?
 
|?
 
|?
 +
|{{✗}}
 +
|{{~}}<ref group=N name=lrActiveonly></ref>
 +
|{{✓}}
 +
|-
 +
|FCEUmm
 +
|align=left|{{Icon|PS2|PSP}}<br/>{{Icon|PS3|PS4}}<br/>{{Icon|Vita|NGC|Wii|WiiU}}<br/>{{Icon|3DS|NX|Xbox360}}
 +
|[https://www.retroarch.com/?page=platforms libretro core]
 +
|{{~}}
 +
|{{~}}
 +
|{{~}}
 +
|Unlicensed
 +
|High
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{✗}}
 
|Mid
 
|{{✗}}
 
|{{✗}}
 
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
 
|[[FCEUX|FCE Ultra GX]]
 
|[[FCEUX|FCE Ultra GX]]
|align=left|{{Icon|GCN|Wii}}
+
|align=left|{{Icon|GCN|Wii|WiiU}}
 
|[https://github.com/dborth/fceugx/releases {{FCEUXGXVer}}]
 
|[https://github.com/dborth/fceugx/releases {{FCEUXGXVer}}]
 
|?
 
|?
 
|?
 
|?
|{{}}
+
|{{~}}
|{{✗}}
+
|Unlicensed
|{{✗}}
+
|High
|Mid
 
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
Line 608: Line 615:
 
|?
 
|?
 
|?
 
|?
 +
|{{~}}
 +
|?
 +
|?
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 +
|{{~}}
 +
|-
 +
|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]
 +
|?
 +
|?
 +
|?
 +
|?
 +
|High
 
|{{✗}}
 
|{{✗}}
|{{✗}}
+
|{{~}}
|High
+
|{{~}}
|{{✓}}
 
|{{✓}}
 
|{{}}
 
 
|-
 
|-
 
|[https://hcs64.com/neon64.html Neon64]
 
|[https://hcs64.com/neon64.html Neon64]
 
|align=left|{{Icon|N64}}
 
|align=left|{{Icon|N64}}
 
|[https://github.com/hcs64/neon64v2 git]
 
|[https://github.com/hcs64/neon64v2 git]
 +
|?
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
 
|{{✓}}
 
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 +
|-
 +
|nesDS
 +
|align=left|{{Icon|NDS}}
 +
|[https://sourceforge.net/projects/nesds/files/nesds1.3a.zip/download 1.3a]
 +
|?
 +
|?
 +
|?
 +
|?
 +
|?
 
|{{✗}}
 
|{{✗}}
|{{✗}}
+
|{{~}}
|Low-Mid
+
|{{~}}
|{{✓}}
 
|{{✓}}
 
|{{}}
 
 
|-
 
|-
|VirtuaNES for 3DS
+
|PocketNES
|align=left|{{Icon|3DS}}
+
|align=left|{{Icon|GBA}}
|[https://github.com/TBirdSoars/VirtuaNES git]
+
|[https://www.dwedit.org/gba/pocketnes_2013_07_01.zip 7-1-2013]
 +
|?
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
|{{✓}}
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|Mid
+
|{{~}}
|{{}}
+
|-
 +
|[[Nintendo Switch Online]] <small>([[L-CLASSICS]])</small>
 +
|align=left|{{Icon|Switch}}
 +
|2.3.0
 +
|?
 +
|{{~}}
 +
|?
 +
|?
 +
|?
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 +
|{{~}}
 
|-
 
|-
|NesterJ<ref group=N>AoEX is based on NesterJ 1.12 Plus 0.61 RM, which 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>
+
|[[Virtual Console]]
|align=left|{{Icon|PSP}}
+
|align=left|{{Icon|Wii|3DS|WiiU}}
|[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]
+
|N/A
 +
|?
 +
|?
 
|?
 
|?
 +
|Official
 
|?
 
|?
|{{✓}}
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|Mid
+
|{{~}}
|{{}}
+
|-
 +
|[[NES Remix]]<br/><small>([[Heritage]])</small>
 +
|align=left|{{Icon|WiiU|3DS}}
 +
|HeriC
 +
|{{}}
 
|{{✗}}
 
|{{✗}}
|{{✓}}
 
|-
 
|nesDS
 
|align=left|{{Icon|NDS}}
 
|[https://sourceforge.net/projects/nesds/files/nesds1.3a.zip/download 1.3a]
 
 
|?
 
|?
 
|?
 
|?
|{{✓}}
+
|?
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 +
|{{~}}
 +
|-
 +
|VirtuaNES for 3DS
 +
|align=left|{{Icon|3DS}}
 +
|[https://github.com/TBirdSoars/VirtuaNES git]
 +
|?
 +
|?
 +
|?
 +
|?
 
|Low
 
|Low
 +
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|{{✓}}
 
 
|-
 
|-
||[[Project Nested]]
+
|NESBox
|align=left|{{Icon|SNES}}
+
|align=left|{{Icon|XB1}}
|[https://github.com/Myself086/Project-Nested/releases {{ProjectNestedVer}}]
+
|[https://nesbox.com v4]
 +
|?
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
 
|{{✗}}
 
|{{✗}}
 +
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 +
|-
 +
|Mega Everdrive Pro
 +
|align=left|{{Icon|MD}}
 +
|N/A
 +
|?
 +
|?
 +
|?
 +
|?
 +
|?
 
|{{✗}}
 
|{{✗}}
|Low
 
|{{✓}}
 
|{{✓}}
 
 
|{{✓}}
 
|{{✓}}
 +
|{{~}}
 
|-
 
|-
|PocketNES
+
|NesterJ<ref group=N>AoEX is based on NesterJ 1.12 Plus 0.61 RM, which 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>
|align=left|{{Icon|GBA}}
+
|align=left|{{Icon|PSP}}
|[https://www.dwedit.org/gba/pocketnes_2013_07_01.zip 7-1-2013]
+
|[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]
 +
|?
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
 +
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|{{✗}}
 
|Low
 
|{{✗}}
 
|{{✗}}
 
|{{~}}
 
 
|-
 
|-
 
|imbNES
 
|imbNES
Line 699: Line 759:
 
|?
 
|?
 
|?
 
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|Low
 
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|NESBox
+
||[[Project Nested]]
|align=left|{{Icon|XB1}}
+
|align=left|{{Icon|SNES}}
|[https://nesbox.com v4]
+
|[https://github.com/Myself086/Project-Nested/releases {{ProjectNestedVer}}]
 +
|?
 +
|?
 +
|?
 
|?
 
|?
 
|?
 
|?
 +
|{{✓}}
 
|{{✗}}
 
|{{✗}}
|{{✗}}
 
|{{✗}}
 
|Low
 
|{{✗}}
 
|{{✓}}
 
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
Line 725: Line 783:
 
|?
 
|?
 
|?
 
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|{{✗}}
+
|?
|Low
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
!colspan="12"|Other
+
!colspan="11"|Calculator
 
|-
 
|-
 
|[https://zardam.github.io/webnofrendo numworks-nofrendo]
 
|[https://zardam.github.io/webnofrendo numworks-nofrendo]
Line 740: Line 797:
 
|?
 
|?
 
|?
 
|?
|{{~}}
+
|?
 +
|?
 +
|?
 +
|{{✓}}
 +
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 +
|-
 +
|[https://www.ticalc.org/archives/files/fileinfo/432/43217.html NESpire]
 +
|align=left|{{Icon|Nspire}}
 +
|[https://www.ticalc.org/archives/files/fileinfo/432/43217.html 0.30] <br> [https://github.com/tangrs/nespire-tangrs-mod git]<small> (tangrs-mod)</small>
 +
|?
 
|{{✗}}
 
|{{✗}}
|Mid
+
|?
 +
|?
 +
|?
 
|{{✓}}
 
|{{✓}}
 +
|{{✗}}
 +
|{{~}}
 +
|-
 +
|[https://github.com/tswilliamson/nesizm NESizm]
 +
|align=left|{{Icon|Prizm}}
 +
|[https://github.com/tswilliamson/nesizm/releases/tag/v1.00 1.00]
 +
|?
 +
|{{✗}}
 +
|?
 +
|?
 +
|?
 
|{{✓}}
 
|{{✓}}
|{{}}
+
|{{?}}
 +
|{{~}}
 
|}
 
|}
 
</div>
 
</div>
Line 752: Line 832:
  
 
===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; [[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 ceased development around October 2020 for unknown reasons, but the [https://github.com/libretro/Mesen libretro] and [https://github.com/NovaSquirrel/Mesen-X NovaSquirrel] forks are still active. The original developer resumed development in March 2021 with multi-system emulator [https://github.com/SourMesen/Mesen2 Mesen2].
+
*[[Mesen|Mesen]] is a [[Emulation_accuracy|cycle-accurate]] NES emulator. Also, it is very user-friendly and supports lots of [[#Enhancements|enhancements]], [[#Peripherals|peripherals]], [[#Hardware_variants|variants]] and [[#Mappers|mappers]] that other emulators are missing. It also supports [[GoodTools|goodmerged]]. Latest versions require [https://dotnet.microsoft.com/en-us/download/dotnet .NET 6]. This is the most compatible NES emulator of the cycle-accurate variety.
*[[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 [https://en.wikipedia.org/wiki/The_Young_Indiana_Jones_Chronicles_(video_game) ''The Young Indiana Jones Chronicles''] and doesn't display the status bar in [https://en.wikipedia.org/wiki/Mickey%27s_Safari_in_Letterland ''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.
+
*[[puNES]] is another [[Emulation_accuracy|cycle-accurate]] NES/FDS emulator. It is deemed as the second most compatible NES emulator of the cycle-accurate variety.
*[[Nintendulator]] and My Nes also have a fairly high ranking in those tests.<ref name="nestas"/>. NintendulatorNRS is a fork of Nintendulator that supports the Famicom Disk System, rare mappers, VRT chipsets, 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|peripherals]] that are not available on other emulators.
 
*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.
+
*[[Nestopia]] also is a [[Emulation_accuracy|cycle-accurate]] NES/FDS emulator. Nestopia has issues with [[Wikipedia:The_Young_Indiana_Jones_Chronicles_(video_game)|''The Young Indiana Jones Chronicles'']] and doesn't display the status bar in [[Wikipedia:Mickey%27s_Safari_in_Letterland|''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 the Undead Edition.
  
==Emulation issues==
+
*[[Nintendulator]] also is a [[Emulation_accuracy|cycle-accurate]] NES/FDS emulator. NintendulatorNRS is a fork of Nintendulator that supports the Famicom Disk System, rare mappers, VRT chipsets, and many unlicensed and bootleg carts and systems.
===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://www.mediafire.com/file/l56fw5ozxu1w36d/nintendulatorNRS-src-mappers_2022-09-12.7z/file NintendulatorNRS], [https://github.com/mamedev/mame/commits/master/src/mame/nintendo MAME], [https://github.com/NovaSquirrel/Mesen-X/commits/master/Core Mesen-X], [https://github.com/punesemu/puNES/commits/master/src/core/mappers puNES], [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.
 
  
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. At the same time, 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".
+
*[[FCEUX]] is a [[Emulation_accuracy|highly-accurate]] NES/FDS emulator and it supports lots of [[#Mappers|unlicensed mappers]], on top of this it's a [https://tasvideos.org/EmulatorResources recommended emulator on TAS Videos]. The New PPU implementation is more [[Emulation_accuracy|accurate]] than the Old PPU implementation. The emulator is very useful; thanks to its robust Lua scripting and incorporating FCEUmm into its feature set.
  
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 ROM hacks).
+
*BeesNES is aiming for [[Emulation_accuracy|subcycle accuracy]]. Currently it is a work-in-progress, but it is already including [[#Enhancements|enhancements]] like; [[NTSC_filters#NTSC-CRT_by_LMP88959_.28EMMIR.29|NTSC-CRT]], [https://github.com/L-Spiro/BeesNES#other-features debugger, disassembler, assembler and various TAS features].
  
===QD FDS support===
+
*breakNES is aiming for [[Emulation_accuracy|gate-level accuracy]]. Currently it is a work-in-progress and requires [https://dotnet.microsoft.com/en-us/download/dotnet .NET 6].
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.
+
*MetalNES is aiming for [[Emulation_accuracy|transistor-level accuracy]], however it is a currently work-in-progress.
* '''.qd format''' (stands for QuickDisk): Only ever used in official Nintendo re-releases. Almost identical to FDS, except QD is 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 and 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.  
+
*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.
  
===Overscan===
+
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 ways are covered here.
{{Main|Overscan}}
 
  
[[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 the best results. For example, [https://en.wikipedia.org/wiki/Super_Mario_Bros._3 ''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 [https://en.wikipedia.org/wiki/Castlevania#Games ''Castlevania''] games.
+
==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 most active and recommended emulators 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.
  
===Color palette===
+
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. At the same time, 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".
{{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 ROM hacks).
  
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.
+
==Enhancements==
 +
{{Stub}}
 +
<div style="overflow-x:auto;width:100%">
 +
{|class="wikitable" style="text-align:center; vertical-align:middle;width:100%"
 +
|- style="font-weight:bold;"
 +
! colspan=2 | Name
 +
! Mesen
 +
! FCEUX
 +
! puNES
 +
! Nestopia UE
 +
! ares
 +
! QuickNES
 +
! MAME
 +
! BeesNES
 +
! breakNES
 +
! MetalNES
 +
! Nintendo Switch Online<br/><small>([[L-CLASSICS]])</small>
 +
|-
 +
| rowspan=3 | Graphics
 +
| [[Resolution|Resizable Internal Resolution]]
 +
| colspan=11 | For emulation of 2D systems, the resolution can only be upscaled, making the pixels more apparent.
 +
|-
 +
| [[Widescreen_hacks#NES|Widescreen hack]]<br/><small>Using [https://prilik.com/blog/post/widenes/ wideNES] technique (similar to [[Widescreen_hacks#Emulators_.282D.29|wideGB]]); it can automatically “map-out” levels and worlds in NES games.</small>
 +
| colspan=11 | Exclusive to [https://prilik.com/ANESE ANESE] emulator at the moment.
 +
|-
 +
| [[Texture_packs#NES|Sprite Replacement]]
 +
| {{Y}}[https://www.mesen.ca/docs/hdpacks.html *]
 +
| {{N}}
 +
| {{Y}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| rowspan=1 | Performance
 +
| [[Overclocking#NES|Overclock]]
 +
| {{Y}}[https://www.mesen.ca/docs/configuration/emulation.html#overclocking *]
 +
| {{Y}}
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|
 +
| {{N}}
 +
|-
 +
| rowspan=5 | [https://tasvideos.org/Emulatorresources/Features TAS features]
 +
| [[Wikipedia:Macro_(computer_science)|Macros/Scripts]]/[https://tasvideos.org/LuaScripting Lua]
 +
| {{Y}}[https://www.mesen.ca/docs/debugging/scriptwindow.html *]
 +
| {{Y}}
 +
| {{N}}
 +
|
 +
|
 +
|
 +
| {{Y}}[https://docs.mamedev.org/plugins/inputmacro.html *]
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| Rewind
 +
| {{Y}}[https://www.mesen.ca/docs/configuration/emulation.html#general-options *]
 +
| {{N}}
 +
| {{Y}}
 +
|
 +
|
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|
 +
| {{Y}}
 +
|-
 +
| Fast-Forward/Turbo Speed
 +
| {{Y}}[https://www.mesen.ca/docs/configuration/emulation.html#general-options *]
 +
| {{Y}}
 +
| {{Y}}
 +
|
 +
|
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| Savestates
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
|
 +
|
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|
 +
| {{Y}}
 +
|-
 +
| [https://tasvideos.org/Movies Movie recording/playback]
 +
| {{Y}}[https://www.mesen.ca/docs/tools.html#movies *]
 +
| {{Y}}
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
|
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|
 +
|-
 +
| rowspan=4 | Post-Processing
 +
| [[Shaders_and_filters|Filters]]
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{?}}
 +
| {{Y}}
 +
|-
 +
|[[Shaders_and_filters#AI-powered filters|AI-powered filter compatible]]<br/><small>([https://www.nvidia.com/en-us/geforce/news/gfecnt/nvidia-freestyle-ansel-enhancements-geforce-experience-article/ Freestyle])</small>
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| [[Shader_Presets|Shader Chain]]
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{N}}
 +
|
 +
| {{Y}}
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|[[High_dynamic_range#Inverse_tone_mapping|Inverse tone mapping compatible]]
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| rowspan=6 | Quality of life
 +
| Per-Game Profiles
 +
| {{Y}}[https://www.mesen.ca/docs/configuration/video.html#overscan *]
 +
| {{?}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| Command Line Options
 +
| {{Y}}[https://www.mesen.ca/docs/gettingstarted.html#command-line-options *]
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| Built-in [[Cheats_and_patches|Cheat Manager]]
 +
| {{Y}}[https://www.mesen.ca/docs/tools.html#cheats *]
 +
| {{?}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{Y}}[https://old.reddit.com/r/emulation/comments/1ay6fm1/ares_v136_released/krslaki/ *]
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|-
 +
| Built-in [http://forum.arcadecontrols.com/index.php/topic,106405 Custom resolution/CRTSwitchRes]<br/><small>For using this on Windows OS you need [http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 CRT Emudriver].<br/>Another option is using EDID editor tool such as "Custom Resolution Utility".</small>
 +
| colspan=11 | Exclusive to [https://docs.libretro.com/guides/crtswitchres/ libretro cores] and [[GroovyMAME]] at the moment.<br/>Also there is a [https://github.com/psakhis/Groovy_MiSTer project] for achieving software emulators like  libretro cores and GroovyMAME send the raw RGB data over a network to a core running on MiSTer, it basically turns the MiSTer into a GPU for the emulator allowing for easy setup and use with CRT TVs/Arcade monitors.
 +
|-
 +
| [[Save_disk_space_for_ISOs|Streamable compression format]]
 +
| {{Y}}[https://www.mesen.ca/docs/configuration/emulation.html *]
 +
|
 +
|
 +
|
 +
|
 +
| {{Y}}
 +
| {{Y}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|
 +
|-
 +
| [[Frontends#Graphical_User_Interfaces_.28GUIs.29|Big Picture Mode]]
 +
| {{~}}<ref group=N2 name=RA>Exclusive to [https://docs.libretro.com/library/fceumm/ FCEUmm], [https://docs.libretro.com/library/mesen/ Mesen], [https://docs.libretro.com/library/nestopia_ue/ Nestopia] libretro cores. Also there is a [https://github.com/RetroAchievements/RANes modified version of fceux] that supports RetroAchievements.</ref>
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{N}}
 +
| {{Y}}
 +
| {{Y}}
 +
|
 +
|
 +
|
 +
| {{Y}}
 +
|-
 +
| rowspan=1 | Controls
 +
| [[Input_lag|Input lag-mitigating technique]]
 +
| {{Y}}[https://www.mesen.ca/docs/configuration/emulation.html *]
 +
|
 +
|
 +
|
 +
|
 +
| {{Y}}
 +
|
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
|
 +
|-
 +
| rowspan=4 | Misc
 +
| [[Netplay#NES|<abbr title="Should not be confused with Famicom Modem emulation, see #Peripherals section for more information.">Netplay</abbr>]]
 +
| {{Y}}[https://www.mesen.ca/docs/tools.html#netplay *]
 +
| {{Y}}
 +
| {{N}}
 +
| {{Y}}
 +
| {{X}}
 +
| {{Y}}
 +
| {{N}}
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{Y}}
 +
|-
 +
| [[Virtual_reality#VR_game_room_simulations|EmuVR support]]
 +
| colspan=11 |  Exclusive to [https://www.emuvr.net/wiki/Installation_Guide#Downloads libretro cores] at the moment.
 +
|-
 +
| [https://retroachievements.org/gameList.php?c=7 RetroAchievements]
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{N}}
 +
| {{~}}<ref group=N2 name=RA></ref>
 +
| {{N}}
 +
| {{Y}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
| {{N}}
 +
|-
 +
| [[Wikipedia:Category:Debugging|Debug features]]
 +
| {{Y}}[https://www.mesen.ca/docs/debugging.html *]
 +
| {{Y}}
 +
| {{N}}
 +
| {{?}}
 +
| {{?}}
 +
| {{N}}
 +
| {{Y}}[https://docs.mamedev.org/debugger/index.html *]
 +
| {{?}}
 +
| {{?}}
 +
| {{?}}
 +
| {{N}}
 +
|}
 +
</div>
 +
<references group=N2/>
  
 
==Peripherals==
 
==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.<ref>[[Wikipedia:List of Nintendo Entertainment System accessories|List of Nintendo Entertainment System accessories]]</ref>
+
There were many accessories released for the Famicom and NES but Emulation in 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><ref>[https://problemkaputt.de/everynes.htm#controllers ProblemKaputt: NES controllers]</ref>
  
<div style="max-width:100%; overflow:auto;">
+
<div style="overflow-x:auto;width:100%">
{| class="wikitable" style="text-align:center;"
+
{| class="wikitable" style="text-align:center;width:100%"
! scope="col" style="width:200px;"|Name(s)
+
! scope="col" style="width:200px"| Picture
! scope="col" style="width:300px;"|Description
+
! scope="col" style="width:200px"|Name(s)
! scope="col" style="width:150px;"|Game(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:100px;text-align:center"|Support emulator(s)
! scope="col" style="width:300px;"|Note
+
! scope="col" style="width:300px"|Note
 
|-
 
|-
 +
|[[File:NES Zapper.png|200px]]
 
!Zapper
 
!Zapper
 
|An electronic light gun accessory that allows players to aim at the display and shoot various objects that appear on the screen.
 
|An electronic light gun accessory that allows 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]]''
+
|''[[Wikipedia:The Adventures of Bayou Billy|The Adventures of Bayou Billy]]''<br/>''[[Wikipedia:Barker Bill's Trick Shooting|Barker Bill's Trick Shooting]]''<br/>''[[Wikipedia:Day Dreamin' Davey|Day Dreamin' Davey]]''<br/>''[[Wikipedia:Duck Hunt|Duck Hunt]]''<br/>''[[Wikipedia:Freedom Force (video game)|Freedom Force]]''<br/>''[[Wikipedia:Gotcha! The Sport!|Gotcha! The Sport!]]''<br/>''[[Wikipedia:Gumshoe (video game)|Gumshoe]]''<br/>''[[Wikipedia:The Hunt for Red October (console game)|The Hunt for Red October]]''<br/>''[[Wikipedia:Hogan's Alley (video game)|Hogan's Alley]]''<br/>''[[Wikipedia:Laser Invasion|Laser Invasion]]''<br/>''[[Wikipedia:The Lone Ranger (video game)|The Lone Ranger]]''<br/>''[[Wikipedia:Mechanized Attack|Mechanized Attack]]''<br/>''[[Wikipedia:Operation Wolf|Operation Wolf]]''<br/>''[[Wikipedia:Shooting Range (video game)|Shooting Range]]''<br/>''[[Wikipedia:To the Earth|To the Earth]]''<br/>''[[Wikipedia:Track & Field II|Track & Field II]]''<br/>''[[Wikipedia:Wild Gunman|Wild Gunman]]''
 
|Various
 
|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.
 
|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.
 
|-
 
|-
 +
|[[File:ArkanoidVausController.jpg|200px]]
 
!Arkanoid/Vaus Controller
 
!Arkanoid/Vaus Controller
 
|A specific game controller with one button to "fire" and a dial to control back-and-forth movement.
 
|A specific game controller with one button to "fire" and a dial to control back-and-forth movement.
Line 817: Line 1,189:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:NES-power-pad.jpg|200px]][[File:Family Trainer.jpg|200px]][[File:FamilyFunFitness A.png|200px]][[File:FamilyFunFitness B.png|200px]]
 
!Power Pad<br/>Family Trainer<br/>Family Fun Fitness
 
!Power Pad<br/>Family Trainer<br/>Family Fun Fitness
 
|A game controller that allows players to step on a gray floor mat with 12 pressure-sensors embedded between flexible plastic to control gameplay.
 
|A game controller that allows players to step on a gray floor mat with 12 pressure-sensors embedded between flexible plastic to control gameplay.
Line 823: Line 1,196:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:NES-Four-Score.jpg|200px]][[File:NES Satellite.png|200px]]
 
!NES Four Score<br/>NES Satellite<br/>4-Player Adaptor
 
!NES Four Score<br/>NES Satellite<br/>4-Player Adaptor
 
|A multitap accessory that enables up to 4-player gameplay using infrared wireless communication.
 
|A multitap accessory that enables up to 4-player gameplay using infrared wireless communication.
Line 829: Line 1,203:
 
|Emulated by having the option to switch between 2-player and 4-player mode or just enabling/disabling Player 3 and Player 4's controller.
 
|Emulated by having the 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
+
|[[File:Family Computer Disk System.png|200px]]
 +
!Family Computer Disk System & FDS
 
|''See above''
 
|''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]]''
+
|''[[Wikipedia:Super Mario Bros.: The Lost Levels|Super Mario Bros. 2]]''<br/>''[[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
+
|<small>[[Mesen]]<br/>[[puNES]]<br/>[[Nestopia|Nestopia UE]]<br/>[[ares]]<br/>[[BizHawk]]<br/>[[Nintendulator|Nintendulator NRS]]<br/>[https://docs.libretro.com/library/fceumm/ FCEumm_libretro]<br/>[[FinalBurn_Neo]]<br/>[[higan]]<br/>[[MAME]]<br/>[https://fms.komkon.org/iNES iNES]<br/>[[Jnes]]<br/>[[RockNES]]<br/>[https://emulation.gametechwiki.com/index.php?title=Nintendo_Entertainment_System_emulators&diff=58606&oldid=57673#Emulators Others...]</small>
 
|The BIOS file (which can be found [[Emulator_Files#NES_.2F_Famicom|here]]) is required for FDS emulation. Note that there are two versions of the BIOS: one that comes with FDS and another that comes with Sharp's [[Wikipedia:Twin Famicom|Twin Famicom]]. They function identically despite showing a different intro during the first boot.
 
|The BIOS file (which can be found [[Emulator_Files#NES_.2F_Famicom|here]]) is required for FDS emulation. Note that there are two versions of the BIOS: one that comes with FDS and another that comes with Sharp's [[Wikipedia:Twin Famicom|Twin Famicom]]. They function identically despite showing a different intro during the first boot.
 
|-
 
|-
 +
|[[File:DATACH JOINT ROM SYSTEM.png|200px]]
 +
!DATACH <br> <small><i>Datach Joint ROM System</i><small>
 +
|Bandai add-on that lets the Family Computer play a few suitable games. Swiping cards to obtain a character.
 +
|[https://dragonball.fandom.com/wiki/Dragon_Ball_Z:_Gekit%C5%8D_Tenkaichi_Bud%C5%8Dkai Dragon Ball Z: Gekitō Tenkaichi Budōkai]<br/>[[Wikipedia:Crayon Shin-Chan: Ora to Poi Poi|Crayon Shin-Chan: Ora to Poi Poi]]<br/>[https://strategywiki.org/wiki/Yu_Yu_Hakusho:_Bakutou_Ankoku_Bujutsukai Yu Yu Hakusho: Bakutou Ankoku Bujutsukai]<br/>[https://retrostuff.org/2019/03/23/bandai-datach-ultraman-club-spokon-fight-barcodes-for-mame/ Ultraman Club: Supokon Fight!]<br>[https://retrostuff.org/2019/05/12/bandai-datach-sd-gundam-gundam-wars-barcodes-for-mame/ SD Gundam: Gundam Wars]<br>[[Wikipedia:Battle Rush: Build Up Robot Tournament|Battle Rush: Build Up Robot Tournament]]<br>[[Wikipedia:J. League Super Top Players|J. League Super Top Players]]
 +
|[[MAME]]<ref group=N name=barcode>Input box by entering the barcode number on the card.</ref><br>[[Mesen]]<ref group=N name=barcode>Input box by entering the barcode number on the card.</ref><br/>[[puNES]]<ref group=N name=barcode>Input box by entering the barcode number on the card.</ref><br/>[[FCEUX]]<ref group=N name=barcode>Input box by entering the barcode number on the card.</ref>
 +
|N/A
 +
|-
 +
|[[File:Famicom Controller Microphone.png|200px]]
 
!Microphone
 
!Microphone
 
|A Japan-exclusive, built-in feature in the original Player 2 Famicom controller that allows players to use an external sound source (e.g., the player's voice) as input.
 
|A Japan-exclusive, built-in feature in the original Player 2 Famicom controller that allows players to use an external sound source (e.g., the player's voice) as input.
Line 841: Line 1,224:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:Family BASIC.png|200px]]
 
!Family BASIC
 
!Family BASIC
 
|A Japan-exclusive peripheral with an enhanced [[Wikipedia:BASIC|BASIC]] programming language dialect. It allows users to create programs in the Famicom. It has a specially designed cartridge, keyboard, and Data Recorder.
 
|A Japan-exclusive peripheral with an enhanced [[Wikipedia:BASIC|BASIC]] programming language dialect. It allows users to create programs in the Famicom. It has a specially designed cartridge, keyboard, and Data Recorder.
Line 847: Line 1,231:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:Famicom Data Recorder.jpg|200px]]
 
!Famicom Data Recorder
 
!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.
 
|A Japan-exclusive compact cassette tape data interface as an addition to the Family BASIC to save data from BASIC programs created by users.
Line 853: Line 1,238:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:Famicom 3D System.jpg|200px]]
 
!Famicom 3D System
 
!Famicom 3D System
 
|A Japan-exclusive active shutter glasses headset that allowed compatible games to display a stereoscopic image for a 3D experience.
 
|A Japan-exclusive active shutter glasses headset that allowed compatible games to display a stereoscopic image for a 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]]''
 
|''[[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]]
+
|[[RetroArch]]<br/>[https://discord.com/channels/976404869386747954/976412672486678568/1183159919864713256 Ares?]
 
|[https://github.com/libretro/glsl-shaders/tree/master/stereoscopic-3d GLSL shaders] are needed for RetroArch to simulate the 3D experience with a [[Virtual reality|VR]] headset, 3D TV, 3D projector or Android phone with cardboard.
 
|[https://github.com/libretro/glsl-shaders/tree/master/stereoscopic-3d GLSL shaders] are needed for RetroArch to simulate the 3D experience with a [[Virtual reality|VR]] headset, 3D TV, 3D projector or Android phone with cardboard.
 
|-
 
|-
 +
|[[File:Miracle Piano Teaching System.png|200px]]
 
!Miracle Piano Teaching System
 
!Miracle Piano Teaching System
 
|An accessory that used an electronic MIDI keyboard as input.
 
|An accessory that used an electronic MIDI keyboard as input.
Line 865: Line 1,252:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:ASCII TurboFile I.png|200px]][[File:ASCII TurboFile II.png|200px]]
 
!ASCII TurboFile<br/>ASCII TurboFile II
 
!ASCII TurboFile<br/>ASCII TurboFile II
 
|A Japan-exclusive external storage device for saving game positions on Famicom.
 
|A Japan-exclusive external storage device for saving game positions on Famicom.
Line 871: Line 1,259:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:Oeka Kids Tablet.jpg|200px]]
 
!Oeka Kids Tablet
 
!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>
 
|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>
Line 877: Line 1,266:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:RacerMate CompuTrainer Pro.png|200px]]
 
!RacerMate CompuTrainer Pro
 
!RacerMate CompuTrainer Pro
 
|A rare series of peripherals for the game ''RacerMate Challenge II''. It has an interface box, a bike trainer, and a handlebar display.<ref>[http://www.nesmuseum.com/racermate.html NES Museum: RacerMate Challenge II]</ref>
 
|A rare series of peripherals for the game ''RacerMate Challenge II''. It has an interface box, a bike trainer, and a handlebar display.<ref>[http://www.nesmuseum.com/racermate.html NES Museum: RacerMate Challenge II]</ref>
Line 883: Line 1,273:
 
|N/A
 
|N/A
 
|-
 
|-
 +
|[[File:NES Game Genie.png|200px]]
 
!Game Genie
 
!Game Genie
 
|A pass-through device that is attached between a cartridge and the console that allows the player to manipulate various aspects of games and access unused assets and functions by temporarily modify game data.
 
|A pass-through device that is attached between a cartridge and the console that allows the player to manipulate various aspects of games and access unused assets and functions by temporarily modify game data.
Line 889: Line 1,280:
 
|Most emulators have a GUI to manage cheats and don't rely on real hardware cheating devices.
 
|Most emulators have a GUI to manage cheats and don't rely on real hardware cheating devices.
 
|-
 
|-
!Family Computer Network System<br/>Famicom Modem
+
|[[File:Family Computer Network System.png|200px]]
 +
![[Early_Online_Services|Family Computer Network System<br/>Famicom Modem]]
 
|A Japan-exclusive network peripheral that allowed users to connect to a Nintendo server that provided extra content such as jokes, news, game tips, weather forecasts, horse betting and downloadable content via dial-up modem.
 
|A Japan-exclusive network peripheral that allowed users to connect to a Nintendo server that 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
 
|N/A
 
|N/A
 
|N/A
 +
|-
 +
|[[File:SNES Mouse.png|200px]]
 +
!SNES Mouse
 +
|There have been quite a few NES romhacks coming out that add support for the SNES mouse to NES games.
 +
|[https://www.romhacking.net/hacks/7718/ Maniac Mansion Mouse Hack]
 +
|[[Mesen]]
 +
|There is a feature request for [https://github.com/libretro/libretro-fceumm/issues/566 adding this to fceumm-libretro].
 
|}
 
|}
 
</div>
 
</div>
Line 899: Line 1,298:
  
 
==Hardware variants==
 
==Hardware variants==
 +
===PlayChoice-10===
 +
MAME is the only emulator that properly emulating the PlayChoice-10 system at the moment, [https://forums.nesdev.org/viewtopic.php?p=148572 most of the NES emulators only play the PlayChoice-10 games as a normal NES game].
 +
 
===VS. System===
 
===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'''. The latter has double chipsets on the PCB and is capable of handling two different programs or simply two separate copies of a single program simultaneously.
 
An arcade system based on the NES released for the US. It was released in two different cabinet variations: '''Vs. UniSystem''' and '''Vs. DualSystem'''. The latter has 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]], [[Mesen]], NintendulatorNRS and [https://nintaco.com/faq.html#VsDualSystem nintaco] are the only choice.
+
Most emulators support games in Vs. UniSystem cabinet by setting up different DIP switches. But only the MAME, [https://www.mesen.ca/docs/configuration/preferences.html#vs-dualsystem-settings Mesen], NintendulatorNRS, puNES and [https://nintaco.com/faq.html#VsDualSystem nintaco] are suitable for games in Vs. DualSystem cabinet. For commercial emulation, Hamster re-released several VS. System games from Nintendo and Konami as part of their ''Arcade Archives'' series (the former being exclusive to Nintendo Switch, the latter being also on PS4).
  
 
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.
 
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.
 +
 +
These emulators only supports UniSystem cabinet: [https://github.com/0ldsk00l/nestopia/blob/master/source/core/vssystem/NstVsSystem.cpp#L292 nestopia UE], [https://github.com/libretro/libretro-fceumm/blob/master/libretro/libretro.c#L1490 FCEumm] and [https://github.com/TASEmulators/fceux/blob/master/src/vsuni.cpp#L187 FCEUX], [https://tasvideos.org/Forum/Topics/17971?CurrentPage=9&Highlight=443471#443471 BizHawk], [[FinalBurn_Neo#List_of_emulated_systems|FinalBurn Neo]]
  
 
===Famicom Box===
 
===Famicom Box===
Line 914: Line 1,318:
 
A pirate NES Famicom clone that 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 50 Hertz, 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.
 
A pirate NES Famicom clone that 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 50 Hertz, 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) 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.
+
[[MAME]]/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===
Line 921: Line 1,325:
 
Differences between VTxx series chips and regular NES could be checked on [https://www.nesdev.org/wiki/VTxx NesDev Wiki].
 
Differences between VTxx series chips and regular NES could be checked on [https://www.nesdev.org/wiki/VTxx NesDev Wiki].
  
VTxx is often used in those low-quality, plug & play consoles or keyboard-shaped, so-called educational computers.
+
VTxx is often used in those low-quality, plug & play consoles or [[Wikipedia:Famiclone#Computer_type|keyboard-shaped]], so-called educational computers.
  
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. It seems to be modded out of an old emulator called [https://web.archive.org/web/20110317151619/http://www.emulation9.com/nnnesterj/ NNNesterJ].
+
: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. It 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===
 
===NES Classic Edition===
Line 929: Line 1,333:
 
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.
 
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 for 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.
 
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 for 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.
 +
 +
==Emulation issues==
 +
===QD FDS support===
 +
Games dumped off the Famicom Disk 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, except QD is 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. [https://github.com/punesemu/puNES/releases/tag/v0.111 puNES added QD support in v0.111.] As of now, no other NES emulators support the alternate, more complete dumps and fudging that check's result to always return a negative. To emulate a .qd image with those, stripping the checksum data with a custom script is needed.
 +
 +
===Overscan===
 +
{{Main|Overscan}}
 +
 +
[[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 the best results. For example, [https://en.wikipedia.org/wiki/Super_Mario_Bros._3 ''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 [https://en.wikipedia.org/wiki/Castlevania#Games ''Castlevania''] games.
 +
 +
===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.
 +
 +
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.
  
 
==Resources==
 
==Resources==
 
*[http://wiki.nesdev.com/w/index.php/Nesdev_Wiki Nesdev Wiki] - A place for all your NES programming/NES emulator programming needs.
 
*[http://wiki.nesdev.com/w/index.php/Nesdev_Wiki Nesdev Wiki] - A place for all your NES programming/NES emulator programming needs.
 
*[http://forums.nesdev.com/viewtopic.php?t=2818 Nesdev Forum] - Discussion of NES Wii Virtual Console accuracy.
 
*[http://forums.nesdev.com/viewtopic.php?t=2818 Nesdev Forum] - Discussion of NES Wii Virtual Console accuracy.
 +
*[http://rec0ded88.com/play-nes-games Rec0deD:88] - Play a NES emulator.
 +
*[https://www.copetti.org/writings/consoles/nes/ Copetti] - NES Architecture (A practical analysis by Rodrigo Copetti).
  
 
==References==
 
==References==
 
{{Reflist}}
 
{{Reflist}}
 
   
 
   
 
 
{{Nintendo}}
 
{{Nintendo}}
  

Latest revision as of 13:14, 27 March 2024

Nintendo Entertainment System
Family Computer.png
Nes-t.png
The Family Computer (above) and Nintendo Entertainment System (below).
Developer Nintendo
Type Home video game console
Generation Third generation
Release date 1983
Discontinued 2003
Predecessor Color TV-Game
Successor Super Family Computer / Super Nintendo Entertainment System
Emulated

The Nintendo Entertainment System (NES) is an 8-bit, third-generation console originally released as the Family Computer or Famicom, in Japan, on July 15, 1983. The Famicom retailed for ¥14800. The console would be redesigned as the NES and released on October 18, 1985 in North America. The NES retailed for $179.99. It had a Ricoh 2A03 CPU at 1.79 MHz with 2 KBs 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 small maximum ROM size), how the graphics were loaded onscreen, just the native sound processing was available, no saving... To solve this problem, Nintendo came up with two solutions:

  • The Family Computer Disk System (FDS). A Japan-only add-on that 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 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 aforementioned problem 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 Famicom/NES is robust, with many high-quality emulators for various systems and cycle-accurate emulation possible on even moderately powerful devices.

Emulators[edit]

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 Hardware
Variants
Enhancements Peripherals Mappers Support
Level
Accuracy FLOSS Active Recommended
PC / x86
Mesen Windows Linux macOS FreeBSD Dev builds
libretro core
2023-09-11 (Mesen X)
0.9.9 (Mesen 1)
~ Unlicensed Cycle
puNES Windows Linux FreeBSD WIP builds
0.111
~ Unlicensed Cycle
Nestopia UE Windows Linux macOS FreeBSD Web libretro core
1.52.0
Nestopia JG git
~ ~ Unlicensed Cycle
FCEUX Windows Linux macOS FreeBSD Solaris Web 2.6.6
libretro (FCEUmm)
~ ~ Unlicensed High
ares Windows Linux macOS git Artifacts
v136
~ ~ ? High ~
BizHawk Windows Linux Dev Builds
2.9.1
~ ~ ? ? ~
Nintendulator/NRS Windows 2023-12-23
0.985 Beta
~ ~ Unlicensed Cycle ~
3dSen Windows Linux macOS 0.9.8 ~ Only for selected titles Game dependent ~
MAME Windows Linux macOS FreeBSD git artifacts[N 1]
0.264
libretro core
~ ~ Unlicensed ?
QuickNES Windows Linux macOS FreeBSD Web libretro core
0.7.0b1 (legacy)
~ ~ ~ ? ? ~[N 2]
BeesNES Windows git ~ ? Subcycle ✗ (WIP)
breakNES Windows 2.2 ? ? Gate-level ✗ (WIP)
MetalNES macOS git ? Transistor-level ~ ✗ (WIP)
jgenesis Windows Linux 0.7.0
jgnes Windows Linux Web git Licensed Cycle-based
ANESE Windows Linux macOS 0.9.1 ? ~* ~ ? ? ~
iNES Windows Linux macOS FreeBSD Solaris 6.1 ~ ~ ? ? ?
HDNes Windows git ? ~* ? ? ?
FinalBurn Neo Windows Linux macOS FreeBSD libretro core
WIP builds
~ ? ? NC
higan (火眼)
byuu (謬/view)
Windows Linux macOS v110 ? ~ ? Cycle
VirtuaNES Windows 0.97 ? ? ? ? Low
nemulator Windows 4.4 ? ? ? ? Medium
Nesemu macOS 0.0.5 ? ? ? ? ?
HalfNES Windows Linux 062 ? ? ? ? ?
Jnes Windows 1.2.1 ? ? ? ? ?
NESticle MS-DOS Windows 9x x.xx (DOS)
0.42 (Win9x)
? ? ? Low
RockNES Windows 5.80 ? ? ? ? High
Mobile / ARM
Nestopia_libretro Android iOS libretro core ~ ~ ~ Unlicensed Cycle
FCEUmm_libretro Android iOS libretro core ~ ~ ~ Unlicensed High
NES.emu Android Dragonbox Pyra 1.5.77git (Android)
1.5.46.02 (Pyra)
? ? ? Unlicensed ?
(Android only)
FreeiNES Android Maemo
Symbian
6.1.4 (Android)
3.6.5 (Maemo)
3.6 (Symbian)
? ~* ? ? ? ~
VGBANext Android 6.6.6 ? ? ? ? ? ~
GPFCE Linux Pandora GP2X
GP2X Wiz
0.81.0.r2 (Pandora)
0.4 r313 (GP2X)
0.4+ (Wiz)
? ? ? ? ? ~
vNES Java Symbian 1.7 (S60v3)git
1.2alt
? ? ? ? ? ~
Nostalgia.NES Android 2.0.9 ? ? ? ? ? ~
John NESS Android 1.09 ? ? ? ? ?
Jnes Android 1.2.6.26 ? ? ? ? ? ~
nesemu Pandora GP2X Wiz Dingoo 0.2.3 Beta Preview
(Pandora)V1 (Wiz)
0.2 (Dingoo)
? ? ? ? ?
Nestopia Pandora V2 ? ? ? ? Cycle
Nesemu iOS AppleTV git ? ? ? ? ?
Pocket Nester+ Windows Mobile 0.9 ? ? ? ? ?
nintaco Java 2020-05-01 ~ ? Unlicensed Cycle
8-Bit Wonders Android 0.8 (F-Droid)
0.8 (Play)
0.8 (Amazon)
git
? ? ? ? ? roadmap
Consoles
Nestopia PlayStation 4 PlayStation 3
PSP GameCube
Wii Wii U Nintendo 3DS
Xbox 360 Xbox
libretro core ~ ~ ~ Unlicensed Cycle
QuickNES PlayStation 2 PSP
PlayStation 3
PlayStation 4 Vita GameCube
Wii
Switch Wii U Nintendo 3DS
libretro core ~ ~ ~ ? ? ~[N 2]
FCEUmm PlayStation 2 PSP
PlayStation 3 PlayStation 4
Vita GameCube Wii Wii U
Nintendo 3DS Switch Xbox 360
libretro core ~ ~ ~ Unlicensed High
FCE Ultra GX GameCube Wii Wii U 3.5.3 ? ? ~ Unlicensed High
pNES Switch Vita git ? ? ~ ? ? ~
FCEUltra for PS2 PlayStation 2 0.9.3
0.90i Mod
? ? ? ? High ~ ~
Neon64 Nintendo 64 git ? ? ? ? ? ~
nesDS Nintendo DS 1.3a ? ? ? ? ? ~ ~
PocketNES GameBoy Advance 7-1-2013 ? ? ? ? ? ~
Nintendo Switch Online (L-CLASSICS) Switch 2.3.0 ? ~ ? ? ? ~
Virtual Console Wii Nintendo 3DS Wii U N/A ? ? ? Official ? ~
NES Remix
(Heritage)
Wii U Nintendo 3DS HeriC ? ? ? ~
VirtuaNES for 3DS Nintendo 3DS git ? ? ? ? Low
NESBox Xbox One v4 ? ? ? ? ?
Mega Everdrive Pro Genesis N/A ? ? ? ? ? ~
NesterJ[N 3] PSP 1.13 beta 2
AoEX
? ? ? ? ?
imbNES PlayStation 1.3.2 ? ? ? ? ?
Project Nested Super Nintendo git ? ? ? ? ?
NeMul Genesis 1.0 ? ? ? ? ?
Calculator
numworks-nofrendo Numworks git ? ? ? ? ?
NESpire TI-Nspire 0.30
git (tangrs-mod)
? ? ? ? ~
NESizm Prizm 1.00 ? ? ? ? ? ~
  1. CI-Windows CI-Linux CI-Macos
  2. 2.0 2.1 Libretro core is still active.
  3. AoEX is based on NesterJ 1.12 Plus 0.61 RM, which 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[edit]

  • puNES is another cycle-accurate NES/FDS emulator. It is deemed as the second most compatible NES emulator of the cycle-accurate variety.
  • Nestopia also is a cycle-accurate NES/FDS emulator. 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 the Undead Edition.
  • Nintendulator also is a cycle-accurate NES/FDS emulator. NintendulatorNRS is a fork of Nintendulator that supports the Famicom Disk System, rare mappers, VRT chipsets, and many unlicensed and bootleg carts and systems.
  • 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 ways are covered here.

Mappers[edit]

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 most active and recommended emulators 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. At the same time, 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 ROM hacks).

Enhancements[edit]

Name Mesen FCEUX puNES Nestopia UE ares QuickNES MAME BeesNES breakNES MetalNES Nintendo Switch Online
(L-CLASSICS)
Graphics Resizable Internal Resolution For emulation of 2D systems, the resolution can only be upscaled, making the pixels more apparent.
Widescreen hack
Using wideNES technique (similar to wideGB); it can automatically “map-out” levels and worlds in NES games.
Exclusive to ANESE emulator at the moment.
Sprite Replacement *
Performance Overclock *
TAS features Macros/Scripts/Lua * *
Rewind *
Fast-Forward/Turbo Speed *
Savestates
Movie recording/playback *
Post-Processing Filters ? ?
AI-powered filter compatible
(Freestyle)
? ? ? ? ? ? ? ? ? ? ?
Shader Chain ~[N2 1] ~[N2 1] ~[N2 1] ~[N2 1]
Inverse tone mapping compatible ? ? ? ? ? ? ? ? ? ? ?
Quality of life Per-Game Profiles * ? ? ? ? ? ? ? ? ?
Command Line Options * ? ? ? ? ? ? ? ? ? ?
Built-in Cheat Manager * ? ? * ? ? ? ?
Built-in Custom resolution/CRTSwitchRes
For using this on Windows OS you need CRT Emudriver.
Another option is using EDID editor tool such as "Custom Resolution Utility".
Exclusive to libretro cores and GroovyMAME at the moment.
Also there is a project for achieving software emulators like libretro cores and GroovyMAME send the raw RGB data over a network to a core running on MiSTer, it basically turns the MiSTer into a GPU for the emulator allowing for easy setup and use with CRT TVs/Arcade monitors.
Streamable compression format * ? ? ?
Big Picture Mode ~[N2 1] ~[N2 1] ~[N2 1] ~[N2 1]
Controls Input lag-mitigating technique * ? ? ?
Misc Netplay * ? ? ?
EmuVR support Exclusive to libretro cores at the moment.
RetroAchievements ~[N2 1] ~[N2 1] ~[N2 1]
Debug features * ? ? * ? ? ?
  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 Exclusive to FCEUmm, Mesen, Nestopia libretro cores. Also there is a modified version of fceux that supports RetroAchievements.

Peripherals[edit]

There were many accessories released for the Famicom and NES but Emulation in 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.[1][2]

Picture Name(s) Description Game(s) Support emulator(s) Note
NES Zapper.png Zapper An electronic light gun accessory that allows players to aim at the display and shoot various objects that appear on the screen. The Adventures of Bayou Billy
Barker Bill's Trick Shooting
Day Dreamin' Davey
Duck Hunt
Freedom Force
Gotcha! The Sport!
Gumshoe
The Hunt for Red October
Hogan's Alley
Laser Invasion
The Lone Ranger
Mechanized Attack
Operation Wolf
Shooting Range
To the Earth
Track & Field II
Wild Gunman
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.
ArkanoidVausController.jpg 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
NES-power-pad.jpgFamily Trainer.jpgFamilyFunFitness A.pngFamilyFunFitness B.png Power Pad
Family Trainer
Family Fun Fitness
A game controller that allows players to step 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.jpgNES Satellite.png NES Four Score
NES Satellite
4-Player Adaptor
A multitap accessory that enables 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 the 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.png Family Computer Disk System & FDS See above Super Mario Bros. 2
Legend of Zelda: The Hyrule Fantasy
Zelda II: The Adventure of Link
Metroid
Light Mythology: Palutena's Mirror
Akumajō Dracula
Ice Hockey
Mesen
puNES
Nestopia UE
ares
BizHawk
Nintendulator NRS
FCEumm_libretro
FinalBurn_Neo
higan
MAME
iNES
Jnes
RockNES
Others...
The BIOS file (which can be found here) is required for FDS emulation. Note that there are two versions of the BIOS: one that comes with FDS and another that comes with Sharp's Twin Famicom. They function identically despite showing a different intro during the first boot.
DATACH JOINT ROM SYSTEM.png DATACH
Datach Joint ROM System
Bandai add-on that lets the Family Computer play a few suitable games. Swiping cards to obtain a character. Dragon Ball Z: Gekitō Tenkaichi Budōkai
Crayon Shin-Chan: Ora to Poi Poi
Yu Yu Hakusho: Bakutou Ankoku Bujutsukai
Ultraman Club: Supokon Fight!
SD Gundam: Gundam Wars
Battle Rush: Build Up Robot Tournament
J. League Super Top Players
MAME[N 2]
Mesen[N 2]
puNES[N 2]
FCEUX[N 2]
N/A
Famicom Controller Microphone.png Microphone A Japan-exclusive, built-in feature in the original Player 2 Famicom controller that allows players to use an external sound source (e.g., the player's voice) as input. Legend of Zelda: The Hyrule Fantasy
Light Mythology: Palutena's Mirror
Kaiketsu Yanchamaru
Mesen[N 3]
puNES[N 3]
VirtuaNES[N 3]
Virtual Console[N 4]
N/A
Family BASIC.png Family BASIC A Japan-exclusive peripheral with an enhanced BASIC programming language dialect. It allows users to create programs in the Famicom. It has a specially designed cartridge, keyboard, and Data Recorder. Family BASIC Mesen
Nestopia UE
FCEUX
puNES
VirtuaNES
N/A
Famicom Data Recorder.jpg 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
puNES
VirtuaNES
N/A
Famicom 3D System.jpg Famicom 3D System A Japan-exclusive active shutter glasses headset that allowed compatible games to display a stereoscopic image for a 3D experience. Famicom Grand Prix II: 3D Hot Rally
Highway Star
Falsion
RetroArch
Ares?
GLSL shaders are needed for RetroArch to simulate the 3D experience with a VR headset, 3D TV, 3D projector or Android phone with cardboard.
Miracle Piano Teaching System.png 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 I.pngASCII TurboFile II.png ASCII TurboFile
ASCII TurboFile II
A Japan-exclusive external storage device 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.jpg Oeka Kids Tablet A Japan-exclusive drawing tablet for the Famicom Oeka Kids series.[3] Oeka Kids: Anpanman no Hiragana Daisuki
Oeka Kids: Anpanman to Oekaki Shiyou!!
Mesen
Nestopia UE
FCEUX
puNES
VirtuaNES
N/A
RacerMate CompuTrainer Pro.png RacerMate CompuTrainer Pro A rare series of peripherals for the game RacerMate Challenge II. It has an interface box, a bike trainer, and a handlebar display.[4] RacerMate Challenge II N/A N/A
NES Game Genie.png Game Genie A pass-through device that is attached between a cartridge and the console that allows the player to manipulate various aspects of games and access unused assets and functions by temporarily modify game data. Various FCEUX[N 5]
puNES[N 5]
Most emulators have a GUI to manage cheats and don't rely on real hardware cheating devices.
Family Computer Network System.png Family Computer Network System
Famicom Modem
A Japan-exclusive network peripheral that allowed users to connect to a Nintendo server that 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
SNES Mouse.png SNES Mouse There have been quite a few NES romhacks coming out that add support for the SNES mouse to NES games. Maniac Mansion Mouse Hack Mesen There is a feature request for adding this to fceumm-libretro.
  1. Up to three players only.
  2. 2.0 2.1 2.2 2.3 Input box by entering the barcode number on the card.
  3. 3.0 3.1 3.2 Cheated by pressing any specific key ("M" by default).
  4. Through an actual microphone.
  5. 5.0 5.1 Cheat authentically by using a Game Genie ROM.

Hardware variants[edit]

PlayChoice-10[edit]

MAME is the only emulator that properly emulating the PlayChoice-10 system at the moment, most of the NES emulators only play the PlayChoice-10 games as a normal NES game.

VS. System[edit]

An arcade system based on the NES released for the US. It was released in two different cabinet variations: Vs. UniSystem and Vs. DualSystem. The latter has 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 only the MAME, Mesen, NintendulatorNRS, puNES and nintaco are suitable for games in Vs. DualSystem cabinet. For commercial emulation, Hamster re-released several VS. System games from Nintendo and Konami as part of their Arcade Archives series (the former being exclusive to Nintendo Switch, the latter being also on PS4).

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.

These emulators only supports UniSystem cabinet: nestopia UE, FCEumm and FCEUX, BizHawk, FinalBurn Neo

Famicom Box[edit]

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 available games. 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. It 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 BIOSes and most of its ROMs dumped).

Dendy[edit]

A pirate NES Famicom clone that 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 50 Hertz, 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.

MAME/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[edit]

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 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. It seems to be modded out of an old emulator called NNNesterJ.

NES Classic Edition[edit]

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

Emulation issues[edit]

QD FDS support[edit]

Games dumped off the Famicom Disk 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, except QD is 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. puNES added QD support in v0.111. As of now, no other NES emulators support the alternate, more complete dumps and fudging that check's result to always return a negative. To emulate a .qd image with those, stripping the checksum data with a custom script is needed.

Overscan[edit]

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 the 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[edit]

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.

Resources[edit]

  • Nesdev Wiki - A place for all your NES programming/NES emulator programming needs.
  • Nesdev Forum - Discussion of NES Wii Virtual Console accuracy.
  • Rec0deD:88 - Play a NES emulator.
  • Copetti - NES Architecture (A practical analysis by Rodrigo Copetti).

References[edit]