Changes

Jump to navigation Jump to search

Nintendo Entertainment System emulators

268 bytes removed, 19:04, 2 November 2023
cycle and highly accurate emulators added to comparisons section, mappers support level much more important i think. feel free to undo this if you dont like it.
! scope="col"|[[Netplay#NES|Netplay]]
! scope="col"|[[libretro]]
! scope="col"|[[Emulation accuracy#Mappers|Accuracy<small>Mappers Support<br/>Level</small>]]
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
! scope="col"|Active
|{{✓}}
|{{Y}}
|HighUnlicensed
|{{✓}}
|{{✓}}
|{{✓}}
|{{✓}}
|CycleUnlicensed
|{{✓}}
|{{✓}}
|{{✗}}
| ?
|CycleUnlicensed
|{{✓}}
|{{✓}}
|{{✓}}
|{{✓}}
|CycleUnlicensed
|{{✓}}
|{{✓}}
|{{✗}}
|{{✗}}
|High?
|{{✓}}
|{{✓}}
|{{✗}}[https://github.com/TASEmulators/BizHawk/issues/2450 *]
|{{✗}}
|Cycle?
|{{✓}}
|{{✓}}
|{{✗}}
|{{✗}}
|CycleUnlicensed
|{{✓}}
|{{✓}}
|{{✓}}
|{{✓}}
|Mid?
|{{✓}}
|{{~}}<ref group=N name=lrActiveonly>Libretro core is still active.</ref>
|{{✗}}
|{{✗}}
|Transistor?
|{{✓}}
|{{✓}}
|{{✓}}
|{{✓}}
|High?
|{{NC}}
|{{✓}}
|{{✗}}
|{{✓}}
|Cycle?
|{{✓}}
|{{✓}}
|{{?}}
|{{?}}
|Mid?
|{{?}}
|{{✓}}
|?
|{{✗}}
|Low?
|{{✓}}
|{{✗}}
|?
|{{✗}}
|High?
|{{✗}}
|{{✗}}
|?
|?
|High?
|{{✓}}
|{{✓}}
|?
|{{✗}}
|Low?
|{{✓}}
|{{✓}}
|?
|{{✗}}
|High?
|{{✓}}
|{{✗}}
|{{✗}}
|{{✓}}
|CycleUnlicensed
|{{✓}}
|{{✓}}
|{{✓}}
|{{✗}}
|High?
|?
|{{✓}}
|?
|{{✗}}
|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>?
|{{✓}}
|{{~}}
|?
|{{✗}}
|Low?
|{{✗}}
|{{✗}}
|?
|{{✗}}
|Low?
|{{✗}}
|{{✗}}
|?
|{{✗}}
|High?
|{{✗}}
|{{✗}}
|{{✓}}
|{{✓}}
|CycleUnlicensed
|{{✓}}
|{{✓}}
|{{✓}}
|{{✓}}
|MidUnlicensed
|{{✓}}
|{{✓}}
|?
|?
|HighUnlicensed
|{{✓}}<br/><small>(Android only)</small>
|{{✓}}
|{{✓}}
|{{✗}}
|High?
|{{✗}}
|{{✓}}
|?
|{{✗}}
|High?
|{{✗}}
|{{✓}}
|?
|{{✗}}
|Mid?
|{{✗}}
|{{✗}}
|?
|{{✗}}
|Low?
|{{✓}}
|{{✗}}
|?
|{{✗}}
|Mid?
|{{✗}}
|{{✗}}
|?
|{{✗}}
|Mid?
|{{✗}}
|{{✓}}
|?
|{{✗}}
|Mid?
|{{✗}}
|{{~}}
|?
|{{✗}}
|Mid?
|{{✓}}
|{{✗}}
|?
|{{✗}}
|Mid?
|{{✗}}
|{{✗}}
|?
|{{✗}}
|Mid?
|{{✓}}
|{{✓}}
|?
|{{✗}}
|Low?
|{{✗}}
|{{✗}}
|{{✓}}
|{{✗}}
|CycleUnlicensed
|{{✓}}
|{{✗}}
|{{✓}}
|{{Y}}
|CycleUnlicensed
|{{✓}}
|{{✓}}
|{{✓}}
|{{✓}}
|Mid?
|{{✗}}
|{{~}}<ref group=N name=lrActiveonly></ref>
|{{✓}}
|{{Y}}
|MidUnlicensed
|{{✓}}
|{{✓}}
|?
|{{✗}}
|MidUnlicensed
|{{✓}}
|{{✓}}
|?
|{{✗}}
|High?
|{{✓}}
|{{✓}}
|?
|{{✗}}
|Mid?
|{{✗}}
|{{~}}
|?
|{{✗}}
|Low-Mid?
|{{✓}}
|{{✓}}
|?
|{{✗}}
|Low?
|{{✗}}
|{{✗}}
|?
|{{✗}}
|Low?
|{{✗}}
|{{✗}}
|{{✓}}
|{{✗}}
|High?
|{{✗}}
|{{✓}}
|?
|{{✗}}
|Low-MidOfficial
|{{✗}}
|{{✗}}
|?
|{{✗}}
|Mid?
|{{✓}}
|{{✗}}
|?
|{{✗}}
|Low?
|{{✗}}
|{{✓}}
|?
|{{✗}}
|Mid?
|{{✓}}
|{{✗}}
|?
|{{✗}}
|Low?
|{{✓}}
|{{✗}}
|?
|{{✗}}
|Low?
|{{✓}}
|{{✗}}
|?
|{{✗}}
|Low?
|{{✗}}
|{{✗}}
|?
|{{✗}}
|Mid?
|{{✓}}
|{{✓}}
*[[Mesen]] is a cycle [[Emulation_accuracy|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. On top of these its supports [[GoodTools|goodmerged]] file loading. The standalone emulator ceased development around October 2020 for unknown reasons, but the [https://github.com/libretro/Mesen libretro] fork is still active and the original developer resumed development in March 2021 with multi-system emulator [https://github.com/SourMesen/Mesen2 Mesen2].
*[[puNES]] is another cycle [[Emulation_accuracy|accurate]] NES/FDS emulator.
*[[Nestopia]] also is a cycle [[Emulation_accuracy|accurate]] NES/FDS emulator.<ref name="nestas"/> 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.
*[[Nintendulator]] also is a cycle [[Emulation_accuracy|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.
*[[FCEUX]] is not one of these cycle [[Emulation_accuracy|accurate]] NES/FDS emulators but still it's highly accurate one, on top of this its a recommended emulator on TAS Videos. The New PPU implementation is more [[Emulation_accuracy|accurate]] than the Old PPU implementation. The emulator is very useful though, thanks to its robust Lua scripting and incorporating FCEUmm into its feature set.
There are many other NES emulators not listed here, as the NES has more emulators than any other system (new ones are started all the time). Only those that are well-known or stand out in some way are covered here.
==Emulation issuesHardware features==
===Mappers===
A key difference between many emulators nowadays is how many mappers they support.
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).
 
===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. 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.
 
===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.
==Enhancements==
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==
===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. 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.
 
===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==
11,171
edits

Navigation menu