Difference between pages "Game Boy Advance emulators" and "Recommended N64 plugins"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
m (Emulators: Avoid redirect)
 
(Continue filling in table. Added the ancient glN64 plugin only because the ParaLLEl-N64 libretro core still retains it)
 
Line 1: Line 1:
{{Infobox console
+
{{Outdated}}
|title = Nintendo Game Boy Advance
 
|logo = gbagba.png
 
|developer = [[:Nintendo]]
 
|type = [[:Category:Handheld consoles|Handheld game console]]
 
|generation = [[:Category:Sixth-generation video game consoles|Sixth generation]]
 
|release = 2001
 
|discontinued = 2010
 
|predecessor = [[Game Boy/Game Boy Color emulators|Game Boy Color]]
 
|successor = [[Nintendo DS emulators|Nintendo DS]]
 
|emulated = {{✓}}
 
}}
 
The '''[[wikipedia:Game_Boy_Advance|Game Boy Advance]]''' (often shortened to GBA) is a 32-bit handheld video game console developed by Nintendo. It is the successor to the Game Boy Color. It was released in Japan on March 21, 2001; in North America on June 11, 2001; in Australia and Europe on June 22, 2001. It has a ARM7TDMI CPU at 16.78 MHz and a Zilog Z80 CPU at 8 MHz and 4 MHz. It has 288KB of RAM and 96KB of VRAM.
 
  
==Emulators==
+
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.
{| class="wikitable" style="text-align:center;"
 
|-
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|GB/GBC
 
! scope="col"|NDS
 
! scope="col"|Game Link Support
 
! scope="col"|e-Reader
 
! 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="13"|PC /x86
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://mgba.io/downloads.html {{MGBAVer}}]
 
|{{✓}} ||{{✓}}<ref group=N name=medusa>Experimental separate build under the name of [[mGBA#medusa|medusa]].</ref> ||{{✓}} ||{{✓}} ||{{✓}} ||Mid ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[[higan]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://byuu.org/emulation/higan {{higanVer}}]
 
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||? ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[[VisualBoy Advance#VBA-M|VBA-M]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/visualboyadvance-m/visualboyadvance-m/releases {{VBAMVer}}]
 
|{{✓}} ||{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||Mid ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[[ares]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/ares-emulator/ares/releases {{aresVer}}]
 
|{{✓}}||{{✗}}||?||?||{{✗}}||?||{{✓}}||{{✓}}||?
 
|-
 
|iDeaS
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://web.archive.org/web/20150311100053/http://ciacin.site90.com/ideas.php 1.0.4.0]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|[[GBE+]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://github.com/shonumi/gbe-plus {{GBEVer}}]
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[https://fms.komkon.org/VGBA VGBA]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://fms.komkon.org/VGBA {{VGBAVer}}]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|[[MAME]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://www.mamedev.org/release.html {{MAMEVer}}]
 
|{{✓}} ||{{✗}} ||? ||{{✗}} ||{{✓}} ||Cycle ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|Meteor
 
|align=left|{{Icon|Linux}}
 
|[https://github.com/blastrock/meteor 1.4.2]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||Low-Mid ||{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|NanoboyAdvance
 
|align=left|{{Icon|Windows|Linux}}
 
|[https://github.com/fleroviux/NanoboyAdvance git]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||Low ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[[No$|No$GBA]]
 
|align=left|{{Icon|Windows|DOS}}
 
|[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
 
|{{✗}} ||{{✓}} ||{{✓}} ||{{✓}} ||{{✗}} ||Mid ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|BoyCottAdvance
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[http://boycottadvance.emuunlim.org/Downloads.htm 0.2.8]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||Low ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|PlayBoy Advance
 
|align=left|{{Icon|macOS}}
 
|[https://www.zophar.net/macintosh/gba/playboy-advance.html 1.0]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||Low ||{{✗}} ||{{✗}} ||{{✗}}
 
|-
 
|[[AloneGBA]]
 
|align=left|{{Icon|Windows}}
 
|[https://standalones.dev 1.0.2]
 
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||Mid ||{{✗}} ||{{✓}} ||?
 
|-
 
!colspan="13"|Mobile / ARM
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|iOS|Linux|Pandora}}
 
|[https://mgba.io/downloads.html {{MGBAVer}}]
 
|{{✓}} ||{{✓}}<ref group=N name=medusa /> ||{{✓}} ||{{✗}} ||{{✓}} ||Mid ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[http://www.explusalpha.com/ GBA.emu]<br/><small>(VBA-M r1097 based)</small>
 
|align=left|{{Icon|Android|Pyra}}
 
|[https://play.google.com/store/apps/details?id=com.explusalpha.GbaEmu 1.5.54][https://github.com/Rakashazi/emu-ex-plus-alpha git]</br>[https://pyra-handheld.com/repo/apps/75 1.5.46.01 Pyra]
 
|{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✗}} ||High-Mid ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[http://allaboutwindowsphone.com/software/content/VBA8_1.php VBA8]
 
|align=left|{{Icon|W8P}}
 
|[https://www.appx4fun.com/xap/15223/ 2.27]
 
|{{✓}} ||{{✗}} ||{{✓}} ||{{✗}} ||? ||Low-Mid ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|[https://forums.windowscentral.com/app-spotlight/252987-trio-nintendo-emulators-vba8-vgbc8-snes8x.html VBA10]
 
|align=left|{{Icon|W10P}}
 
|[https://forum.xda-developers.com/windows-10-mobile/windows-10-mobile-apps-and-games/app-vba10-emulator-t3588704 1.22]<br/>[https://emulator.games/emulators/gameboy-advance/vba10/ Alt]
 
|{{✓}} ||{{✗}} ||{{✓}} ||{{✗}} ||? ||Mid ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|[[gpSP]]
 
|align=left|{{Icon|Pandora|Didj}}
 
|[http://repo.openpandora.org/?page=detail&app=package.gpsp.notaz 0.9.2.8 Pandora]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||Mid ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|[[VisualBoy Advance#VBA-M|VBA-M]]<ref group=N name=libretro>Only available on mobile as a libretro core (e.g. [[RetroArch]]).</ref>
 
|align=left|{{Icon|Android|iOS|Linux|Pandora}}
 
|[https://github.com/visualboyadvance-m/visualboyadvance-m 2.1.4]
 
|{{✓}} ||{{✗}} ||{{✓}} ||? ||{{✓}} ||? ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[https://sites.google.com/site/fastemulator/ My Boy!]
 
|align=left|{{Icon|Android}}
 
|[https://play.google.com/store/apps/details?id=com.fastemulator.gba 1.8.0]
 
|{{✓}}<ref group=N name=myoldboy>Separate paid app called My OldBoy!.</ref> ||{{✗}} ||{{✓}} ||{{✗}} ||{{✗}} ||Mid ||{{✗}} ||{{✓}} ||{{✗}}
 
|-
 
|GBA4iOS
 
|align=left|{{Icon|iOS}}
 
|[https://iemulators.com/gba4ios 2.1]
 
|{{✓}} ||{{✗}} ||{{~}} ||{{✗}} ||{{✗}} ||High ||{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
!colspan="13"|Consoles
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|Wii|Switch}}<br>{{Icon|3DS|PSV}}
 
|[https://mgba.io/downloads.html {{MGBAVer}}]
 
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||Mid ||{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|[https://www.gc-forever.com/wiki/index.php?title=Enhanced_mGBA emGBA]
 
|align=left|{{Icon|GCN|Wii}}
 
|[https://files.extremscorner.org/gamecube/apps/mgba/latest git]
 
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||Mid ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[[gpSP#PSP_version|TempGBA4PSP]]
 
|align=left|{{Icon|PSP}}
 
|[http://www.mediafire.com/download/41ny5xrwxizalx4/TempGBA4PSP-26750221.zip 26750221]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||Mid ||{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|[[VisualBoy Advance#VBA-GX|VBA GX]]
 
|align=left|{{Icon|GCN|Wii}}
 
|[https://github.com/dborth/vbagx/releases git]
 
|{{✓}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}<ref group=N>As VBA-Next.</ref> ||Mid ||{{✓}} ||{{✓}} ||{{✗}}
 
|-
 
|[[gpSP]]
 
|align=left|{{Icon|PSP}}
 
|0.91
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}} ||Mid ||{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|[[GBARunner2]]
 
|align=left|{{Icon|NDS|3DS}}
 
|?
 
|{{✗}} ||{{✗}} ||{{~}} ||{{✗}} ||{{✗}} ||Low-High ||{{✓}} ||{{✓}} ||?
 
|-
 
|Gbaemu4DS
 
|align=left|{{Icon|NDS}}
 
|[https://ichfly.github.io/gbaemu4DS Alpha 2 fix 4][https://github.com/ichfly/gbaemu4DS git]
 
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||Low ||{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|[[gpSP|UO gpSP Kai]]
 
|align=left|{{Icon|PSP}}
 
|3.4 test 4 build 230
 
|? ||? ||? ||? ||? ||? ||? ||? ||?
 
|-
 
|[[Virtual Console]]
 
|align=left|{{Icon|3DS|WiiU}}
 
|8.10
 
|{{✓}} <small>(Nintendo 3DS only)<small> ||{{✓}} <small>(Wii U only)<small> ||{{✓}} <small>(Pokemon only)</small> ||{{✗}} ||{{✗}} ||? ||{{✗}} ||{{✓}} ||{{✓}}
 
|}
 
<references group=N />
 
 
 
===Comparisons===
 
;[[mGBA]]:Aims for accuracy, speed, and features. For its accuracy, it's gradually becoming the best at that. It's actively developed and has features VBA-M lacks such as a Tilt Sensor, and more recently Game Boy Camera support. It currently does not have an official Android build.
 
;[[VisualBoy Advance|Visual Boy Advance (VBA)]]:The original GBA emulator. Discovered to have an <abbr title="Arbitrary Code Execution">ACE</abbr> vulnerability detailed below.
 
:;[[VisualBoy Advance#VBA-M|Visual Boy Advance-M (VBA-M)]]:A fork with additional improvements. It is behind in terms of accuracy and performance compared to mGBA.
 
::;VBA-Next:A [[RetroArch]] fork from an older revision of VBA-M with added speedhacks and tweaks, making it useful for lower-end devices. A bit less accurate in some respects, but fixes a few games such as Advance Wars 2.
 
;[[gpSP]]:Its last official version was 0.91. There are, however, two forks of interest: [http://dl.qj.net/psp/emulators/gpsp-mod-20090720.html gpSPmod], and [http://filetrip.net/psp-downloads/homebrew/download-gpsp-j-12-06-16-f29570.htmlgpSP-J gpSP-J]. gpSP-J has superior compatibility, while gpSPmod has more options for customization (full screen, cheats, etc). Both are superior to Kai.
 
;[[higan]]:Its GBA core is cycle-accurate as of v095, but it is behind in terms of performance compared to mGBA and VBA-M.
 
;[[MAME]]:Has a <code>gba</code> driver markup as working but both graphics and sound are "imperfect".
 
 
 
'''NOTE:''' There's a ''huge'' <abbr title="Arbitrary Code Execution">ACE</abbr> vulnerability affecting VBA and most of its forks, except for VBA-M. The function for adding GameShark codes ("Import > Gameshark code file") doesn't check if the file's size is within 1024 kilobits, meaning cheat code files from dubious sources can be engineered with malware in mind. There is good news; VBA-M still doesn't do a sanity check for those files, but it just crashes instead of letting the code wreak havoc. So, depending on your use case, avoid using:
 
# Cheat code files bigger than 1024Kb that you got online from untrustworthy sources.
 
# The import code files feature.
 
# The old emulator altogether, and settle for other options like mGBA or VBA-M. All of them support the same SRAM save data the cartridge uses.
 
 
 
'''List of recommended GBA emulators for Android:'''
 
* [https://www.androidauthority.com/best-game-boy-emulators-for-android-368530/ 10 best Game Boy Advanced, Game Boy Color, and Game Boy emulators for Android] (SEPTEMBER 2, 2018. Includes some emulators not found in above charts. Reviews may be subjective.)
 
 
 
==Emulation issues==
 
 
 
===Oversaturation===
 
[[File:1406913527173-1-.png|400px|thumb|right|'''Left:''' The default game.<br/>'''Right:''' The "Gameboy Colors" mode on [[VisualBoy Advance#VBA-M|VBA-M]].]]
 
The screen on the original Game Boy Advance is not backlit and can be hard to see in some conditions. To compensate, game developers often used oversaturated colors by default so that the result would look normal on hardware. On standard computer screens, saturation is not an issue so this can look jarring and undesirable for gameplay. Some games made after 2003 may have also taken the Game Boy Advance SP <abbr title="AGS-001">model</abbr> into account since its screen was actually <abbr title="A newer model, AGS-101, was released in 2005 that was actually backlit">frontlit</abbr>. For everything else though, emudevs have given some solutions:
 
 
 
====Emulator Options====
 
'''No$GBA:''' Under "Emulation Options", select "GBA Mode". There are four modes.
 
 
 
* '''GBA (no backlight):''' Strong desaturation
 
* '''GBA SP (backlight):''' Strong desaturation
 
* '''Nintendo DS in GBA mode:''' Some desaturation
 
* '''VGA Mode (poppy bright):''' No desaturation
 
  
'''mGBA:''' Under Tools > Settings > Shaders, you will find three customizable '''Desaturation''' parameters.
+
==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.
  
'''VBA-M:''' (nightly only): Under Options > Game Boy Advance, you will find the option, '''LCD Filter'''.
+
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.
  
'''higan:''' Under Settings > Video Filter, you will find the "Color Emulation" checkbox.
+
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.
  
* '''Color Emulation off:''' No desaturation
+
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.
* '''Color Emulation on:''' Gamma correction and adjusted color range.
 
  
====Shaders====
+
All that said, the issue is that there are now three plugin standards to account for:
Cg [[Shaders and Filters|shaders]] can be used in [[OpenEmu]] or [[RetroArch]] that adjust the colors to those of a real GBA screen, as well as other screen types. These are available in GLSL<ref name="GLSL">https://github.com/libretro/glsl-shaders/tree/master/handheld/shaders/color</ref> for OpenGL, and Slang<ref name="Slang">https://github.com/libretro/slang-shaders/tree/master/handheld/shaders/color</ref> for Vulkan.
 
  
For GBA, there is <code>gba-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/gba-color.cg</ref>, which simulates the color profile of a GBA screen under an external light source more accurately than VBA-M or No$GBA color options. If you prefer the darker color options that those emulators have, then use <code>vba-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/vba-color.cg</ref> instead.  
+
*The zilmar spec - Utilized by Project64 and most other legacy emulators; only Project64 still uses it today.
  
There is also <code>nds-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/nds-color.cg</ref> and <code>psp-color.cg</code><ref>https://github.com/libretro/common-shaders/blob/master/handheld/shaders/color/psp-color.cg</ref>, which simulates the color profiles of the original Nintendo DS frontlit screen and the PSP-1000/PSP-2000 backlit screen, respectively.
+
*The Mupen64Plus spec - Utilized by Mupen64Plus and most of its forks.
  
===Horrible Sound Quality===
+
*The libretro spec - Not really a spec per se, as the plugins are integrated directly into the core, so there's no DLL files to download or add.
As a handheld rushed to the market (because of the WonderSwan Color competition), the Game Boy Advance had some cut corners. The sound hardware was affected the hardest: while it could play Game Boy Color sound in addition to samples and sequenced music like what would be heard on the SNES, the actual sound playback quality is awful compared to the actual higher quality sound samples stored internally in the ROM.
 
  
There were [https://www.romhacking.net/utilities/881/ tools] made to extract the internal high-quality music (as midi files plus a sound font, to be played on foobar2000), however, interest remains limited in implementing its playback in real-time on emulators. It's worth noting it exists as a very experimental feature on [[mGBA]] (nightly versions) under Enhancements as "XQ GBA Audio", but very buggy and still limited to games using the standard sound engine, the so-called "Sappy" engine, which is still a big part of the GBA's software library.
+
As of right now, not all plugins are readily available on all three. Consult the table below for reference:
  
===High Resolution Affine Transformation Graphical Effects===
 
Similar to the scaling effects used on the Super NES known commonly as "Mode 7" graphics, the Game Boy Advance has affine transformation effects for some backgrounds and individual sprites that can be done in hardware. Due to the GBA's lower resolution, some detail may be lost.
 
 
The [[mGBA]] emulator added an Enhancements menu where you can change the resolution of those graphical effects, for a smoother effect. The graphical render engine will need to be OpenGL for those to take effect. It won't work on games where those effects are done in software instead of the hardware scaling features (like the 3D environment in Asterix & Obelix XXL)
 
 
===Save formats===
 
Originally, when saves were implemented, nobody settled on a format, so the Visual Boy Advance devs made their own. Because other emulators often went with raw data, having to exchange different saves caused problems. The original Visual Boy Advance tries to figure out which format a given save is but often fails at it. By explicitly telling the emulator to read it as a specific type using a file called <code>vba-over.ini</code>, VBA complies. VBA-M includes this config file by default, but older revisions like VBA 1.7.2 and VBALink do not.
 
 
The VBA-Next and VBA-M cores in Libretro have the file baked into the binary so that it can load raw .sav files, but converts the format to its own derivative at exactly 136 KB every time, with save type info contained within the file. This completely avoids the previous issues at the cost of incompatibility with standalone VBA and most others.
 
 
To solve this incompatibility, Libretro devs created a
 
[https://github.com/libretro/vbam-libretro/blob/master/src/libretro/gbaconv/gbaconv.c command-line tool] to convert .srm save files made from these cores to raw .sav save data for other emulators. It takes standard input (i.e. just drag and drop the .srm onto the executable) and outputs accordingly. It can also be done in reverse. A 64-bit binary of this tool for Windows can be found
 
[https://www.mediafire.com/?6bg8ag0bjs1b7ng here].
 
 
==Connectivity==
 
There are five different kinds of connectivity, support varying by game:
 
*Single Pak
 
*Multi Pak
 
*Wireless
 
*GameCube
 
*Nintendo DS
 
Purple end in GBA means player 1, while a grey end in GBA means P2, P3, or P4. Daisy-chaining up to three cables will set up the additional P3 and P4 by connecting the purple end to a purple midsection.<ref>https://www.nintendo.com/consumer/downloads/agblink.pdf</ref>
 
 
{| 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"|Supported Version
+
! scope="col"|Project64
! scope="col"|Single Pak
+
! scope="col"|Mupen64Plus
! scope="col"|Multi Pak
+
! scope="col"|Libretro
! scope="col"|Wireless
+
! scope="col"|HLE
! scope="col"|GameCube
+
! scope="col"|LLE
! scope="col"|Nintendo DS
+
! scope="col"|Recommended]
|-
 
!colspan="8"|PC / x86
 
|-
 
|[[mGBA]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://mgba.io/downloads.html {{MGBAVer}}]
 
|{{✓}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✗}}
 
 
|-
 
|-
|[[VisualBoy Advance#VBA-M|VBA-M]]
+
!colspan="13"|Video Plugins
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
||[https://github.com/visualboyadvance-m/visualboyadvance-m/releases {{VBAMVer}}]
 
|{{✗}} ||{{✓}} ||{{✗}} ||{{✓}} ||{{✗}}
 
 
|-
 
|-
|[[No$|No$GBA]]
+
|ParaLLEl-RDP
|align=left|{{Icon|Windows|DOS}}
+
|[https://github.com/Themaister/parallel-rdp git]
||[http://problemkaputt.de/gba.htm {{No$GBAVer}}]
+
|{{✓}}
|{{✓}} ||{{✓}} ||{{}} ||{{✗}} ||{{✗}}
+
|{{✓}}
|-
+
|{{}}
|[[DeSmuME]]
+
|{{✗}}
|align=left|{{Icon|Windows|Linux|macOS}}
+
|{{}}
|[https://ci.appveyor.com/project/zeromus/desmume {{DeSmuMEVer}}]
+
|{{✓}}
|{{✗}} ||{{✗}} ||{{✗}} ||{{✗}} ||{{✓}}
 
|}
 
===GBA Multi Pak Link Multiplayer (1~4GBA)===
 
;VBA-M: This doesn't work with old VBA versions.
 
:Just disable "Pause when Inactive", configure all four Joypads each with their own button layout, enable "Link, Enable GBA Link". Now open VBA-M again as many times needed for each player, and have them each use their separate Joypad configuration. Each player will have a separate SRAM save file.
 
;VBA Link + e-Reader:Useful if you want to use the Pokémon Battle-eCards. Downloads and instructions reside [http://projectpokemon.org/forums/showthread.php?42433-RELEASE-VBA-LINK-E-READER here].
 
;mGBA:Select "New multiplayer window" from the menu. As you load your ROMs into each window, "Player [X] of [Y]" will appear across the title bar. This can be done for up to four players. However, multiple instances of the same ROM will share a save file.
 
;No$GBA:Set the number of Emulated Gameboys in the Emulation setting to be 2 or more, and the Link Gamepaks Options to Gamepak in all GBAs.
 
 
 
===GBA Wireless Multiplayer===
 
The [[Wikipedia:Game Boy Advance Wireless Adapter|wireless adapter]] has the ability to connect five players<ref>https://www.nintendo.com/consumer/downloads/agbwireless_trilingual.pdf</ref> to each other and includes its own software to download a subset of another player's game that runs when no cartridge is inserted. ''Pokémon Fire Red'' and ''Leaf Green'' came bundled with this accessory but it can also work with ''Pokémon Emerald'' and the ''Classic NES Series''.
 
 
 
No emulator has currently implemented this add-on. The only project whose developers put this on its roadmap is [[mGBA]].
 
 
 
===GameCube Connectivity===
 
The Game Boy Advance can also connect to the GameCube.<ref>https://www.nintendo.com/consumer/downloads/agbgcncable.pdf</ref> e-Reader functionality with GC games has now been emulated thanks to mGBA. [[Dolphin]] supports connectivity through rudimentary joybus emulation made in parallel with VBA-M. Because this emulator has fallen behind, the feature was recently added to [[mGBA]], a more accurate emulator. They showcased early higan support in a video, but nothing has been released as of yet.
 
 
 
====Dolphin/mGBA or VBA-M====
 
:''Requires mGBA 0.9.0 or newer or VBA-M r947 or newer.''
 
 
 
* Reduce your volume. You won't want it to be high, especially with headphones.
 
* Open Dolphin and mGBA/VBA-M. Make sure neither are blocked by your firmware.
 
* In Dolphin, launch the game and navigate to the area where you're asked to connect the GBA. Then, under the controller options, assign the GameCube controllers as "GBA" for whichever you need.
 
* If you are using mGBA, open up the File menu, and click Connect to Dolphin.
 
* In the dialog box that appears, press Connect. mGBA will boot up the GBA BIOS if no rom has been selected.
 
* If you are using VBA-M, uncheck Pause When Inactive in Options > Emulator. Then, under Options > Link > Joybus Options, Make sure to "Enable Joybus Connection" is on and set "IP/Hostname" to use default settings, that is <code>127.0.0.1</code> or <code>localhost</code>.
 
* Dolphin will freeze.
 
* Open the GBA BIOS in VBA-M as if it were a regular GBA ROM. The regular splash screen will stutter a bit.
 
* In either emulator, Dolphin should recognize the Joybus Link by then and the GC game will detect that a GBA was connected.
 
* To connect other units, open another emulator instance and repeat its process.
 
 
 
Notable games that work:
 
*[https://wiki.dolphin-emu.org/index.php?title=The_Legend_of_Zelda:_Four_Swords_Adventures The Legend of Zelda Four Swords Adventures]: Both two modes are available for the US/PAL version work. The third Japan-only Navi Trackers mode works as well, but the game crashes after the naming screen due to a bug in the GC/GBA connectivity.
 
*[https://wiki.dolphin-emu.org/index.php?title=Final_Fantasy_Crystal_Chronicles Final Fantasy Crystal Chronicles]
 
*[https://wiki.dolphin-emu.org/index.php?title=Billy_Hatcher_and_the_Giant_Egg Billy Hatcher and the Giant Egg]: You can download games to your GBA. Amusingly, a RAM dump from VBA-M can be opened as a functional GBA ROM.
 
*[https://wiki.dolphin-emu.org/index.php?title=Kururin_Squash! Kururin Squash!]
 
*[https://wiki.dolphin-emu.org/index.php?title=Sonic_Adventure_2:_Battle Sonic Adventure 2: Battle] (buggy)
 
 
 
Notable games that don't:
 
*[https://wiki.dolphin-emu.org/index.php?title=Mr_Driller:_Drill_Land Mr. Driller: Drill Land]
 
*lots more
 
 
 
===GBA/DS Connectivity===
 
:''Main section: [[Nintendo_DS_emulators#GBA.2FDS_Connectivity|Nintendo DS § GBA/DS Connectivity]]''
 
 
 
===e-Reader===
 
:''Main page: [[GBA e-Reader emulators]]''
 
This device can read content off e-Card paper stripes either as standalone content, or additional content to GBA/GC games. Can be thought of as DLC.
 
 
 
==Special Hardware==
 
Emulation of these is spotty, apart from GBE+, which supports almost all GBA peripherals.
 
 
 
{| class="wikitable" style="text-align:center; vertical-align:middle;"
 
|- style="font-weight:bold;"
 
! Name
 
! GBE+
 
! mGBA
 
! VBA-M
 
! No$GBA
 
! My Boy!
 
 
|-
 
|-
| Solar Sensor
+
|GLideN64
| {{✓}}
+
|[https://github.com/gonetz/GLideN64/releases/tag/github-actions github-actions]
| {{✓}}
+
|{{✓}}
| {{✓}}
+
|{{✓}}
| {{✓}}
+
|{{✓}}
| {{✓}}
+
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
| Motion Control
+
|Angrylion RDP Plus
| {{}}
+
|[https://github.com/ata4/angrylion-rdp-plus/releases/tag/v1.6 1.6]
| {{~}}
+
|{{}}
| {{~}}
+
|{{}}
| {{✗}}
+
|{{}}
| {{✓}}
+
|{{✗}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
| Battle Chip Gate
+
|Glide64
| {{✓}}
+
|Final
| {{✓}}
+
|{{✓}}
| {{}}
+
|{{✓}}
| {{✗}}
+
|{{✓}}
| {{}}
+
|{{}}
 +
|{{✗}}
 +
|{{~}}
 
|-
 
|-
| Soul Doll Adapter
+
|Jabo's Direct3D8
| {{✓}}
+
|1.7.0.57-ver5
| {{}}
+
|{{✓}}
| {{✗}}
+
|{{}}
| {{}}
+
|{{✗}}
| {{✗}}
+
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 
|-
 
|-
| Multi Plust On System
+
|Rice Video
| {{✓}}
+
|0.4.4
| {{}}
+
|{{✓}}
| {{}}
+
|{{}}
| {{✗}}
+
|{{✓}}
| {{✗}}
+
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
| Turbo File Advance
+
|glN64
| {{✓}}
+
|0.4.1
| {{✗}}
+
|{{✓}}
| {{}}
+
|{{✗}}
| {{✗}}
+
|{{✓}}
| {{✗}}
+
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
| Power Antenna & Bug Sensor
+
|z64gl
| {{✓}}
+
|R17
| {{✗}}
+
|{{✓}}
| {{✗}}
+
|{{✓}}
| {{}}
+
|{{✗}}
| {{✗}}
+
|{{✗}}
 +
|{{}}
 +
|{{✗}}
 
|-
 
|-
| Official Nintendo Infrared Adapter
+
|Angrylion (Official)
| {{✓}}
+
|r114
| {{✗}}
+
|{{✓}}
| {{✗}}
+
|{{✗}}
| {{✗}}
+
|{{✗}}
| {{✗}}
+
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 
|}
 
|}
  
===Solar Sensor===
+
==Video==
====Emulation====
+
===Currently Recommended Plugins===
This feature has been emulated in mGBA, VBA-M, No$GBA 2.6 onwards, and My Boy!:
+
The following are the current best video plugins for use on modern PCs and devices.
* mGBA: In the shortcuts editor, shortcuts can be configured to raise/lower the solar level incrementally or to set any particular brightness level.
 
* VBA-M: This emulator uses the keys of the lateral motion controls to change the Solar Sensor levels. You can find those keys and modify them in Options -> Input -> Configure... -> "Special" tab.
 
* No$GBA: Under '''Options/Emulation Setup''', you can find the Solar Sensor Level option. You are given the choice between only three brightness levels though: Darkness, 100 Watts, and Bright Sunlight.
 
* My Boy! This emulator uses a button combination or the device's light sensor to check the brightness level. You can change this under Settings -> Input -> Cartridge Features -> "Solar Emulation By" menu.
 
 
 
====ROM Patches====
 
Fixes applied directly to the ROM by various scene release groups to make it compatible with any emulator/flashcard, making the in-game brightness level controllable with L+Left/Right. It's argued this makes for a better experience actually, but sadly not all releases are covered.
 
* '''Boktai 1:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1145 US], <s>EU</s>.
 
* '''Boktai 2:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=1567 JP], <s>US</s>, [http://www.advanscene.com/html/Releases/dbreleases.php?id=1992 EU].
 
* '''Boktai 3:''' [http://www.advanscene.com/html/Releases/dbreleases.php?id=2048 JP Fix].
 
* Combinations of Boktai 4 JP with earlier solar sensors to get solar sensor bonuses aren't emulated yet in any DS emulator.
 
 
 
===Motion Control===
 
VBA-M has an option for Motion controls "Input, Set, Motion". It currently works with all versions of the GBC title Kirby Tilt'n Tumble, which also was a special cartridge with a motion sensor built-in to control movement in-game. But VBA-M does not support motion controls for GBA games yet.
 
====Emulation====
 
* VBA '''doesn't''' emulate this feature, and its "Motion Control" option (with keys mapped to each tilt direction) covers the GBC title Kirby Tilt'n Tumble.
 
* mGBA supposedly includes this feature but key remapping for tilt sensors is not present in the latest builds.
 
* My Boy! uses the device's accelerometer to emulate this feature. You can change the sensitivity under Settings -> Input -> Cartridge Features -> "Motion sensitivity" menu.
 
 
 
====ROM Patches====
 
Fixes applied directly to the ROM (with the Lunar IPS utility, or at runtime using mGBA or VBA-M and naming them the same as the ROM in the same directory) by various scene release groups to make it compatible with any emulator/flashcard. D-Pad controls substituting motion controls don't work as well here as they tilt it "too much" at times to be very playable.
 
* Yoshi Topsy Turvy/Universal Gravitation: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1799 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1947 EU], [http://www.advanscene.com/html/Releases/dbreleases.php?id=2001 US]
 
* WarioWare Twisted! (Patch: [http://www.advanscene.com/html/Releases/dbreleases.php?id=1682 JP], [http://www.advanscene.com/html/Releases/dbreleases.php?id=1979 US])
 
 
 
===Rumble Feature===
 
There are various rumble features found in GBA/GBC cards:
 
* '''GBC Rumble:''' GBC games which came on special cartridges with additional hardware for the rumble feature. It was actually used by dozens of releases, and some games like Tarzan 2 GBC were programmed to have rumble support but shipped on regular cartridges. Emulated by VBA-M GX (Wii-only), which also cover the dummied-out rumble games. Not emulated anywhere else.
 
* '''GBA Gyro Rumble:''' WarioWare Twisted was shipped on a cart with rumble support. It would rumble when you tilt to one "extreme". Emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds,
 
* '''GBA Variable Rumble:''' Drill Dozer has rumble support, with variable force and speed depending on the rock type you drill through in-game. Partially emulated by VBA-M GX (Wii-only, functional), mGBA has this feature but it's not enabled in current builds.
 
* '''Game Boy Player Rumble:''' Many regular GBA games, shipped on regular cartridges, enable rumble during gameplay when played on GB Player hardware (which is essentially GBA hardware). These include Super Mario Advance 4, Summon Night Hajimari no Ishi, Mario & Luigi 1, Shikakui Atama wo Marukusuru Advance (both releases), Pokémon Pinball, as well as Drill Dozer which disables its original cartridge rumble scheme and enables this one instead. None of the emulators support this, though it's being under development for the mGBA emulator.
 
  
===Turbo File Advance===
+
[[File:SuperMario64-Comparison.png|thumb|right|Jabo's Direct3D8 (left) compared with angrylion's RDP with OpenGL (right), while playing ''Super Mario 64''.]]
The Turbo File Advance was a peripheral for the GBA which allowed certain games to write data to it, acting as an external memory card. Developed by Sammy Corporation, it was compatible with only 2 games, RPG Tsukuru Advance and Derby Stallion Advance.
+
*[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.
  
GBE+ supports this add-on.
+
===Deprecated Plugins===
 +
The following video plugins are old and deprecated, and should not be used or considered unless you have a VERY old device that cannot handle the recommended plugins, or there's a very specific use case not covered by modern implementations.
  
===Power Antenna & Bug Sensor===
+
*Jabo's Direct3D - 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.
The Power Antenna & Bug Sensor were small plastic peripherals that interfaced with the GBA's serial port and contained LEDs that flashed in response to certain events within Keitai Denjuu Telefang 2, the only supported GBA game.
+
*[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. 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) or you're using a very, very old toaster.
 +
*[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.
 +
*[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.
  
GBE+ supports this add-on.  
+
==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.
  
===Official Nintendo Infrared Adapter===
+
*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.
As the GBA did not have native infrared connectivity, Nintendo released an official IR adapter called the AGB-006 to restore this functionality. However, it only saw use in Cyber Drive Zoids: Kiju no Senshi Hyuu to control specific Zoid toy models.
+
*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 are plans to integrate it into Project64 and eventually replace Jabo's as its official audio plugin. The latest development versions have a few issues, however.
 +
*[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 a 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. Despite its Frankenstein nature, it actually works surprisingly well, although modern development versions of Project64 no longer work with it, apparently due to it depending on a bug that has now been fixed.
  
GBE+ supports this add-on.
+
==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.
 +
*[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.
 +
*[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)].
  
===Figurine Readers===
+
==RSP==
Some GBA games/series had figurine reader add-ons, essentially precursors to the likes of Skylanders and Amiibo.
+
*Zilmar's RSP - Comes with Project64. Very accurate, quite fast in Recompiler mode, and will work fine for every game. The version included in Project64 2.x can work with both LLE and HLE plugins by toggling the relevant options in the Plugins settings menu.
* '''Soul Doll Adapter''' (Legendz: Island of Ordeal/Sign of Nekuromu)
+
*Mupen64 HLE RSP - Comes with 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.
* '''Multi Plust On System''' (Bouken Yuuki Pluster World: Plust Gate/EX/Pluston GP)
+
*z64 RSP plugin pack - Largely deprecated. This set of RSP plugins comes with the z64 video plugin, each with their own purpose:
GBE+ has support for both the Soul Doll Adapter and Multi Plust On System, while mGBA supports the Soul Doll Adapter.
+
**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.
 +
*[http://www.emutalk.net/threads/56919-quot-Static-quot-RSP-Interpreter-Plugin "Static" RSP Interpreter] - Made by HatCat and originally released in [http://forum.pj64-emu.com/showthread.php?t=3618 Project64 Forum]. 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. It is capable of working with both HLE and LLE audio and video plugins via the following settings:
 +
**Send display lists to the graphics plugin - Check if using an HLE graphics plugin, uncheck if using LLE
 +
**Send audio lists to the audio plugin - Check if using an HLE audio plugin, uncheck if using LLE
 +
**Force CPU-RSP signals synchronization - Check if playing Gauntlet Legends, World Driver Championship, or Stunt Race 64. Only works with Project64 2.x.
 +
**Support CPU-RSP semaphore lock - Check to fix issues with Mario no Photopie. Only works with Project64 2.x.
 +
*Parallel RSP - A fast and accurate RSP based on the work of [https://github.com/Themaister/parallel-rsp Themaister] and is a 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 Libretro core] however it is also possible to use it with [[M64p]] and [[RMG]] as a plugin.
  
===Battle Chip Gate===
+
==Recommended N64 Setups==
A peripheral device by Capcom and Takara compatible with ''Mega Man Battle Network 4'' (Japanese edition). It can be connected to the Game Boy Advance and allow the player to transmit real-life toy Battle Chips to the NetNavis in the game. It's also compatible with toy Advanced PETs and ''Rockman.EXE 4.5 Real Operation''. It can also unlock minigames in ''Mega Man Zero 3''.
 
  
[[mGBA]] and [[GBE+]] support this add-on.
+
===Project64 and Others===
 +
*'''General Use'''
 +
**Glide64 2.0.0.1
 +
**Shunyuan's HLE Audio (set to LLE)
 +
**"Static" RSP Interpreter or Zilmar's RSP
 +
**Either of the RSP plugins should be fine for most games. HatCat's RSP is slightly more accurate. However, zilmar's is much faster. Keep in mind that Glide64 2.0.0.1 is the same as Glide64 Final. Glide64 2.0.0.1 is just a merge of Glide64, GlideHQ, and Glitch64 (which of course the final version has) to be one file, but limits you to certain settings that cannot be changed with the emulator.
 +
*'''Best Performance'''
 +
**Glide64 Final
 +
**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. Goto 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 no need to touch the other plugins. Recommended for most emulators.
 +
*'''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 to get better performance.
  
===Glucoboy===
+
===Mupen64Plus===
* '''Glucoboy:''' An obscure medical peripheral designed to monitor a child's blood glucose levels and reward them for keeping tabs on their condition. No known emulator supports this so far, especially given the niche nature of this accessory. Not to mention that [https://assemblergames.com/threads/glucoboy-for-gameboy-is-this-the-rarest-game-accessory-for-gameboy-advance.41853/page-2 Bayer Healthcare destroyed all unsold stock] making it hard to find.
+
[[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|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.
  
==References==
+
Note: In some cases the cfg file may not appear, in which case you may do this:
{{reflist|2}}
+
*Open terminal in emulator folder on in its respective directory
 +
*''mupen64plus --configdir'' /directory/where/you/want/it/to/be
  
{{Nintendo}}
+
===RetroArch===
 +
[[RetroArch]] has two N64 emulator cores: 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.
 +
*'''General Use (LLE)'''
 +
**Core: Mupen64Plus-Next
 +
**Video: ParaLLEl-RDP
 +
**RSP: ParaLLEl-RSP
 +
*'''General Use (HLE)'''
 +
**Core: Mupen64Plus-Next
 +
**Video: GLideN64
 +
**RSP: HLE
 +
*'''Best Performance'''
 +
**Core: ParaLLEl-N64
 +
**Video: Glide64
 +
**RSP: HLE
 +
*'''Accuracy'''
 +
**Core: Mupen64Plus-Next
 +
**Video: Angrylion
 +
**RSP: CXD4
  
[[Category:Consoles]]
+
[[Category:Recommendations]]
[[Category:Handheld consoles]]
 
[[Category:Nintendo consoles]]
 
[[Category:Sixth-generation video game consoles]]
 
[[Category:Game Boy Advance emulators|*]]
 

Revision as of 19:11, 31 October 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.
  • The libretro spec - Not really a spec per se, as the plugins are integrated directly into the 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 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 device that cannot handle the recommended plugins, or there's a very specific use case not covered by modern implementations.

  • Jabo's Direct3D - 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. 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) or you're using a very, very old toaster.
  • 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.
  • 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.

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 are plans to integrate it into Project64 and eventually replace Jabo's as its official audio plugin. The latest development versions have a few issues, however.
  • 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 a 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. Despite its Frankenstein nature, it actually works surprisingly well, although modern development versions of Project64 no longer work with it, apparently due to it depending on a bug that has now been fixed.

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

  • Zilmar's RSP - Comes with Project64. Very accurate, quite fast in Recompiler mode, and will work fine for every game. The version included in Project64 2.x can work with both LLE and HLE plugins by toggling the relevant options in the Plugins settings menu.
  • Mupen64 HLE RSP - Comes with 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.
  • z64 RSP plugin pack - Largely deprecated. 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.
  • "Static" RSP Interpreter - Made by HatCat and originally released in Project64 Forum. 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. It is capable of working with both HLE and LLE audio and video plugins via the following settings:
    • Send display lists to the graphics plugin - Check if using an HLE graphics plugin, uncheck if using LLE
    • Send audio lists to the audio plugin - Check if using an HLE audio plugin, uncheck if using LLE
    • Force CPU-RSP signals synchronization - Check if playing Gauntlet Legends, World Driver Championship, or Stunt Race 64. Only works with Project64 2.x.
    • Support CPU-RSP semaphore lock - Check to fix issues with Mario no Photopie. Only works with Project64 2.x.
  • Parallel RSP - A fast and accurate RSP based on the work of Themaister and is a RSP option mainly used in the Parallel N64 Libretro core however it is also possible to use it with M64p and RMG as a plugin.

Recommended N64 Setups

Project64 and Others

  • General Use
    • Glide64 2.0.0.1
    • Shunyuan's HLE Audio (set to LLE)
    • "Static" RSP Interpreter or Zilmar's RSP
    • Either of the RSP plugins should be fine for most games. HatCat's RSP is slightly more accurate. However, zilmar's is much faster. Keep in mind that Glide64 2.0.0.1 is the same as Glide64 Final. Glide64 2.0.0.1 is just a merge of Glide64, GlideHQ, and Glitch64 (which of course the final version has) to be one file, but limits you to certain settings that cannot be changed with the emulator.
  • Best Performance
    • Glide64 Final
    • 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. Goto 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 no need to touch the other plugins. Recommended for most emulators.
  • 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 to get better performance.

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

RetroArch

RetroArch has two N64 emulator cores: 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.

  • General Use (LLE)
    • Core: Mupen64Plus-Next
    • Video: ParaLLEl-RDP
    • RSP: ParaLLEl-RSP
  • General Use (HLE)
    • Core: Mupen64Plus-Next
    • Video: GLideN64
    • RSP: HLE
  • Best Performance
    • Core: ParaLLEl-N64
    • Video: Glide64
    • RSP: HLE
  • Accuracy
    • Core: Mupen64Plus-Next
    • Video: Angrylion
    • RSP: CXD4