Difference between pages "Super Nintendo emulators" and "Recommended N64 plugins"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Emulators: Third-parties mentioned on ares's current website do maintain Linux packages)
 
(Updated information on Azimer's and Shunyuan's plugins)
 
Line 1: Line 1:
{{Infobox console
+
{{Outdated}}
|title = Super Nintendo Entertainment System
 
|logo = snesna.png
 
|developer = [[:Nintendo]]
 
|type = [[:Category:Home consoles|Home video game console]]
 
|generation = [[:Category:Fourth-generation video game consoles|Fourth generation]]
 
|release = 1990
 
|discontinued = 2003
 
|predecessor = [[Nintendo Entertainment System emulators|NES]]
 
|successor = [[Nintendo 64 emulators|Nintendo 64]]
 
|emulated = {{✓}}
 
}}
 
The '''[[gametech:Super Nintendo Entertainment System|Super Nintendo Entertainment System]]''' (SNES) is a 16-bit, fourth-generation home video game console released by [[wikipedia:Nintendo|Nintendo]] on November 21, 1990, in Japan and on August 23, 1991, in the US. It retailed for {{Inflation|USD|199.99|1991}}. It has a Ricoh 5A22 CPU at 3.58 MHz. Borrowing the name of its predecessor, the [[Nintendo Entertainment System emulators|Nintendo Entertainment System]], it was similarly named the '''Super Famicom''' in Japan, and during that time it had ''fierce'' competition with SEGA's [[Sega Genesis emulators|Genesis]] (known in other regions as the Mega Drive).
 
  
Emulation for the SNES is robust, with several high-quality emulators for various systems, some of which are [[Emulation Accuracy|cycle-accurate]].
+
The N64 emulation scene had previously been described as a broken mess, the very definition of plugin hell. With recent developments in the scene, however, the situation has markedly improved, and it is no longer considered necessary to have multiple emulators and plugins on hand to get most games to work. This page will outline the best plugins currently available for the benefit of both the casual and enthusiast looking to get their N64 emulation fix.
  
==Emulators==
+
==The Plugin Specs==
{| class="wikitable" style="text-align:center;"
+
To understand the current plugin situation, and why there are several competing emulators that all appear to use the same plugins but said plugins are not compatible across emulators, a bit of history is in order.
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Version
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[Emulation Accuracy|Accuracy]]
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
!colspan="8"|PC / x86
 
|-
 
|[[bsnes]]<br/><small>(Official)</small>
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/bsnes-emu/bsnes/releases {{bsnesVer}}]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[Bsnes#List_of_forks|bsnes-hd]]<br/><small>(forked bsnes)</small>
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/DerKoun/bsnes-hd/releases {{Bsnes-hdVer}}]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[higan]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/higan-emu/higan/releases {{higanVer}}]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[ares]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/higan-emu/ares/releases/ {{aresVer}}]
 
|{{✗}}
 
|?
 
|{{✓}}
 
|{{✓}}
 
|?
 
|-
 
|[[Mesen S]]
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/SourMesen/Mesen-S/releases {{MesenSVer}}]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✗}}
 
| {{~}}
 
|-
 
|[[Snes9x]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://sites.google.com/site/bearoso/ {{Snes9xVer}}]
 
| {{✓}}
 
|High
 
| {{✗}} <ref group=N name=noncomm>Due to using a [[Licensing#Non-commercial licenses|non-commercial license]]. Source code is still publicly available.</ref>
 
| {{✓}}
 
| {{~}}
 
|-
 
|[[Mednafen]] (SNES-Faust)
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[{{MednafenURL|releases/}} {{MednafenVer}}]
 
| {{✓}}
 
|?
 
| {{✓}}
 
| {{✓}}
 
| {{✗}}
 
|-
 
|[[Higan#nSide|nSide]] (forked higan)
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/hex-usr/nSide/releases git]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✗}}
 
| {{✗}}
 
|-
 
|[[Higan#bsnes-classic|bsnes-classic]]<br/><small>(forked bsnes Qt)</small>
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://github.com/sharknnth/bsnes-classic/releases git]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✗}}
 
| {{✗}}
 
|-
 
|[[BizHawk]] (bsnes v087)
 
|align=left|{{Icon|Windows}}
 
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
 
| {{✗}}
 
|Cycle
 
| {{✓}}
 
| {{✓}}
 
| {{✗}}
 
|-
 
|lsnes
 
|align=left|{{Icon|Windows}}
 
|[http://tasvideos.org/Lsnes.html rr2-β23] <br/> [http://repo.or.cz/w/lsnes.git git]
 
| {{✗}}
 
|Cycle
 
| {{✓}}
 
| {{✓}}
 
| {{✗}}
 
|-
 
|kindred (Super Sleuth PE)
 
|align=left|{{Icon|Windows}}
 
|[https://www.crazysmart.net.au/kindred 1.11 Preview Build 6]
 
| {{✗}}
 
| ?
 
| ?
 
| {{✓}}
 
| {{✗}}
 
|-
 
|[[Mednafen]] (bsnes v059)
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[{{MednafenURL|releases/}} {{MednafenVer}}]
 
| {{✓}}
 
|High
 
| {{✓}}
 
| {{✓}}
 
| {{✗}}
 
|-
 
|[[No$|NO$SNS]]
 
|align=left|{{Icon|Windows}}
 
|[http://problemkaputt.de/sns.htm 1.6]
 
| {{✗}}
 
|Medium
 
| {{✗}}
 
| {{✗}}
 
| {{✗}}
 
|-
 
|[[MAME]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://www.mamedev.org/release.html {{MAMEVer}}]
 
| {{✓}}
 
|Low
 
| {{✓}}
 
| {{✓}}
 
| {{✗}}
 
|-
 
|[[Silhouette]]
 
|align=left|{{Icon|macOS}}
 
|[https://www.zophar.net/fileuploads/1/816uajag/Silhouette.sit.hqx 1.0]
 
| {{✗}}
 
|Low
 
|?
 
| {{✗}}
 
| {{✗}}
 
|-
 
|[[ZSNES]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://zsnes.com 1.51]
 
| {{✗}}
 
|Low
 
| {{✓}}
 
| {{✗}}
 
| {{✗}}
 
|-
 
|[[CATSFC]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/ShadauxCat/CATSFC 1.36]
 
| {{✓}}
 
|Low
 
| {{✓}}
 
| {{✗}}
 
| {{✗}}
 
|-
 
|[[AloneSFC]]
 
|align=left|{{Icon|Windows}}
 
|[https://standalones.dev 1.0.2]
 
| {{✓}}
 
|High
 
| {{✗}}
 
| {{✓}}
 
| ?
 
|-
 
!colspan="8"|Mobile / ARM
 
|-
 
|Snes9x EX+
 
|align=left|{{Icon|Android|Pyra}}
 
|[https://play.google.com/store/apps/details?id=com.explusalpha.Snes9xPlus 1.5.54]</br>[https://pyra-handheld.com/repo/apps/84 1.5.46.01 Pyra]
 
| {{✗}}
 
|High
 
|?
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[Snes9x]] Next
 
|align=left|{{Icon|Android|iOS|Linux|Pandora}}
 
|1.53
 
| {{✓}}
 
|Mid
 
|?
 
| {{✓}}
 
| {{✓}}
 
|-
 
|Snes8x<br/><small>(Different from 'Snes9x')</small><br/><small>(Snes9x based)</small>
 
|align=left|{{Icon|WinMobile}}
 
|[https://www.appx4fun.com/xap/497 2.15.3]
 
| {{✗}}
 
|Mid
 
|?
 
| {{✗}}
 
| {{✓}}
 
|-
 
|[http://yoyofr92.free.fr/ Little John]<br/><small>(Snes9x 1.39 based)</small>
 
|align=left|{{Icon|PalmOS}}
 
|[https://www.zophar.net/palm-os/multiem/little-john-palmos.html 1.1], [https://pyra-handheld.com/boards/resources/little-john-palm-os.4443 1.2]
 
| {{✗}}
 
|[http://blogote.com/features/download-little-john-palm-os-retro-emulator/3352 Mid]
 
|?
 
| {{✗}}
 
| {{✓}}
 
|-
 
|[http://www.superretro16.com SuperRetro16]
 
|align=left|{{Icon|Android}}
 
|[https://play.google.com/store/apps/details?id=com.neutronemulation.super_retro_16 2.1.5]
 
| {{✗}}
 
|Low
 
|?
 
| {{✓}}
 
| {{✗}}
 
|-
 
|[[CATSFC]]
 
|align=left|{{Icon|Android|iOS|Linux|Pandora}}
 
|1.36
 
| {{✓}}
 
|Low
 
|?
 
| {{✗}}
 
| {{✗}}
 
|-
 
|OpenSnes9x
 
|align=left|{{Icon|GP32|Zodiac}}
 
|[http://yoyofr92.free.fr/os9xgp/html/downloads.html 0.3beta]
 
| {{✗}}
 
|Low
 
|?
 
| {{✗}}
 
| {{✗}}
 
|-
 
!colspan="8"|Console
 
|-
 
|[[Virtual Console]]
 
|align=left|{{Icon|Wii|3DS|WiiU}}
 
|N/A
 
| {{✗}}
 
|Mid-High
 
| {{✗}}
 
| {{✓}}
 
| {{✓}}
 
|-
 
|Snes9x GX
 
|align=left|{{Icon|GCN|Wii}}
 
|[https://github.com/dborth/snes9xgx/releases {{Snes9xGXVer}}]
 
| {{✗}}
 
|?
 
| {{✗}}  <ref group=N name=noncomm />
 
| {{✓}}
 
| {{✓}}
 
|-
 
|Snes9x X
 
|align=left|{{Icon|Xbox}}
 
|[https://digiex.net/threads/snes9x-x-0-23-download-snes-emulator-for-xbox.13688 0.23]
 
| {{✗}}
 
|Mid
 
|?
 
| {{✗}}
 
| {{✓}}
 
|-
 
|SNES360
 
|align=left|{{Icon|Xbox360}}
 
|[http://download.digiex.net/Consoles/Xbox360/Jtag/SNES360betaV0.21.rar 0.21 beta]
 
| {{✗}}
 
|Mid
 
|?
 
| {{✗}}
 
| {{✓}}
 
|-
 
|SNES Station
 
|align=left|{{Icon|PS2}}
 
|0.2.6c
 
| {{✗}}
 
|Mid
 
|?
 
| {{✗}}
 
| {{✓}}
 
|-
 
|[[Snes9x]] Next
 
|align=left|{{Icon|Wii|Xbox360|3DS|WiiU|Switch}}<br>{{Icon|PSP|PS3}}
 
|1.53<br/>[https://digiex.net/threads/retroarch-360-0-9-8-3-download-sega-sens-gameboy-finalburn-emulator-for-xbox-360.12395 RetroArch 360 0.9.8.3]
 
| {{✓}}
 
|Mid
 
|?
 
| {{✓}}
 
| {{✓}}
 
|-
 
| [https://wololo.net/talk/viewtopic.php?t=48157 Snes9xTYL Mod]<br/><small>(Snes9x 1.39 based)</small>
 
|align=left|{{Icon|PSP}}
 
| [https://github.com/esmjanus/snes9xTYL/releases git]
 
| {{✗}}
 
| Mid
 
| {{✗}}
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[Snes9X|Snes9X GX]]
 
|align=left|{{Icon|GCN|Wii}}
 
|[https://github.com/dborth/snes9xgx/releases {{Snes9xGXVer}}]
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|[[CATSFC]]
 
|align=left|{{Icon|Wii|3DS|WiiU|Switch}}<br>{{Icon|PSP|PS3|DC}}
 
|1.36
 
| {{✓}}
 
|Low
 
|?
 
| {{✗}}
 
| {{✓}}
 
|-
 
|DreamSNES
 
|align=left|{{Icon|DC}}
 
|[http://www.dcemulation.org/files/emulators/dreamsnes/dreamsnes-0.9.8.zip 0.9.8]
 
| {{✗}}
 
|Low
 
|?
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[Snes9x]] for 3DS
 
|align=left|{{Icon|3DS}}
 
|[https://github.com/bubble2k16/snes9x_3ds/releases git]
 
| {{✗}}
 
|Low
 
|?
 
| {{✓}}
 
| {{~}}
 
|-
 
|blargSNES
 
|align=left|{{Icon|3DS}}
 
|[http://blargsnes.kuribo64.net/ 1.3b]
 
| {{✗}}
 
|Low
 
|?
 
| {{✗}}
 
| {{✗}}
 
|-
 
|Pocket SNES
 
|align=left|{{Icon|GBA}}
 
|[https://www.pocketsnes.net/files/pocketsnes.zip Beta]
 
| {{✓}}
 
|Low
 
|?
 
| {{✓}}<small> (libretro core)</small>
 
| {{✗}}
 
|}
 
<references group=N />
 
 
 
===Comparisons===
 
# [[higan]] <small>(formerly bsnes)</small>
 
#* The most [[Emulation Accuracy|accurate]] of the bunch. Should play all commercially released games without trouble, assuming you have the power.
 
#* Incompatible with ROM hacks made to take advantage of emulator quirks, much like real hardware.
 
#* A superb LLE audio engine.
 
#* higan (or, as it was known before it expanded its scope to more systems, bsnes) is the most accurate SNES emulator out there, but newcomers who care more about playing games rather than 100% accurate emulation should stick with [https://bsnes.dev/ the most recent version of the forked bsnes core from the same author.]
 
# [[Snes9x]]
 
#* Compatible with most games, even many ROM hacks that make use of emulator quirks.
 
#* Fast enough for pretty much any toaster (even Pentium 1 or 2 machines).
 
#* LLE audio engine shared with bsnes.
 
#* Often buggy graphics and shaders in standalone, though it's video card and driver dependent.<!-- ** Remember those diagonal lines of offset across older 3D games on certain graphics cards? Yeah. ''Finding a picture.'' -->
 
#* Hit-and-miss controller support, especially when it comes to XInput.
 
# [[RetroArch]]
 
#* Not a unique emulator, but there are official cores for bsnes and Snes9x you can easily obtain.
 
#* Very customizable and programmable by nature.
 
#* Tends to have better graphics than standalone software.
 
#** The viewport is scalable to any resolution.
 
#** It makes good use of full-screen with the right choice of interface.
 
#** A highly robust and flexible [[Shaders_and_Filters|shader]] system completely separate from the core.
 
#* Dynamic rate control fixes most audio issues.
 
#* Mirrored Rom and Ram maps, allowing ordinary rom images to be played right away.
 
#* The Snes9x Next core was forked from a commit somewhere between upstream version 1.52 and 1.53 and includes some extra speed hacks to run full speed on the Wii, as well as a SuperFX overclock option.
 
#* The bsnes-mercury restores things like HLE DSP and SGB emulation using [[Gambatte]], as well as some optimizations that don't sacrifice accuracy. Things like the HLE DSP were removed in higan and, much like Snes9x Next, it has an option to overclock SuperFX. The default options match bsnes, where HLE emulation is not enabled by default.
 
# [[BizHawk]]
 
#* TASVideos tests say it's the best for TASes (tool-assisted speedruns/superplays).
 
#* Not cross-platform; it's written in C#, and compiled for .NET 4.0 on Windows.
 
#* Has support for libretro cores.
 
# [[Mednafen]]
 
#* Much like higan, it's an open-source, multi-system emulator. The libretro core is a fork renamed Beetle.
 
#* Graphical shells exist (like Mednaffe) to help with the fact that it can only run from the command line.
 
#* Its SNES core is based on bsnes v059 which is actually pretty old. It predates the performance/balanced/accuracy profiles to as far back as 2010. However, this version is much faster than upstream.
 
#** It's missing many of the improvements to the LLE audio engine that newer versions of Snes9x and higan have.
 
#** It's also missing out on many accuracy updates that address a few edge cases such as Air Strike Patrol, one of two games known to notoriously manipulate the PPU mid-scanline. It also has some problems rendering text, flickering lines near the bottom, and displaying shadows during flight.
 
#* There ''are'' systems Mednafen emulates well and very accurately, but the SNES is not exactly one of them. At that point, it's worth using bsnes or its libretro cores instead.
 
# Mesen-S
 
#* From the same author of the top-class NES/Famicom emulator [[Mesen]]. Launched in April 2019, this cycle-accurate emulator will eventually have similar features as its famous forebearer.
 
#* Users who increasingly tire of higan's (or bsnes) limited user options and cumbersome ROM and save files management may gravitate towards Mesen-S sooner or later, which should run nicely in users' game systems alongside Snes9x or Mednafen (or similar peer).
 
# [[ZSNES]]
 
#:''See also [[ZSNES#Review|the review]].''
 
#* The least accurate of the bunch but still relevant for many reasons.
 
#** Runs full speed on even very old [[wikipedia:x86|x86]] systems such as an early Pentium 1.
 
#** Many ROM hacks were often designed around (let alone possible, simply because of) its problems, and would often break on anything else.
 
#** It had tons of bugs and lacked certain operations for less notable games that needed them. Some testing also showed it didn't synchronize the components as often as other newer emulators would.
 
#*** One of these bugs was '''a severe <abbr title="arbitrary code execution">ACE</abbr> vulnerability''' that could allow a maliciously designed ROM to run its own code on the host machine. Therefore, it's best to check the source of your roms before using them with ZSNES. With that said, to this day there has been no real-world case of it, aside from some harmless proof of concept.
 
#** Though fans have modded the builds, and patched out the vulnerability, the project is basically dead.
 
#* It has [[ZSNES#Netplay|surprisingly good netplay]].
 
#* Sports an interesting but polarizing graphical user interface; it's either loved, or it's despised by the community.
 
#* Older versions rely on external pre-decompressed graphical packs to emulate some games with elaborate chips, much like older versions of Snes9x such as 1.43. Assuming you get (what are now rare and very hard-to-find) graphical packs for the SPC7110 (like from [http://other.ipherswipsite.com/gpacks/ here]) and Star Ocean, and put them in folders you then set under "Paths" in ZSNES, they can be playable without missing graphics. With that said the newest version does not need them for SDD-1 titles, only for SPC7110 titles.
 
#* Viable alternatives are bZSNES (for ZSNES-centric rom hacks), ZMZ (for the UI), NO$SNS, or older versions of Snes9x (for speed boosts tailored to old systems). Otherwise, choose any of the others like bsnes/higan and Snes9x (for better compatibility).
 
# Super Retro 16
 
#* It's basically an Android equivalent of ZSNES, accuracy-wise, if not worse.
 
#* Misses echo and pitch modulation emulation.
 
#* Audio emulation in general is weird. Certain sounds in Tales of Phantasia sound like in very old versions of SNES9X and ZSNES with the old ADPCM decoding method. The wind in Final Fantasy VI, on the other hand, is emulated correctly, minus the pitch modulation. Earthworm Jim 2 doesn't suffer from missing sound effects. It does have a hidden "advanced APU" option which doesn't seem to do anything, though it could be that it is automatically turned on and off on a per-game basis. 
 
#* Tales of Phantasia and Star Ocean have horrible audio glitches. Music instruments are garbled in random ways. Voice acting is reduced to random buzzing and farting. Toggling surround sound causes extremely loud static. These games will also crash seemingly at random with the SPC700 being the first to crash. The DeJap patch won't even run and would crash the emulator in older versions.
 
#* The save states are locked behind a paywall with no SRM support, so save states aren't viable in these games.
 
#* Doom used to run with graphical glitches on the walls, but as of newer versions it freezes with just the music after the title screen.
 
#* It does, however, support controlling the d-pad by tilting your phone, which works quite well in Starfox. 
 
#* In summary, it has some issues even ZSNES didn't have by version 0.715. SNES 9EX+ is a better choice and isn't locked behind a paywall. You might even be better off with ZSNES emulated in DOSBox if you have a phone capable of emulating a Pentium 100 PC.
 
# SNNES
 
#* Better than Super Retro 16 but very outdated, and thus might not run at all on newer devices.
 
#* Likely based on some SNES9X 1.3x version
 
#* It has the higher pitch characteristic of very old ZSNES and SNES9X versions as well as no interpolation. Echo emulation is broken, with no decay and the echo being cut off prematurely. The sample rate is also bad. It does have pitch modulation, however.
 
#* Tales of Phantasia and Star Ocean audio works fine, aside from the quirks mentioned above.
 
# blargSNES
 
#* This 3DS-only emulator is in beta, but it does run several games. A compatibility list is available [http://wiki.gbatemp.net/wiki/BlargSnes_Compatibility_List here].
 
#* Doesn't support any cart chips (SuperFX, DSP-1, Cx4, etc.).
 
#* No longer recommended due to inactivity and other more accurate and more compatible emulators, such as Snes9x for 3DS.
 
 
 
'''Detailed round-ups of the best SNES emulators:'''
 
* [https://www.digitaltrends.com/gaming/best-snes-emulators/ The best SNES emulators available] (August 16, 2018) (Don't use ZSNES)
 
 
 
'''List of recommended SNES emulators for Android:'''
 
* [https://www.androidauthority.com/best-snes-emulator-android-368394/ 5 best SNES emulators for Android] (AUGUST 29, 2018. Includes some emulators not found in above charts. Reviews may be subjective.)
 
 
 
==Emulation Enhancements==
 
===High Resolution Affine Transformations===
 
The SNES had a graphical mode called "Mode 7" that allowed scaling the first background layer. The Super-FX2 added more advanced scaling options but they're not covered by Mode 7 and therefore enhancements for it. The SNES Mode 7 background is limited to 128x128 pixels, and the output resolution is 256x240. As a result, there's heavy aliasing and a general loss of quality with some transformations. However, there have been emulator enhancements to make it look better:
 
 
 
* '''High resolution:''' The scaled backgrounds are rendered with subpixel precision at a higher resolution compared to the rest of the game's graphics. This may cause visual discrepancies between both.
 
* '''Supersampling:''' Acts like a sort of anti-aliasing for Mode 7. All graphics are rendered with the same pixel size, though scaled backgrounds are rendered in a higher resolution then processed back to the same resolution as the rest of the image, for a more uniform look. Used to be the only option in bsnes.
 
* '''Widescreen:''' Later added by bsnes-hd.
 
 
 
A fork of bsnes, [https://github.com/DerKoun/bsnes-hd/releases bsnes-hd], offers active development of these features. Most of those were ported back to [[higan]].
 
 
 
With certain settings, there is heavy aliasing which we can reduce by increasing the sampling rate.
 
 
 
===Mode 7 scaling bilinear filtering===
 
Some older version of SNES9X offered bilinear filtering for Mode 7 backgrounds, making them smoother/blurrier instead of pixelated as they are scaled, instead of just applying the bilinear filter on the video output itself.
 
 
 
===Alternative audio interpolation methods===
 
Most SNES emulators since at least ZSNES 1.3.x support audio interpolation methods beyond the traditional SNES Gaussian interpolation, such as Linear, Cubic, Sinc, or even no interpolation, should someone prefer that.
 
 
 
===Higher sample rates===
 
Likewise, the sample rate can also be set to higher than 32 kHz even in ZSNES 0.150. Though in some versions of ZSNES in the very early 2000s it did cause some artifacts. Nowadays emulators support sample rates all the way to 96 kHz.
 
 
 
==Accessories==
 
There aren't as many accessories that were released for the SNES compared to the NES<ref>[[Wikipedia:List of Super Nintendo Entertainment System accessories|List of Super Nintendo Entertainment System accessories]]</ref> but there is still quite a few to go over.
 
===Super Game Boy===
 
The '''[[gametech:Super Game Boy|Super Game Boy]]''' was a peripheral designed to play Game Boy and black Game Boy Color cartridges on the Super Nintendo through the cartridge slot, just like a typical SNES game. The Super Game Boy uses a special version of the Game Boy hardware to allow for ''Super Game Boy enhanced'' Game Boy games to operate its otherwise hidden features such as colorization and improved sound by way of the SNES's more sophisticated sound hardware. Although many [[Game Boy/Game Boy Color emulators]] and [[Game Boy Advance emulators]] fake this ability, [[higan]] and forks are the first and only emulators to truly emulate its features.
 
 
 
Another thing to note is that there is a redesigned model, only released in Japan, called the ''Super Game Boy 2''. It has the ability to use a link cable connection that the first model lacks. It also fixes a slight overclocking issue and runs games at normal speed.
 
 
 
There are a few hiccups with emulating the Super Game Boy, however. higan's Game Boy core isn't up to snuff. One notable example is Pokémon Yellow Version and the special border that is supposed to display. higan displays the standard Game Boy border while the real hardware displays a special green Pikachu border. On the other hand, Pokémon Gold/Silver Version, designed for Game Boy Color, can operate on a Game Boy and that operates as intended when played on a Super Game Boy. Also, if one attempts to run Game Boy Camera in higan in Super Game Boy mode, the emulator crashes. higan can run in ''Super Game Boy 2'' mode, but link cable connections are not possible yet, not even with other Game Boy emulators that can emulate a link cable.
 
 
 
===asciiPad===
 
The asciiPad is a controller by asciiWare that has similar features to the NES Advantage. Unlike the standard SNES controller, it has seven small switches that extend the way buttons are pressed. All the switches can be set to one of three modes for the standard buttons they individually represent, except for the seventh labeled "Slow" which changes the frequency of the additional modes. The switch can be set off, to turbo, and to auto. The turbo setting holds the button, and the auto setting control presses them automatically. [[higan]] is the first and only emulator known to support this specific controller's switches. Other emulators have a completely different implementation of turbo presses in their GUI, which can work for some, but not to this extent.
 
 
 
===Pointing Devices===
 
====Mouse====
 
The mouse allowed control over ''Mario Paint'' and ''Mario & Wario'' among other games, though in later games mouse support was optional. Some emulators including Snes9x and bsnes/higan support the Mouse. A ROM hack for Mario & Wario replaces mouse controls with traditional controls for the emulators that don't support this feature.
 
  
====Super Scope====
+
Historically, the majority of N64 emulators all shared the same plugin spec (known as the zilmar spec, after the creator of Project64, the first emulator to use it), and could therefore all use the same plugins, meaning you could take a plugin DLL file, use it on one emulator, then take that DLL and use it on another, and it would also work there. Of these, the big three emulators were Project64, 1964 and Mupen64. Each had advantages and disadvantages, and some games worked well in one only to not work in another, even when using the same plugin configuration. This necessitated having all of these emulators and sometimes even older or modified versions of them, along with a great many plugins, to be able to play most of the N64 library with the least amount of issues possible - though admittedly a good amount of games (particularly the most popular ones) were playable with just the best few of them. To illustrate the point, [http://bhemuhelp.unaux.com/n64mgcl/N64ConfigList.html here] is a site that, as late as 2012, was dedicated to documenting the exact emulator, plugin and settings combination necessary to get each and every game to at least a playable state, if at all possible.
The Super Scope is a bazooka-looking light gun that is a bit more complex compared to the Zapper for the [[Nintendo Entertainment System emulators|Nintendo Entertainment System]]. ''Super Scope 6'', ''Yoshi's Safari'', ''Battle Clash'', and ''Metal Combat: Falcon's Revenge'' used it. Some emulators including Snes9x and bsnes/higan support the Super Scope, emulated with the mouse.
 
  
 +
However, as time went on, things began to change, slowly at first. 1964's development eventually ceased, and it completely fell off the radar. Mupen64 was forked into Mupen64Plus and developed its own plugin spec that was incompatible with the older zilmar spec, making it unable to use existing plugins unless they were specifically ported to it. This left only Project64 as the only relevant and active emulator still using the zilmar spec. For some time, then, this left the fledgling Mupen64Plus missing out on most cutting-edge plugin development, as most people were still using Project64.
  
====Konami Justifier====
+
A semblance of parity began to come about as a result of several major developments: first, Mupen64Plus itself was forked by the libretro team, which made many improvements to the core emulator, and integrated its plugins into the core itself. Second, gonetz, the developer of Glide64, unveiled his newest plugin, GLideN64, which would officially support both the zilmar and Mupen64Plus specs from the beginning. Third, the Angrylion plugin, which is the most accurate and compatible (and slowest) plugin there is, began to be ported both for use with standard Mupen64Plus and the libretro fork. Finally, Themaister, one of the creators of libretro and RetroArch, began developing a unique plugin initially exclusive to libretro known as ParaLLEl-RDP, essentially Angrylion running on the GPU through Vulkan compute shaders, enabling near-perfect N64 graphics emulation at actually playable speeds. Add to this the fact that most PCs and many mobile devices are now more than capable enough of running the most advanced plugins, and the plugin situation, once considered a labyrinth, has been greatly simplified to just needing a few for the vast majority of use cases.
Similar to the NES Zapper but differs from the Super Scope, this is another light gun but needs calibration. It looks like a real gun. It was meant to simulate the shooter arcade experience. Only one game is compatible and that is ''Lethal Enforcers''. Snes9x and higan support this gun.
 
  
===Super Multitap===
+
All that said, the issue is that there are now three plugin standards to account for:
Made by Hudson Soft and licensed by Nintendo, this functions similarly to the [[Nintendo Entertainment System emulators|NES Four Score]]. Instead of using both controller ports, it just used one, allowing up to 5 players at once. ''Bomberman'' games used this accessory. Some emulators including Snes9x and bsnes/higan support five players.
 
  
===JRA PAT, SNES Modem, and NTT Data Controller===
+
*The zilmar spec - Utilized by Project64 and most other legacy emulators; only Project64 still uses it today.
This is a rather obscure Super Famicom game with compatible accessories. ''JRA PAT'' is a horse race gambling game where you could use real money.<ref>https://www.youtube.com/watch?v=wtMlEcf8x6Q</ref> The service is dead. However, it is unknown if any emulator supports the special controller and modem that can plug into the player 1 and player 2 slots respectively.
 
  
===Voice-kun===
+
*The Mupen64Plus spec - Utilized by Mupen64Plus and most of its forks.
A few games by Koei shipped with an Audio-CD that typically contained voice acting, and supported this accessory which would command a CD player with IR signals typically used by remote controllers so that audio plays at specific points in the game. These games are still playable in most emulators but without Voice-kun support. byuu intends to make either MSU-1 hacks or proper Voice-kun emulation for these games in future higan versions, which would make it the first emulator to emulate this feature.
 
  
==Satellaview emulation==
+
*Libretro - Not really a spec per se, as the plugins are integrated directly into the libretro core, so there's no DLL files to download or add.
The '''Satellaview''' was a subscription-based add-on released only in Japan that streamed content to the Super Famicom. BS-X or Satellaview software was broadcast the console add-on and stored as temporary data to be deleted shortly afterward. As such, a wealth of games went undumped and lost forever.
 
  
Many of these games had Soundlink features and would have assets like streamed music and voice acting, as well as some extra data, but these have been lost forever outside of video recordings and OST releases. These games will likely play without music on your emulator. The entirely fan-made MSU-1 feature on the higan emulator tries to replicate the BS-X Satellaview and unreleased SNES-CD concept for streamed music in SNES games far beyond the maximum cartridge capacity (12MB), but it's not the same thing.
+
As of right now, not all plugins are readily available on all three. Consult the table below for reference:
 
 
Some games like BS Treasure Conflix make use of the additional RAM provided by the BS-X add-on. While you can try playing them on regular SNES emulators, you may face issues for many of these games (no font appearing, hangs with a black screen, and so on). You'll need Satellaview emulation to properly emulate those.
 
 
 
bsnes-sx2 and snes9x-sx2 are recommended. They use your PC clock with no option to modify it, though. SNESGT had the option to modify the clock, but it wasn't updated for a while and isn't really recommended for SNES emulation in general. No$SNS has good BS-X emulation (and the best debugger tools for ROM hackers and translators) but falls behind the others when it comes to general emulation.
 
 
 
You'll need the BS-X BIOS to properly emulate the Satellaview. It goes as "BS-X.bin" under the "BIOS" folder when using snes9x-sx2. There are many variants. You'll want the translated one (with English text) with removed DRM so that you can play a given broadcast without restrictions on how many times you can do so, like in the original hardware.
 
 
 
Whenever you open a BS-X compatible ROM (that wasn't modified to behave like a normal SNES game, like most BS Zelda translations were), you'll be greeted by the BIOS software. It will ask you to choose your name and avatar, which you can control in a city. Of course, the St-GIGA broadcast service went defunct in 2000, so the big radio tower will just give you a "Hello Satellaview" test broadcast. However, you may be interested in seeing how Nintendo used to do loading screens. To see them without them shutting down instantly, open <code>BSX0001-47.bin</code> (bsxdat folder) in a hex editor and change offset <code>0x06</code> from <code>0x30</code> to <code>0x00</code>. Most houses will be closed, though.
 
 
 
You'll want to enter the little red house you start in front of and load the stored data. In some cases, you may have to wait a while before actual gameplay starts, or until a given time (on real hardware people would wait for up to 6 minutes).
 
  
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
|-
 
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Platform(s)
+
! scope="col"|Latest Version
! scope="col"|Version
+
! scope="col"|Project64
! scope="col"|BS-X Emulation
+
! scope="col"|Mupen64Plus
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
+
! scope="col"|Libretro
! scope="col"|[[Recommended Emulators|Recommended]]
+
! scope="col"|HLE
 +
! scope="col"|LLE
 +
! scope="col"|Widescreen Hack
 +
! scope="col"|Custom Texture Packs
 +
! scope="col"|Recommended
 
|-
 
|-
! colspan="6"|PC / x86
+
!colspan="13"|Video Plugins
 
|-
 
|-
|[[higan]] (bsnes)
+
|ParaLLEl-RDP
|align=left|{{Icon|Windows|Linux|macOS}}
+
|[https://github.com/Themaister/parallel-rdp git]
|[https://github.com/higan-emu/higan/releases {{higanVer}}]
+
|{{✓}}
|Cycle
+
|{{✓}}
| {{}}
+
|{{✓}}
| {{✓}}
+
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 +
|{{}}
 +
|{{✓}}
 
|-
 
|-
|[[bsnes]]  
+
|GLideN64
|align=left|{{Icon|Windows}}
+
|[https://github.com/gonetz/GLideN64/releases/tag/github-actions github-actions]
|[http://bsxproj.superfamicom.org/archive.htm sx2 v009] (based on v082)
+
|{{✓}}
|Cycle
+
|{{✓}}
| {{✓}}
+
|{{✓}}
| {{✓}}
+
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|[[Snes9x]]
+
|Angrylion RDP Plus
|align=left|{{Icon|Windows}}
+
|[https://github.com/ata4/angrylion-rdp-plus/releases/tag/v1.6 1.6]
|[http://bsxproj.superfamicom.org/archive.htm sx2 0.02] (based on 1.53)
+
|{{✓}}
|High
+
|{{✓}}
| {{✗}}
+
|{{✓}}
| {{~}}
+
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{}}
 
|-
 
|-
|[[BizHawk]] (bsnes v087)
+
|Glide64
|align=left|{{Icon|Windows}}
+
|Final
|[http://tasvideos.org/BizHawk/ReleaseHistory.html {{BizHawkVer}}]
+
|{{✓}}
|Cycle
+
|{{✓}}
|?
+
|{{}}
| {{✗}}
+
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{~}}
 
|-
 
|-
|[[Mednafen]] (bsnes v059)
+
|Jabo's Direct3D8
|align=left|{{Icon|Windows|Linux|macOS|BSD}}
+
|1.7.0.57-ver5
|[{{MednafenURL|releases/}} {{MednafenVer}}]
+
|{{✓}}
|High
+
|{{✗}}
| {{}}
+
|{{✗}}
| {{✗}}
+
|{{}}
 +
|{{}}
 +
|{{✓}}
 +
|{{}}
 +
|{{✗}}
 
|-
 
|-
|NO$SNS
+
|Rice Video
|align=left|{{Icon|Windows}}
+
|0.4.4
|[http://problemkaputt.de/sns.htm 1.6]
+
|{{✓}}
|Mid
+
|{{✓}}
| {{✗}}
+
|{{✓}}
| {{✗}}
+
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 
|-
 
|-
|SNESGT
+
|glN64
|align=left|{{Icon|Windows}}
+
|0.4.1
|[http://www.zophar.net/snes/snesgt.html 2.18 (2007)]
+
|{{✓}}
|Mid
+
|{{✗}}
|?
+
|{{✓}}
| {{✗}}
+
|{{✓}}
|}
+
|{{✗}}
 
+
|{{✗}}
==Data Pack emulation==
+
|{{✗}}
Also known as DLC for the Super Famicom - not only the old Mega Drive could do its lock-on thing! (incredible, isn't it?)
+
|{{✗}}
 
 
Data Packs are Satellaview 8M Memory Paks which have data meant to be used as an expansion for a Data Pack-compatible game. Data Pack-compatible game cartridges look like the BS-X Cartridge. For most of these games, data was distributed via St.GIGA’s Satellaview streaming services. Same Game and SD Gundam G-Next had some Data Packs sold in physical form via retail stores. RPG Tsukuru 2, Sound Novel Tsukuru and Ongaku Tsukuru Kanaderu could save user-created data to 8M Memory Paks.
 
 
 
The following games were compatible with Data Packs:
 
* Derby Stallion 96
 
* Joushou Mahjong Tenpai
 
* Ongaku Tsukuru Kanaderu
 
* RPG Tsukuru 2
 
* Same Game
 
* SD Gundam G-NEXT
 
* Shigesato Itoi no Bass Tsuri No. 1
 
* Sound Novel Tsukuru
 
 
 
These Data Packs are available on ROM sites as regular SFC files, but their actual nature couldn't be more different. Unlike regular SNES games, they won't load in SNES emulators by themselves.
 
Two emulators support this feature:
 
* '''Snes9x:''' Under "File/Load Multi-Cart...", choose the base game for "Slot A" and the expansion pack for "Slot B", and then the BS-X BIOS file. The combined game variant should open. Most Memory Pack games should work this way but some are unemulated for various reasons - it's one of the last overlooked areas in SNES emulation after all.
 
* '''bsnes-sx2:''' Under "File/Load Slotted BS-X Cartridge". However, due to how the emulator doesn't have a "Show files from all extensions" option, and an oversight during development, the expansion pack file can't be selected. Due to this, current versions can't go in-game.
 
 
 
{| class="wikitable" style="text-align:center;"
 
 
|-
 
|-
! scope="col"|Name
+
|z64gl
! scope="col"|Platform(s)
+
|R17
! scope="col"|Version
+
|{{✓}}
! scope="col"|Data Pack Emulation
+
|{{✓}}
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
+
|{{✗}}
! scope="col"|[[Recommended Emulators|Recommended]]
+
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
! colspan="6"|PC / x86
+
|Angrylion (Official)
|-
+
|r114
|[[Snes9x]]
+
|{{✓}}
|align=left|{{Icon|Windows}}
+
|{{}}
|[http://bsxproj.superfamicom.org/archive.htm sx2 0.02] (based on 1.53)
+
|{{✗}}
|Mid
+
|{{✗}}
| {{✗}}
+
|{{✓}}
| {{✓}}
+
|{{}}
|-
+
|{{}}
|[[Higan|bsnes]]
+
|{{✗}}
|align=left|{{Icon|Windows}}
 
|[http://bsxproj.superfamicom.org/archive.htm sx2 v009] (based on v082)
 
|Low
 
| {{}}
 
| {{✗}}
 
 
|}
 
|}
  
==SNES-CD revival and emulation==
+
==Video==
===SNES-CD===
+
===Currently Recommended Plugins===
It's well-known enough that the Super Famicom was to get a CD add-on called the SNES-CD, developed by Sony who already helped with the sound chip for the SNES. However, Sony got greedy and tried to include a clause in the contract to give them all rights to any software developed on the device. In retaliation, Nintendo publicly humiliated the Sony executives present at the SNES-CD announcement by claiming they would partner with Phillips instead. Talks between Sony and Nintendo continued afterward as late as 1993, but the project couldn't be salvaged. Nintendo lost interest in the CD peripheral, seeing how the Sega CD failed in the US and the PC-Engine CD only enjoyed modest success. They canceled the Phillips collaboration on yet another SNES-CD prototype, but in return they allowed them to use some of their properties for their Phillips CD-i console. Later, they collaborated with the St. Giga radio service to create the Japan-exclusive Satellaview add-on for the Super Famicom which played broadcasts of SFC games using streamed audio. As for Sony, they took the hardware and experience from their collaboration with Nintendo to create the first PlayStation. Nintendo would continue to support the cartridge format for its next console, the Nintendo 64.  A shy attempt at rewritable disk media was attempted with the 64DD, but the add-on failed due to the pathetic 64MB maximum storage limit which would be obsoleted by later bigger N64 cartridges, as well as the lack of support from third parties, many of whom had opted to support the PS1 instead. And the rest is history.
+
The following are the current best video plugins for use on modern PCs and devices.
 +
[[File:SuperMario64-Comparison.png|thumb|right|Jabo's Direct3D8 (left) compared with angrylion's RDP with OpenGL (right), while playing ''Super Mario 64''.]]
 +
====[https://github.com/Themaister/parallel-rdp ParaLLEl-RDP]====
 +
An LLE video plugin based on Angrylion's RDP plugin, ported to run on the GPU through the use of the Vulkan API's compute shaders. Currently considered the best video plugin by most measures. It is just as accurate and compatible as Angrylion's RDP, but much faster. Like most Angrylion forks, it allows disabling of VI features such as anti-aliasing and blur. Unlike the software-rendered Angrylion, however, it also allows a number of enhancements, including hi-res upscaling, resulting in a sharp, high-definition picture while simultaneously retaining accuracy, essentially what the N64 output would look like if the original console could render in HD. It has higher system requirements than the other plugins, however. It requires a GPU with Vulkan support (most GPUs from 2014 onwards are covered) and up-to-date drivers, and upscaling increases the GPU requirements even further, far more than GLideN64. At native resolution, however, a modest PC with Vulkan support can handle it without much issue, even on integrated graphics. Due to its LLE nature, it does not support widescreen hacks or high-res textures - try GLideN64 if you seek to use such features.
 +
====[https://github.com/gonetz/GLideN64/ GLideN64]====
 +
A hybrid HLE/LLE plugin developed by the maker of Glide64, though its code is actually originally based on gln64 (with combiner hacks from Glide64 and LLE code from z64gl). This is the best HLE plugin by far. The plugin currently supports mip-mapping, emulation of low-level triangles, microcode of every game, gamma correction, flat and prim shading, VI emulation, and LLE graphics (though defaults to HLE). It is the only plugin that has [[Nintendo_64_emulators#High-level_vs._low-level_graphics|implemented HLE support]] of microcodes for every N64 game (including the infamous Factor 5 and BOSS games) to enable fast performance and graphical enhancements. It currently fixes numerous long-standing issues in games and is capable of smoothly emulating advanced framebuffer effects in hardware that Glide64 and Jabo could not. It also supports several enhancements, such as hi-res custom [[Texture_Packs|texture support]], AA and AF, a [[Widescreen_Hack|widescreen hack]], and even some shaders. There is support for an "[[Overscan]]" feature that helps the users to [[Widescreen_Hack#Nintendo_64|remove black borders around a game's visual output]]. It requires at least OpenGL 3.3 in the latest versions to run, and OpenGL 4.x for some advanced functions, making this plugin more demanding than the plugins that came before it, though modern GPUs should be ok, even on mobile. It is not without its share of issues to this day, however. There are still several HLE bugs left to resolve, and its LLE mode, while much improved over z64gl's, is still not quite as developed as its HLE mode, and some of the plugin's enhancement features are disabled in this mode. Since it is hardware-rendered even in LLE, there are issues that may never be quite resolved due to inherent differences between the N64 hardware and the OpenGL API. It is advisable to use this over ParaLLEl-RDP only if you are unable to run the latter in HD at full speed or if further enhancements such as widescreen hacks and hi-res textures are desired.
 +
====[https://github.com/ata4/angrylion-rdp-plus/releases Angrylion RDP Plus]====
 +
This is a fork of Angrylion's RDP that supports multithreading. It now uses OpenGL 3.3 and also supports Linux. The multi-threading helps boost performance significantly, but some games are still not full speed even on a Core i7-8700K. This fork has at least one accuracy regression, compared to the official version of Angrylion. It also allows you to disable VI filters. Since it is a CPU-bound, software-rendered plugin, it has no enhancement options of any kind - what you see is what you get, exactly like on a real N64. Use this only if running a relatively fast CPU and ParaLLEl-RDP does not work with your GPU for whatever reason.
 +
====Glide64====
 +
The former best general-use plugin. While it is no longer updated and is far less accurate and compatible than the newer offerings, it still has a few use cases, such as better support for older ROM hacks. It works relatively well for many (most?) games, has support for hi-res textures, and it is also faster than the newer plugins, which makes it suitable for slower devices such as the older Raspberry Pis. Otherwise, stick to either ParaLLEl-RDP or GLideN64. Note that the version included with Project64 has been renamed to Project64 Video.
  
Some prototype units of the Sony SNES-CD were indeed made.  While games were in development for the add-on, some were eventually reworked as regular SNES cartridge games with lots of content gutted (e.g. Nintendo R&D's Marvelous, Square's Secret of Mana, and Romancing Saga 2).  Other games, like Hook, were ported to other systems instead (Hook to the Sega CD, and Rayman to the Atari Jaguar, among others), while the rest were outright canceled. These games were to have much bigger worlds, streamed music, cutscenes, and even FMVs according to various interviews. That never happened, however, and even most of the stuff developed for these consoles, including their various manuals and specifications, were lost.  
+
===Deprecated Plugins===
 +
The following video plugins are old and deprecated, and should not be used or considered unless you have a VERY old or underpowered device that cannot handle the recommended plugins, or there's a very specific use case not covered by modern implementations.
  
Recently, an actual Sony SNES-CD prototype has been uncovered<ref>http://arstechnica.com/gaming/2015/11/the-fabled-snes-playstation-prototype-has-been-turned-on-and-disassembled/</ref> and repaired.<ref>https://www.youtube.com/watch?v=ug-CyGXMabg</ref><ref>https://www.youtube.com/watch?v=qh91IO9cV48</ref> It had various weird hardware restrictions (number of saves, CD size limit, no co-processors) with much of it likely having to do with its unfinished nature. For example, it had a planned Audio CD support that doesn't actually work, which means the MSU-1 is a much more attractive alternative for hacks aiming to reflect what SNES-CD could have been.
+
*Jabo's Direct3D8 - Comes with Project64, and was once its default video plugin. Very speedy, has built-in AA and AF options, and includes a [[Widescreen_Hack|widescreen hack]]. The version included with the most recent versions of Project64 (1.7.0.57-ver5) is somewhat buggy and has regressions, however. [http://www.jabosoft.com/articles/114 Jabo's 1.6.1 patch] is better, though version 1.7 can run in LLE mode, which can help with a few games. Sadly, it will likely never see another update again, and though it is still included in Project64 to this day, it is no longer the default, and should not be used unless you have a very old PC.
 +
*[http://www.emutalk.net/threads/54166-Rice-Video-Community-version Rice Video] - A fast, highly configurable video plugin once famous for its ability to load [[Texture_Packs|hi-res textures]], making it a popular plugin within the N64 emulation community. The 1964 team at one point annexed it as its official video plugin, renaming it 1964Video. There are many versions and forks of it floating around, either to fix issues or add features. It eventually lost favor to Glide64, which can also load hi-res textures, and its compatibility as a whole is subpar even for an HLE plugin. The latest version is also full of regressions compared to older versions, even as it attempted to fix issues with those. As such, none of its variations are recommended for general use unless there's a very specific fringe case (such as some really old texture packs or ROM hacks), you're using a very, very old toaster, or are trying to emulate on a severely underpowered mobile device or handheld.
 +
*[http://www.emutalk.net/threads/40640-Z64-a-LLE-graphics-plugin z64gl] - A hardware-rendered, low-level plugin developed by ziggy, derived from MAME's N64 driver. It was once notable for being one of the only plugins that could play games without an HLE microcode implementation such as Rogue Squadron. However, it was rather glitchy, had higher system requirements than the HLE plugins, needed an LLE RSP plugin to work (such as the bundled z64 RSP or Project64's RSP plugin set to LLE graphics), and configuration required editing the config file directly. A [https://github.com/purplemarshmallow/z64/tree/angrylion-integration fork] cropped up that aimed at improving it, but it did not go very far. Nowadays, it's obsolete, as GLideN64 can now play every game through HLE (thus subverting z64gl's only selling point), and its LLE has been surpassed by Angrylion-derived plugins and even GLideN64's LLE mode.
 +
*[https://sourceforge.net/p/angrylions-stuff/code/HEAD/tree/ Official Angrylion RDP] - A software-rendered, hardware-accurate plugin, developed by angrylion (though derived from MAME, much like z64gl). This is the most accurate N64 video plugin in existence, emulating every facet of the N64's RDP precisely and thus making it capable of playing almost every single game in the N64 library with no issues, fixing even notorious cases such as the ''Pokémon Snap'' red dot and the ''Body Harvest'' bridge. This, however, comes at the cost of insane CPU requirements while making games look like, well, N64 games running on real hardware, which means native resolution, no widescreen, no hi-res textures - just the N64 in its full, vaseline-covered glory. Since this particular version is single-threaded, uses DirectDraw and is Windows only, it is recommended to use Angrylion RDP Plus or ParaLLEl-RDP instead, which offer much more reasonable performance. Only try it out if you have a tricked-out rig and want to test your CPU's mettle, or if you can compile it from source and need it for testing/debugging purposes, as the latest updates are always made to this version first.
 +
*[http://www.emutalk.net/threads/55481-angrylion-s-Per-Pixel-RDP-with-OpenGL HatCat/angrylion's Pixel-Accurate N64 Plugin] - This is a fork of Angrylion's RDP, done by HatCat. It has some optimizations not present in the official code, but is outdated and lacking some accuracy improvements and optimizations written by Angrylion. It has the option to disable the VI filters (which gives a speed boost), as well as the ability to set custom resolutions. Also, this version uses OpenGL 1.x instead of Direct Draw and supports Linux. Obsoleted by newer forks such as Angrylion RDP Plus.
  
No$SNS 1.6 supports the Sony SNES-CD add-on. This was made possible after some reverse engineering and analysis of the leaked BIOS file. Get the leaked Super Disc BIOS, circulating on the net as "SDBR_v0.95.sfc". Under the same directory as the no$sns executable, make a "BIOS" folder, put the BIOS file there, and rename it to "SFX-100.bin".
+
Below is a gallery comparing how many of these plugins handle Mario Tennis, a hard-to-emulate game with many special effects that few plugins get right. Pay attention to the scoreboard on the top left, the MPH indicator on the top right, the NPCs on the back, shadows below the characters, and the trail and sparkle effects on the tennis ball and rackets:
  
 +
<gallery widths="300" mode="packed">
 +
Mario Tennis Rice.png|Mario Tennis running on ParaLLEl-N64 using Rice. Missing various effects, heavily glitched court.
 +
Mario Tennis Glide64.png|Mario Tennis running on ParaLLEl-N64 using Glide64. Missing various effects and shadows, some glitches.
 +
Mario Tennis glN64.png|Mario Tennis running on ParaLLEl-N64 using glN64. Missing various effects; shadows are present, but glitched.
 +
Mario Tennis GLideN64 HLE.png|Mario Tennis running on Mupen64Plus-Next using GLideN64 in HLE mode with 16xMSAA. Minor text cutoff on bottom of scoreboard.
 +
Mario Tennis GLideN64 LLE.png|Mario Tennis running on Mupen64Plus-Next using GLideN64 in LLE mode with 16xMSAA. Minor text cutoff on bottom of scoreboard. Has slight polygon jitter not present in HLE.
 +
Mario Tennis ParaLLEl 1x.png|Mario Tennis running on Mupen64Plus-Next using ParaLLEl-RDP at native resolution. Pixel-perfect representation of real hardware.
 +
Mario Tennis ParaLLEl 4x Downsampled.png|Mario Tennis running on Mupen64Plus-Next using ParaLLEl-RDP rendering at 4x resolution, then downsampled back to native resolution.
 +
Mario Tennis ParaLLEl 4x.png|Mario Tennis running on Mupen64Plus-Next using ParaLLEl-RDP rendering at 4x resolution. Has very slight polygon jitter, though less than GLideN64 in LLE.
 +
</gallery>
  
The only SNES-CD games available online at this time are a legitimate BIOS for one of the discovered prototypes and two homebrew games. These games, Magic Floor and Super Boss Gaiden (both of which have alternate versions as regular SNES ROMs) come as BIN/CUE files. NO$SNS 1.6 supports only one CD mode, so it doesn't actually read the CUE but just the BIN file. Both of these were tested on the real hardware and have severe visual glitches due to the SNES-CD adding more undocumented interrupts which are not accurately emulated anywhere, which means it's safe to say that while SNES-CD emulation exists nowadays, it would have low compatibility with any legit unreleased SNES-CD game prototypes.
+
==Audio==
 +
This section will only cover the zilmar spec plugins, as Mupen64Plus does not have any alternative audio plugins besides the default, and neither do the libretro forks.
  
 +
*Project64 Audio - The default audio plugin for Project64, apparently loosely based off of code from Mupen64Plus's HLE RSP. Very barebones, with no options to speak off.
 +
*Jabo's DirectSound - Comes with Project64. It works fine for the most part, but some games may not play nice with it. It is a low-level plugin, so it needs an accompanying LLE RSP plugin. Will probably never be updated again.
 +
*[http://www.emutalk.net/threads/27610-Audio-v0-56-WIP2-Download-Feedback Azimer's HLE Audio] - This popular HLE audio plugin boasts high compatibility. Version 0.56WIP2 is old as hell, but it is the tried and true standard to which audio plugins are compared against. Recently, [https://github.com/Azimer/AziAudio Azimer open sourced his plugin], and there were plans to integrate it into Project64, though this has yet to happen. While the latest development versions have a few issues, it now works in LLE, and has integrated code from Mupen64Plus's HLE RSP plugin, allowing it to work with the Factor 5 and BOSS games even in HLE.
 +
*[http://forum.pj64-emu.com/showthread.php?t=3644 Shunyuan's HLE Audio] - An audio plugin, apparently based on 1964Audio and HatCat's RSP plugin. Can run in both LLE and HLE modes despite the name, though the HLE mode just makes it run an outdated, baked-in version of HatCat's RSP, which makes it not a true HLE plugin. Has been abandoned after charges of just taking others' code without revealing a source. If games run at a weird speed using this plugin, go to the ROM's Game Settings, and disable Fixed Audio Timing and Sync using Audio. Though it worked surprisingly well despite its Frankenstein nature, modern development versions of Project64 no longer work with it, apparently due to it depending on a bug that has now been fixed. As such, it is probably better to use Azimer's plugin instead.
  
{| class="wikitable" style="text-align:center;"
+
==Input==
|-
+
*Jabo's DirectInput - Comes with Project64, but now removed in favor of NRage Input. It isn't too bad, but it may have some compatibility problems with some controllers. Should work just fine with the keyboard if you're one of those masochists who emulates without a controller. Only standard controller emulation with nothing attached to it. As usual, do not expect any updates.
! scope="col"|Name
+
*[https://sourceforge.net/projects/nragev20/ NRage Input] - Also comes with Project64 as of version 2.2. Hands down the best input plugin as it is more feature complete than Jabo's DirectInput. Has a ton of options and great controller compatibility, including XInput support for use with Xbox 360 controllers. It can't emulate the microphone that is required by ''Hey You, Pikachu'' or the printer required for the ''Pokémon Snap Station''. It has the ability to emulate Controller Pak (''Mario Kart 64'''s ghost saves), Rumble Pak (''Star Fox 64''), and Transfer Pak (''Pokémon Stadium'' series) functionality fairly well. Version 2.3 of Project64 introduced a version of the plug-in that can emulate the N64's mouse accessory designed for the 64DD to coincide with Project64's newest ability to emulate the 64DD accessory. Surprisingly, ''Mario Artist: Paint Studio'' can use the Japanese ''Game Boy Camera'' (called ''Pocket Camera'') in Transfer Pak mode, but the camera function doesn't work as it displays static, although importing captured images still works technically.
! scope="col"|Platform(s)
+
*[https://www.raphnet-tech.com/products/raphnetraw/index.php/ Raphnetraw] - This open source plugin allows streamlined use of N64 controller(s) via raphnet [https://www.raphnet-tech.com/products/n64_usb_adapter_gen3/index.php N64-to-USB v3+ adapters]. It supports rumble and is available for Project64 and mupen64plus. Also contains various DLLs for special port arrangements [https://www.raphnet.net/programmation/mupen64plus-input-raphnetraw/index_en.php#4 (link)].
! scope="col"|Version
 
! scope="col"|SNES-CD (Sony)
 
! scope="col"|[[Emulation Accuracy|Accuracy]]
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
! colspan="7"|PC / x86
 
|-
 
|[[No$|NO$SNS]]
 
|align=left|{{Icon|Windows}}
 
|[http://problemkaputt.de/sns.htm 1.6]
 
| {{✓}}
 
|Mid
 
| {{✗}}
 
| {{✓}}
 
|}
 
  
===MSU-1===
+
==RSP==
Cue the MSU-1, which aims to add some of these features to the SNES. It's a custom fan-made hardware specification for an additional chip, eventually made available and working with real SNES hardware, as the SD2SNES flashcard. It's the closest to the SNES-CD that you'll ever get. No more 12MB maximum cartridge size limitation!
+
===Recommended Plugins===
 +
*Zilmar's RSP - Comes with Project64. Reasonably accurate, quite fast in Recompiler mode (enabled by default), and will work fine for just about every game. The version included in Project64 2.x and beyond can work with both LLE and HLE plugins by toggling the relevant options in the Plugins settings menu. This plugin is exclusive to the zilmar spec.
 +
*Mupen64Plus HLE RSP - Comes with Mupen64Plus. Based off of the old Mupen64 HLE RSP plugin, but much improved. Though it is only compatible with HLE video plugins, when paired with GLideN64, it can play almost every single N64 game without issues, and it now has MusyX support as well for games that used it. This plugin is exclusive to the Mupen64Plus spec and libretro.
 +
*[http://www.emutalk.net/threads/56919-quot-Static-quot-RSP-Interpreter-Plugin "Static" RSP Interpreter/CXD4 RSP] - Made by HatCat/CXD4 and originally released in [http://forum.pj64-emu.com/showthread.php?t=3618 Project64 Forum]. For whatever reason, the zilmar-spec version usually goes by Static Interpreter, while the Mupen64Plus-spec and libretro versions go by CXD4. As of the most recent release version, it is not only one of the most accurate RSP plugins, but also one of the fastest if using the SSSE3 version, though zilmar's RSP in Recompiler mode trumps it in speed. It also comes in SSE2 and non-SSE variations in case your PC does not support those instruction sets. If using the zilmar-spec version, it is capable of working with both HLE and LLE audio and video plugins via the following settings:
 +
**Simulate RSP graphics from external plugin - Check if using an HLE graphics plugin, uncheck if using LLE
 +
**Simulate RSP audio from external plugin - Check if using an HLE audio plugin, uncheck if using LLE
 +
**Force semaphore locking - Check to fix issues with Mario no Photopie. Only works with Project64 2.x and beyond.
 +
*ParaLLEl-RSP - A fast and accurate RSP based on the work of [https://github.com/Themaister/parallel-rsp Themaister]. It is an RSP option mainly used in the [https://www.libretro.com/index.php/parallel-n64-with-parallel-rsp-dynarec-release-fast-and-accurate-n64-emulation/ ParaLLEl-N64 and Mupen64Plus-Next libretro cores]; however, it is also possible to use it with Mupen64Plus, its forks [[M64p]] and [[RMG]], and now even Project64 as a plugin.
 +
===Deprecated Plugins===
 +
*Mupen64 HLE RSP - Comes with the old zilmar-spec Mupen64. A very fast and compatible HLE RSP plugin. Written by Hacktarux and Azimer. Has issues with some games, particularly those using MusyX microcode. MusyX support was later added to the Mupen64Plus version, but those changes have yet to be backported to the zilmar-spec version. Hardly needed these days for the zilmar-spec emulators, particularly Project64.
 +
*z64 RSP plugin pack - Largely deprecated by the Static Interpreter/CXD4 RSP plugin. This set of RSP plugins comes with the z64 video plugin, each with their own purpose:
 +
**Ziggy-z64RSP - This RSP is based on the MAME/MESS RSP code. It is slower but more accurate.
 +
**Ziggy-PJ64 - Based on the Project64 1.4 RSP, this plugin is much faster.
 +
**angrylion - This RSP is a simple Interpreter, and is required for a few games like World Driver Championship to work correctly with z64gl.
  
One inconvenience is that this specification isn't really supported by most emulators. It's currently supported by the SD2SNES flashcard, bsnes (v075 and up), higan (v094 and up), and Snes9x (1.55 and up). These hacks simply won't work at all in other emulators, unless their developers implement an MSU-1 check to let the game run in these emulators without the MSU-1 enhancements (the MSU-1 specification has a specific feature to allow for compatibility testing).
+
==Recommended N64 Setups==
  
{| class="wikitable" style="text-align:center;"
+
===Project64 and Others===
|-
+
Project64 comes bundled with the following plugins:
! scope="col"|Name
+
*Video: Jabo's Direct3D8, Project64 Video (Glide64 under another name), GLideN64
! scope="col"|Platform(s)
+
*Audio: Jabo's DirectSound, Project64 Audio
! scope="col"|Version
+
*Input: NRage for Project64, Project64 Input
! scope="col"|MSU-1
+
*RSP: zilmar's RSP
! scope="col"|[[Emulation Accuracy|Accuracy]]
+
Should you wish to use other plugins, they must be downloaded from a third party source and dropped into their respective plugin folder categories in the Project64 directory. Video plugins go under Plugin/GFX, audio plugins under Plugin/Audio, etc.
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
! colspan="7"|PC / x86
 
|-
 
|[[higan]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://byuu.org/higan/ {{higanVer}}]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[bsnes]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/bsnes-emu/bsnes {{bsnesVer}}]
 
| {{✓}}
 
|Cycle
 
| {{✓}}
 
| {{✓}}
 
|-
 
|[[Snes9x]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://www.snes9x.com/phpbb3/viewtopic.php?f=8&t=24351 {{Snes9xVer}}]
 
| {{✓}}
 
|High
 
| {{✗}}
 
| {{~}}
 
|}
 
  
To load the MSU-1 patched games with higan or bsnes:
+
*'''General Use'''
# Patch the original SNES ROM with the IPS patch
+
**GLideN64
# Make sure to copy <code>manifest.bml</code> and the PCM files (generated with <code>create_pcm.bat</code>, often found included with the sound pack) in the same directory as the ROM
+
**Shunyuan's HLE Audio (set to LLE)
#* Make sure it's <code>%USERPROFILE%\Emulation\Super Famicom\</code> in the case of higan, and follow the readme included to know what names to use
+
**Static Interpreter RSP or Zilmar's RSP
# Launch with higan/bsnes.
+
**Either of the RSP plugins should be fine for most games. The Static Interpreter RSP is slightly more accurate, whereas zilmar's is much faster. Should you wish to use GLideN64 in LLE mode (or any LLE video plugin for that matter), if using zilmar's RSP, simply uncheck "Graphics HLE" in the Plugin configuration screen. If using the Static Interpreter RSP, you'll have to run the spconfig.exe that comes with that plugin, and tell it to NOT "simulate RSP graphics from external plugin" (in other words, type "0"). ParaLLEl-RSP only works in LLE, so GLideN64's HLE mode will be unavailable with that plugin.
To load the MSU-1 patched games with Snes9x:
+
*'''Best Performance'''
# Patch the original SNES ROM with the IPS patch
+
**Project64 Video
# Copy the patched ROM file, any MSU image file, and the PCM files (generated with <code>create_pcm.bat</code>, often found included with the sound pack) in the same directory as the ROM.
+
**Azimer's HLE Audio
#* Make sure the files all carry the same name prefix as the base ROM, with the MSU image having a <code>.msu</code> extension and all PCM files suffixed by track number.
+
**Zilmar's RSP
# Launch the base ROM with Snes9x.
+
**Make sure you configure the graphics plugin to show texture enhancement options. Then you'll have an extra tab to change more options. Go to the texture enhancement tab and click on the button that gives the best performance and it should improve framerate once you saved the settings. There's also another button for best texture quality. There's little need to touch the other plugins. Recommended for the older zilmar-spec emulators as well (replace Project64 Video with Glide64 Final for those). If you absolutely need more performance, you can try Jabo's plugin (specifically version 1.6.1, NOT the buggy version bundled with Project64), though it comes at a cost to compatibility.
 +
*'''Accuracy'''
 +
**angrylion's Pixel-Accurate N64 Plugin (RDP Plus)
 +
**Azimer's Audio NEW
 +
**Static RSP Interpreter
 +
**If you have a decent quad-core CPU, you can run many N64 games with pixel-perfect graphics at full speed, thanks to the new multithreaded version of angrylion's software plugin. The new Azimer's plugin (still WIP) works good in LLE. Since there's almost no visual difference, you may as well use PJ64's RSP or ParaLLEl-RSP to get better performance, and/or move to ParaLLEl-RDP outright for even greater speed and upscaling options to boot (though it goes without saying doing so is no longer accurate). Conversely, if you want even greater accuracy, disable "Hide advanced settings" under Configuration, then enable "Always use interpreter core" under Advanced, and under Angrylion's options, disable multi-threading and set compatibility to "Slow". Performance WILL crash, but hey, it'll be accurate!
  
Notable hacks for the MSU-1 include:
+
===Mupen64Plus===
* [http://bszelda.zeldalegends.net/right.shtml BS Zelda no Densetsu] (a restoration of how the streamed audio played in the Satellaview game!)
+
[[Mupen64Plus]] has its own set of plugins which are incompatible with plugins used in other emulators. Here is an overview of recommended setups.
* [http://bszelda.zeldalegends.net/sekibanfiles.shtml BS Zelda no Densetsu: Inishie no Sekiban]
+
*'''General Use'''
* [http://www.romhacking.net/hacks/2546/ Chrono Trigger] (includes a conversion of the FMV intro from the PlayStation version of the game)
+
**Video: Glide64mk2
* [http://www.dkc-atlas.com/forum/viewtopic.php?f=33&t=2073 Donkey Kong Country 2]
+
**RSP: cxd4-ssse3 or Parallel RSP
* [http://www.romhacking.net/hacks/2483/ The Legend of Zelda: A Link to the Past] (with an optional patch adding FMVs)
+
**Glide64mk2 is just Glide64 with additional tweaks and enhancements for use with Mupen64Plus. cxd4 is one of HatCat's many names. The cxd4 plugin is a port of his RSP for zilmar-spec emulators. This appears to be the best combination for use with most games, though toasters may have performance issues.
* [http://www.romhacking.net/hacks/2274/ Mega Man X]
+
*'''Best Performance'''
* [http://www.romhacking.net/hacks/2342/ Mega Man X3] (with CD version audio)
+
**Video: Rice
* [http://www.romhacking.net/hacks/2311/ Rock n' Roll Racing]
+
**RSP: rsp-hle
* [http://www.romhacking.net/hacks/2467/ Secret of Mana]
+
**These are Mupen64Plus's default plugins. Rice's Video is a plugin used on other N64 emulators, most known for its support for hi-res [[Texture_Packs|texture packs]], now enhanced for Mupen64plus. It is not quite up to Glide64's level, but it does well enough for many games and is quite fast. The default RSP plugin appears to be just an enhanced port of vanilla Mupen64's RSP. Use this combination if you have a lower end PC and can't handle the Commonly Used setup.
* [http://www.romhacking.net/hacks/2472/ Super Mario World]
+
*'''Accuracy/Rogue Squadron'''
* [http://www.dforce3000.de/?uid=48 Super Road Blaster] (port of the FMV arcade game)
+
**Video: z64 or angrylion's Per-Pixel RDP with OpenGL
 +
**RSP: cxd4-ssse3 or Parallel RSP
 +
**z64 is a port of z64gl, a low-level emulation video plugin for N64 emulators. It comes with its own accompanying z64 RSP, but cxd4 (a port of HatCat's RSP Interpreter plugin) appears to be more accurate and very well optimized. This setup is capable of playing difficult games like Rogue Squadron with very few graphical glitches and faster than on Project64 to boot.
  
==References==
+
Note: In some cases the cfg file may not appear, in which case you may do this:
{{reflist}}
+
*Open terminal in emulator folder on in its respective directory
 +
*''mupen64plus --configdir'' /directory/where/you/want/it/to/be
  
==Resources==
+
===Libretro===
* [http://wiki.superfamicom.org/snes/show/HomePage SNES Development Wiki] – SNES Development Wiki for you know, SNES Development.
+
There are two N64 libretro emulator cores for use on libretro frontends such as [[RetroArch]]: Mupen64Plus-Next and ParaLLEl-N64. The former is up-to-date and is recommended for most use cases, while the latter is no longer updated and is only around for performance reasons. They also have access to the following plugins:
* [http://tasvideos.org/EmulatorResources/SNESAccuracyTests.html SNES Accuracy Tests (TASVideos)] – Test results on various emulators using test ROMs
+
*Shared by both cores
+
**Video: ParaLLEl-RDP , Angrylion
{{Nintendo}}
+
**RSP: ParaLLEl-RSP, HLE, CXD4
 +
*Exclusive to Mupen64Plus-Next
 +
**GLideN64
 +
*Exclusive to ParaLLEl-N64
 +
**glN64, Rice, Glide64
 +
Due to these differences, it is advisable to use Mupen64Plus-Next for general use, and ParaLLEl-N64 for performance.
 +
*'''General Use (LLE)'''
 +
**Core: Mupen64Plus-Next
 +
**Video: ParaLLEl-RDP
 +
**RSP: ParaLLEl-RSP
 +
**By default ParaLLEl-RDP will output at native resolution with all the VI filters on, making it look exactly like Angrylion and the real N64 console. Upscaling must therefore be enabled in the core options. You can also alternatively render at a high resolution and downsample to a lower one if you want to improve 3D without making it stick out from 2D elements too much.
 +
*'''General Use (HLE)'''
 +
**Core: Mupen64Plus-Next
 +
**Video: GLideN64
 +
**RSP: HLE
 +
**While GLideN64 also works with the ParaLLEl and CXD4 RSP plugins, using them will cause GLideN64 to switch to its LLE mode, which is currently glitchier and slower than the HLE mode, for few compatibility or accuracy benefits, if any. As such, it is recommended to stick with the HLE RSP for GLideN64.
 +
*'''Best Performance'''
 +
**Core: ParaLLEl-N64
 +
**Video: Glide64
 +
**RSP: HLE
 +
**For slow, low-end devices and old PCs only. If further speed is desired or needed, you may try glN64 or Rice, but using them comes at a steep cost in compatibility and accuracy, and the majority of low-end devices in use today ought to be able to handle Glide64 just fine.
 +
*'''Accuracy'''
 +
**Core: Mupen64Plus-Next
 +
**Video: Angrylion
 +
**RSP: CXD4
 +
**Just like the developers intended! If you want to go all out, set the CPU core to Pure Interpreter, turn off multi-threading and set thread sync level to High in Angrylion's options for the real 30 VI/s experience. Closest you'll get to real hardware until a complete cycle-accurate N64 emulator surfaces.
  
[[Category:Consoles]]
+
[[Category:Recommendations]]
[[Category:Home consoles]]
 
[[Category:Nintendo consoles]]
 
[[Category:Super Nintendo emulators|*]]
 
[[Category:Fourth-generation video game consoles]]
 

Revision as of 03:16, 5 November 2021

The N64 emulation scene had previously been described as a broken mess, the very definition of plugin hell. With recent developments in the scene, however, the situation has markedly improved, and it is no longer considered necessary to have multiple emulators and plugins on hand to get most games to work. This page will outline the best plugins currently available for the benefit of both the casual and enthusiast looking to get their N64 emulation fix.

The Plugin Specs

To understand the current plugin situation, and why there are several competing emulators that all appear to use the same plugins but said plugins are not compatible across emulators, a bit of history is in order.

Historically, the majority of N64 emulators all shared the same plugin spec (known as the zilmar spec, after the creator of Project64, the first emulator to use it), and could therefore all use the same plugins, meaning you could take a plugin DLL file, use it on one emulator, then take that DLL and use it on another, and it would also work there. Of these, the big three emulators were Project64, 1964 and Mupen64. Each had advantages and disadvantages, and some games worked well in one only to not work in another, even when using the same plugin configuration. This necessitated having all of these emulators and sometimes even older or modified versions of them, along with a great many plugins, to be able to play most of the N64 library with the least amount of issues possible - though admittedly a good amount of games (particularly the most popular ones) were playable with just the best few of them. To illustrate the point, here is a site that, as late as 2012, was dedicated to documenting the exact emulator, plugin and settings combination necessary to get each and every game to at least a playable state, if at all possible.

However, as time went on, things began to change, slowly at first. 1964's development eventually ceased, and it completely fell off the radar. Mupen64 was forked into Mupen64Plus and developed its own plugin spec that was incompatible with the older zilmar spec, making it unable to use existing plugins unless they were specifically ported to it. This left only Project64 as the only relevant and active emulator still using the zilmar spec. For some time, then, this left the fledgling Mupen64Plus missing out on most cutting-edge plugin development, as most people were still using Project64.

A semblance of parity began to come about as a result of several major developments: first, Mupen64Plus itself was forked by the libretro team, which made many improvements to the core emulator, and integrated its plugins into the core itself. Second, gonetz, the developer of Glide64, unveiled his newest plugin, GLideN64, which would officially support both the zilmar and Mupen64Plus specs from the beginning. Third, the Angrylion plugin, which is the most accurate and compatible (and slowest) plugin there is, began to be ported both for use with standard Mupen64Plus and the libretro fork. Finally, Themaister, one of the creators of libretro and RetroArch, began developing a unique plugin initially exclusive to libretro known as ParaLLEl-RDP, essentially Angrylion running on the GPU through Vulkan compute shaders, enabling near-perfect N64 graphics emulation at actually playable speeds. Add to this the fact that most PCs and many mobile devices are now more than capable enough of running the most advanced plugins, and the plugin situation, once considered a labyrinth, has been greatly simplified to just needing a few for the vast majority of use cases.

All that said, the issue is that there are now three plugin standards to account for:

  • The zilmar spec - Utilized by Project64 and most other legacy emulators; only Project64 still uses it today.
  • The Mupen64Plus spec - Utilized by Mupen64Plus and most of its forks.
  • Libretro - Not really a spec per se, as the plugins are integrated directly into the libretro core, so there's no DLL files to download or add.

As of right now, not all plugins are readily available on all three. Consult the table below for reference:

Name Latest Version Project64 Mupen64Plus Libretro HLE LLE Widescreen Hack Custom Texture Packs Recommended
Video Plugins
ParaLLEl-RDP git
GLideN64 github-actions
Angrylion RDP Plus 1.6
Glide64 Final ~
Jabo's Direct3D8 1.7.0.57-ver5
Rice Video 0.4.4
glN64 0.4.1
z64gl R17
Angrylion (Official) r114

Video

Currently Recommended Plugins

The following are the current best video plugins for use on modern PCs and devices.

Jabo's Direct3D8 (left) compared with angrylion's RDP with OpenGL (right), while playing Super Mario 64.

ParaLLEl-RDP

An LLE video plugin based on Angrylion's RDP plugin, ported to run on the GPU through the use of the Vulkan API's compute shaders. Currently considered the best video plugin by most measures. It is just as accurate and compatible as Angrylion's RDP, but much faster. Like most Angrylion forks, it allows disabling of VI features such as anti-aliasing and blur. Unlike the software-rendered Angrylion, however, it also allows a number of enhancements, including hi-res upscaling, resulting in a sharp, high-definition picture while simultaneously retaining accuracy, essentially what the N64 output would look like if the original console could render in HD. It has higher system requirements than the other plugins, however. It requires a GPU with Vulkan support (most GPUs from 2014 onwards are covered) and up-to-date drivers, and upscaling increases the GPU requirements even further, far more than GLideN64. At native resolution, however, a modest PC with Vulkan support can handle it without much issue, even on integrated graphics. Due to its LLE nature, it does not support widescreen hacks or high-res textures - try GLideN64 if you seek to use such features.

GLideN64

A hybrid HLE/LLE plugin developed by the maker of Glide64, though its code is actually originally based on gln64 (with combiner hacks from Glide64 and LLE code from z64gl). This is the best HLE plugin by far. The plugin currently supports mip-mapping, emulation of low-level triangles, microcode of every game, gamma correction, flat and prim shading, VI emulation, and LLE graphics (though defaults to HLE). It is the only plugin that has implemented HLE support of microcodes for every N64 game (including the infamous Factor 5 and BOSS games) to enable fast performance and graphical enhancements. It currently fixes numerous long-standing issues in games and is capable of smoothly emulating advanced framebuffer effects in hardware that Glide64 and Jabo could not. It also supports several enhancements, such as hi-res custom texture support, AA and AF, a widescreen hack, and even some shaders. There is support for an "Overscan" feature that helps the users to remove black borders around a game's visual output. It requires at least OpenGL 3.3 in the latest versions to run, and OpenGL 4.x for some advanced functions, making this plugin more demanding than the plugins that came before it, though modern GPUs should be ok, even on mobile. It is not without its share of issues to this day, however. There are still several HLE bugs left to resolve, and its LLE mode, while much improved over z64gl's, is still not quite as developed as its HLE mode, and some of the plugin's enhancement features are disabled in this mode. Since it is hardware-rendered even in LLE, there are issues that may never be quite resolved due to inherent differences between the N64 hardware and the OpenGL API. It is advisable to use this over ParaLLEl-RDP only if you are unable to run the latter in HD at full speed or if further enhancements such as widescreen hacks and hi-res textures are desired.

Angrylion RDP Plus

This is a fork of Angrylion's RDP that supports multithreading. It now uses OpenGL 3.3 and also supports Linux. The multi-threading helps boost performance significantly, but some games are still not full speed even on a Core i7-8700K. This fork has at least one accuracy regression, compared to the official version of Angrylion. It also allows you to disable VI filters. Since it is a CPU-bound, software-rendered plugin, it has no enhancement options of any kind - what you see is what you get, exactly like on a real N64. Use this only if running a relatively fast CPU and ParaLLEl-RDP does not work with your GPU for whatever reason.

Glide64

The former best general-use plugin. While it is no longer updated and is far less accurate and compatible than the newer offerings, it still has a few use cases, such as better support for older ROM hacks. It works relatively well for many (most?) games, has support for hi-res textures, and it is also faster than the newer plugins, which makes it suitable for slower devices such as the older Raspberry Pis. Otherwise, stick to either ParaLLEl-RDP or GLideN64. Note that the version included with Project64 has been renamed to Project64 Video.

Deprecated Plugins

The following video plugins are old and deprecated, and should not be used or considered unless you have a VERY old or underpowered device that cannot handle the recommended plugins, or there's a very specific use case not covered by modern implementations.

  • Jabo's Direct3D8 - Comes with Project64, and was once its default video plugin. Very speedy, has built-in AA and AF options, and includes a widescreen hack. The version included with the most recent versions of Project64 (1.7.0.57-ver5) is somewhat buggy and has regressions, however. Jabo's 1.6.1 patch is better, though version 1.7 can run in LLE mode, which can help with a few games. Sadly, it will likely never see another update again, and though it is still included in Project64 to this day, it is no longer the default, and should not be used unless you have a very old PC.
  • Rice Video - A fast, highly configurable video plugin once famous for its ability to load hi-res textures, making it a popular plugin within the N64 emulation community. The 1964 team at one point annexed it as its official video plugin, renaming it 1964Video. There are many versions and forks of it floating around, either to fix issues or add features. It eventually lost favor to Glide64, which can also load hi-res textures, and its compatibility as a whole is subpar even for an HLE plugin. The latest version is also full of regressions compared to older versions, even as it attempted to fix issues with those. As such, none of its variations are recommended for general use unless there's a very specific fringe case (such as some really old texture packs or ROM hacks), you're using a very, very old toaster, or are trying to emulate on a severely underpowered mobile device or handheld.
  • z64gl - A hardware-rendered, low-level plugin developed by ziggy, derived from MAME's N64 driver. It was once notable for being one of the only plugins that could play games without an HLE microcode implementation such as Rogue Squadron. However, it was rather glitchy, had higher system requirements than the HLE plugins, needed an LLE RSP plugin to work (such as the bundled z64 RSP or Project64's RSP plugin set to LLE graphics), and configuration required editing the config file directly. A fork cropped up that aimed at improving it, but it did not go very far. Nowadays, it's obsolete, as GLideN64 can now play every game through HLE (thus subverting z64gl's only selling point), and its LLE has been surpassed by Angrylion-derived plugins and even GLideN64's LLE mode.
  • Official Angrylion RDP - A software-rendered, hardware-accurate plugin, developed by angrylion (though derived from MAME, much like z64gl). This is the most accurate N64 video plugin in existence, emulating every facet of the N64's RDP precisely and thus making it capable of playing almost every single game in the N64 library with no issues, fixing even notorious cases such as the Pokémon Snap red dot and the Body Harvest bridge. This, however, comes at the cost of insane CPU requirements while making games look like, well, N64 games running on real hardware, which means native resolution, no widescreen, no hi-res textures - just the N64 in its full, vaseline-covered glory. Since this particular version is single-threaded, uses DirectDraw and is Windows only, it is recommended to use Angrylion RDP Plus or ParaLLEl-RDP instead, which offer much more reasonable performance. Only try it out if you have a tricked-out rig and want to test your CPU's mettle, or if you can compile it from source and need it for testing/debugging purposes, as the latest updates are always made to this version first.
  • HatCat/angrylion's Pixel-Accurate N64 Plugin - This is a fork of Angrylion's RDP, done by HatCat. It has some optimizations not present in the official code, but is outdated and lacking some accuracy improvements and optimizations written by Angrylion. It has the option to disable the VI filters (which gives a speed boost), as well as the ability to set custom resolutions. Also, this version uses OpenGL 1.x instead of Direct Draw and supports Linux. Obsoleted by newer forks such as Angrylion RDP Plus.

Below is a gallery comparing how many of these plugins handle Mario Tennis, a hard-to-emulate game with many special effects that few plugins get right. Pay attention to the scoreboard on the top left, the MPH indicator on the top right, the NPCs on the back, shadows below the characters, and the trail and sparkle effects on the tennis ball and rackets:

Audio

This section will only cover the zilmar spec plugins, as Mupen64Plus does not have any alternative audio plugins besides the default, and neither do the libretro forks.

  • Project64 Audio - The default audio plugin for Project64, apparently loosely based off of code from Mupen64Plus's HLE RSP. Very barebones, with no options to speak off.
  • Jabo's DirectSound - Comes with Project64. It works fine for the most part, but some games may not play nice with it. It is a low-level plugin, so it needs an accompanying LLE RSP plugin. Will probably never be updated again.
  • Azimer's HLE Audio - This popular HLE audio plugin boasts high compatibility. Version 0.56WIP2 is old as hell, but it is the tried and true standard to which audio plugins are compared against. Recently, Azimer open sourced his plugin, and there were plans to integrate it into Project64, though this has yet to happen. While the latest development versions have a few issues, it now works in LLE, and has integrated code from Mupen64Plus's HLE RSP plugin, allowing it to work with the Factor 5 and BOSS games even in HLE.
  • Shunyuan's HLE Audio - An audio plugin, apparently based on 1964Audio and HatCat's RSP plugin. Can run in both LLE and HLE modes despite the name, though the HLE mode just makes it run an outdated, baked-in version of HatCat's RSP, which makes it not a true HLE plugin. Has been abandoned after charges of just taking others' code without revealing a source. If games run at a weird speed using this plugin, go to the ROM's Game Settings, and disable Fixed Audio Timing and Sync using Audio. Though it worked surprisingly well despite its Frankenstein nature, modern development versions of Project64 no longer work with it, apparently due to it depending on a bug that has now been fixed. As such, it is probably better to use Azimer's plugin instead.

Input

  • Jabo's DirectInput - Comes with Project64, but now removed in favor of NRage Input. It isn't too bad, but it may have some compatibility problems with some controllers. Should work just fine with the keyboard if you're one of those masochists who emulates without a controller. Only standard controller emulation with nothing attached to it. As usual, do not expect any updates.
  • NRage Input - Also comes with Project64 as of version 2.2. Hands down the best input plugin as it is more feature complete than Jabo's DirectInput. Has a ton of options and great controller compatibility, including XInput support for use with Xbox 360 controllers. It can't emulate the microphone that is required by Hey You, Pikachu or the printer required for the Pokémon Snap Station. It has the ability to emulate Controller Pak (Mario Kart 64's ghost saves), Rumble Pak (Star Fox 64), and Transfer Pak (Pokémon Stadium series) functionality fairly well. Version 2.3 of Project64 introduced a version of the plug-in that can emulate the N64's mouse accessory designed for the 64DD to coincide with Project64's newest ability to emulate the 64DD accessory. Surprisingly, Mario Artist: Paint Studio can use the Japanese Game Boy Camera (called Pocket Camera) in Transfer Pak mode, but the camera function doesn't work as it displays static, although importing captured images still works technically.
  • Raphnetraw - This open source plugin allows streamlined use of N64 controller(s) via raphnet N64-to-USB v3+ adapters. It supports rumble and is available for Project64 and mupen64plus. Also contains various DLLs for special port arrangements (link).

RSP

Recommended Plugins

  • Zilmar's RSP - Comes with Project64. Reasonably accurate, quite fast in Recompiler mode (enabled by default), and will work fine for just about every game. The version included in Project64 2.x and beyond can work with both LLE and HLE plugins by toggling the relevant options in the Plugins settings menu. This plugin is exclusive to the zilmar spec.
  • Mupen64Plus HLE RSP - Comes with Mupen64Plus. Based off of the old Mupen64 HLE RSP plugin, but much improved. Though it is only compatible with HLE video plugins, when paired with GLideN64, it can play almost every single N64 game without issues, and it now has MusyX support as well for games that used it. This plugin is exclusive to the Mupen64Plus spec and libretro.
  • "Static" RSP Interpreter/CXD4 RSP - Made by HatCat/CXD4 and originally released in Project64 Forum. For whatever reason, the zilmar-spec version usually goes by Static Interpreter, while the Mupen64Plus-spec and libretro versions go by CXD4. As of the most recent release version, it is not only one of the most accurate RSP plugins, but also one of the fastest if using the SSSE3 version, though zilmar's RSP in Recompiler mode trumps it in speed. It also comes in SSE2 and non-SSE variations in case your PC does not support those instruction sets. If using the zilmar-spec version, it is capable of working with both HLE and LLE audio and video plugins via the following settings:
    • Simulate RSP graphics from external plugin - Check if using an HLE graphics plugin, uncheck if using LLE
    • Simulate RSP audio from external plugin - Check if using an HLE audio plugin, uncheck if using LLE
    • Force semaphore locking - Check to fix issues with Mario no Photopie. Only works with Project64 2.x and beyond.
  • ParaLLEl-RSP - A fast and accurate RSP based on the work of Themaister. It is an RSP option mainly used in the ParaLLEl-N64 and Mupen64Plus-Next libretro cores; however, it is also possible to use it with Mupen64Plus, its forks M64p and RMG, and now even Project64 as a plugin.

Deprecated Plugins

  • Mupen64 HLE RSP - Comes with the old zilmar-spec Mupen64. A very fast and compatible HLE RSP plugin. Written by Hacktarux and Azimer. Has issues with some games, particularly those using MusyX microcode. MusyX support was later added to the Mupen64Plus version, but those changes have yet to be backported to the zilmar-spec version. Hardly needed these days for the zilmar-spec emulators, particularly Project64.
  • z64 RSP plugin pack - Largely deprecated by the Static Interpreter/CXD4 RSP plugin. This set of RSP plugins comes with the z64 video plugin, each with their own purpose:
    • Ziggy-z64RSP - This RSP is based on the MAME/MESS RSP code. It is slower but more accurate.
    • Ziggy-PJ64 - Based on the Project64 1.4 RSP, this plugin is much faster.
    • angrylion - This RSP is a simple Interpreter, and is required for a few games like World Driver Championship to work correctly with z64gl.

Recommended N64 Setups

Project64 and Others

Project64 comes bundled with the following plugins:

  • Video: Jabo's Direct3D8, Project64 Video (Glide64 under another name), GLideN64
  • Audio: Jabo's DirectSound, Project64 Audio
  • Input: NRage for Project64, Project64 Input
  • RSP: zilmar's RSP

Should you wish to use other plugins, they must be downloaded from a third party source and dropped into their respective plugin folder categories in the Project64 directory. Video plugins go under Plugin/GFX, audio plugins under Plugin/Audio, etc.

  • General Use
    • GLideN64
    • Shunyuan's HLE Audio (set to LLE)
    • Static Interpreter RSP or Zilmar's RSP
    • Either of the RSP plugins should be fine for most games. The Static Interpreter RSP is slightly more accurate, whereas zilmar's is much faster. Should you wish to use GLideN64 in LLE mode (or any LLE video plugin for that matter), if using zilmar's RSP, simply uncheck "Graphics HLE" in the Plugin configuration screen. If using the Static Interpreter RSP, you'll have to run the spconfig.exe that comes with that plugin, and tell it to NOT "simulate RSP graphics from external plugin" (in other words, type "0"). ParaLLEl-RSP only works in LLE, so GLideN64's HLE mode will be unavailable with that plugin.
  • Best Performance
    • Project64 Video
    • Azimer's HLE Audio
    • Zilmar's RSP
    • Make sure you configure the graphics plugin to show texture enhancement options. Then you'll have an extra tab to change more options. Go to the texture enhancement tab and click on the button that gives the best performance and it should improve framerate once you saved the settings. There's also another button for best texture quality. There's little need to touch the other plugins. Recommended for the older zilmar-spec emulators as well (replace Project64 Video with Glide64 Final for those). If you absolutely need more performance, you can try Jabo's plugin (specifically version 1.6.1, NOT the buggy version bundled with Project64), though it comes at a cost to compatibility.
  • Accuracy
    • angrylion's Pixel-Accurate N64 Plugin (RDP Plus)
    • Azimer's Audio NEW
    • Static RSP Interpreter
    • If you have a decent quad-core CPU, you can run many N64 games with pixel-perfect graphics at full speed, thanks to the new multithreaded version of angrylion's software plugin. The new Azimer's plugin (still WIP) works good in LLE. Since there's almost no visual difference, you may as well use PJ64's RSP or ParaLLEl-RSP to get better performance, and/or move to ParaLLEl-RDP outright for even greater speed and upscaling options to boot (though it goes without saying doing so is no longer accurate). Conversely, if you want even greater accuracy, disable "Hide advanced settings" under Configuration, then enable "Always use interpreter core" under Advanced, and under Angrylion's options, disable multi-threading and set compatibility to "Slow". Performance WILL crash, but hey, it'll be accurate!

Mupen64Plus

Mupen64Plus has its own set of plugins which are incompatible with plugins used in other emulators. Here is an overview of recommended setups.

  • General Use
    • Video: Glide64mk2
    • RSP: cxd4-ssse3 or Parallel RSP
    • Glide64mk2 is just Glide64 with additional tweaks and enhancements for use with Mupen64Plus. cxd4 is one of HatCat's many names. The cxd4 plugin is a port of his RSP for zilmar-spec emulators. This appears to be the best combination for use with most games, though toasters may have performance issues.
  • Best Performance
    • Video: Rice
    • RSP: rsp-hle
    • These are Mupen64Plus's default plugins. Rice's Video is a plugin used on other N64 emulators, most known for its support for hi-res texture packs, now enhanced for Mupen64plus. It is not quite up to Glide64's level, but it does well enough for many games and is quite fast. The default RSP plugin appears to be just an enhanced port of vanilla Mupen64's RSP. Use this combination if you have a lower end PC and can't handle the Commonly Used setup.
  • Accuracy/Rogue Squadron
    • Video: z64 or angrylion's Per-Pixel RDP with OpenGL
    • RSP: cxd4-ssse3 or Parallel RSP
    • z64 is a port of z64gl, a low-level emulation video plugin for N64 emulators. It comes with its own accompanying z64 RSP, but cxd4 (a port of HatCat's RSP Interpreter plugin) appears to be more accurate and very well optimized. This setup is capable of playing difficult games like Rogue Squadron with very few graphical glitches and faster than on Project64 to boot.

Note: In some cases the cfg file may not appear, in which case you may do this:

  • Open terminal in emulator folder on in its respective directory
  • mupen64plus --configdir /directory/where/you/want/it/to/be

Libretro

There are two N64 libretro emulator cores for use on libretro frontends such as RetroArch: Mupen64Plus-Next and ParaLLEl-N64. The former is up-to-date and is recommended for most use cases, while the latter is no longer updated and is only around for performance reasons. They also have access to the following plugins:

  • Shared by both cores
    • Video: ParaLLEl-RDP , Angrylion
    • RSP: ParaLLEl-RSP, HLE, CXD4
  • Exclusive to Mupen64Plus-Next
    • GLideN64
  • Exclusive to ParaLLEl-N64
    • glN64, Rice, Glide64

Due to these differences, it is advisable to use Mupen64Plus-Next for general use, and ParaLLEl-N64 for performance.

  • General Use (LLE)
    • Core: Mupen64Plus-Next
    • Video: ParaLLEl-RDP
    • RSP: ParaLLEl-RSP
    • By default ParaLLEl-RDP will output at native resolution with all the VI filters on, making it look exactly like Angrylion and the real N64 console. Upscaling must therefore be enabled in the core options. You can also alternatively render at a high resolution and downsample to a lower one if you want to improve 3D without making it stick out from 2D elements too much.
  • General Use (HLE)
    • Core: Mupen64Plus-Next
    • Video: GLideN64
    • RSP: HLE
    • While GLideN64 also works with the ParaLLEl and CXD4 RSP plugins, using them will cause GLideN64 to switch to its LLE mode, which is currently glitchier and slower than the HLE mode, for few compatibility or accuracy benefits, if any. As such, it is recommended to stick with the HLE RSP for GLideN64.
  • Best Performance
    • Core: ParaLLEl-N64
    • Video: Glide64
    • RSP: HLE
    • For slow, low-end devices and old PCs only. If further speed is desired or needed, you may try glN64 or Rice, but using them comes at a steep cost in compatibility and accuracy, and the majority of low-end devices in use today ought to be able to handle Glide64 just fine.
  • Accuracy
    • Core: Mupen64Plus-Next
    • Video: Angrylion
    • RSP: CXD4
    • Just like the developers intended! If you want to go all out, set the CPU core to Pure Interpreter, turn off multi-threading and set thread sync level to High in Angrylion's options for the real 30 VI/s experience. Closest you'll get to real hardware until a complete cycle-accurate N64 emulator surfaces.